【Linux】常见命令
说明
在进行软件开发的过程中,避免不了要经常和Linux系统打交道。这里总结了一些Linux常见的命令和快捷键。
常见快捷键
Linux中有如下常见快捷键:
-
Ctrl+c:终止前台运行的程序 -
Ctrl+z:将前台运行的程序挂起到后台 -
Ctrl+d:退出 等价于exit -
Ctrl+l:清屏 -
Ctrl+a | Ctrl+home:光标移到命令行的最前端 -
Ctrl+e | Ctrl+end:光标移到命令行的后端 -
Ctrl+u:删除光标前的所有字符 -
Ctrl+k:删除光标后的所有字符 -
Ctrl+r:搜索历史命令
grep
语法
|
|
常见选项
-
-i: 不区分大小写。 -
-v: 查找不包含指定内容的行。 -
-w: 按单词搜索 -
-o: 打印匹配关键字 -
-c: 统计匹配到的次数 -
-n: 显示行号 -
-r: 逐层遍历目录查找 -
-A: 显示匹配行及后面多少行 -
-B: 显示匹配行及前方多少行 -
-C: 显示匹配行及前后多少行 -
-l: 只列出匹配的文件名 -
-L: 列出不匹配的文件名 -
-e: 使用正则表达式 -
-E: 使用扩展正则表达式 -
^key: 以关键字开头 -
key$: 以关键字结尾 -
^$: 匹配空行 -
--color=auto: 将找到的内容,加上颜色显示
举例
- 去除空行:
|
|
wc
统计文本的行数、单词数、字符数、字节数。
语法
|
|
常用选项
-
-c:统计字节数 -
-w:统计单词数 -
-l:统计行数 -
-m:统计字符数
输出结果
输出结果不受选项顺序的影响。
如果选项全选,输出顺序为:
|
|
如果选项缺省,输出顺序为:
|
|
示例
- 统计文件内容行数:
|
|
cut
列截取工具,用于文本列的截取。
语法
|
|
常用选项
-
-b:以字节为单位,进行分割,然后输出指定范围的内容 -
-c:以字符为单位,进行分割、然后输出指定范围的内容 -
-d:自定义分割符,默认为制表符\t,需要和-f同时使用 -
-f:可与-d同时使用,指定截取的区域(列) -
指定范围:
-
N:指定第N个字节、字符或者字段 -
N-:从N开始到结束 -
N-M:从N到M,包含M -
-M:从开始到M,包含M
-
示例
- 以空格为分隔符,获取第2,第3,第4和第6个字段
|
|
- 以字节为分割单位,获取第2,第3,第4和第6个字段
|
|
- 以字符为分割单位,获取第2,第3,第4和第6个字段
|
|
sort
将文件的每一行作为一个单位,从首字符向后,依次按照unicode码值进行比较,最后将结果升序输出。
语法
|
|
选项
-
-u:去除重复行 -
-r:降序排列,默认升序 -
-o:将排序结果输出到文件中,类似于重定向符号> -
-n:以数字排序,默认是按字符排序 -
-t:分隔符 -
-k:第n列 -
-b:忽略前导空格 -
-R:随机排序,每次运行结果均不同
示例:
- 去除排序结果的重复行:
|
|
- 根据第2列的数值,进行排序
|
|
uniq
去除并删除文中出现的连续行,一般与sort命令结合使用。即为了使uniq起作用,所有的重复行必须是相邻的。
选项
-
-u:--unique仅显示出现一次的行。 -
-i:忽略大小写。 -
-c:统计重复行次数 -
-d:只显示重复行
示例
-
统计各行出现的次数
1sort filename | uniq -c -
在文中找出重复行
1sort filename | uniq -d
tee
从标准输入读取,并且写入到标准输出和文件。
选项
-
-a:追加重定向,默认是覆盖。 -
-i:忽略中断信号。
示例
-
将输入同时保存到
file1和file21tee file1 file2
diff
用于逐行比较文件的不同。
diff描述两个文件不同的方式,是告诉我们怎么改变第一个文件之后,与第二个文件匹配。
语法
|
|
选项
-
-b:不检查空格 -
-B:不检查空白行 -
-i:不检查大小写 -
-w:忽略所有的空格 -
--normal:正常格式显示(默认) -
-c:上下文格式显示 -
-u:合并格式显示 -
-N:将不存在的文件当作空文件 -
-q:比较两个目录不同时,默认情况下,会显示同名文件具体的差异内容。如果使用了-q参数,则只会显示文件的差异。
显示格式
- 正常模式显示
|
|
- 上下文模式显示
|
|
- 合并格式显示
|
|
sshpass
非交互式密码验证工具。
安装
-
RedHat/Centos安装:1yum install sshpass -
Debian/Ubuntu安装:1sudo apt-get install sshpass -
源码安装:
1 2 3 4 5-> wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz -> tar -xvf sshpass.tar.gz -> cd sshpass-1.06 -> ./configure -> sudo make install
常用参数
-
-f:使用文件内容作为密码 -
-p:通过参数提供密码 -
-e:通过环境变量SSHPASS提供密码
示例
-
登录服务器,并且查看文件系统磁盘使用情况:
1sshpass -p 'my_pass_here' ssh username@host 'df -h'
paste
用于合并文件行。
选项
-
-d:自定义分隔符,默认是tab。 -
-s:文件内容按行排布,默认按列排布。
tr
用于字符替换和删除。
用法
-
用法一:命令的执行结果交给
tr处理。1commands | tr "string1" "string2"string1和string2的字符一一对应替换。如果
string1比string2长,则string2的最后一个字符会对应多个string1中的字符。如果
string1比string2短,则string2多余部分被丢弃。 -
用法二:
tr处理的内容来自文件,需要使用标准输入符号1tr "string1" "string2" < filenamestring1和string2的具体用法同上。 -
用法三:匹配
string进行相应操作,如删除操作1tr options "string" < filename常用选项:
-
-d:删除字符串中所有输入的字符。 -
-s:删除所有重复出现的字符,只保留第一个,即将重复出现的字符压缩为一个字符。
-