shell脚本编辑工具,shell脚本开发工具
脚本调试
-n读取脚本中的命令一次,但不要执行它们,以检查脚本中的语法错误。
-v读取脚本时,将执行的脚本命令打印到标准错误输出中。
-x你可以在程序中设置一个调试段。
Grep基本是正则的(e可以扩展正则)
Egrep扩展正则化
shell编程常用工具:grep根据文件内容不过滤查找,awk列处理工具sed行处理工具xargs根据文件名文件类型,将参数表转换成小块传递给其他命令,避免参数表过长的问题。发现
不会打开文件的内容。
命令的形式:查找名称-选项[-打印-执行-确定.]参数pathname:要搜索的目录路径(/表示系统根目录,递归搜索)-print:将匹配的文件输出到标准输出-exec:对匹配的文件执行参数给出的shell命令-ok:与-exec作用相同,模式安全,例如:
1.找到当前目录中的所有普通文件,并将它们全部列出。-键入f-exec ls-l { } ;在/logs目录中查找五天前更改过的文件,并删除$ find logs-type f-mtime 5-exe CRM { } ;2.使用perm选项根据文件权限模式搜索文件(八进制)。
找到。-烫发755-打印3。忽略一个目录并使用-prune。如果同时使用-depth选项,那么-prune将被find忽略。
4.-nouser要查找主帐户已被删除的文件,请使用-nouser。
在主目录中查找所有这样的文件:find /home -nouser -print xargs将前一个命令的输出传递给下一个命令,默认命令是echo。
只有一个进程,一次只能获取一部分文件。
xargs和pipeline 的区别是用来把上一个命令的标准输出传递给下一个命令的标准输入。
Xargs将前一个命令的标准输出作为参数传递给下一个命令。
xargs和exec的区别exec参数是一个一个传递的,传递一个参数执行一次命令;Xargs可以一次给命令传递参数,可以用-n控制参数的个数,exec文件名也可以用空格等特殊字符处理。Xargs不能处理特殊文件名。如果要处理特殊的文件名,需要专门处理exec。缺点是
每个文件/目录都需要启动一次,效率很低;格式麻烦。您必须使用{0}作为文件的替代。你必须使用;作为命令的终止符,不方便写。Xargs不能操作有空格的文件。所以,如果你要用的命令支持一次处理多个文件,并且你知道这些文件中没有空格,文件数量也不大,那么使用xargs会更方便。否则,您必须使用exec。Sed线处理工具
流编译器。将要处理的文件内容和处理结果一起输出到常用命令:
/pattern/pPrint lines matching pattern/pattern/d Delete lines matching pattern/s/pattern1/pattern2/Find lines matching pattern,用pattern 2/pattern/s/pattern1/pattern 2/g替换第一个匹配pattern 1的字符串,以查找匹配pattern的行,并用pattern 2替换所有匹配pattern 1的字符串,以打印包含abc:
Python @ Ubuntu:~/1004 $ vit 10 . sh Python @ Ubuntu:~/1004 $ sed /456/p T10 . sh 123 AC 456456删除:
python @ Ubuntu:~/1004 $ sed/ABC/dt10 . sh 123456删除第二行和第三行:
Python@ubuntu:~/1004$ sed 2,3d 除了t10.sh123匹配标记:
Seds/[] *//g t11。肖克列处理工具$0表示行$1,$2.列打印第二列:
python @ Ubuntu:~/1004 $ awk“{ print $ 2;} t12.sh102030打印第二列大于10:
python @ Ubuntu:~/1004 $ awk $ 210 { printf % s t % s n ,$0, AAA} T12.shp2 20aaap330a打印时有多少行空格:
python @ Ubuntu:~/1004 $ awk /^ * $/{ x=x 1;} END {print x} t12.sh5打印系统中的用户帐户列表:
awk BEGIN { FS=: } { print $ 1;} /etc/passwd