1. 程式人生 > >2018-03-09阿銘Linux學習

2018-03-09阿銘Linux學習

Linux 學習

8.10 shell 特殊符號_cut命令

特殊符號
    *   任意個任意字符
    ?  任意一個字符
    #   註釋字符
    \   脫義字符
    |   管道符

幾個和管道有關的命令

    cut    分割,-d 分隔符  -f 指定段號  -c 指定第幾個字符
    sort   排序, -n 以數字排序  -r 反序  -t 分隔符  -kn1/-kn1,n2
    wc -l  統計行數  -m 統計字符數  -w 統計單詞數
    uniq   去重, -c 統計行數
    tee    和 > 類似,重定向的同時還在屏幕顯示
    tr     替換字符,tr ‘a‘ ‘b‘ ,大小寫替換 tr ‘[a-z]‘ ‘[A-Z]‘
    split  切割,-b 大小(默認單位字節), -l 行數

        [root@aming-01 ~]# cat /etc/passwd |head -2|cut -d ":" -f 1,7
        root:/bin/bash
        bin:/sbin/nologin

8.11 sort_wc_uniq 命令

sort   排序, -n 以數字排序  -r 反序  -t 分隔符  -kn1/-kn1,n2
wc -l  統計行數  -m 統計字符數  -w 統計單詞數
uniq   去重, -c 統計行數

    [root@aming-01 ~]# head -5 /etc/passwd|sort
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash

    [root@aming-01 ~]# head -5 /etc/passwd|sort -r
    root:x:0:0:root:/root:/bin/bash
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin

    [root@aming-01 ~]# head -5 /etc/passwd|sort -t: -k3
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

uniq  先排序再去重

8.12 tee_tr_split 命令

tee    和 > 類似,重定向的同時還在屏幕顯示
tr     替換字符,tr ‘a‘ ‘b‘ ,大小寫替換 tr ‘[a-z]‘ ‘[A-Z]‘
split  切割,-b 大小(默認單位字節), -l 行數

    [root@aming-01 ~]# sort 1.txt|uniq -c|tee a.txt
          1 111
          1 1122
          1 222,111
          1 AAA11
          1 ddc1
    [root@aming-01 ~]# cat a.txt
          1 111
          1 1122
          1 222,111
          1 AAA11
          1 ddc1

    [root@aming-01 ~]# echo "aming"|tr "[a-z]" "[A-Z]"
    AMING

    [root@aming-01 ~]# find /etc/ -type f -name "*conf" -exec cat {} > a.txt \;
    [root@aming-01 ~]# split -b 1000 a.txt

    [root@aming-01 ~]# split -b 100k a.txt bac
    [root@aming-01 ~]# ls
    1.txt  anaconda-ks.cfg  a.txt  bacaa  bacab  bacac

8.13 特殊符號

$   變量前綴,!$ 組合,正則裏面表示行尾
;  多條命令寫在一行,用分號分割
~   用戶家目錄,後面正則表達式表示匹配符
&   放到命令後面,會把命令丟到後臺
>  >>  2>  2>>  &>
[]  指定字符中的一個,[0-9],[a-zA-Z],[abc]
||  &&  , 用於命令之間

    [root@aming-01 ~]# ls a.txt;wc -l a.txt
    a.txt
    6385 a.txt

    [root@aming-01 ~]# ls a.txt || wc -l a.txt
    a.txt

    [root@aming-01 ~]# ls a.txt && wc -l a.txt
    a.txt
    6385 a.txt
    [root@aming-01 ~]# 

    [root@aming-01 ~]# ls aa.txt && wc -l a.txt
    ls: 無法訪問aa.txt: 沒有那個文件或目錄

2018-03-09阿銘Linux學習