身為前端或後端的開發者,我們大多數時間都待在編輯器裡寫程式。但只要你要把網站部署上線、要進伺服器看日誌、要排查為什麼服務沒起來,就會遇到那個黑黑的終端視窗。很多新手看到命令列就卻步,其實它就像汽車的儀表板——不需要懂引擎原理,只要會看幾個關鍵儀表,就能安全上路。這篇文章帶你用最短時間,掌握開發者日常最常用的 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:用 cat 或 less 查看檔案內容。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)連線
命令行不是用來炫耀的,而是用來把事情做對、做快。從今天這幾組指令開始,你已經能完成八成的日常運維。剩下兩成,等你遇到問題時再一個一個學,反而印象更深。
互動話題:你在命令列上踩過最慘的坑是什麼?歡迎在留言區分享,讓大家一起避雷!