內(nèi)容簡介 1、第二部分第二課:命令行,世界盡在掌握 2、第二部分第三課預(yù)告:文件和目錄,組織不會虧待你 命令行,世界盡在掌握 今天的標(biāo)題是不是有點霸氣側(cè)漏呢? 讀者:“小編,你為什么每次都要起這么非主流的標(biāo)題呢?不能愉快地玩耍么?” 小編:“那我問你,老子他為什么要寫《道德經(jīng)》咧?” 讀者:“為什么咧?” 小編:“因為老子愿意!” 開個玩笑輕松一下 O(∩_∩)O~ 沒辦法,不能不激動,因為我們終于來到了這一刻,命令行的征程將從此課開始。 而且你會發(fā)現(xiàn),一旦入門并且精通了Linux命令行,那么你就離極客又近了一步。想要像電影里面那樣分分鐘破解密碼么,想要像《鋼鐵俠》里的托尼.斯塔克一樣用命令行編譯錄入鋼衣中的程序么?那命令行是一大利器。 當(dāng)然了,一開始我們肯定會帶大家從基礎(chǔ)的知識點入門,不會一上來就上演《駭客帝國》的。 命令行提示符 首先,我們假設(shè)您已經(jīng)打開了一個終端。如果不知道什么是終端或者不知道如何打開一個終端,那你肯定沒看我們的上一課(【Linux探索之旅】第二部分第一課:終端Terminal,好戲上場)。 上一課我們也介紹了兩種終端的模式:
我們強(qiáng)烈推薦使用圖形模式的終端。我們打開一個圖形模式的終端,如下圖: 可以看到終端的一行中開頭是一串字符,后面白色的那一小塊其實是閃動的光標(biāo),提示我們輸入會從光標(biāo)處開始。 那一串oscar@oscar-laptop:~$是什么意思呢?我們還什么都沒有輸入呢,怎么就顯示了這一串不明所以的文字呢? 不要慌,你可以把它看成電腦跟你說“你好”呢,這是終端打招呼的方式(我承認(rèn)這種打招呼的方式有點非主流,但是考慮到命令行是在20世紀(jì)六七十年代出生的,請多多擔(dān)待),術(shù)語叫做“命令行提示符”,顧名思義就是提示在其后面輸入命令。 在你輸入新的一行命令前,這個命令提示符都會出現(xiàn)。 很想知道到底這一串字符表示什么意思對嗎?我們把其拆分開來講解:
因此,oscar@oscar-laptop:~$的意思就是: 《你好,你目前是以oscar這個用戶登錄;你的電腦名稱為oscar-laptop;你目前位于 ~ 目錄下,就是你的用戶家目錄。你是普通用戶,擁有有限的權(quán)限》。 假如我此時把用戶切換為root,你可以看到命令提示符的變化,如下圖: 看到了嗎?我一切換成root,命令提示符就變成了root@oscar-laptop:/home/oscar# 其實oscar/root和oscar-laptop這兩個名字可以分別用hostname和whoami這兩個命令來獲知,如下圖所示: 當(dāng)然了,這個提示符的格式和內(nèi)容是可以自行配置的,如果你嫌它太長,你可以精簡它;如果你嫌它不夠詳細(xì),可以再加顯示的內(nèi)容。如何來配置,我們在之后的課程,等你學(xué)會如何在Linux下使用文本編輯器之后再說。 命令和命令參數(shù) 我們在終端中工作時,就是給它傳遞指令,讓它做我們要求的事情。這些指令都是通過命令的形式來輸入的。 Linux中有很多很多命令,好消息是我們不需要全部記住,只需要記得一些常用的就可以了。對于那些不常用的命令,我們只要在使用前懂得如何去閱讀命令的使用手冊就好了。 是的,Linux的開發(fā)者們?yōu)槲覀儗懥素S富詳盡的命令使用手冊,英語是manual。 Linux的使用手冊可以說是Linux開發(fā)者的“圣經(jīng)”,你會發(fā)現(xiàn)他們只信靠這本“圣經(jīng)”。 為什么呢?因為這是參考的工具書。命令的使用方法,各種用例,都詳細(xì)地記載在這部“圣經(jīng)”里。只要我們肯花功夫去讀,就能找到想要的答案。 我們之后會用單獨的一課教大家如何閱讀Linux的使用手冊:太重要了。 特別提一下,你可能看到過一些Linux老手,當(dāng)一些Linux初學(xué)者問他們看似很簡單,百度就能搜出來的問題,比如這個命令怎么用之類時,會對新手說:RTFM。 你會詫異RTFM是什么意思,其實RTFM是Read The F***ing Manual的首字母縮寫,意為:“閱讀那該*死的使用手冊”。這并不是侮辱人的話,而是有點無奈的嘆息。 類似的還有RTFSC,是Read The F***ing Source Code,“閱讀那該*死的源代碼”的縮寫,據(jù)說是Linus Torvalds最先說的。 所以,為了避免以后有人對你說這樣的話,還是好好學(xué)習(xí)如何閱讀使用手冊吧。 簡單的命令 OK,停止了饒舌,我們終于要輸入我們的第一個Linux命令了! 首先,我們從最簡單的命令開始。 在終端中輸入 date,然后按下回車鍵。你可以看到如下顯示: 所以,我們輸入 date 這個命令,終端顯示了以下信息: Sat Aug 1 20:30:09 CEST 2015 這是什么意思呢?我們知道date在英語中是“日期”的意思,所以機(jī)靈的讀者應(yīng)該已經(jīng)猜到date這個命令的作用了吧。 是的,就是顯示當(dāng)前時間和日期。
所以可知小編輸入此命令時正是《歐洲中部夏令時間 2015年8月1日的20點30分09秒》,小編此時在法國居住。 怎么樣,你已經(jīng)學(xué)會了第一個Linux的命令,date,用于顯示當(dāng)前時間。激動莫? 再來學(xué)習(xí)第二個常用命令:ls 在終端中輸入ls,按回車鍵,可以看到輸出如下圖: ls是list的縮寫,list是英語“列舉,列出”的意思。所以ls命令用于列出當(dāng)前目錄下的文件和目錄。 不好意思,通常如果你剛裝了Linux系統(tǒng)的話,是不可能有這么多文件的,小編因為學(xué)編程時在家目錄下創(chuàng)建了上百個文件夾,所以一頁顯示不全。 如果ls命令沒有返回任何信息,那么就說明當(dāng)前目錄下什么也沒有。 看到了嗎?命令其實很簡單,就是不包含空格的字母組合。有時候是一個完整的英語單詞,有時候是一個英語單詞的一部分,有時候是幾個單詞連在一起。但是有很多時候,我們不僅僅只是輸入一個命令,這個命令后還要跟一些參數(shù)。 參數(shù) 參數(shù)就是寫在命令之后的一些補(bǔ)充選項。命令和參數(shù)之間有空格隔開。例如這樣: command parameters 上面的command和parameter分別是英語“命令”和“參數(shù)”的意思,只是演示一下格式,并不是說真有command這個命令和parameters這個參數(shù)。 參數(shù)里可以包含多個參數(shù),由空格隔開,也可以包含數(shù)字,字母,等等??梢哉f,參數(shù)沒有固定的格式,但是一般來說還是遵循一定的規(guī)范的。 短參數(shù)(一個字母) 最常用的參數(shù)形式就是一個短橫線后接一個字母。例如: command -p 如果我們要一次加好幾個短參數(shù),可以用空格隔開,例如: command -p -a -T -c 多個短參數(shù)也可以合并在一起,例如上面的命令等價于: command -paTc 請注意:參數(shù)的字母的大小寫是有區(qū)別的,大寫的T和小寫的t通常表示不同意思。 我們來舉一個實際的例子,比如我們用下面的命令來演示: ls -a 輸入之后回車,就會顯示如下圖信息: 這個參數(shù)中的a是英語all的縮寫,表示“全部”,所以 ls -a就是列出當(dāng)前目錄下所有文件,包括隱藏文件。 LInux的隱藏文件是以一個點開頭的,如 .bashrc 。如果此時我們的目錄是家目錄,那么應(yīng)該會有不少隱藏文件,大多是配置文件。 長參數(shù)(多個字母) 長參數(shù)沒有短參數(shù)那么常用,但也是很有用的。短參數(shù)是以一個短橫線開始,而長參數(shù)是以兩個短橫線開始的。例如: command --parameter 如果有多個長參數(shù),是不能像多個短參數(shù)那樣合并寫的。而是只能以空格隔開,例如: command --parameter1 --parameter2 當(dāng)然我們也可以組合使用短參數(shù)和長參數(shù),例如: command -paTc --parameter1 --parameter2 有時候,同一個意義的參數(shù)有短參數(shù)和長參數(shù)兩種形式,效果是一樣的,可以任選哪一種。 例如 ls -a 和 ls --all 是一個作用,都是列出當(dāng)前目錄下的所有文件,包括隱藏文件。 參數(shù)的值 有一些參數(shù)你還需要給它賦一個值才行。而且短參數(shù)和長參數(shù)的賦值的方式不盡相同。 例如,短參數(shù)賦值,通常是這樣的: command -p 10 表示把10賦值給p參數(shù)。 如果是長參數(shù),則一般是這樣賦值: command --parameter=10 長參數(shù)的方式更加容易理解,但是不如短參數(shù)那么簡潔。 其他參數(shù) 正如我們說過的,參數(shù)的形式?jīng)]有絕對的準(zhǔn)則。我們上面給出的規(guī)則是一般的,有些命令的參數(shù)格式可能是我們沒怎么見過的。 有些參數(shù)就不一樣,而且取決于命令。例如對于 ls 這個命令,假如后面帶了一個參數(shù),這個參數(shù)是一個目錄的路徑名的話,那么就會列出此目錄下的文件。 如下圖: 我在 ~ 目錄下執(zhí)行了 ls linux_c 這個命令,因此列出了子目錄 linux_c 中的文件。 如何找到一個命令 Linux的命令千千萬,查找起來實在難。 那么如何在蕓蕓眾令中找到你想要的那個命令呢?小編有時候就會想不起來一個命令到底是如何拼寫的。 但是幸好,Linux的開發(fā)者們很有先見之明,早就為我們準(zhǔn)備了對策,就是用Tab鍵來補(bǔ)全命令! 說實話,小編以前學(xué)Linux,學(xué)了有段時間了,還不知道Tab鍵的這個妙用。后來還是一個Linux高手演示給我看的,當(dāng)時就震驚了,怎么還有如此好用的技能。“我讀書少,你可不要騙我~”, 小編當(dāng)時的內(nèi)心也是醉醉的。 而且Tab鍵不僅可以補(bǔ)全命令,還可以補(bǔ)全文件名,路徑名,絕對讓你效率倍增。例如,我輸入 da 這兩個字母,然后按兩次Tab鍵(記得不是按一次Tab鍵,是按兩次),它將為我展示所有可能的補(bǔ)全選項,我們可以看到只有兩個可能的選項: dash和date兩個命令。如下圖: 此時,如果我繼續(xù)輸入,變?yōu)閐at。再按兩次Tab鍵,那么它就為我自動補(bǔ)全成了date了。因為只有一個可能了。 又例如,我用ls命令,后跟一個目錄名,我可以寫目錄名的幾個首字母,然后用Tab來幫我補(bǔ)全,有很長的路徑名時極為方便: 如果按Tab鍵N次一直沒有顯示什么選項,那說明不存在這幾個字母開頭的命令或路徑。 有時候我們的命令候選項會太多,例如,我們來測試一下。假如,我不輸入任何字符,而只是按兩次Tab鍵,那么終端將會提示我所有可能的命令選項,如下圖: 是不是有點嚇人,因為我的系統(tǒng)里竟然有3408個命令。不同的人的系統(tǒng)里命令的數(shù)目是不一樣的,取決于你安裝了多少軟件。安裝的軟件越多,可供選用的命令就越多。 我按下兩次Tab鍵后,終端就詢問我:Display all 3408 possibilities ? (y or n) 翻出來的意思就是“顯示所有3408個可能的選項嗎?(輸入y表示確定,輸入n表示否決)”。 我們可以輸入y,按回車鍵,然后它就真的為我們顯示了3408個命令。當(dāng)然不是在一頁中顯示,分了很多頁。 我們?nèi)绾螢g覽這些頁面呢?
一般情況下,我們是輸入n,回車的,就什么都不顯示了。畢竟要在3408個命令中找一個命令簡直是大海撈針么。 命令的歷史記錄 很多時候,我們都需要找回我們之前輸入的命令。不僅是因為有時我們忘了那句命令是什么,更重要的是,假如這句命令很長,我不想再花時間重新輸入一遍了。那么顯示命令的歷史就很有用了。 有兩個按鍵是很常用的:
如果你覺得用上下鍵每次進(jìn)一個命令太花時間,那么你也可以用查找的方法: Ctrl + R : 用于查找使用過的命令。 例如,我查找date這個命令,就可以用Ctrl + R,按回車,然后只輸入da,因為我之前使用過date這個命令,它就為我自動補(bǔ)全了date命令,如下圖: history命令 history這個命令,用于列出之前使用過的所有命令,如下圖: 可以看到,系統(tǒng)自動保存了小編輸入過的2003條命令,最近的一條命令正式history。 可以方便我們了解自己之前輸入過那些命令。 一些實用的快捷鍵 Linux系統(tǒng)不但提供了N多的命令,而且其鍵盤快捷鍵組合也是大大滴多。練好了快捷鍵,足以讓你鍵盤飛起來,就是這個feel,倍兒爽。想象自己是《駭客帝國》的Neo。 下面列舉一些經(jīng)常使用的快捷鍵:
下面的快捷鍵在你編輯一條比較長的命令時很有用:
當(dāng)然了,好的快捷鍵絕不止這些。 總結(jié)
第二部分第三課預(yù)告 今天的課就到這里,一起加油吧!
|
|