shell特殊符号linux
* *任意个任意字符 * ?任意一个字符 * #注释字符 * \脱义字符 * |管道符
命令cut
cut用来截取某一个字段,其格式为:#cut –d ‘分隔字符’[-cf]n,n是数字。正则表达式
选项:
-d 后面跟分隔符,分隔字符要有单引号括起来。
-c 后面接的是第几个字符。
-f 后面接的是第几个区块。shell
[root@Ask-02 ~]# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@Ask-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
root
bin
[root@Ask-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@Ask-02 ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
root:x:0
bin:x:1
[root@Ask-02 ~]# cat /etc/passwd |head -2 |cut -c 4
tbash
sort命令
sort用做排序,其格式为sort[-t分隔符][-kn1,n2][-nru],这里n1和n2指的是数字,其余选项的含义以下。ide
选项:
-n 表示使用纯数字排序
-r 表示反向排序
-u 表示去重复
-t 后面跟分割字符,做用跟cut的-d选项同样
-kn1,n2 表示由n1区间排序到n2区间,能够只写-kn1,即对n1字段排序code
[root@Ask-02 文档]# sort 1.txt
<排序[
1111
11222
22333
444444411
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@Ask-02 文档]# sort -n 1.txt //字母默认为0
<文档[
adm:x:3:4:adm:/var/adm:/sbin/nologin
1111
11222
22333
444444411
[root@Ask-02 文档]# sort -nr 1.txt //反序显示
444444411
22333
11222
1111
adm:x:3:4:adm:/var/adm:/sbin/nologin
[字符串<it
wc命令
wc命令用于统计文档的行数、字符数、或词数。该命令的经常使用选项由:
-l(统计行数)
-m(统计字符数)
-w(统计词数)
[root@Ask-02 文档]# cat 2.txt
hello world
111
222
111,222
[root@Ask-02 文档]# wc -l 2.txt
4 2.txt
[root@Ask-02 文档]# wc -m 2.txt
28 2.txt
[root@Ask-02 文档]# wc -w 2.txt
5 2.txt
uniq命令
uniq用来删除重复的行
选项:
-c 统计重复次数
[root@Ask-02 文档]# cat 2.txt
hello world
111
222
111,22
222
aa
345
222
aa
456
456
[root@Ask-02 文档]# sort 2.txt |uniq -c
1 111
1 111,22
3 222
1 345
2 456
2 aa
1 hello world
命令tee
tee后面跟文件名,其做用相似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,一般用于管道符 |后。
选项
-a 追加的意思
[root@Ask-02 文档]# sort 2.txt |uniq -c |tee 4.txt
1 111
1 111,22
3 222
1 345
2 456
2 aa
1 hello world
[root@Ask-02 文档]# sort 2.txt |uniq -c |tee -a 4.txt
[root@Ask-02 文档]# cat 4.txt
1 111
1 111,22
3 222
1 345
2 456
2 aa
1 hello world
1 111
1 111,22
3 222
1 345
2 456
2 aa
1 hello world
命令tr
tr用于替换字符
[root@Ask-02 文档]# echo "asklinux" |tr '[al]' '[AL]'
AskLinux
[root@Ask-02 文档]# echo "asklinux" |tr '[a-z]' '[A-Z]'
ASKLINUX
命令split
split用于切割文档。
选项:
-b 表示依据大小来分割文档,单位为byte
-l 表示依据行数来分割文档
[root@Ask-02 演示]# du -sh 5.txt
652K 5.txt
[root@Ask-02 演示]# split -b 200k 5.txt
[root@Ask-02 演示]# ls
5.txt xaa xab xac xad
[root@Ask-02 演示]# split -l 4000 5.txt
[root@Ask-02 演示]# ls
5.txt xaa xab xac xad xae
* $变量前缀,!$组合,正则里面表示行尾 * ;多条命令写到一行,用分号分割 * ~用户家目录,正则表达式表示匹配符 * &放到命令后面,会把命令丢到后台 * > >> 2> 2>> &> * []指定字符串中的一个,[0-9],[a-zA-Z][abc] * ||和&&,用于命令之间
[root@Ask-02 演示]# rm -f xa* ; ls //分号用法
5.txt[root@Ask-02 文档]# ls 1.txt || wc -l 2.txt //当前面的命令正确执行时,后面的命令将再也不执行1.txt[root@Ask-02 文档]# ls 1.txt && wc -l 2.txt //当前面的命令正确执行时,后面的命令才执行1.txt11 2.txt