一、grep
grep:过滤 参数-v 排除
grep -v old aaa.txt 在aaa.txt中排除old字符串所在的行
grep old aaa.txt 只显示包含old的行
-E 参数,可过滤多个字符串,用""括起来,用|分隔开 。等同于egrep
grep -E "d|e" 1.txt 将文件中的d和e所在的行显示出来,等同于egrep "d|e" 1.txt
grep -Ev "d|e" 1.txt 将文件中的d和e所在的行不显示,-v过滤掉
二、head、tail
head -n 文件:显示文件的前n行
tail -n 文件: 显示文件的后n行
head和tail两个命令,如果不加-n参数则默认显示前10行或后10行
三、三剑客sedawkgrep
sed:取各种内容、按行处理
sed /old/p aaa.txt 将包含old的内容打印出来,同时整个文件的内容打印一遍。其中p表示打印
sed -n /old/p aaa.txt 将包含old的行打印出来,同时过滤掉原始内容,即只打印要查询的,等同与grep old aaa.txt
sed /old/d aaa.txt 将包含old的行删除(假删除),其他内容打印。d参数时删除的意思,等同于grep -v old aaa.txt
总结:-n表示取消默认输出 p打印 d删除
sed -n 20,30p aaa.txt: 打印20-30行的内容
sed -n 30p aaa.txt打印第30行的内容
sed s#aaa#bbb#g 文件:将文件中的aaa替换成bbb,但是这个只是输出查看,并没有实际替换。如果要替换,需要加上-i参数
sed -i s#aaa#bbb#g 文件:这样就会实际把文件中的aaa替换成bbb
awk:擅长按列处理
awk /old/ aaa.txt 打印出包含old的行,等同于grep old aaa.txt sed -n /old/p aaa.txt
awk '{}' 文件:对文件进行{}内的操作,其中{}内可写一些脚本
awk '{if (NR>1&&NR<5) print $0}' aaa.txt :将aaa.txt文件中的2-4行内容打印出来,NR表示行号,$0表示输出行,满足条件的行
awk -F ":" '{print $1}' 文件:按列输出文件。$1表示第一列。-F “:”表示按照冒号分割,$1表示输出第一列。
四、xargs按照行处理
find / type f -name aaa.txt | xargs sed -i s#new#old#g 将/目录下的文件类型的名字未aaa.txt的文件,按行替换,将new替换成old
xargs和管道符|连用,表示将管道符|前面的命令执行完后,按行,根据xargs后的命令再进行处理
find /usr/ -name '*aaa.txt' | xargs cat :将/usr/路径下文件名包含aaa.txt的文件查出来,并进行cat操作
find /usr/ -type f -name 'aaa.txt' | xargs rm -f 将查到的文件,内容按行删除。即将查到的文件中,包含
五、find
find / -type f -name 'aaa.txt' :在路径/下查找类型为文件,名字为‘aaa.txt'的文件。 -type按类型 f表示文件 -name按名称 /表示在哪个路径下查找
find / -type f -mtime +5 查找5天前的文件
find / -type f -mtime -5 查找最近5天的文件
例子:
find / -type f -name '*.log' -mtime +5 | xargs rm -f :查找5天前的.log结尾的日志文件,并删除rm -f
六、seq打印序列,默认竖着打印
seq 5 : 打印12345竖着
seq -s "," 5 :横向打印1,2,3,4,5 ,用逗号分隔
seq 5 8 打印5,6,7,8 竖着打印
seq 1 5 | tac 倒叙打印1-5
七、echo
八、常用快捷键
tab 补全命令
ctrl+c停止命令
ctrl+shift+c 拷贝(先选中)
ctrl+shift+v 粘贴
ctrl+a 到开头
ctrl+e到i结尾
ctrl+d退出当前用户环境
ctrl+u 输入命令后,清除,光标定位在命令最后
ctrl+r查找历史纪录
history 显示历史命令
!+历史命令行号 :执行对应行号的命令