一個超簡單的命令行趣味教程(下)

一个超简单的命令行趣味教程(下)

......接教程(上)

命令行中級實用工具

sudo是什麼?

你可能看過這幅漫畫:

一个超简单的命令行趣味教程(下)

sudo(”superuser do”的縮寫)是以超級用戶權限執行命令,就像是“我是老闆,按我說的做”。對於大多數產生較大影響的命令(如刪除所有文件或安裝新程序的命令),計算機要求你在命令前面加上“sudo”,然後還要輸入計算機密碼確保你真的知道自己在做什麼。

作為一個新手,你不需要經常使用sudo,但當你繼續深入編程時,你就必須熟悉這個命令的用法。

創建、移動、刪除目錄

到目前為止,我們一直在處理單個文件,還沒涉及到目錄。我們學到的命令如touch(創建)mv(移動)或cp(複製)不能直接用於操作目錄。

用mkdir創建目錄

mkdir ("make directory")是創建新目錄的命令。嘗試在當前位置用mkdir test命令創建一個名稱為“test”的目錄:

一个超简单的命令行趣味教程(下)

創建目錄後運行ls確認是否創建成功。

一个超简单的命令行趣味教程(下)

用cd命令進入新目錄,運行ls後,你會發現裡面是空的。

用mv命令移動目錄

這個命令與移動單個文件的命令相同。將一個目錄移動到另一個目錄中的命令格式為“ mv 目錄名 目標位置名稱”(跟操作文件一樣):

一个超简单的命令行趣味教程(下)

是的,跟之前一樣的操作。讓我們把這個目錄移回我們的主目錄,命令是mv test ../。執行這個命令你必須位於包含test目錄的文件夾中。注意,你可以用../符號向上一級目錄移動文件!

將hello.txt文件移動到test目錄中,使其不再為空目錄。回到主目錄(cd ..)然後將test目錄移動到當前目錄,後面加“.”, 所以格式為mv Music / test / .

試試看!我會在後續教程中詳細討論點的用法。

一个超简单的命令行趣味教程(下)

很酷,現在test目錄中有了一個名為hello.txt的文件!如果要刪除整個目錄呢?

用rm -r命令刪除目錄

-r是什麼?注意這是一個新的概念!

到目前為止我們學到的每個命令都有選項(或“標誌”)。我們將首次通過刪除test目錄來學習使用選項。

首先,嘗試使用刪除命令”rm 要刪除的東西的名稱“來刪除test目錄。怎麼了?

一个超简单的命令行趣味教程(下)

不能刪除test,因為這是一個目錄!怎麼了?

當我們在命令中添加-r選項時,告訴它以遞歸方式刪除——因此,不僅要刪除目錄,還要刪除其中的所有內容。如果沒有-r標誌,則刪除失敗,因為命令行不知道是否要刪除文件夾中的所有內容。使用-r,就等於你說,“開始吧,刪除目錄中所有內容”。

“真有趣!你可能已經知道了關於執行命令rm -rf /的可怕後果。你知道-r標誌可以與其它許多標誌一起使用,所以在這裡添加了一個-f,意思是“強制刪除”。 這個命令正在刪除的東西是/,斜槓表示整個硬盤的頂級目錄(通常是整個計算機)。所以,這個命令的意思是“強制刪除所有內容,包括整個硬盤上的所有目錄和文件”。太可怕了!如果是在過去,你可能只用了六個字符就搞壞了計算機。現在(是的!),計算機廠商已經變聰明瞭,這個命令不會執行,不用擔心不小心打錯字符而清空你的硬盤!”

如何將文件移動到當前目錄中?

用.表示當前目錄。

一旦你熟悉用命令遍歷硬盤,你可能想要“進入”目錄,然後將一個文件移動到該目錄中。目前我們只瞭解如何移動在當前目錄中的文件,其實我們也可以將其它地方的文件移動到當前的“位置”!

例如引號中這個命令”mv ../test.txt .” ,意思是說“將上一級目錄中的test.txt移動到當前目錄中”。最後一個點表示“當前位置“。非常酷!

使用通配符

指定文件時,你不必僅限於一個文件——你可以用通配符“*”來指向多個文件。這聽起來令人困惑。用例子更容易解釋!假設你想將目錄中所有的.txt文件移動到另一個目錄中。你就得使用這個命令”mv *.txt 新目錄名“, 如:

一个超简单的命令行趣味教程(下)

非常妙!

等等,出了點問題

我的命令不起作用!

確認當前位於正確的目錄中。我想複製一個文件,但經常忘記當前位於哪個目錄。運行ls(“列出”目錄中的所有文件)以確認當前目錄中有你需要的文件。

我被卡住了,我不知道怎麼回到命令行!

某些命令會用另一個界面覆蓋當前的命令行窗口。或許你已經輸入了很長的命令(mv thisfile.txt to/another/file/folder/wait/not/that/one) ,你又不想按退格鍵返回到命令行開始的地方。

在這種情況下,按下Control-C(同時按兩個鍵)就行。它基本上是一個停止/重啟命令,在大多數情況下可以重新輸入命令。(有時寫成^C)

一个超简单的命令行趣味教程(下)

(不起作用?嘗試按“q”,“ESC”或“Control-D。”這聽起來很不明確,但是當我面對一個不知道如何退出的奇怪界面時我會這樣做——我把能記住的所有停止命令用一遍。向我這個有多年開發經驗的人學習吧!)

我看不到以點開頭的文件!

當你使用ls查看當前目錄時,實際上只顯示了可見文件。在命令中添加標誌-a(“all”)以查看所有文件,包括以“.”開頭的隱藏文件。

一个超简单的命令行趣味教程(下)

哇,這個目錄中的文件多了好多耶。

顯示隱藏文件!這就是命令行的優點:添加-a標誌就可以很方便地查看目錄中的所有文件,而在Finder中,查看這些隱藏文件要困難得多。

要顯示更隱秘的東西,在命令中添加-l以列表方式顯示文件,包括時間戳,所有者信息以及其它有用的信息。但是因為它是一個列表,所以不是以三種或四種或五種顏色顯示,只有一個文件名列表:

一个超简单的命令行趣味教程(下)

哇,已經講了很多了!

對嗎?命令行“真的是”一個非常強大的工具。我們只是初略講了一些簡單的命令,希望你去了解更多命令,這樣你就可以輕鬆地深入學習更多功能。

使用命令行,等於你直接與計算機對話——無需圖形用戶界面為你翻譯。當你學習編程時,你會發現你可以在一個小窗口裡做許多工作。

希望你覺得這是一個有趣味的教程!你可以在“ Hello Web App”論壇上提出任何問題,網址:https://discuss.hellowebapp.com

如果你還想深入學習,請你訪問Hello Web App,上面有使用Django開發Web應用程序的課程和書。即使你是學習編程和命令行的新手,這本書也很容易上手,嘗試一下,並通過實踐來學習。網址:https://hellowebbooks.com/learn-django

謝謝朋友們,祝你的編程之旅順利! ——特雷西

英文原文:https://hellowebbooks.com/learn-command-line/#hey-friends
譯者:錢利鵬


分享到:


相關文章: