從 Linux 命令行開始:開發者必備的終端實戰指南

身為前端或後端的開發者,我們大多數時間都待在編輯器裡寫程式。但只要你要把網站部署上線、要進伺服器看日誌、要排查為什麼服務沒起來,就會遇到那個黑黑的終端視窗。很多新手看到命令列就卻步,其實它就像汽車的儀表板——不需要懂引擎原理,只要會看幾個關鍵儀表,就能安全上路。這篇文章帶你用最短時間,掌握開發者日常最常用的 Linux 指令。

一、第一步:登入伺服器

絕大多數時候,你會透過 SSH 遠端連線到 Linux 伺服器。假設你的主機 IP 是 152.32.135.82,使用者是 deploy:

ssh deploy@152.32.135.82

步驟 1:輸入上面的指令後,第一次連線會詢問是否信任指紋,輸入 yes 即可。步驟 2:輸入密碼(注意螢幕不會顯示任何字元,這是正常的)。登入成功後,你就站在家目錄 ~ 底下。

二、搞懂「我在哪裡」:pwd 與 ls

命令列沒有圖形介面,最容易迷路。兩個指令能立刻定位:

# 顯示目前所在絕對路徑
pwd

# 列出目前目錄內容,-l 詳細格式、-a 含隱藏檔
ls -la

重點:ls -la 是最常用的組合,開頭的 d 代表目錄、- 代表檔案,最左邊那一串 rwxr-xr-x 就是權限,後面會講。

三、移動與查看:cd 與 cat

步驟 1:用 cd 切換目錄。

cd /var/www/html      # 進入絕對路徑
cd game               # 進入目前目錄下的 game 子資料夾
cd ..                 # 回到上一層
cd ~                  # 回到家目錄

步驟 2:用 catless 查看檔案內容。cat 一次噴完,適合短檔;less 可上下捲動,適合長日誌。

cat config.php                  # 直接印出內容
less /var/log/nginx/access.log # 按 q 離開

四、檔案操作:cp、mv、rm、mkdir

步驟 1:複製與搬移。

cp config.php config.php.bak   # 複製並改名做備份
mv old.html new.html           # 搬移(也常用來改名)
mkdir -p /www/game             # 建立多層目錄,-p 自動補齊不存在的層

重點:rm 刪除檔案,rm -rf 資料夾 會遞迴強制刪除且無法復原。在線上伺服器請三思,必要時先 ls 確認路徑再下手。

五、權限管理:chmod 與 chown

為什麼上傳的圖片明明存在卻顯示 403?多半是權限問題。步驟 1:用 chmod 改權限。

chmod 755 script.sh        # 擁有者可讀寫執行,其他人可讀執行
chmod -R 644 ./uploads     # -R 遞迴處理整個資料夾

步驟 2:用 chown 改擁有者,確保網頁服務(如 www-data)能讀取。

chown -R www-data:www-data /var/www/html

六、實戰:部署一個 PHP 專案

把前面所學串起來。假設你要把遊戲專案放到 /www/game

ssh deploy@152.32.135.82        # 1. 登入
cd /www && mkdir -p game        # 2. 建目錄
# 3. 用 FTP 或 scp 上傳檔案後,確認權限
chmod -R 755 /www/game
ls -la /www/game                # 4. 確認檔案確實存在

重點:務必用 ls -la 確認子目錄真的被建立起來——很多時候 FTP 上傳「看似成功」,其實子目錄根本沒建立,導致請求被導向錯誤頁面。

七、排查:誰佔用了端口?

服務起不來,常是端口被佔用。用這組指令快速定位:

netstat -tlnp | grep 80   # 看 80 端口被誰佔用
ps aux | grep nginx       # 看 nginx 程序是否在跑
lsof -i:3306              # 看 3306(MySQL)連線

命令行不是用來炫耀的,而是用來把事情做對、做快。從今天這幾組指令開始,你已經能完成八成的日常運維。剩下兩成,等你遇到問題時再一個一個學,反而印象更深。

互動話題:你在命令列上踩過最慘的坑是什麼?歡迎在留言區分享,讓大家一起避雷!