本文共 3183 字,大约阅读时间需要 10 分钟。
介绍一些常用的命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #cat -s命令压缩空行 [root@beijing test ] # cat catinfo.txt 1 2 3 4 5 100 [root@beijing test ] # cat -scatinfo.txt 1 2 3 4 5 #输出行号 [root@beijing test ] # ls | cat -n 1 1.txt 2 2.txt 3 cal .sh 4 catinfo.txt 5 cmd.sh 6 date .sh 7 func.sh 8 index.sh 9 menu.sh 10 output.session #-T: tab键^显示 [root@beijing test ] # cat catinfo.txt public class A{ System.out.println( "helloshell" ); } [root@beijing test ] # cat -Tcatinfo.txt ^Ipublic class A{ ^I^ISystem.out.println( "helloshell" ); ^I} |
1 2 3 4 | #所谓的终端回放,就是捕捉终端命令历史 #可以使用script命令 script -t 2> timing.log -aoutput.session #注意需要关闭终端,才会保存timing.log |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #区分大小写 [root@beijing test ] # find . -name"f*.sh" . /func .sh #不区分大小写 [root@beijing test ] # find . -iname"f*.sh" . /func .sh . /FUNC .SH #基于路径查询(其实就是对路径进行完整匹配,不要考虑什么层级关系,把路径当成字符串处理) [root@beijing ~] # find /etc -path"etc/*sysconfig/*network" [root@beijing ~] # find /etc -path"*etc/*sysconfig/*network" /etc/sysconfig/networking/profiles/default/network /etc/sysconfig/network #文件类型查找 #查找文件 [root@beijing test ] # find -type f . /out .txt . /index .sh . /cal .sh . /catinfo .txt . /func .sh #查找目录 [root@beijing test ] # find -type d . . /aaa 基于时间的查找(atime:访问时间,ctime:变化时间,mtime:修改时间)。这里的变化指的是“元数据”,比如权限、用户名什么的。 #访问时间超过七天 find -atime +7 #七天前被访问过的文件 find -atime 7 最近七天访问过的文件 find -atime -7 基于权限 find -perm 基于大小,支持单位cwbkMG find -size -size n[cwbkMG] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #多行 换成单行 [root@beijing test ] # cat xargs.txt 1.txt 2.txt 3.txt 4.txt [root@beijing test ] # cat xargs.txt |xargs 1.txt 2.txt 3.txt 4.txt #单行 换成多行 [root@beijing test ] # cat xargs1.txt 1 2 3 4 5 6 6 8 9 10 [root@beijing test ] # cat xargs1.txt|xargs 1 2 3 4 5 6 6 8 9 10 [root@beijing test ] # cat xargs1.txt|xargs -n 2 1 2 3 4 5 6 6 8 9 10 #指定分界符【其中1,2,3,4之间就是用tab键分割的) [root@beijing test ] # cat xargs1.txt|xargs -n 2 -d "\t" 1 2 3 4 5 6 6 8 9 10 #测试shell, 仅仅打印参数 [root@beijing test ] # cat sayparam.sh #!/bin/bash echo "$*" #; #模拟参数文件 [root@beijing test ] # cat argums.txt param1 param2 param3 [root@beijing test ] # cat argums.txt|xargs -n 2 sh sayparam.sh param1 param2 # param3 # [root@beijing test ] # cat argums.txt|xargs -n 1 sh sayparam.sh param1 # param2 # param3 # [root@beijing test ] # cat argums.txt|xargs sh sayparam.sh param1 param2 param3 # |
1 2 3 4 5 6 7 8 9 10 | #-k 排序键,从1开始 #-r:反序,就是从大到小 [root@beijing test ] # cat argums.txt| sort -r -k 1 param3 param2 param1 [root@beijing test ] # cat argums.txt| sort -k 1 param1 param2 param3 |
1 2 | split 可指定生成文件前缀,序号是按数字排列,还是字母排列,分割大小。 |
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash for file in *.txt; do filename=${ file %\.*} #文件名,非贪婪,从右到左匹配 extention=${ file ##*.}#获取后缀名,贪婪从左到右匹配 result=$filename\_back.$extention; mv $ file $result 2> /dev/null ; if [[ $? - eq 0 ]]; then echo "rename $file success" fi done |
本文出自 “” 博客,请务必保留此出处