Linux 课堂笔记

2018-06-01 课堂笔记

2018-06-04  本文已影响0人  chocolee911

目录

  1. cut
  2. sort
  3. wc
  4. uniq
  5. tee
  6. tr
  7. split
  8. 扩展知识

1. cut

数据截取, 以行为单位进行

1.1 用法

echo $PATH | cut -d '<keyword>' -f <fields>

1.2 选项

1.3 示例

[root@choco-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@choco-01 ~]# echo $PATH | cut -d ':' -f 1
/usr/local/sbin
[root@choco-01 tmp]# history 5 | cut -c 7-
 which cd
 cd /tmp/
 ls
 vim aaa
 history 5 | cut -c 7-
[root@choco-01 tmp]# history 5 | cut -c 2-5
1085
1086
1087
1088
1089

2. sort

排序用. 既然是排序, 就会涉及语系、以英文or数字进行排序等内容
2.1 用法
sort [-fbMnrtuk] [file or stdin]

2.2 选项

2.3 示例

[root@choco-01 ~]# head -5 /etc/passwd
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


[root@choco-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@choco-01 ~]# head -10 /etc/passwd | sort -t ':' -k 3
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@choco-01 ~]# head -10 /etc/passwd | sort -t ':' -k 3 -n
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin                      # 这会就OK啦

3. wc

如果想知道某个文件或输出信息的行数、字符数、字数,怎么办?
—— world counts 用 wc

3.1 用法

wc -[lwm]

3.2 选项

3.3 示例

[root@choco-01 ~]# wc /etc/passwd
  24   36 1120 /etc/passwd
[root@choco-01 ~]# wc /etc/passwd -l
24 /etc/passwd
[root@choco-01 ~]# wc /etc/passwd -w
36 /etc/passwd
[root@choco-01 ~]# wc /etc/passwd -c
1120 /etc/passwd

4. uniq

去重。排完序后,重复的内容显示太多?或者想统计每种重复的内容出现了几次?
—— 用uniq

4.1 用法

uniq -[ic]

4.2 选项

4.3 示例

[root@choco-01 ~]# last | cut -d ' ' -f 1 | sort | uniq

reboot
root
wtmp
[root@choco-01 ~]# last | cut -d ' ' -f 1 | sort | uniq -c
      1 
     30 reboot
     61 root
      1 wtmp

5. tee

双重重定向。之前讲过重定向,不是输出到文件就是输出到屏幕,怎样同时输出到文件和屏幕呢?
—— 双重重定向,tee

5.1 用法

<command> | tee <file_name>

5.2 选项

5.3 示例

[root@choco-01 ~]# cat ls.txt 
anaconda-ks.cfg
expect-test
ls.txt


[root@choco-01 ~]# ls /tmp/ | tee ls.txt 
nano-2.3.1-10.el7.x86_64.rpm
systemd-private-5d8a8aa01a9c41998508565cbe753f65-chronyd.service-fbxoiZ
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vgauthd.service-gYD808
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vmtoolsd.service-e8LhLi
yum_save_tx.2018-05-30.09-24.ehBdYd.yumtx


[root@choco-01 ~]# cat ls.txt                              # 原先的内容不见了
nano-2.3.1-10.el7.x86_64.rpm
systemd-private-5d8a8aa01a9c41998508565cbe753f65-chronyd.service-fbxoiZ
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vgauthd.service-gYD808
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vmtoolsd.service-e8LhLi
yum_save_tx.2018-05-30.09-24.ehBdYd.yumtx
[root@choco-01 ~]# cat ls.txt 
nano-2.3.1-10.el7.x86_64.rpm
systemd-private-5d8a8aa01a9c41998508565cbe753f65-chronyd.service-fbxoiZ
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vgauthd.service-gYD808
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vmtoolsd.service-e8LhLi
yum_save_tx.2018-05-30.09-24.ehBdYd.yumtx


[root@choco-01 ~]# ls | tee -a ls.txt 
anaconda-ks.cfg
expect-test
ls.txt


[root@choco-01 ~]# cat ls.txt                       # 这次原内容没被覆盖
nano-2.3.1-10.el7.x86_64.rpm
systemd-private-5d8a8aa01a9c41998508565cbe753f65-chronyd.service-fbxoiZ
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vgauthd.service-gYD808
systemd-private-5d8a8aa01a9c41998508565cbe753f65-vmtoolsd.service-e8LhLi
yum_save_tx.2018-05-30.09-24.ehBdYd.yumtx
anaconda-ks.cfg
expect-test
ls.txt

6. tr

常用于关键字的删除与替换,但功能基本可以靠 sed 替代

6.1 用法

tr -[ds] <keywords>

6.2 选项

6.3 示例

[root@choco-01 /]# head -5 /etc/passwd | tr -d ':'   #冒号不见了
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
daemonx22daemon/sbin/sbin/nologin
admx34adm/var/adm/sbin/nologin
lpx47lp/var/spool/lpd/sbin/nologin
[root@choco-01 /]# head -5 /etc/passwd | tr '[a-z]' '[A-Z]'
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

7. split

文件太大,想要切割开来?
—— 用 split

7.1 用法

split -[lb] <file_name> <rename_Prefix>

7.2 选项

7.3 示例

[root@choco-01 ~]# cat split.test 
1
2
3
4
5
6
7
8
9
10

[root@choco-01 ~]# split -l 2 split.test SPLIT


[root@choco-01 ~]# ls SP*
SPLITaa  SPLITab  SPLITac  SPLITad  SPLITae
[root@choco-01 ~]# cat SPLITaa
1
2
[root@choco-01 ~]# ll -h split.text 
-rw-r--r-- 1 root root 10M Jun  4 10:45 split.text


[root@choco-01 ~]# split -b 3M split.text SP               #以3M为单位进行切割


[root@choco-01 ~]# ll -h SP*                                        #从头切到尾,发现剩了1M,单独成为文件
-rw-r--r-- 1 root root 3.0M Jun  4 10:48 SPaa
-rw-r--r-- 1 root root 3.0M Jun  4 10:48 SPab
-rw-r--r-- 1 root root 3.0M Jun  4 10:48 SPac
-rw-r--r-- 1 root root 1.0M Jun  4 10:48 SPad

扩展知识

上一篇下一篇

猜你喜欢

热点阅读