1.grep命令
作用:过滤文件内容
语法:grep [选项] [关键字] [文件路径]
[选项]:-n:在结果中显示匹配的行的行号
[关键字]:通过此关键字来过滤文件内容
grep -n "python" ~/test.txt
当要过滤的关键字带有空格时,要用双引号。
也可以没有文件路径,但要用管道符给grep一个输入。
2.wc命令
作用:统计文件的行数,单词数量等
语法:wc [选项] [文件路径]
[选项]:-c:统计bytes数量
-m:统计字符数量
-l:统计行数
-w:统计单词数量
不加选项的话会默认将行数,单词数,字节数。
3.管道符 |
Linux系统允许通过管道将一条命令的输出作为另一条命令的输入,简单的说就是利用管道符将两个命令分开,管道符左边命令的输出就会作为管道符右边命令的输入。
连续使用管道意味着第一个命令的输出会作为第二个命令的输入,而第二个命令的输出又会作为第三个命令的输入.....
cat test.txt | grep word
ls | grep test
4.echo命令
作用:在命令行内输出指定内容。
语法:echo [输出内容]
带有空格或\等特殊符号的输出内容建议带上双引号,不然的话空格后的内容容易被识别成另外一个参数,虽然echo不会,但要养成习惯。
5.反引号`
作用:将反引号括起来的内容作为命令执行。
eg:echo pwd,只会输出pwd这三个字符
但echo `pwd`,则会输出当前路径。
6.重定向
输出重定向:>,>>
作用:>:将左侧命令的结果,覆盖写入到右侧指定的文件中。
>>:将左侧命令的结果,追加写入到右侧指定的文件中。
语法:命令 > 指定文件
命令 >> 指定文件
ls -l /user > test.txt
输入重定向:
用 < 来表示,如果命令从标准输入中读取输入,这个输入就是来自输入文件,而不是键盘。
<命令> < <文件>
eg:cat < test
错误输出重定向:
可以通过描述符(0,1,2)与操作符(<,>)相关联,来对标准输入,标准输出,错误输出重定向。注意描述符与操作符是连在一起的。
cat a.b 2> error.txt
7.vi/vim编辑器
vim
是一个功能强大的文本编辑器,通常用于编程和文本编辑任务。它是 vi
编辑器的改进版本。
正常模式 | 也叫命令模式,可以输入各种命令来控制vim |
文本模式 | 可以进行文字的输入 |
命令行模式 | 也叫底行模式,在vim的最下面一行来控制vim |
正常模式通过a或i进入文本模式
正常模式通过:进入命令行模式
文本,命令行都可以通过esc来进入正常模式
vim命令:
vi 文件名 | 进入vim,打开或新建文件 |
h | 向左移动一个字符 |
j | 向下移动一个字符 |
k | 向上移动一个字符 |
l | 向右移动一个字符 |
0 | 移动到行开始 |
$ | 移动到行尾 |
a | 在光标后追加文本 |
A | 在当前行尾追加 |
i | 在光标前插入文本 |
I | 在当前行首插入 |
o | 在当前行下面新开一行 |
O | 在当前行上面新开一行 |
dd | 删除当前行 |
dw | 删除一个单词 |
nx | 删除光标后n个字符 |
nX | 删除光标前n个字符 |
u | 恢复上一个命令以前的状态 |
. | 重复命令 |
/字符串 | 向下搜索字符串 |
?字符串 | 向上搜索字符串 |
n | 继续搜索 |
N | 继续但反向搜索 |
:s/p1/p2/g | 将当前行所有p1换成p2 |
:n1,n2s/p1/p2/g | 将n1至n2行所有p1换成p2 |
:g/p1/s//p2/g | 将文件所有p1换成p2 |
yy | 复制 |
p | 粘贴在当前下一行 |
w | 保存 |
w 文件名 | 保存为文件 |
w! | 强制保存 |
q | 退出 |
q! | 强制退出 |
wq! | 保存退出 |
:set nu | 显示行号 |
8.获取文件和目录的磁盘使用情况
du [选项] [文件]
-a 显示所有文件和目录的磁盘使用情况,包括以点(.)开头的隐藏文件和目录。
-h 以人类可读的格式(例如 KB、MB、GB)显示磁盘使用情况。
-s 只显示总计的磁盘使用情况,而不是显示每个子目录和文件的详细使用情况。
eg:du -sh *
9.比较两个文件的内容并显示它们之间的差异
diff [选项] [file1] [file2]
-i 忽略大小写差异
-b 忽略空格的变化(例如,空格和制表符之间的变化)
-h 快速比较
L1aL2,L3 | 在file1第L1行后添加file2的L2到L3行 |
L1,L2cL3,L4 | 把file1中的L1行到L2行替换为file2的L3到L4行 |
L1,L2dL3 | 删除file1的L1到L2行 |
10.删除重复行
uniq用于从排序过的文本行中删除重复的行。它通常与 sort
命令一起使用,因为 uniq
只能识别连续出现的重复行。
uniq [options] [input-file] [output-file]
input-file:为要修改的文件
output-file:删除重复行之后的文件,没有则输出在屏幕
-c 在每行前加上该行重复出现的次数。
-u 只显示不重复的行。
-i 在比较时忽略大小写。
与sort()结合使用
可以先用 sort 对文件进行排序,然后使用 uniq:
sort file.txt | uniq