开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令

简介:
+关注继续查看

liunx的特殊符号

  • 代表字母或者数字 多个 
    ? 任意一个字符
    "#" 注释
    \ 脱义字符
    | 管道符

1.* 代表任意个任意字符或者数字

[root@localhost /]# ls *.txt
1.txt
[root@localhost /]#

2.?任意一个字符

[root@localhost /]# ls ?.txt
1.txt
[root@localhost /]#

3.注释

[root@localhost /]# #11111
[root@localhost /]# 
PS:意思就代表着说明

4、\脱义

[root@localhost /]# ls .txt
1.txt
[root@localhost /]# ls *.txt
ls: 无法访问
.txt: 没有那个文件或目录
[root@localhost /]#

5.管道符

[root@localhost /]# cat /etc/passwd|grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost /]#

cut命令

命令类型

文件管理

命令描述

用来截取某一个字段来显示出来

命令语法

cut 【参数】

参数

-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-c, --characters=列表 只选中指定的这些字符
-f :指定某一段

案例:查看/etc/passwd文件 以:为分割符 显示 第一段

[root@localhost /]# cat /etc/passwd|head |cut -d ":" -f 1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost /]#

sort命令

命令描述

此命令就是用来针对文档进行排序的

命令语法

sort [参数] [文件]

参数

-t 分割符:和cut -d 一样
-n :使用纯数字排序
-r :方向排序
-u :去重复
-k :-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序

案例一:不加任何参数,会用ASCII码值进行比较,最后将他们按升序输出。

[root@localhost /]# 
[root@localhost /]# head /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
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
[root@localhost /]#

WC命令

命令描述

用于统计

命令语法

wc [参数]

参数

-l:统计行数
-m:统计字符数
-w:统计词数

案例

[root@localhost /]# cat /etc/passwd |wc -l -m -w
19 29 883
[root@localhost /]# cat /etc/passwd |wc
19 29 883
[root@localhost /]#

PS:其实不需要加参数的

unip命令

命令描述

用来删除重复的行

命令语法

xxxxx|unip
参数
-c 统计重复的行数

案例

[root@localhost ~]# uniq testb.txt
111
222
111
333
[root@localhost ~]# sort testb.txt |uniq
111
222
333
[root@localhost ~]# sort testb.txt |uniq -c
2 111
1 222
1 333

tee命令

tee后面跟文件名,其作用类似于重定向>,比重定向多一个功能,把文件写入后面所跟的文件时并显示在屏幕上,通常用于管道符 |后。

案例

#echo “aaaaaaaaaaaaaaa” |tee testb.txt
aaaaaaaaaaaaaaa
#cat testb.txt
aaaaaaaaaaaaaaa

命令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/BASH
BIN:X:11:BIN:/BIN:/SBIN/NOLOGIN
还可以替换一个字符:
#grep ‘root’ /etc/passwd |tr ‘r’ ‘R’ 
Root:x:o:o:Root:/Root:/bin/bash
opeRatoR:x:11:0:opeRatoR:/Root:/sbin/nologin

命令split

命令描述

split用于切割文档,常用的选项为-b和-l。

参数

-b 表示依据大小来分割文档,单位为byte
-l 表示依据行数来分割文档

案例

#split –b 500 passwd
#ls
passwd xaa xab xac xad xae

shell一些其他特殊符号

1、特殊符号$

$可以用作变量前面的标识符,还可以和!结合使用。

#cd ..
#ls testb.txt
testb.txt
#ls !$ 
ls testb.txt
testb.txt
!$表示上条命令的最后一个变量,本例中上条命令最后是testb.txt,那么在当前命令下输入!$则表示testb.txt。

2、特殊符号;

在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;。

#mkdir testb.txt ; touch test1.txt ; touch test2.txt ; ls –d test* 创建目录、创建文件、列出目录

3、特殊符号~

符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username。

4、特殊符号&

把一条命令放到后台执行,则需要加上符号&,它通常用于命令运行时间较长的情况。比如,可以用在sleep后,如下所示:

#sleep 30 &
[1]3008
#jobs
[1]+ 运行中 sleep 30 &

5、重定向符号>、>>、2>和2>>

和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。
#ls aaaa
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2> /tmp/error
#cat /tmp/error
ls:无法访问aaaa:没有那个文件或目录
#ls aaaa 2>> /tmp/error
#cat /tmp/error
ls:无法访问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].txt
test1.txt test2.txt
#ls –d test[12b].txt
test1.txt test2.txt testb.txt
#ls –d test[1-9].txt
test1.txt test2.txt 
#ls –d test[1-9a-z].txt
test1.txt test2.txt testb.txt

7、特殊符号&& ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&” 和 “||” 下面把这几种情况全列出:

command1 ; command2
command1 && command2
command1 || command2
使用 ”;” 时,不管command1是否执行成功都会执行command2;
使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;
使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

本文转自 闪电王 51CTO博客,原文链接:http://blog.51cto.com/sdwaqw/2060908



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Shell 脚本的编写总结
这篇文章主要是为了记录一下Shell脚本的使用语法,前几天写了一个shell脚本,其中,也遇到了一些语法不清楚的情况,在此记录一下已备后续使用
0 0
ZABBIX4.0配置新版钉钉报警,使用shell脚本实现
ZABBIX4.0配置新版钉钉报警,使用shell脚本实现
0 0
shell脚本制作菜单选择
shell脚本制作菜单选择
0 0
使用shell脚本实现在指定文件中,指定行号写入指定内容
使用shell脚本实现在指定文件中,指定行号写入指定内容
0 0
shell脚本中echo颜色设置
shell脚本中echo颜色设置
0 0
QGS
(openEuler21.03-x86)yum安装php+apache—shell脚本
记(openEuler21.03-x86)yum安装php+apache—shell脚本
0 0
QGS
Centos7-x86 yum安装配置nginx解析php—shell脚本
记Centos7-x86 yum安装配置nginx解析php—shell脚本
0 0
对目录下所有库文件进行rpath更改操作的SHELL脚本
对目录下所有库文件进行rpath更改操作的SHELL脚本
0 0
《Shell 脚本速查手册》电子版地址
编写Bash脚本耗时长?不稳定?有妙招!阿里云开发者社区和linux中国开源社区联手推出《Shell脚本速查手册》,为运维工程师提供一个快速、便捷的查询手册,以共开发者查询自己日常工作中常用的命令和脚本。
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Shell 脚本速查手册
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载