很多 VPS 新手不是不會架站,而是第一次被丟進終端機編輯器就動不了。這篇不會把 Vim 講成神兵利器,而是先教你最常用、最容易卡住的操作,讓你先活下來,再學怎麼變快。
你如果不想每次都只是照著別人的畫面一步一步跟著按,卻不知道自己到底改了什麼,這篇會比較適合你。重點不是讓你背流程,而是讓你下次遇到類似情況時,還知道該怎麼自己判斷。
你會學到什麼
- 先學會 Vim / Nano 最常用的核心操作。
- 知道兩者的差異和使用情境。
- 修改設定檔時不再因為編輯器卡住而慌掉。
- 學會 Vim 搜尋取代、多檔案操作與實用 .vimrc 設定。
- 能根據場景做出正確的編輯器選擇。
什麼情況最適合先看這篇
- 第一次自己管理 Linux 主機,想把操作做穩而不是只會貼指令的人
- 你現在正要處理 VPS 上的設定檔編輯操作
- 你希望做完之後不只功能能用,連驗證與排錯也有概念
開始前先確認
- 先知道你現在編輯的是什麼檔案。
- 重要設定檔先備份一份:
cp config.conf config.conf.bak - 如果是在正式站,修改前先找好回退方式。
先提醒你一件事
VPS 最怕的不是不會下指令,而是你不知道指令會影響到哪個服務、哪個設定檔、哪個對外連線。
詳細教學與操作步驟
本文介紹在 Linux 伺服器終端機中,最常用的兩個文字編輯器:適合新手的 Nano 與功能強大的 Vim。學會這些工具,你就能直接在伺服器上修改設定檔與寫代碼。
Nano vs Vim:什麼場景用什麼
在開始學操作之前,先幫你做個決策。不是要你只學一個,而是知道什麼時候該拿哪一個。
| 場景 | 建議用 | 原因 |
|---|---|---|
| 快速改一兩行設定 | Nano | 打開就能改,不需要切模式 |
| 改完想確認差異 | Vim | 內建 diff 模式 |
| 大量搜尋取代 | Vim | 正則表達式支援強 |
| 同時看多個檔案 | Vim | 分割視窗、buffer 切換 |
| 緊急修復(壓力大時) | Nano | 不會因為模式切錯而慌 |
| 長期開發工作 | Vim | 效率隨練習時間成長 |
| 第一次碰 Linux | Nano | 學習曲線平緩 |
一、 新手推薦:Nano 編輯器
Nano 以直觀易用著稱,螢幕下方會顯示常用的快速鍵提示(其中的 ^ 代表 Ctrl 鍵)。
基本操作
- 開啟或建立檔案:
nano 檔案名稱 - 儲存檔案: 按
Ctrl+O,接著按 Enter - 離開編輯器: 按
Ctrl+X - 搜尋文字: 按
Ctrl+W - 搜尋並取代: 按
Ctrl+\
Nano 進階操作
- 跳到指定行:
Ctrl+_然後輸入行號 - 選取文字:
Alt+A開始選取,移動游標選範圍 - 剪下整行:
Ctrl+K - 貼上:
Ctrl+U - 復原(Undo):
Alt+U - 重做(Redo):
Alt+E - 顯示行號:
nano -l 檔案名稱或在編輯中按Alt+N - 開啟語法高亮:
nano -Y sh 腳本.sh
用 .nanorc 自訂 Nano
建立 ~/.nanorc,加入常用設定:
# 顯示行號
set linenumbers
# 啟用滑鼠支援
set mouse
# Tab 轉換為空格
set tabsize 4
set tabstospaces
# 自動縮排
set autoindent
# 顯示游標位置
set constantshow
二、 專家選擇:Vim (Vi Improved) 編輯器
Vim 雖然有學習門檻,但功能極其強大。它分為幾種模式:
- 命令模式 (Normal Mode): 預設模式,按
Esc進入。i:在游標前進入編輯模式。a:在游標後進入編輯模式。o:在下一行新增一行並進入編輯模式。O:在上一行新增一行並進入編輯模式。x:刪除一個字元。dd:刪除一整行。yy:複製一整行。p:貼上。u:復原上一步。Ctrl+r:重做。
- 編輯模式 (Insert Mode): 螢幕下方會顯示
-- INSERT --。在此模式下可自由打字。 - 底行模式 (Command-line Mode): 在命令模式下輸入
:進入。:w:儲存。:q:離開。:wq:儲存並離開。:q!:強制離開(不儲存)。:x:儲存並離開(和:wq效果相同)。
Vim 游標移動進階
比方向鍵更有效率的移動方式:
gg:跳到檔案第一行G:跳到檔案最後一行42G或:42:跳到第 42 行0:跳到行首$:跳到行尾w:跳到下一個單字開頭b:跳到上一個單字開頭{/}:跳到上/下一個段落Ctrl+d:往下半頁Ctrl+u:往上半頁
Vim 搜尋與取代
這是 Vim 最實用的進階功能,改設定檔時用得最多:
搜尋:
/關鍵字:向下搜尋?關鍵字:向上搜尋n:跳到下一個搜尋結果N:跳到上一個搜尋結果*:搜尋游標所在的單字
取代:
# 取代當前行第一個匹配
:s/舊字串/新字串/
# 取代當前行所有匹配
:s/舊字串/新字串/g
# 取代整個檔案所有匹配
:%s/舊字串/新字串/g
# 取代前逐一確認
:%s/舊字串/新字串/gc
# 只在指定行範圍取代(第 10-20 行)
:10,20s/舊字串/新字串/g
實際例子 -- 把設定檔裡的舊 IP 全部換成新 IP:
:%s/192.168.1.100/10.0.0.50/g
把所有 HTTP 網址換成 HTTPS:
:%s/http:\/\//https:\/\//gc
Vim 多檔案操作
管理 VPS 時常常需要同時看好幾個設定檔:
# 同時開啟多個檔案
vim file1.conf file2.conf
# 切換到下一個檔案
:bn
# 切換到上一個檔案
:bp
# 列出所有開啟的檔案
:ls
# 水平分割視窗開新檔
:split another.conf
# 垂直分割視窗開新檔
:vsplit another.conf
# 在分割視窗間切換
Ctrl+w Ctrl+w
# 關閉目前分割視窗
:close
比較兩個檔案差異(diff 模式):
vim -d config.conf config.conf.bak
這在你修改設定檔前先備份、改完要對比差異時非常好用。
實用 .vimrc 設定
在 VPS 上建立 ~/.vimrc,讓 Vim 變得更好用:
" 顯示行號
set number
" 顯示相對行號(方便跳行)
set relativenumber
" 搜尋時即時高亮
set hlsearch
set incsearch
" 搜尋不分大小寫(輸入大寫時自動區分)
set ignorecase
set smartcase
" Tab 設定(4 空格)
set tabstop=4
set shiftwidth=4
set expandtab
" 自動縮排
set autoindent
set smartindent
" 顯示對應的括號
set showmatch
" 啟用滑鼠支援
set mouse=a
" 語法高亮
syntax on
" 顯示游標所在行
set cursorline
" 顯示輸入的指令
set showcmd
" 編碼設定(處理中文)
set encoding=utf-8
set fileencodings=utf-8,big5,gb2312
" 備份檔放到固定位置,不汙染工作目錄
set backupdir=~/.vim/backup//
set directory=~/.vim/swap//
set undodir=~/.vim/undo//
建立對應的目錄:
mkdir -p ~/.vim/{backup,swap,undo}
Vim 實戰場景
以下是管理 VPS 時最常遇到的情境:
場景一:修改 Nginx 設定檔裡的 server_name
vim /etc/nginx/sites-available/default
# 搜尋 server_name
/server_name
# 進入編輯模式修改
i
# 改完按 Esc,然後儲存
:wq
場景二:在設定檔中註解掉某一段
# 選擇第 15 到 25 行,在每行前面加上 #
:15,25s/^/# /
場景三:刪除檔案中所有空白行
:g/^$/d
場景四:查看大型 log 檔的最後 100 行
# 用 vim 開啟後直接跳到最後
vim +$ /var/log/nginx/error.log
其他值得知道的編輯器
除了 Nano 和 Vim,VPS 上偶爾也會碰到這些:
- vi: Vim 的前身,幾乎所有 Linux 都預裝,功能比 Vim 少但基本操作相同。緊急情況下如果只有 vi,你的 Vim 知識一樣適用。
- micro: 現代終端編輯器,操作邏輯接近桌面文字編輯器(Ctrl+S 存檔、Ctrl+Q 離開),新手會覺得很直覺。安裝方式:
curl https://getmic.ro | bash - sed: 嚴格來說不是編輯器,而是串流編輯工具,適合在腳本中做批次取代:
sed -i 's/old/new/g' file.conf
常見問題
Q:我不小心進入 Vim 了,怎麼出去?
別驚慌,這是所有 Linux 新手都會遇到的「困境」。請先按 Esc 鍵幾次,確保在命令模式下,然後輸入 :q! 並按 Enter 即可不儲存直接離開。更多進階設定可參考我們的 VPS 快速入門指南。
Q:如何設定預設編輯器?
你可以執行 update-alternatives --config editor 指令來選擇你系統偏好的文字編輯器。或者在 ~/.bashrc 加入 export EDITOR=vim(或 nano),這樣所有需要開啟編輯器的指令(如 crontab -e、git commit)都會使用你設定的編輯器。
Q:Vim 裡面怎麼複製貼上系統剪貼簿的內容?
從本機貼上文字到 Vim 時,先進入貼上模式避免格式跑掉::set paste,按 i 進入編輯模式後再貼上。貼完後記得 :set nopaste 恢復正常模式。如果你的 Vim 支援 clipboard(vim --version | grep clipboard),可以用 "+p 直接從系統剪貼簿貼上。
Q:改了設定檔但不確定改對了,有什麼快速驗證方法?
養成備份再改的習慣。改完之後用 diff 比對:
diff config.conf config.conf.bak
或者用 Vim 的 diff 模式:vim -d config.conf config.conf.bak,差異會用顏色標示出來。
做完後怎麼確認自己真的有設對
- 改完設定檔後,用對應服務的測試指令確認語法正確,例如
nginx -t、apachectl configtest。 - 重新啟動服務後從外部連一次,確認變更生效。
- 重新看一次你剛剛改過的設定值,確認沒有多餘的空白或打錯字。
- 如果這篇操作會影響正式網站,建議再從不同網路測一次。
這一題最常踩的坑
- 在 Vim 裡不知道自己是插入模式還是普通模式。
- 改完直接關閉,結果根本沒存到。
- 沒有先備份設定檔就直接改。
- 搜尋取代用了
%s但忘了加g,結果每行只改了第一個。 - 設定檔有中文編碼問題,開檔看到亂碼就慌了。
如果你要往下一步走
編輯器上手後,搭配 tmux 教學 會讓你的終端機工作流程更順暢。想深入系統管理,可以看 Linux 系統維護常用指令大全 或 SSH 常用指令手冊。如果你準備開始自己架服務,可以直接對照侃瑞的 VPS 方案與價格 選環境。