嗨!歡迎回到上班族的命令列生存手冊。上一章節我們學到了基礎三劍客,並且詳細介紹了裡頭的 ls
指令,我們獲得了手電筒,得以照亮目前的目錄有什麼東西。今天則要介紹另一位重量級的指令,也就是 cd
,全名是 change directory。
從名子來看,這個指令可以賦予我們往更深入的地方探索的能力,也能開倒車,回到最初的起點。不過在這之前,先要去了解目前的目錄怎麼看?
首先,需要知道我們在哪?通常輸入區域都會顯示現在的目錄,讓我們觀察一下,可能會發現我們都在「波浪」的後面,這個波浪是什麼意思?
在 POSIX 系統之中,每一個使用者都有一個自己的天地,**波浪就是你家。**網路上各方大神會說 Home 目錄 (directory),或是家目錄(以下都會這樣稱呼)。我們能在這邊建立自己的檔案、系統設定並自由的編輯裡頭的東西。
在 macOS 或是 Linux 之中,檔案管理器一打開的預設位置,通常也是這個目錄。你會注意到還有文件、圖片…等資料夾。
這個時候如果下 $ ls -a
你會注意到有一些隱藏的檔案顯示出來(如果你困惑為什麼是 $ ls -a
請查看前一篇章節),這些檔案通常是設定檔,或是 Log 檔案。在圖形界面之中,顯示隱藏檔案也會顯示同一批檔案。
我們就以家目錄為基地往下探索。
現在就是談論 cd
指令最好的時機點,他的用法也很簡單:
$ cd <目錄>
首先,我們先 $ ls
查看目前的目錄下有什麼資料夾,例如:想前往下載資料夾。
下法就是 $ cd 下載
。
在這之前,先要來了解兩個特殊的符號:.
和 ..
。
請你下 $ ls -la
應該會注意到,除了所有檔案、資料夾以外,最上面還有兩個東西 .
和 ..
,他們有意含。
.
: 現在當前的目錄..
: 上一個目錄看樣子,可以利用 ..
來回到上一頁,你也解開了另外一個祕密,上一章提到 $ ls ..
可以看到「上一個資料夾」的內容,因為 ..
也是路徑的一種,這邊的觀念可以反過來套用到上一章呢 。
$ cd ..
就可以回到上一頁。
那一個點,有什麼作用呢?一般來說我們不用打這個點,就可以存取到目前目錄下的內容。例如,現在這個目錄裡頭有這些檔案:
例如我們上一個章節談論到的 cat
,可以給他一個 input 他會把資訊印在畫面上。例如,我想查看 sample.txt,可以這樣下
$ cat ./sample.txt
就會印出目前目錄下的 sample.txt,只不過這裡不需要加上 ./
也能正常的讀取到。
什麼情形會需要這個 ./
?當需要執行某個可以執行的檔案 (binary) 或是執行 Script 時,會比較常用到。
回到範例圖片,像是這個 firefox,想要執行,可以直接下:
$ ./firefox
// 目前在 ~ ,可以這樣子下
$ cd 下載/firefox/140esr
// or
$ cd ~/下載/firefox/140esr
cd 可不只能單一一個目錄。舉個例子,家目錄下面有這樣的目錄結構:~/下載/firefox/140esr
,如果目前正在家目錄,可以直接將左邊那一串餵給 cd,就能直接跳到 140esr
的資料夾裡面。
在打字的過程中,比如說打到 ~/下載/fi
可以按下 tab 鍵,他會嘗試自動補完後面可能會是什麼內容,就不用一個字一個字打啦。
這個觀念,也可以用在「回到上一頁」,可以跳到很多的上一頁,甚至可以直接跳到上一頁的「其他的資料夾」。
$ cd ../..
跳到兩個「上一頁」,以此類推
$ cd ../hobbyProjects
跳到「上一頁」的 hobbyProjects 資料夾,後面也能接上 hobbyProjects 資料夾裡頭的其他資料夾。
$ cd -
比如說你正在這個目錄:firefox
,你從下載過來的。那麼第一次 $ cd -
會將你帶回下載資料夾,如果再下一次 $ cd -
你會回到 firefox
資料夾。
就是「跳到上一頁」,以你從哪裡到目前位置作為標準。
$ cd
// or 兩者一樣
$ cd ~
你說家是唯一的城堡,想要回家只消鍵入 cd
即可。
路徑太長,或是檔案在很深的地方,或是就是一個有很多參數可以設定的指令,要清空已經打的指令真的 backspace 要按很多次耶!
這時讀者可以嘗試使用: CTRL + W
,他會用「一個單字」為單位,往前刪除。
$ pwd
有的時候,就是好想知道現在到底在哪裡。想不到這章可以學一個新指令 pwd
。
這個指令會印出:目前所在的位置,拿來複製路徑也很方邊呢。
⚠️ WSL 上的 Linux 發行版好像沒有這個指令。
$ open .
Linux 下如果找不到 open,請改用
$ xdg-open .
你是不是也想給自己放一個長假?但是沒辦法?沒關係我也是,但我們還有 open
指令。他會用圖形界面的檔案管理員開啟你送給他的位置,結合我們上面的 .
就可以用檔案總管、Finder 開啟這一頁了… 逃離這一切。(當然你要裝在有圖形界面的作業系統上痾 …)
這一個章節也一併帶出 cat
指令的作用,這個指令還能有什麼其他的應用呢?是不是也躍躍欲試了呢?