美文网首页Shell
Linux命令(2)

Linux命令(2)

作者: KevinCool | 来源:发表于2016-05-13 12:42 被阅读59次

    1. (( 双重尖括号命令

    (( ))双尖括号和[[ ]]双方括号都是bash shell的两项新的扩展,提供了可以在if-then语句中使用的高级特性:

    用于数学表达式的双尖括号
    用于高级字符串处理功能的双方括号

    双尖括号允许将高级数学表达式放入比较中,格式:(( expression ))

    比如可以这样使用:

    val1=10
    if (( $val1 ** 2 > 90 ))
    then
            (( val2 = $val1 ** 2 ))
            echo "the square of $val1 is $val2"
    fi```
    
    另外也不需要将双尖括号内的表达式大于号转义,乘号也不许要转义
    
    ####2. [[ 双方括号
    
    该命令提供了针对字符串比较的高级特性,格式:`[[ expression ]] `
    可以使用标准字符串进行比较,还可以使用模式匹配,即使用正则表达式来匹配字符串的值。
    
    

    if [[ $USER == r* ]]
    then
    echo "Hello $USER"
    else
    echo "Sorry. I do not know you"
    fi```

    另外一个例子:

    [[ $step != 1 && $step != 2 ]] && {
            echo "Usage: ./example.sh 1 or 2"
            exit 1
    }```
    
    ####3. tee双重重定向
    
    tee 会将数据流送与文件与屏幕,输出到屏幕的是stdout,可以让下一个命令继续处理。
    `tee -a file `以累加的方式写入file
    一个例子:
    

    echo "clean log files" | tee -a $out_file```

    4. cut 选取命令

    cut 可以将一段信息的某一段切出来,处理的信息是以行为单位的。
    cut -c表示以字符为分隔进行cut
    cut -d "分隔字符" -f fields ,-f后面接需要第几段,可以是一个范围,例子如下:

    grep -m 1 dbg $f | cut -d '"' -f 2 | cut -d ',' -f 4- ```
    grep -m 1表示的是只匹配一次
    
    ####5. tr 命令
    用于删除一段信息中的文字,或者进行文字信息的替换。
    `tr -[ds] SET1...`
    -d 表示删除信息中的这个SET1字符串
    -s 表示替换掉重复的字符
    
    例子:
    

    首先是文字的替换

    last | tr '[a-z]' '[A-Z]'

    删除

    cat /etc/passwd | tr -d ':'
    cat $f | tr -d '\n'```

    6. sed 工具

    分析关键字的使用,统计。其本身也是一个管道命令,可以分析standard input,sed 可以进行数据替换,删除,新增,选取特定行的功能。

    参数:

    -e 直接在命令行模式上进行sed动作编辑
    -f 直接将sed动作写在文件中,-f filename可以执行filename内的动作
    -i 直接修改读取的文件内容,不是由屏幕输出
    -n 只有sed处理的那一行才会在屏幕输出

    动作:

    n1,n2 function 其中n1 n2代表行
    function:
    a 新增
    c 替换
    d 删除
    i 插入
    s 替换 sed -e s/"^-p"//g
    p 打印 p通常会与sed -n一起运行

    例子:

    #删除第2~5行
    nl /ect/passwd | sed '2,5d' 
    #替换为空字符串
    cat /etc/passwd | sed -e s/"^-p"//g
    #仅列出文件的第5-7行
    nl /ect/passwd | sed -n '5.7p'```
    
    ####7. awk 工具
    
    这个可以参考之前的gawk文章:http://www.jianshu.com/p/bddcfee1e607
    
    这里只强调一下,处理规则默认是按行处理,由内建变量ORS决定,默认是换行符,然后每一行由内建变量FS(表示字段间的间隔符),默认为空格,分成若干个栏位,其中$0表示整行,$1表示第一个栏位,然后以此类推。NF表示栏位(字段个数)
    
    ####8. sleep 延迟指定时间
    
    sleep命令常用于在Linux shell脚本中延迟时间。
    

    sleep 5s
    sleep 5m
    sleep 5d
    sleep 5h```

    9. basename 命令

    basename返回一个字符串参数的基本文件名称。
    basename string Suffix
    basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。
    例子:

    reqid=$(basename $f .$ubx)
    #就是将一个文件的前缀还有后缀去掉,只留下基本的文件名```
    
    ####10. echo 命令
    有几个特殊的用法得提一下,因为记不起来。。
    >-n 表示不换行输出,下一个输出在同一行上
    >-e 处理特殊字符
    
    例子:
    

    输出换行符

    echo -e "old:$f\nnew: $nf\n"
    echo -n "pls enter your password: "```

    11. ls命令

    有一个参数是ls -1
    表示将内容以一列进行显示。

    相关文章

      网友评论

        本文标题:Linux命令(2)

        本文链接:https://www.haomeiwen.com/subject/agzprttx.html