Linux Bash中,你應(yīng)該知道的15個(gè)特殊字符!
Linux Bash中,你需要知道的15個(gè)特殊字符!
首先明白什么是特殊字符?
特殊字符->當(dāng)您在 shell 中鍵入它們時(shí),它們充當(dāng)指令或命令,并告訴 shell 執(zhí)行某個(gè)功能。
因此,我們把單字符視為單個(gè)的字符命令。
1、~ Home Directory(家目錄或主目錄)
波浪線(~)是您的主目錄的縮寫(xiě)。
這意味著您不必在命令中輸入您的主目錄的完整路徑。
無(wú)論您在文件系統(tǒng)的哪個(gè)位置,您都可以使用這個(gè)命令進(jìn)入您的主目錄.

2、. Current Directory(當(dāng)前工作目錄)
句號(hào)(.)代表當(dāng)前工作目錄。如果在 ls 中使用 -a (all)選項(xiàng)或者其他選項(xiàng),則可以在目錄列表中看到它。

3、.. Parent Directory(父目錄或上級(jí)目錄)
英文中的雙句號(hào)”(..)表示當(dāng)前目錄的父目錄。您可以使用它在目錄樹(shù)中向上移動(dòng)一級(jí)。

4、/ Path Directory Separator(路徑目錄分隔符)
您可以使用正斜杠(/)ーー通常稱(chēng)為斜杠ーー來(lái)分隔路徑名中的目錄。

一個(gè)斜杠表示可能的最短目錄路徑。因?yàn)?Linux 目錄樹(shù)中的所有內(nèi)容都從根目錄開(kāi)始,所以您可以使用以下命令快速移動(dòng)到根目錄:

5、# Comment or Trim Strings(注釋符號(hào)或修剪字符串)
5.1、注釋?zhuān)╟omment)
多數(shù)情況下,您使用符號(hào)(#),在終端中或者shell腳本中注釋相關(guān)內(nèi)容,該內(nèi)容將被bash shell忽視
,但是這并不是被真正的忽視,而是被存在你命令歷史當(dāng)中,我們可以通過(guò)history名令進(jìn)行查看。

5.2 也可以使用#符號(hào),針對(duì)字符串便令,從頭部開(kāi)始刪除部分字符
定義個(gè)字符串one_string="Hello world.",并輸出該字符串。



這做不會(huì)改變字符串變量one_string中存儲(chǔ)的值;?
它只會(huì)影響發(fā)送到 echo 的內(nèi)容。
我們可以使用 echo 再次打印字符串變量的值并檢查以下內(nèi)容:

6、? Single Character Wildcard(單字符通配符)


因?yàn)槲募est??.txt文件名中,test后面有兩個(gè)字符,所以需要兩個(gè)??號(hào)來(lái)代替,才能才看我們新建的10個(gè)txt文件,如果用一個(gè)?,不能進(jìn)行全部的通配。


7、* Character Sequence Wildcard(字符序列通配符或任意字符通配符)
使用*號(hào)符號(hào),可以進(jìn)行任意多個(gè)字符的統(tǒng)配。

*號(hào)通配符,在shell中使用非常的方便和靈活,也使用最為高頻的通配方式。
8、[] Character Set Wildcard(字符集通配符)
文件名中的相關(guān)字符必須至少與通配符集中的一個(gè)字符匹配。

? * [] 是linux和unix系統(tǒng)中的三種字符通配方式,可以給據(jù)場(chǎng)景的需求進(jìn)行靈活的選擇。
9、; Shell Command Separator(命令分割符)
該符號(hào)可以讓你在一行中運(yùn)行多條命令

請(qǐng)注意,第二個(gè)命令即使第一個(gè)失敗也會(huì)運(yùn)行,第三個(gè)命令即使第二個(gè)失敗也會(huì)運(yùn)行,依此類(lèi)推。
還有一點(diǎn)需要注意:
如果希望在一個(gè)命令失敗時(shí)停止執(zhí)行順序,請(qǐng)使用雙符號(hào)(& &)而不是分號(hào):

&&邏輯與前個(gè)命令執(zhí)行失敗,后面的命令并不會(huì)被執(zhí)行。
10、& Background Process(后臺(tái)處理)
正常情況下,在終端窗口中輸入命令去執(zhí)行在完成之后,才返回到命令提示符。
通常,這只需要一兩分鐘,如果你是通過(guò)更新系統(tǒng)軟件,需要更長(zhǎng)的時(shí)間,例如:sudo apt update && sudo apt upgrade。這時(shí)候如果需要在等待的過(guò)程,啟動(dòng)另外的程序,,則需要關(guān)閉應(yīng)用程序之前不能使用終端窗口。這時(shí)候后臺(tái)處理就大用用處了。


11、< Input Redirection(輸入重定向)
許多 Linux 命令接受一個(gè)文件作為參數(shù),并從該文件獲取它們的數(shù)據(jù)。這些命令中的大多數(shù)還可以接受來(lái)自流的輸入。要?jiǎng)?chuàng)建流,可以使用左尖括號(hào)(<) ,如下面的示例所示,將文件重定向到命令中:


12、> Output Redirection(輸出重定向)
您可以使用右直角括號(hào)(>)來(lái)重定向命令的輸出(通常,將輸出重定向到文件中) .

13、| Pipe(管道)
pipe可以將多個(gè)命令連接在一個(gè),一個(gè)命令的結(jié)果做為下個(gè)命令的輸入。

14、! Pipeline logical NOT and History Operator
嘆號(hào)(!)是一個(gè)邏輯運(yùn)算符,意思是“非”。

!6051 歷史命令中的第6051條

!!重復(fù)上次命令

15、$ Variable Expressions(變量表達(dá)式)
您可以使用 echo 查看變量持有的值ーー只需在變量名稱(chēng)前面加上美元符號(hào)($) ,如下所示:

要?jiǎng)?chuàng)建變量,必須給它一個(gè)名稱(chēng)并提供一個(gè)值讓它保存。您不必使用美元符號(hào)來(lái)創(chuàng)建變量。只有在引用變量時(shí)才添加 $,如下面的示例所示:

在美元符號(hào)周?chē)砑哟罄ㄌ?hào)({}) ,并執(zhí)行參數(shù)展開(kāi)以獲取變量的值,并允許對(duì)該值進(jìn)行進(jìn)一步的轉(zhuǎn)換。

Quoting Special Characters(引用特殊字符)
下面三種特殊的引用,產(chǎn)生不同的效果:

把特殊字符想象成非常短的命令。
如果您能記住它們的用法,
那么對(duì)于理解 Bash shell 以及其他人的腳本將大有裨益。
下想獲得更多的命令幫助信息請(qǐng)?jiān)囈辉囅旅娴姆椒ǎ?/p>
備注:tldr - too long don't read!