寫在前面
在linux中酌儒,最最重要的就是命令,這就包含了2個(gè)過(guò)程为居,輸入和輸出
- 輸入
輸入當(dāng)然就是打開終端碌宴,然后按鍵盤輸入,然后按回車蒙畴,輸入格式一般就是這類的
#創(chuàng)建一個(gè)名為 file 的文件贰镣,touch是一個(gè)命令
touch file
#進(jìn)入一個(gè)目錄,cd是一個(gè)命令
cd /etc/
#查看當(dāng)前所在目錄
pwd
- 輸出
輸出會(huì)返回你想要的結(jié)果膳凝,比如你要看什么文件碑隆,就會(huì)返回文件的內(nèi)容。如果只是執(zhí)行蹬音,執(zhí)行失敗會(huì)告訴你哪里錯(cuò)了上煤,如果施行成功那么會(huì)沒(méi)有輸出,因?yàn)閘inux的哲學(xué)就是:沒(méi)有結(jié)果就是最好的結(jié)果
開始
如圖著淆,雙擊桌面上的 Xfce 終端
圖標(biāo)打開終端后系統(tǒng)會(huì)自動(dòng)運(yùn)行 Shell 程序劫狠,然后我們就可以輸入命令讓系統(tǒng)來(lái)執(zhí)行了:
1) 重要快捷鍵:
真正學(xué)習(xí)命令行之前拴疤,你先要掌握幾個(gè)十分有用、必需掌握的小技巧:
[Tab]
使用Tab
鍵來(lái)進(jìn)行命令補(bǔ)全独泞,Tab
鍵一般是在字母Q
旁邊呐矾,這個(gè)技巧給你帶來(lái)的最大的好處就是當(dāng)你忘記某個(gè)命令的全稱時(shí)可以只輸入它的開頭的一部分,然后按下Tab
鍵就可以得到提示或者幫助完成:
當(dāng)然不止補(bǔ)全命令懦砂,補(bǔ)全目錄蜒犯、補(bǔ)全命令參數(shù)都是沒(méi)問(wèn)題的:
[Ctrl+c]
想想你有沒(méi)有遇到過(guò)這種情況,當(dāng)你在 Linux 命令行中無(wú)意輸入了一個(gè)不知道的命令孕惜,或者錯(cuò)誤地使用了一個(gè)命令愧薛,導(dǎo)致在終端里出現(xiàn)了你無(wú)法預(yù)料的情況,比如衫画,屏幕上只有光標(biāo)在閃爍卻無(wú)法繼續(xù)輸入命令毫炉,或者不停地輸出一大堆你不想要的結(jié)果。你想要立即停止并恢復(fù)到你可控的狀態(tài)削罩,那該怎么辦呢瞄勾?這時(shí)候你就可以使用Ctrl+c
鍵來(lái)強(qiáng)行終止當(dāng)前程序(你可以放心它并不會(huì)使終端退出)。
嘗試輸入以下命令:
$ tail
然后你會(huì)發(fā)現(xiàn)你接下來(lái)的輸入都沒(méi)有任何反應(yīng)了弥激,只是將你輸入的東西顯示出來(lái)进陡,現(xiàn)在你可以使用Ctrl+c
,來(lái)中斷這個(gè)你目前可能還不知道是什么的程序(在后續(xù)課程中我們會(huì)具體解釋這個(gè)tail
命令是什么)微服。
又或者輸入:
$ find /
顯然這不是你想的結(jié)果趾疚,可以使用Ctrl+c
結(jié)束。
雖然這個(gè)按著很方便以蕴,但不要隨便按糙麦,因?yàn)橛袝r(shí)候,當(dāng)你看到終端沒(méi)有任何反應(yīng)或提示丛肮,也不能接受你的輸入時(shí)赡磅,可能只是運(yùn)行的程序需要你耐心等一下,就不要急著按Ctrl+c
了宝与。
其他一些常用快捷鍵
按鍵 | 作用 |
---|---|
Ctrl+d |
鍵盤輸入結(jié)束或退出終端 |
Ctrl+s |
暫停當(dāng)前程序焚廊,暫停后按下任意鍵恢復(fù)運(yùn)行 |
Ctrl+z |
將當(dāng)前程序放到后臺(tái)運(yùn)行,恢復(fù)到前臺(tái)為命令fg
|
Ctrl+a |
將光標(biāo)移至輸入行頭习劫,相當(dāng)于Home 鍵 |
Ctrl+e |
將光標(biāo)移至輸入行末咆瘟,相當(dāng)于End 鍵 |
Ctrl+k |
刪除從光標(biāo)所在位置到行末 |
Alt+Backspace |
向前刪除一個(gè)單詞 |
Shift+PgUp |
將終端顯示向上滾動(dòng) |
Shift+PgDn |
將終端顯示向下滾動(dòng) |
2) 學(xué)會(huì)利用歷史輸入命令
很簡(jiǎn)單,你可以使用鍵盤上的方向上鍵↑
诽里,恢復(fù)你之前輸入過(guò)的命令搞疗,你一試便知。
3) 學(xué)會(huì)使用通配符
通配符是一種特殊語(yǔ)句,主要有星號(hào)(*)和問(wèn)號(hào)(?)匿乃,用來(lái)對(duì)字符串進(jìn)行模糊匹配(比如文件名、參數(shù)名)豌汇。當(dāng)查找文件夾時(shí)幢炸,可以使用它來(lái)代替一個(gè)或多個(gè)真正字符;當(dāng)不知道真正字符或者懶得輸入完整名字時(shí)拒贱,常常使用通配符代替一個(gè)或多個(gè)真正字符宛徊。
終端里面輸入的通配符是由 Shell 處理的,不是由所涉及的命令語(yǔ)句處理的逻澳,它只會(huì)出現(xiàn)在命令的“參數(shù)值”里(它不能出現(xiàn)在命令名稱里闸天, 命令不記得,那就用Tab
補(bǔ)全)斜做。當(dāng) Shell 在“參數(shù)值”中遇到了通配符時(shí)苞氮,Shell 會(huì)將其當(dāng)作路徑或文件名在磁盤上搜尋可能的匹配:若符合要求的匹配存在,則進(jìn)行代換(路徑擴(kuò)展)瓤逼;否則就將該通配符作為一個(gè)普通字符傳遞給“命令”笼吟,然后再由命令進(jìn)行處理“云欤總之贷帮,通配符實(shí)際上就是一種 Shell 實(shí)現(xiàn)的路徑擴(kuò)展功能。在通配符被處理后诱告, Shell 會(huì)先完成該命令的重組撵枢,然后繼續(xù)處理重組后的命令,直至執(zhí)行該命令精居。
先使用 touch 命令創(chuàng)建 2 個(gè)文件锄禽,后綴都為 txt:
$ touch adsfasd.txt wergjlkas.txt
可以給文件隨意命名,假如過(guò)了很長(zhǎng)時(shí)間箱蟆,你已經(jīng)忘了這兩個(gè)文件的文件名沟绪,現(xiàn)在你想在一大堆文件中找到這兩個(gè)文件,就可以使用通配符:
$ ls *.txt
在創(chuàng)建文件的時(shí)候空猜,如果需要一次性創(chuàng)建多個(gè)文件绽慈,比如:“l(fā)ove_1_linux.txt,love_2_linux.txt辈毯,... love_10_linux.txt”坝疼。在 Linux 中十分方便:
$ touch love_{1..10}_linux.txt
Shell 常用通配符:
字符 | 含義 |
---|---|
* |
匹配 0 或多個(gè)字符 |
? |
匹配任意一個(gè)字符 |
[list] |
匹配 list 中的任意單一字符 |
[!list] |
匹配 除list 中的任意單一字符以外的字符 |
[c1-c2] |
匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z] |
{string1,string2,...} |
匹配 string1 或 string2 (或更多)其一字符串 |
{c1..c2} |
匹配 c1-c2 中全部字符 如{1..10} |
4) 學(xué)會(huì)在命令行中獲取幫助
在 Linux 環(huán)境中,如果你遇到困難谆沃,可以使用man
命令钝凶,它是Manual pages
的縮寫。
Manual pages 是 UNIX 或類 UNIX 操作系統(tǒng)中在線軟件文檔的一種普遍的形式唁影, 內(nèi)容包括計(jì)算機(jī)程序(包括庫(kù)和系統(tǒng)調(diào)用)耕陷、正式的標(biāo)準(zhǔn)和慣例掂名,甚至是抽象的概念。用戶可以通過(guò)執(zhí)行man
命令調(diào)用手冊(cè)頁(yè)哟沫。
你可以使用如下方式來(lái)獲得某個(gè)命令的說(shuō)明和使用方式的詳細(xì)介紹:
$ man <command_name>
比如你想查看 man 命令本身的使用方式饺蔑,你可以輸入:
man man
通常情況下,man 手冊(cè)里面的內(nèi)容都是英文的嗜诀,這就要求你有一定的英文基礎(chǔ)猾警。man 手冊(cè)的內(nèi)容很多,涉及了 Linux 使用過(guò)程中的方方面面隆敢。為了便于查找发皿,man 手冊(cè)被進(jìn)行了分冊(cè)(分區(qū)段)處理,在 Research UNIX拂蝎、BSD穴墅、OS X 和 Linux 中,手冊(cè)通常被分為8個(gè)區(qū)段匣屡,安排如下:
區(qū)段 | 說(shuō)明 |
---|---|
1 | 一般命令 |
2 | 系統(tǒng)調(diào)用 |
3 | 庫(kù)函數(shù)封救,涵蓋了C標(biāo)準(zhǔn)函數(shù)庫(kù) |
4 | 特殊文件(通常是/dev中的設(shè)備)和驅(qū)動(dòng)程序 |
5 | 文件格式和約定 |
6 | 游戲和屏保 |
7 | 雜項(xiàng) |
8 | 系統(tǒng)管理命令和守護(hù)進(jìn)程 |
要查看相應(yīng)區(qū)段的內(nèi)容,就在 man 后面加上相應(yīng)區(qū)段的數(shù)字即可捣作,如:
$ man 1 ls
會(huì)顯示第一區(qū)段中的ls
命令 man 頁(yè)面誉结。
所有的手冊(cè)頁(yè)遵循一個(gè)常見(jiàn)的布局,為了通過(guò)簡(jiǎn)單的 ASCII 文本展示而被優(yōu)化券躁,而這種情況下可能沒(méi)有任何形式的高亮或字體控制惩坑。一般包括以下部分內(nèi)容:
NAME(名稱)
該命令或函數(shù)的名稱,接著是一行簡(jiǎn)介也拜。
SYNOPSIS(概要)
對(duì)于命令以舒,正式的描述它如何運(yùn)行,以及需要什么樣的命令行參數(shù)慢哈。對(duì)于函數(shù)蔓钟,介紹函數(shù)所需的參數(shù),以及哪個(gè)頭文件包含該函數(shù)的定義卵贱。
DESCRIPTION(說(shuō)明)
命令或函數(shù)功能的文本描述滥沫。
EXAMPLES(示例)
常用的一些示例。
SEE ALSO(參見(jiàn))
相關(guān)命令或函數(shù)的列表键俱。
也可能存在其它部分內(nèi)容兰绣,但這些部分沒(méi)有得到跨手冊(cè)頁(yè)的標(biāo)準(zhǔn)化。常見(jiàn)的例子包括:OPTIONS(選項(xiàng))编振,EXIT STATUS(退出狀態(tài))缀辩,ENVIRONMENT(環(huán)境),BUGS(程序漏洞),F(xiàn)ILES(文件)臀玄,AUTHOR(作者)瓢阴,REPORTING BUGS(已知漏洞),HISTORY(歷史)和 COPYRIGHT(版權(quán))镐牺。
通常 man 手冊(cè)中的內(nèi)容很多炫掐,你可能不太容易找到你想要的結(jié)果,不過(guò)幸運(yùn)的是你可以在 man 中使用搜索/<你要搜索的關(guān)鍵字>
睬涧,查找完畢后你可以使用n
鍵切換到下一個(gè)關(guān)鍵字所在處,shift+n
為上一個(gè)關(guān)鍵字所在處旗唁。使用Space
(空格鍵)翻頁(yè)畦浓,Enter
(回車鍵)向下滾動(dòng)一行,或者使用j
,k
(vim 編輯器的移動(dòng)鍵)進(jìn)行向前向后滾動(dòng)一行检疫。按下h
鍵為顯示使用幫助(因?yàn)?man 使用 less 作為閱讀器讶请,實(shí)為less
工具的幫助),按下q
退出屎媳。
想要獲得更詳細(xì)的幫助夺溢,你還可以使用info
命令,不過(guò)通常使用man
就足夠了烛谊。如果你知道某個(gè)命令的作用风响,只是想快速查看一些它的某個(gè)具體參數(shù)的作用,那么你可以使用--help
參數(shù)丹禀,大部分命令都會(huì)帶有這個(gè)參數(shù)状勤,如:
$ ls --help