您当前的位置:首页 > 分类 > 技术资讯 > LINUX > 正文

linux shell中的特殊符号

发布时间:2016-12-30 16:20:31      来源:51推一把
【摘要】在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。下面笔者就说一说常用到的特殊字符。
1. * :代表零个或多个字符或数字。
2. ? :只代表一个任意的字符
3. # :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉。
4. \ :脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。
5. | :管道符,它的作用在于将符号前面命令的结果丢给符号后面的命令。
这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等。
6. $ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用。



‘!$’表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入!$则代表test.txt。
7. ; :分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个”;”了。
8. & :如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。



使用jobs可以查看当前shell中后台执行的任务。用fg可以调到前台执行。这里的sleep命令就是休眠的意思,后面跟数字,单位为秒,常用语循环的shell脚本中。



此时你按一下CTRL +z 使之暂停,然后再输入bg可以再次进入后台执行。



如果是多任务情况下,想要把任务调到前台执行的话,fg后面跟任务号,任务号可以使用jobs命令得到。



9. >, >>, 2>, 2>> :前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>。



10. [ ] :中括号,中间为字符组合,代表中间字符中的任意一个



11. && 与 ||
在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:
1) command1 ; command2
2) command1 && command2
3) command1 || command2
使用”;”时,不管command1是否执行成功都会执行command2;
使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;
使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。