有了 WSL 後,就可以開始學習一些基本的 Linux 指令了。這篇文章的面向是給「使用 WSL 的 Windows 使用者」,所以不會講得太難。

鐵人賽第二天,昨天你應該已經成功設定好 WSL 了。今天要介紹一些簡單的概念和指令。

常見的資料夾

首先和 Windows 指令一樣,cd 可以用來切換資料夾。例如要切換到根目錄的話:

cd /    # 切換到根目錄
cd home # 切換到 home 資料夾

首先你打開 wsl 後,預設應該會在你的使用者目錄(家目錄),預設會是在 /home/[使用者名稱],像我的可能會在 /home/noob 的地方。另外因為會常常回到自己家目錄,所以可以用 ~ 來代表自己的家目錄,例如這兩個意思是一樣的:

cd /home/noob
cd ~

還有一個資料夾會常去:/etc,這是一個用來存放設定檔的地方。例如網路設定檔可能會放在 /etc/network、而 /etc/nginx 裡面會存放 nginx 的設定檔(後面會介紹這個套件)等等。未來如果有安裝什麼套件要改什麼設定檔,都可以來這裡找找看。其他大部分的東西都會在 Windows 上操作,所以就先不特別講了。

最後是 /mnt,你只要知道 WSL 預設會幫你把 Windows 的 C: 槽掛在 /mnt/c、D: 掛在 /mnt/d。例如如果你在 Windows 桌面開一個 project1 資料夾,在 WSL 中就應該會在 /mnt/c/Users/noob/Desktop/project1

sudo:以系統管理員身份執行

就像在 Windows 上一樣,安裝某些軟體的時候可能需要按右鍵,以系統管理員身份執行。或是某些在 C:\Windows\System32 等資料夾,使用者是沒有權限去移動檔案,必須以系統管理員身份執行(按下跳出來的 UAC 視窗的同意按鈕)。在 Linux 中也有類似的做法。例如在 /etc 裡面預設是只有管理員有權限移動的、安裝套件時也需要以系統管理員身份執行。

uac

而以系統管理員身份執行時,Windows 實際上會用 Administrator 這隻帳號去執行。Linux 也有類似的概念,當以系統管理員身份執行時,實際上用了 root 這隻帳號。

舉個簡單的例子,用 whoami 指令可以知道現在用哪隻使用者:

whoami // 會輸出你的使用者名稱(如 noob)
sudo whoami // 會輸出 root

apt-get:套件管理

在 Linux 系統中有個好用的套件管理工具叫 apt-get。apt-get 會維護一份官方的「軟體清單」,只要有在軟體清單內的套件,都可以透過指令直接安裝、更新;而透過 apt-get 安裝的套件也可以直接透過指令移除。常見的幾個 apt-get 指令如下:

  • apt-get update:更新軟體清單。通常會建議每次要安裝套件前都執行一次這個指令,以確保你安裝到最新的套件。
  • apt-get install [xxx]:安裝某個套件。
  • apt-get remove [xxx]:移除某個套件。

但別忘了安裝套件是需要管理員權限的,所以你必須使用 sudo 指令才能安裝。下面這個例子可以協助你安裝 git 管理工具:

sudo apt-get update         # 更新軟體清單
sudo apt-get install git    # 安裝 git

其他常見指令

到這邊你應該已經可以順利使用 WSL 下的 Linux 指令了,但是這邊再補充幾個常見的檔案處理指令,雖然這些東西都可以在 Windows 檔案總管中操作,但是未來在伺服器上還是會用到,先熟悉起來會比較方便。

mkdir 可以用來新增資料夾:

mkdir folder1    # 建立 folder1 資料夾

mv 可以用來移動檔案或重新命名檔案:

mv /mnt/c/Users/noob/Desktop/noob.zip ~/noob.zip
# 將 Windows 桌面的 noob.zip 移動到 Linux 家目錄

mv noob.zip noob_new.zip
# 將 noob.zip 改名成 noob_new.zip

cp 可以用來複製檔案或資料夾。

cp noob_new.zip folder1/noob.zip
# 將 noob_new.zip 複製到 folder1 資料夾中

cp -r folder1 folder2
# 複製 folder1 資料夾到 folder2,資料夾要加 -r 選項

ls 則可以用來看資料夾下面有什麼檔案。

ls     # 查看資料夾內的檔案
ls -l  # 查看資料夾內的檔案和詳細資料
ls -al # 查看資料夾內的隱藏檔案和詳細資料

OK,簡單指令先講到這邊,打完收工。明天會講如何讓你的指令介面長得很炫泡變得更好用,敬請期待!

本篇文章同步發表在 iT邦幫忙