Linux 終端新手指南
距離我的住處幾條街遠的地方,有一家咖啡館,我在每個周日都會去那里參加固定的 “龍與地下城Dungeons & Dragons”(D&D) 游戲。他們有一份菜單,前幾次我去點餐時,我總是要翻看好幾分鐘,才能確定要點些什么。熟悉了之后,我就不用看菜單了,因為我清楚地知道他們在賣什么,也清楚地知道自己想要什么。現(xiàn)在點餐對我來說很簡單,只要說一聲“老規(guī)矩”就好了,接下來就是等待一杯咖啡、一碗薯片和烤餅被送來(通常不方便的是,在我們 做出決定roll for initiative 的那一刻,但這也不是他們的問題)。(LCTT 譯注:做出決定roll for initiative 是 D&D 玩家的黑話,它指的是在比賽開始前擲骰子的行為)
與餐廳的菜單類似,計算機的圖形界面也為用戶提供了操作選項。這里有圖標、窗口和按鈕,你可以搜索你想要的東西,點擊項目,拖動其他項目,操縱圖形界面,直到你的任務完成。不過,一段時間后,這可能會變得繁瑣,甚至是效率低下。既然你清楚地知道需要做什么,那么,如果只需告訴計算機你想要發(fā)生什么,無需耗費大量的體力和腦力來搜索項目、舞動鼠標,就能達到目的,豈不是更好嗎?
Linux 終端是什么
Linux 終端是一個基于文本的交互界面,它是用來控制 Linux 計算機的。雖然它只是幫助 Linux 用戶完成任何特定任務的眾多工具之一,但是它被廣泛地認為是最有效的方法。除了編寫代碼,這無疑是最直接的方法。事實上,它是如此受歡迎,以至于蘋果公司將操作系統(tǒng)的基礎改為 Unix,從而獲得了 Bash 和 Z shell,而微軟公司開發(fā)了它自己的開源命令行 PowerShell。
Linux 命令是什么
命令commands 是一種特殊的關鍵詞,你可以在終端中使用它,告訴計算機去執(zhí)行一個動作。大多數(shù)命令是很小的應用程序,它們與你的操作系統(tǒng)的其他部分一起安裝。你可能沒有意識到它們的存在,因為它們通常被保存在相對模糊的目錄中,如 ??/bin?
?、??/sbin?
?、??/usr/bin?
? 和 ??/usr/sbin?
?,但你的終端知道在哪里可以找到它們(多虧了一個叫 ??PATH?? 的東西)。其他的命令是內(nèi)置在終端中的。你不必擔心一個命令是安裝的還是內(nèi)置的,無論是哪一種,終端都能執(zhí)行。更棒的是,在大多數(shù)
Linux 發(fā)行版上,當終端找不到一個命令時,它會在互聯(lián)網(wǎng)上搜索提供該命令的軟件包,然后會主動為你提供安裝軟件包、運行該命令的服務。
下面是一個簡單的命令:
$ ls
??ls?
? 命令是 “l(fā)ist” 的縮寫,它會列出當前目錄的內(nèi)容。試一試吧!先打開一個終端窗口,然后打開一個文件管理器窗口(Linux 上叫 “文件Files”,macOS 上叫 “訪達Finder”,Windows 上叫 “資源管理器Windows Explorer”)。比較一下這兩個窗口,它們是同一數(shù)據(jù)的兩種不同表現(xiàn)方式。
Linux 命令中的參數(shù)是什么
參數(shù)argument 是命令中的任意一個“不是命令本身”的部分。例如,要列出一個特定目錄的內(nèi)容,你可以提供該目錄的名稱作為參數(shù)。
$ ls Documents
在這個例子中,??ls?
? 是命令,??Documents?
? 是參數(shù)。該命令將列出 ??Documents?
? 目錄的內(nèi)容。
Linux 命令中的選項是什么
命令的 選項option,也叫 標志flag 或 開關switch,它是命令參數(shù)的一部分。命令參數(shù)是跟在命令后面的任何東西,而選項通常(但不總是)用一個連接號(??-?
?)或兩個連接號(??--?
?)來劃分。請看下面這個例子:
$ ls --classify Documents
在這個例子中,??--classify?
? 是一個選項。它也有一個簡短的版本,因為終端用戶更喜歡少打點字來提高效率。
$ ls -F Documents
短的選項通??梢院喜?。下面是一個 ??ls?
? 命令,它將 ??-l?
? 選項與 ??--human-readable?
?(??-h?
?)、??--classify?
?(??-F?
?) 和 ??--ignore-backups?
?(??-B?
?) 選項結合了起來:
$ ls -lhFB
一些選項本身可以帶參數(shù)。例如,??ls?
? 的 ??--format?
? 選項可以讓你改變信息的呈現(xiàn)方式。默認情況下,目錄的內(nèi)容是以列的形式提供給你的,但如果你需要它們顯示為逗號分隔的列表,你可以把 ??--format?
? 設置為 ??comma?
?。
$ ls --format=comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt
等于號(??=?
?)是可選的,所以這樣做也可以:
$ ls --format comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt
學習使用 Linux 終端
學習如何使用終端可以提高工作效率和生產(chǎn)力,同時也可以使計算變得非常有趣。當我運行一個精心設計的命令時,我常常會坐下來,為我在空白屏幕上輸入幾個字就能實現(xiàn)的事情而驚嘆。終端可是和很多東西相關 —— 編程、詩歌、拼圖和實用主義,但無論你如何看待,它都是一個值得學習的持續(xù)創(chuàng)新。