sort
作用:将文本排序显示
常用选项:
-u 去除重复行
-r 降序(默认升序)
-n 以数值来排序
-t 指定分隔符
-k n以第n列来排序
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
[root@jacken ~] # cat hi
a:2 b:3 b:1 b:1 c:4 d:5 [root@jacken ~] # sort -u hi
a:2 b:1 b:3 c:4 d:5 [root@jacken ~] # sort -r hi
d:5 c:4 b:3 b:1 b:1 a:2 [root@jacken ~] # sort -n hi
a:2 b:1 b:1 b:3 c:4 d:5 [root@jacken ~] # sort -u -t : -k 2 -n hi
b:1 a:2 b:3 c:4 d:5 [root@jacken ~] # sort -u -t : -k 2 hi
b:1 a:2 b:3 c:4 d:5 [root@jacken ~] #
|
tr
作用:替换、删除字符
格式:tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
常用选项:
-c 替换所有不属于第一字符集的字符
-d 删除所有属于第一字符集的字符
-s 字符一替换为字符二
注释:
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[root@jacken ~] # cat hi
a b b C D [root@jacken ~] # tr -s "a b" "A" < hi
A A A C D [root@jacken ~] # tr [a-z] [A-Z] < hi
A B B C D [root@jacken ~] # tr -d "b D"< hi
a C [root@jacken ~] # tr -s "\n" < hi
a b b C D [root@jacken ~] #
|
cut
作用:截取字符串
常用选项:
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[root@jacken ~] # cat hi
root:x:0:0:root: /root : /bin/bash
[root@jacken ~] # cat hi | cut -b 5
: [root@jacken ~] # cat hi | cut -b 3-5,7
ot:: [root@jacken ~] # cat hi | cut -c 5
: [root@jacken ~] # cat hi | cut -c 4-6,8
t:x0 [root@jacken ~] # cat hi2
星期一 星期二 星期三 星期四 [root@jacken ~] # cat hi2 | cut -b 3
[root@jacken ~] # cat hi2 | cut -c 3
一 二 三 四 -c则会以字符为单位,输出正常;而-b只会傻傻的以字节(8位二进制位)来计算,输出就是乱码。 [root@jacken ~] # cat hi
root:x:0:0:root: /root : /bin/bash
[root@jacken ~] # cat hi | cut -d : -f2-4,6
x:0:0: /root
[root@jacken ~] #
|
paste
作用:将多个文件内容合并
常用选项:
-d 指定分隔符
-s 将文本合并成一行
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@jacken ~] # cat one two
root:x:0:0:root : /root : /bin/bash
1:2:3 4:5:6 7:8:9 [root@jacken ~] # paste one two
root:x:0:0:root 1:2:3 : /root : /bin/bash 4:5:6
7:8:9
[root@jacken ~] # paste -d "+" one two
root:x:0:0:root+1:2:3 : /root : /bin/bash +4:5:6
+7:8:9 [root@jacken ~] # paste -s one two
root:x:0:0:root : /root : /bin/bash 1:2:3 4:5:6 7:8:9 [root@jacken ~] #
|
uniq
作用:去除排序过的文件中的重复行
常用选项:
-c 在每列旁边显示该行重复出现的次数
-d 仅显示重复行的列
-u 只显示不重复的行
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@jacken ~] # cat hi
a a b c d d e [root@jacken ~] # uniq hi
a b c d e [root@jacken ~] # uniq -c hi
2 a
1 b
1 c
2 d
1 e
[root@jacken ~] # uniq -d hi
a d |
find
作用:查找某一文件或目录[做相应处理]
格式: find [选项] 路径 [动作]
常用选项:
-name 以文件名查找(支持通配符)
-size 以大小查找
-prem 以权限查找
-user 用用户宿主查找
-group 以用户组查找
-mtime -n +n 按文件更改时间查找 -n指n天以内,+n指n天以前
-ctime 按文件创建时间查找
-type 按文件类型查找
实例:
1
2
3
4
5
6
|
在/目录下查找属于用户jacken的名字包含jacken的文件并且大小超过15M且在一天内修改过,然后复制到 /tmp 下
[root@jacken ~] # find / -name *jacken* -user jacken -type f -size +15M -mtime -1 -exec cp {} /tmp/ \;
[root@jacken ~] # ll /tmp/
total 20480 -rw-r--r-- 1 root root 20971520 Apr 1 10:18 jacken_file [root@jacken ~] #
|
watch
作用:实时监测命令运行结果
常用选项:
-d 高亮显示变动
-n 周期(秒)
实例:
1
2
|
[root@jacken ~] # watch -d -n .5 ls
每隔0.5秒 ls 一下
|
Ctrl+Z 可以将正在执行的命令放在后台运行
对于这些放在后台执行的命令,只在当前shell中可查看
jobs
作用:查看当前有多少命令在后台运行
fg
作用:将进程搬到前台运行
bg
作用:将进程搬到后台运行
实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[root@jacken ~] # jobs
[root@jacken ~] # dd if=/dev/zero of=/dev/null bs=1G count=100
^Z [1]+ Stopped dd if = /dev/zero of= /dev/null bs=1G count=100
[root@jacken ~] # cat /dev/zero >> /dev/null
^Z [2]+ Stopped cat /dev/zero >> /dev/null
[root@jacken ~] # jobs
[1]- Stopped dd if = /dev/zero of= /dev/null bs=1G count=100
[2]+ Stopped cat /dev/zero >> /dev/null
[root@jacken ~] # bg 1
[1]- dd if = /dev/zero of= /dev/null bs=1G count=100 &
[root@jacken ~] # jobs
[1]- Running dd if = /dev/zero of= /dev/null bs=1G count=100 &
[2]+ Stopped cat /dev/zero >> /dev/null
[root@jacken ~] # bg 2
[2]+ cat /dev/zero >> /dev/null &
[root@jacken ~] # jobs
[1]- Running dd if = /dev/zero of= /dev/null bs=1G count=100 &
[2]+ Running cat /dev/zero >> /dev/null &
[root@jacken ~] # fg 1
dd if = /dev/zero of= /dev/null bs=1G count=100
^Z [1]+ Stopped dd if = /dev/zero of= /dev/null bs=1G count=100
[root@jacken ~] # jobs
[1]+ Stopped dd if = /dev/zero of= /dev/null bs=1G count=100
[2]- Running cat /dev/zero >> /dev/null &
[root@jacken ~] # bg 1
[1]+ dd if = /dev/zero of= /dev/null bs=1G count=100 &
[root@jacken ~] # jobs
[1]- Running dd if = /dev/zero of= /dev/null bs=1G count=100 &
[2]+ Running cat /dev/zero >> /dev/null &
[root@jacken ~] #
|