本文共 3661 字,大约阅读时间需要 12 分钟。
你在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。
常用到的特殊字符:1、* 代表零个或多个任意字符。cut命令
用来截取某一个字段。语法:cut -d '分隔字符' [-cf] //n这里的n是数字
-d :后面跟分隔字符,分隔字符要用单引号括起来
-c :后面接的是第几个字符-f :后面接的是第几个区块
sort命令
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。语法:sort [-t 分隔符] [-kn1,n2] [-nru] //这里的n1 < n2
-t 分隔符 :作用跟cut的-d一个意思
-n :使用纯数字排序-r :反向排序-u :去重复-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
实例:
1、如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。命令 : wc
用于统计文档的行数、字符数、词数,常用的选项为:
-l :统计行数
-m :统计字符数-w :统计词数
uniq命令
uniq用来删除重复的行,该命令-c选项比较常用,-c 表示统计重复的行数,并把行数写在前面。使用uniq 的前提是需要先给文件排序,否则不管用。[root@localhost ~]# uniq testb.txt111222111333[root@localhost ~]# sort testb.txt |uniq111222333[root@localhost ~]# sort testb.txt |uniq -c 2 111 1 222 1 333
命令tee
tee后面跟文件名,其作用类似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,通常用于管道符 |后。#echo “aaaaaaaaaaaaaaa” |tee testb.txtaaaaaaaaaaaaaaa#cat testb.txtaaaaaaaaaaaaaaa
命令tr
tr用于替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的符号 ^M 。选项:-d 表示删除某个字符,后面跟要删除的字符。
-s 表示删除重复的字符。
把小写字母变成大写字母,如tr’[a-z]’’[A-Z]’:
#head –n2 /etc/passwd |tr’[a-z]’’[A-Z]’ROOT:X:O:O:ROOT:/ROOT:/BIN/BASHBIN:X:11:BIN:/BIN:/SBIN/NOLOGIN
还可以替换一个字符:
#grep ‘root’ /etc/passwd |tr ‘r’ ‘R’ Root:x:o:o:Root:/Root:/bin/bashopeRatoR:x:11:0:opeRatoR:/Root:/sbin/nologin
命令split
split用于切割文档,常用的选项为-b和-l。选项:-b 表示依据大小来分割文档,单位为byte
-l 表示依据行数来分割文档
split -b#mkdir split_dir#cd !$cd split_dir#cp /etc/passwd ./#split –b 500 passwd#lspasswd xaa xab xac xad xae
如果split不指定目标文件名,则会以xaa、xab……这样的文件名来存取切割后的文件。指定目标文件名,示例如下:
# rm –f xa*# split –b 500 passwd 123# ls# 123aa 123ab 123ac 123ad 123ae passwd
-l :依据行数来分割文档
# split -l # rm -f 123a*# split -l 10 passwd# wc -l * 45 passwd 10 xaa 10 xab 10 xac 10 xad 5 xae 90 总用量
1、特殊符号$
$可以用作变量前面的标识符,还可以和!结合使用。#cd ..#ls testb.txttestb.txt#ls !$ ls testb.txttestb.txt
!$表示上条命令的最后一个变量,本例中上条命令最后是testb.txt,那么在当前命令下输入!$则表示testb.txt。
2、特殊符号;
在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;。#mkdir testb.txt ; touch test1.txt ; touch test2.txt ; ls –d test* 创建目录、创建文件、列出目录
3、特殊符号~
符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username。#cd ~#pwd/root#su ccj#cd ~#pwd/home/ccj
4、特殊符号&
把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的情况。比如,可以用在sleep后,如下所示:#sleep 30 &[1]3008#jobs[1]+ 运行中 sleep 30 &
5、重定向符号>、>>、2>和2>>
和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。
#ls aaaals:无法访问aaaa:没有那个文件或目录#ls aaaa 2> /tmp/error#cat /tmp/errorls:无法访问aaaa:没有那个文件或目录#ls aaaa 2>> /tmp/error#cat /tmp/errorls:无法访问aaaa:没有那个文件或目录ls:无法访问aaaa:没有那个文件或目录
6、中括号[ ]
中括号内为字符组合,代表字符组合中的任意一个,还可以表示一个范围(1-3,a-z)。#cd /tmp/10#ls –d test*test1.txt test2.txt testb.txt testdir#ls –d test[1-3].txttest1.txt test2.txt#ls –d test[12b].txttest1.txt test2.txt testb.txt#ls –d test[1-9].txttest1.txt test2.txt #ls –d test[1-9a-z].txttest1.txt test2.txt testb.txt
7、特殊符号&& ||
在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&” 和 “||” 下面把这几种情况全列出:command1 ; command2
command1 && command2command1 || command2
使用 ”;” 时,不管command1是否执行成功都会执行command2;
使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。转载于:https://blog.51cto.com/3069201/2060465