Fork me on GitHub

linux 常用的命令

linux 常用的命令

useradd xxx 添加用户

id xxx 显示xxx 用户的信息(用户id 组id 所属组 等)

uname -a 显示例如Linux qiang-virtual-machine 4.18.0-25-generic #26~18.04.1-Ubuntu SMP Thu Jun 27 07:28:31 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
find 查找文件

关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案

杀死所有apt 进程

  • 查找所有apt相关的进程,并用命令杀死

image-kill-pid

  • 删除apt 产生的lock 文件

在下列路径中{
/var/lib/apt/lists/;
/var/lib/dpkg/;
/var/cache/apt/archives/
}

软件包的安装与卸载

apt

apt install xx 安装软件包xx
apt update 更新安装源
apt upgrade 更新已安装软件。

rpm

文件操作

touch filename 新建文件
mkdir foldername 新建目录
rm 移除文件
rmdir 移出目录
ls 列出当前目录文件
pwd 打印当前目录的完全路径
stat filename 列出文件信息(name ,size ,inode , times ...)

目录实际是一个文件,通过编辑目录文件的内容可以实现增删文件目录,查看目录。

which sh 查找sh 命令所在文件路径。

标准输入,标准输出,标准错误与重新定向

当Linux执行一个程序的时候,会自动打开三个流,标准输入(standard input),标准输出(standard output),标准错误(standard error)。比如说你打开命令行的时候,默认情况下,命令行的标准输入连接到键盘,标准输出和标准错误都连接到屏幕。对于一个程序来说,尽管它总会打开这三个流,但它会根据需要使用,并不是一定要使用。
想象一下敲击一个
$ls
键盘敲击的文本流("ls\n",\n是回车时输入的字符,表示换行)命令行 (命令行实际上也是一个程序)。命令行随后调用/bin/ls得到结果("a.txt"),最后这个输出的文本流("a.txt")流到屏幕,显示出来,比如说:
a.txt
假设说我们不想让文本流流到屏幕,而是流到另一个文件,我们可以采用重新定向(redirect)的机制。
$ls > a.txt
重新定向标准输出。这里的>就是提醒命令行,让它知道我现在想变换文本流的方向了,我们不让标准输出输出到屏幕,而是要到a.txt这个文件 (好像火车轨道换轨)。此时,计算机会新建一个a.txt的文件,并将命令行的标准输出指向这个文件。
有另一个符号:
$ls >> a.txt
这里>>的作用也是重新定向标准输出。如果a.txt已经存在的话,ls产生的文本流会附加在a.txt的结尾,而不会像>那样每次都新建a.txt。

我们下面介绍命令echo:
$echo IamVamei
echo的作用是将文本流导向标准输出。在这里,echo的作用就是将IamVamei输出到屏幕上。如果是
$echo IamVamei > a.txt
a.txt中就会有IamVamei这个文本。

我们也可以用<符号来改变标准输入。比如cat命令,它可以从标准输入读入文本流,并输出到标准输出:
$cat < a.txt
我们将cat标准输入指向a.txt,文本会从文件流到cat,然后再输出到屏幕上。当然,我们还可以同时重新定向标准输出:
$cat < a.txt > b.txt
这样,a.txt的内容就复制到了b.txt中。

我们还可以使用>&来同时重新定向标准输出和标准错误。假设我们并没有一个目录void。那么
$cd void > a.txt
会在屏幕上返回错误信息。因为此时标准错误依然指向屏幕。当我们使用:
$cd void >& a.txt
错误信息被导向a.txt。

如果只想重新定向标准错误,可以使用2>:
$cd void 2> a.txt > b.txt
标准错误对应的总是2号,所以有以上写法。标准错误输出到a.txt,标准输出输出到b.txt。
管道 (pipe)
理解了以上的内容之后,管道的概念就易如反掌。管道可以将一个命令的输出导向另一个命令的输入,从而让两个(或者更多命令)像流水线一样连续工作,不断地处理文本流。在命令行中,我们用|表示管道:

$cat < a.txt | wc
wc命令代表word count,用于统计文本中的行、词以及字符的总数。a.txt中的文本先流到cat,然后从cat的标准输出流到wc的标准输入,从而让wc知道自己要处理的是a.txt这个字符串。
Linux的各个命令实际上高度专业化,并尽量相互独立。每一个都只专注于一个小的功能。但通过pipe,我们可以将这些功能合在一起,实现一些复杂的目的。
总结
文本流,标准输入,标准输出,标准错误

cat, echo, wc

>, >>, <, |

参考https://www.cnblogs.com/zxqstrong/p/4773081.html

文件权限操作

文件 属性

- rwx rwx rwx 
第一组 设备类型 - 表示该文件,d 表示目录 ,c 字符设备,p 管道设备(|)
第二组 所属用户
第三组 所属组
第四组 其他用户

chmod(change mode)
chown(change owner)
chgrp(change group)

批处理操作

使用sh filename.sh 命令(调用/bin/sh 执行filename文件)

或者 创建文件 xxx
在xxx 文件首行 插入 #!/bin/sh(#! 告诉系统他后面的参数是用来执行该文件的程序 此处使用 /bin/sh 来执行该文件)

切换到root

su root
可能会出现问题 su Authentication failure
su Authentication failure解决
关于Ubuntu桌面系统su root时认证失败的问题
1. Ubuntu 默认没有给root用户设置密码,当我们su root命令时,
提示认证失败,解决办法是给root用户设置密码。
sudo passwd root (root可以省略)
2. 然后再 su root (root可以省略)输入刚才的密码。就可以获得root的权限了

System V semantics
BSD semantics

mknod 创建设备 如管道

文件扩展名

.sig 签名文件,可以使用公钥来进行验签名
压缩 解压 文件

文件下载

wget是Linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径

Prozilla

Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:

MyGet

MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS、MMS、RTSP等协议。

posted @ 2019-08-05 10:21  QiangIANG  阅读(183)  评论(0编辑  收藏  举报