Linux常用的基本命令12

sort
作用:将文本排序显示
常用选项:
    -u 去除重复行
    -r 降序(默认升序)
    -n 以数值来排序
    -t 指定分隔符
        -k n以第n列来排序
实例:

[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的字符串。
实例:

[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 />范围之内,该字符将被写出;否则,该字符将被排除。
实例:

[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    将文本合并成一行
实例:

[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  只显示不重复的行
实例:

[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    按文件类型查找
实例:

在/目录下查找属于用户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 周期(秒)
实例:

[root@jacken ~]# watch -d -n .5 ls
每隔0.5秒ls一下

Ctrl+Z 可以将正在执行的命令放在后台运行
对于这些放在后台执行的命令,只在当前shell中可查看

jobs
作用:查看当前有多少命令在后台运行
fg
作用:将进程搬到前台运行
bg
作用:将进程搬到后台运行
实例:

[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 ~]#


本文出自 “不安分与好奇心” 博客,谢绝转载!

你可能感兴趣的:(linux,sort,find,tr,cut)