Linux学习资料-万用字符与特殊符号

万用字符与特殊符号 shell

因为在 bash 当中常会使用到一些万用字符,与搭配特殊符号来将指令作更好的利用(例如最常提到的正规表示法 Regulare Express )!底下咱们列出一些经常使用的万用字符与特殊符号: bash

  符号 内容 .net

* 万用字符,表明一个或多个字符(或数字) ip

? 万用字符,表明一个字母 get

# 批注,这个最常被使用在 script 当中,视为说明! test

\ 跳脱符号,将『特殊字符或万用字符』还原成通常字符 变量

| 分隔两个管线命令的界定; module

; 连续性命令的界定(注意!与管线命令并不相同) bug

~ 使用者的家目录 command

$ 亦便是变量以前须要加的变量取代值 

& 将指令变成背景下工做 

! 逻辑运算意义上的『非』 not 的意思! 

/ 路径分隔的符号 

>, >> 输出导向,分别是『取代』与『累加』 

' 单引号,不具备变量置换的功能 

" 具备变量置换的功能! 

` ` 两个『 ` 』中间为能够先执行的指令! 

(   ) 在中间为子 shell 的起始与结束 

[  ] 在中间为字符的组合 

{   } 在中间为命令区块的组合! 

组合按键 执行结果 

Ctrl + C 终止目前的命令 

Ctrl + D 输入结束(EOF),例如邮件结束的时候; 

Ctrl + M 就是 Enter 啦! 

Ctrl + S 暂停屏幕的输出 

Ctrl + Q 恢复屏幕的输出 

Ctrl + U 在提示字符下,将整列命令删除 

Ctrl + Z 『暂停』目前的命令 


上面的万用字符当中,最经常使用的就属 *, ?, [] 及 ` 了!咱们提几个简单的例子: 

  [test @test  test]# ls test*  <==那个 * 表明后面不论接几个字符都予以接受(没有字符也接受!) 

[test @test  test]# ls test?  <==那个 ? 表明后面『必定』要接『一个』字符 

[test @test  test]# ls test???  <==那个 ??? 表明『必定要接三个』字符! 

[test @test  test]# cp test[1-5] /tmp  <==将 test1, test2, test3, test4, test5 若存在的话,就拷贝到 /tmp 下 

[test @test  test]# cd /lib/modules/`uname -r`/kernel/drivers  <==被 ` ` 括起来的内容『会先执行』! 

上面几个例子至关的有趣!尤为是最后面两个!须要注意的是, [] 里面『表明只有一个字符』可是范围能够由 1-5 ,这样来讲的话,那么咱们若是容许『只要档名里面含有至少一个大写字符』时,就能够将档案 copy 出来的话,能够这样作: 

  


cp *[A-Z]* /tmp

  

颇有趣吧?! ^_^ 

此外,那个 `` 里面的『指令』会先被执行,也就是说: 

  

系统先执行 uname -r 找出输出的结果; 

将结果累加在目录上面,来执行 cd 的功能! 

  

很棒吧!!这些基本的功能须要特别来了解一下才行呦!


--------------------------------------------------------------------------------


连续指令的下达方式: 

这里须要再提几个重要的信息,咱们刚刚上面提过说,两个指令前后写在一块儿,能够这样写: 

  

command1; command2

  

利用分号『 ; 』来分隔,这个分号的意思,表明不论 command1 执行结果为什么,command2 都会被执行!那么若是我是两个相关的指令,第一个 command1 若是执行结果有错误,第二个就不被执行,能够这样作吗?固然能够,就使用下面两个连结的咚咚: 

  

command1 && command2 

command1 || command2

  

还记得咱们以前的变量内容中,那个 ? 表明什么吗?没错,就是表明前一个执行的指令内容有没有错误,若是有错误就回传为 1 ,没有错误就回传为 0 ,你能够经由 echo $? 来查询得知!那么 && 就是表明,当 command1 执行结果传回值为 0 的时候,也就是没有错误讯息时,则 command2 才会开始执行,而 || 偏偏相反,当 command1 有错误讯息时, command2 才会执行!举个例子来讲,个人系统中并无 /vbird 这个目录,因此执行 ls /vbird 应该会有错误讯息才对,因此,底下三个指令串会显示什么呢? 

  [root @test root]# ls /vbird  ; ls / 

[root @test root]# ls /vbird && ls / 

[root @test root]# ls /vbird || ls / 


试看看呦!

相关文章
相关标签/搜索