iT邦幫忙

2025 iThome 鐵人賽

DAY 7
2

嗨!歡迎回到上班族的命令列生存手冊。上一章節我們學到了基礎三劍客,並且詳細介紹了裡頭的 ls 指令,我們獲得了手電筒,得以照亮目前的目錄有什麼東西。今天則要介紹另一位重量級的指令,也就是 cd,全名是 change directory。
從名子來看,這個指令可以賦予我們往更深入的地方探索的能力,也能開倒車,回到最初的起點。不過在這之前,先要去了解目前的目錄怎麼看?

首先,需要知道我們在哪?通常輸入區域都會顯示現在的目錄,讓我們觀察一下,可能會發現我們都在「波浪」的後面,這個波浪是什麼意思?

~ 就是你家!

在 POSIX 系統之中,每一個使用者都有一個自己的天地,**波浪就是你家。**網路上各方大神會說 Home 目錄 (directory),或是家目錄(以下都會這樣稱呼)。我們能在這邊建立自己的檔案、系統設定並自由的編輯裡頭的東西。

在 macOS 或是 Linux 之中,檔案管理器一打開的預設位置,通常也是這個目錄。你會注意到還有文件、圖片…等資料夾。

這個時候如果下 $ ls -a 你會注意到有一些隱藏的檔案顯示出來(如果你困惑為什麼是 $ ls -a 請查看前一篇章節),這些檔案通常是設定檔,或是 Log 檔案。在圖形界面之中,顯示隱藏檔案也會顯示同一批檔案。

我們就以家目錄為基地往下探索。

cd

現在就是談論 cd 指令最好的時機點,他的用法也很簡單:

https://ithelp.ithome.com.tw/upload/images/20250921/20141615qNHEv1tp9p.png

$ cd <目錄>

首先,我們先 $ ls 查看目前的目錄下有什麼資料夾,例如:想前往下載資料夾。
下法就是 $ cd 下載

如何回到上一頁?

在這之前,先要來了解兩個特殊的符號:...

https://ithelp.ithome.com.tw/upload/images/20250921/20141615VxYLEyaik3.png

請你下 $ ls -la 應該會注意到,除了所有檔案、資料夾以外,最上面還有兩個東西 ...,他們有意含。

  • . : 現在當前的目錄
  • ..: 上一個目錄

看樣子,可以利用 .. 來回到上一頁,你也解開了另外一個祕密,上一章提到 $ ls .. 可以看到「上一個資料夾」的內容,因為 .. 也是路徑的一種,這邊的觀念可以反過來套用到上一章呢 。

image-003.gif

$ cd ..

就可以回到上一頁。
那一個點,有什麼作用呢?一般來說我們不用打這個點,就可以存取到目前目錄下的內容。例如,現在這個目錄裡頭有這些檔案:

https://ithelp.ithome.com.tw/upload/images/20250921/20141615xssIEpWk2H.png

例如我們上一個章節談論到的 cat,可以給他一個 input 他會把資訊印在畫面上。例如,我想查看 sample.txt,可以這樣下

$ cat ./sample.txt

就會印出目前目錄下的 sample.txt,只不過這裡不需要加上 ./ 也能正常的讀取到。
什麼情形會需要這個 ./ ?當需要執行某個可以執行的檔案 (binary) 或是執行 Script 時,會比較常用到。
回到範例圖片,像是這個 firefox,想要執行,可以直接下:

$ ./firefox

Fun Tips

一次跳多個目錄

// 目前在 ~ ,可以這樣子下
$ cd 下載/firefox/140esr

// or
$ cd ~/下載/firefox/140esr

cd 可不只能單一一個目錄。舉個例子,家目錄下面有這樣的目錄結構:~/下載/firefox/140esr ,如果目前正在家目錄,可以直接將左邊那一串餵給 cd,就能直接跳到 140esr 的資料夾裡面。
在打字的過程中,比如說打到 ~/下載/fi 可以按下 tab 鍵,他會嘗試自動補完後面可能會是什麼內容,就不用一個字一個字打啦。

這個觀念,也可以用在「回到上一頁」,可以跳到很多的上一頁,甚至可以直接跳到上一頁的「其他的資料夾」。

image-005.gif

$ cd ../..

跳到兩個「上一頁」,以此類推

image-006.gif

$ cd ../hobbyProjects

跳到「上一頁」的 hobbyProjects 資料夾,後面也能接上 hobbyProjects 資料夾裡頭的其他資料夾。

來回切換

image-007.gif

$ cd -

比如說你正在這個目錄:firefox,你從下載過來的。那麼第一次 $ cd - 會將你帶回下載資料夾,如果再下一次 $ cd - 你會回到 firefox 資料夾。
就是「跳到上一頁」,以你從哪裡到目前位置作為標準。

回家

image-008.gif

$ cd

// or 兩者一樣
$ cd ~

你說家是唯一的城堡,想要回家只消鍵入 cd 即可。

快速移除文字: Ctrl + W

路徑太長,或是檔案在很深的地方,或是就是一個有很多參數可以設定的指令,要清空已經打的指令真的 backspace 要按很多次耶!

這時讀者可以嘗試使用: CTRL + W ,他會用「一個單字」為單位,往前刪除。

如何印出目前的目錄

https://ithelp.ithome.com.tw/upload/images/20250921/20141615f6vkaAGaZ5.png

$ pwd

有的時候,就是好想知道現在到底在哪裡。想不到這章可以學一個新指令 pwd
這個指令會印出:目前所在的位置,拿來複製路徑也很方邊呢。

當想放棄的時候

image-010.gif

⚠️ WSL 上的 Linux 發行版好像沒有這個指令。

$ open .

Linux 下如果找不到 open,請改用

$ xdg-open .

你是不是也想給自己放一個長假?但是沒辦法?沒關係我也是,但我們還有 open 指令。他會用圖形界面的檔案管理員開啟你送給他的位置,結合我們上面的 . 就可以用檔案總管、Finder 開啟這一頁了… 逃離這一切。(當然你要裝在有圖形界面的作業系統上痾 …)

這一個章節也一併帶出 cat 指令的作用,這個指令還能有什麼其他的應用呢?是不是也躍躍欲試了呢?


上一篇
Day06 熟悉環境篇:我在哪裡? 簡介 ls 指令
系列文
上班族的命令列 (CLI) 生存手冊7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
AndyAWD
iT邦新手 2 級 ‧ 2025-09-21 11:41:26

星期日也寫鐵人賽,太厲害了吧

這個活動好硬......

我要留言

立即登入留言