本文共 3076 字,大约阅读时间需要 10 分钟。
grep命令 选项说明: --color=auto:对匹配到的⽂本着⾊显⽰; -v:显⽰不被模式匹配到的⾏; -i:
忽略字符⼤⼩写; -n:显⽰匹配的⾏号; -c:统计匹配到的字符串; -o:仅显⽰匹配到的字符串; -q:静默模式,不输出任何信息; -A #:表⽰显⽰匹配到的⾏并显⽰该⾏后#⾏,#表⽰为数字; -B #:表⽰显⽰匹配到的⾏并显⽰该⾏前#⾏,#表⽰为数字; -C #:表⽰显⽰匹配到的⾏并显⽰该⾏前后各#⾏,#表⽰为数字; -e:实现多个选项的逻辑or或更新; -w:匹配整个单词; -E:使⽤ERE扩展正则,等效于egrep命令; -F:相当于fgrep,不使⽤正则表达式;例题:【例1】查找/etc⽬录下,所有包含conf字串的⽂件[root@magedu ~]# ls -R /etc|grep confanthy-confasound.confautofs.confautofs_ldap_auth.conf...【例2】显⽰/root/passwd⽂件中包含root字串所在的⾏并显⽰⾏号[root@magedu ~]# grep root /root/passwd 1:root:x:0:0:root:/root:/bin/bash11:operator:x:11:0:operator:/root:/sbin/nologin【例3】显⽰passwd⽂件中,不包含bash字串的⾏,并显⽰⾏号[root@magedu ~]# grep -n -v bash passwd 2:bin:x:1:1:bin:/bin:/sbin/nologin3:daemon:x:2:2:daemon:/sbin:/sbin/nologin4:adm:x:3:4:adm:/var/adm:/sbin/nologin5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6:sync:x:5:0:sync:/sbin:/bin/sync...【例4】显⽰passwd⽂件中,包含root字串的⾏的总⾏数[root@magedu ~]# grep -c root passwd 2【例5】仅显⽰/root/passwd⽂件中的root字串及所在的⾏号[root@magedu ~]# grep -on root passwd 1:root1:root1:root11:root【例6】显⽰/root/passwd⽂件中,包含root字串的⾏和其下2⾏的内容[root@magedu ~]# grep -A 2 root passwd root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologin【例7】显⽰/root/passwd⽂件中,包含root字串的⾏和其上2⾏的内容[root@magedu ~]# grep -B 2 root passwd root:x:0:0:root:/root:/bin/bash
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologin
shift用法:shift功能是可以更换参数位置
位置参数的值总结位置参数 含义$0 当前这个Shell程序的文件名$# 传递给程序的总的参数数目$? 上一个代码或者Shell程序在Shell中退出的情况,如果正常退出则返回0,否则返回非0值$* 传递给程序的所有参数组成的字符串$n 表示第n个参数(n<10)$@ 以“参数1”、“参数2”……保存所有的参数$$ 本程序的(进程ID)PID$! 上一个命令的PID${n} 表示第n个参数(n>9)常用整数比较操作符函数 说明(例子)
-eq 等于,if [ "$a" -eq "$b" ]-ne 不等于,if [ "$a" -ne "$b" ]-gt 大于,if [ "$a" -gt "$b" ]-ge 大于等于,if [ "$a" -ge "$b" ]-lt 小于,if [ "$a" -lt "$b" ]-le 小于等于,if [ "$a" -le "$b" ]< 小于(在双括号内使用),(("$a"<"$b"))<= 小于等于(在双括号内使用),(("$a"<="$b"))大于(在双括号内使用),(("$a">"$b"))
= 大于等于(在双括号内使用),(("$a">="$b"))
常用字符串比较操作符函数 说明(例子)
= 等于,if [ "$a"="$b" ]== 等于,if [ "$a"=="$b" ],在[[ ]]结构里使用匹配模式!= 不等于,if [ "$a"!="$b" ],在[[ ]]结构里使用匹配模式< 小于,if [[ "$a"<"$b" ]],if [ "$a"\<"$b" ](在[]结构里<需要转义)大于,if [[ "$a">"$b" ]],if [ "$a"\>"$b" ](在[]结构里>需要转义)
-z 字符串为“null”,长度为0-n 字符串不为“null”,长度不为0
常用混合比较操作符函数 说明
-a 逻辑与-o 逻辑或分析下列的测试目录含义
[[ $a==z ]] #如果变量$a以字符"z"开始(匹配模式)则为真[[ $a=="z" ]] #如果变量$a与字符"z"(字面上的匹配)相等则为真[ "$a"=="z" ] #如果变量$a与字符"z*"(字面上的匹配)相等则为真
[ -f "somefile" ] #判断是否为一个文件[ -x "/bin/ls" ] #判断/bin/ls是否有可执行的权限[ -n "$var" ] #判断$var变量是否有值[ "$a"="$b" ] #判断$a和$b是否相等嵌套的if/then语句
if [ condition1 ] then if [ condition2 ] then do-something #仅当condition1和condition2同时满足才执行 fifi 操作符相关主题
常见的操作符主要包括赋值操作符、计算操作符、位操作符合逻辑操作符。它们与C语言的操作符是相同的。包括:
赋值操作符:=;计算操作符:+、-、*、/、**(求幂)、%;位操作符:<<、<<=、>>、>>=、&、&=、|、|=、~、!、^、^=;逻辑运算符:&&、||。
转载于:https://blog.51cto.com/12148637/2368271