1. 程式人生 > >shell基礎(下)

shell基礎(下)

water operator opera vpd watermark 字母 ffffff 文件 特殊符號

shell特殊符號

技術分享圖片
技術分享圖片

1.cut命令:

[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
root
bin
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
root:x:0
bin:x:1
[root@weix01 ~]# cat /etc/passwd |head -2 |cut -c 4
t
:

2.sort,排序

[root@weix01 ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
[root@weix01 ~]# sort 1.txt

<
>
{
13
2222
2 2.txt
333
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
[root@weix01 ~]# sort -n 1.txt                       #-n 字母和特殊字符當做0

<
>
{
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
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
*qweq
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
2 2.txt
13
333
2222

3.wc:

[root@weix01 ~]# wc -l 1.txt         #統計行數
19 1.txt
[root@weix01 ~]# wc -m 1.txt        #統計字符數
418 1.txt
[root@weix01 ~]# wc -w 1.txt           #統計詞
19 1.txt

4.uniq:去重,

[root@weix01 ~]# uniq 2.txt
-bash: lsaaa: 未找到命令
123
abc
123
abc
1
2
[root@weix01 ~]# cat 2.txt
-bash: lsaaa: 未找到命令
-bash: lsaaa: 未找到命令
123
abc
123
abc
1
1
2

5.排序再去重:

[root@weix01 ~]# sort 2.txt
1
1
123
123
2
abc
abc
-bash: lsaaa: 未找到命令
-bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq
1
123
2
abc
-bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq -c         #去重並統計出現次數
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令

6.tee命令:類似重定向

[root@weix01 ~]# sort 2.txt |uniq -c |tee a.txt
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# cat a.txt
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# sort 2.txt |uniq -c |tee -a a.txt         #-a  追加
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令
[root@weix01 ~]# cat a.txt
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令
      2 1
      2 123
      1 2
      2 abc
      2 -bash: lsaaa: 未找到命令

7.tr命令:替換字符:

[root@weix01 ~]# echo "weixlinux"   |tr ‘[wl]‘ ‘[WL]‘
WeixLinux
[root@weix01 ~]# echo "weixlinux"   |tr ‘w‘ ‘W‘
Weixlinux
[root@weix01 ~]# echo "weixlinux"   |tr ‘[a-z]‘ ‘[A-Z]‘
WEIXLINUX
[root@weix01 ~]# echo "weixlinux"   |tr ‘[a-z]‘ ‘1‘
111111111

8.split:切割

-b   按照大小
-l    按照行數

技術分享圖片
9.||:前面命令執行成功,後面命令不再執行,如果前面命令執行不成功,後面會執行

[root@weix01 ~]# ls 1.txt || wc -l 2.txt
1.txt
[root@weix01 ~]# ls 3.txt || wc -l 2.txt
ls: 無法訪問3.txt: 沒有那個文件或目錄
9 2.txt

10.&&:前面命令執行成功,後面才執行

[root@weix01 ~]# ls 3.txt && wc -l 2.txt
ls: 無法訪問3.txt: 沒有那個文件或目錄
[root@weix01 ~]# ls 1.txt && wc -l 2.txt
1.txt
9 2.txt

shell基礎(下)