首页 > 代码库 > shell中的特殊符号
shell中的特殊符号
;
分号,用来分割多个命令,各条命令按顺序执行,但多个命令之间没有任何逻辑上的关系,仅按顺序执行(也就是说即使前面的命令执行失败也不影响后面命令的执行)
[root@root ~]# ls /tmp ; ls /root ; ls /home //所有命令按顺序执行
sambadir
yum.log
yum_save_tx-2016-04-06-17-05UciXqG.yumtx
yum_save_tx-2016-04-06-17-06Bgwk_b.yumtx
yum_save_tx-2016-04-06-17-19hA4jcb.yumtx
yum_save_tx-2016-04-27-03-28Kj11ji.yumtx
123.txt 12.txt 1.txt test.txt
pzk use1
&&
用来分割多个命令,各条命令按顺序执行,但只有当前一个命令执行成功后才会执行&&后面的命令
[root@root ~]# ls test.txt && cat test.txt //当ls执行成功才执行cat
test.txt
HelloWorld
||
与&&相反,只有当前一个命令执行失败后才会执行||后面的命令,如果前一个命令执行成功则后面的命令不会执行
[root@root ~]# ls 888 || ls test.txt //当ls 888执行失败时才执行ls test
ls: 无法访问888: 没有那个文件或目录
test.txt
[root@root ~]# ls 1.txt || ls 2.txt //前一个命令执行成功则后面命令不执行
1.txt
#
注释符
[root@root ~]# #ls 1.txt //井号起注释作用,回车后不会执行后面的命令
[root@root ~]#
\
将特殊字符变成一般字符
[root@root ~]# touch #.txt //不能直接创建#.txt文件,因为井号意味着注释
touch: 缺少了文件操作数
请尝试执行"touch --help"来获取更多信息。
[root@root ~]# touch \#.txt //加上反斜杠则可以把井号的作用去掉,创建文件
[root@root ~]# ls \#.txt //查看的时候也要加反斜杠
#.txt
*
通配符,匹配所有字符
[root@root ~]# ls *.txt //匹配所有后缀为.txt的文件
123.txt 12.txt 1.txt
?
匹配任意一个字符
[root@root ~]# ls ?.txt //匹配任意一个字符
1.txt
;
连续指令,一般用于两条命令之间,同时执行两条命令
~
表示用户的家目录
[root@root /]# cd ~/tmp/ //进入家目录下的/tmp目录
[root@root tmp]# ls ~/1.txt //查看用户家目录下的1.txt文件
1.txt
&
放在执行命令的最后端,即表示将该执行命令放在后台中执行,跟快捷键Ctrl + Z的用法是一样的。(jobs查看暂停的进程,fg num恢复进程在前台执行,bg num恢复进程在后台执行,kill %num杀死进程)
[root@root ~]# firefox & //在后台运行火狐浏览器,不影响当前shell的使用
[1] 2719
``
反引号,表示把反引号中命令的输出结果赋值给某个变量
[root@root ~]# a=`ls` //将ls的结果赋值给变量a
[root@root ~]# echo $a //查看变量a的值
1.txt 2.txt 3.txt 4.txt
‘‘
单引号,当一个变量加了单引号就不再是变量,仅当一般字符处理
""
双引号,用来赋值一个长变量(如果不加只能赋值一个短变量)
{ }
花括号,用来匹配一组用逗号分隔的字符串中的任一个
[root@root ~]# touch {1,2,3,4,5}.txt //匹配一组用逗号分隔的字符串中的任一个
[root@root ~]# ls
1.txt 2.txt 3.txt 4.txt 5.txt
[root@root ~]# mkdir /tmp/{dir1,dir2,dir3,dir4} [root@root ~]# ls /tmp/ dir1 dir2 dir3 dir4
如果是一个连续的序列,可以用“..”来分隔:
[root@root ~]# touch {1..9}.txt [root@root ~]# ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@root ~]# echo {0..10..2} //隔两个来显示
0 2 4 6 8 10
$
$符号作为变量的前缀,当我们要获得变量的值或使用这个变量的时候,就需加上$符号
[root@root ~]# echo $HOSTNAME //获得HOSTNAME的值 root
[ ]
字符范围,用作正则表达式的一部分,描述一个匹配的字符范围。
[root@root ~]# ls [123].txt //匹配一个字符
1.txt 2.txt 3.txt
[root@root ~]# ls [0-9].txt //也可以匹配范围内的字符
1.txt 2.txt 3.txt 4.txt
[root@root ~]# ls [1-9a-zA-Z].txt
1.txt 2.txt 3.txt 4.txt a.txt
shell中的特殊符号
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。