National Yunlin University of Science and Technology
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try a Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

1

Local AI

--

Uedu Code

--

雲林科技大學 AQI 62 26°C PM2.5 12
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 18

文字編輯器 nano

複製與剪貼、搜尋與取代、復原
Interaction 15 minute(s)

Learning Objectives

  • 用 nano 開啟或建立檔案,看懂畫面下方的按鍵提示,用 Ctrl+O 存檔、Ctrl+X 離開
  • 用 Alt+6 複製、Ctrl+K 剪下、Ctrl+U 貼上一整行或選取的文字
  • 用 Ctrl+W 搜尋、Alt+W 找下一個,用 Ctrl+\ 搜尋並取代
  • 用 Alt+U 復原、Alt+E 取消復原,知道「全部取代」之後復原是一次還原一處
  • 用 sudo nano 編輯屬於 root 的系統設定檔

在終端機裡改設定檔

Linux 的設定大多寫在文字檔裡(例如 /etc/hosts、/etc/netplan/*.yaml)。透過 SSH 連進伺服器時沒有圖形介面,要在終端機裡直接編輯。

常見的終端機文字編輯器有 vi/vim 與 nano。vim 有「一般模式、插入模式」等不同模式,功能強大但需要時間熟悉; nano 沒有模式之分,打開就能打字,常用的按鍵列在畫面最下方,很適合第一次在終端機裡編輯檔案。Ubuntu 預設已經安裝 nano(Ubuntu 24.04 是 7.2 版)。

nano notes.txt          # 檔案存在就開啟;不存在就建立新檔,存檔時才真的產生
nano +5 notes.txt       # 開啟後游標直接跳到第 5 行

畫面最上方是版本與檔名,中間是內容,最下方兩行是按鍵提示(以下節錄前幾個,視窗越寬顯示越多):

  GNU nano 7.2                      notes.txt
(檔案內容)

^G Help      ^O Write Out  ^W Where Is   ^K Cut
^X Exit      ^R Read File  ^\ Replace    ^U Paste
  • ^ 代表 Ctrl:^O 是 Ctrl+O
  • M- 代表 Alt(Meta):M-U 是 Alt+U。終端機攔截了 Alt 鍵時,可以先按一下 Esc 再按該鍵
  • 忘了按鍵就按 ^G(Ctrl+G)看說明,裡面是這個版本完整的按鍵列表

nano 的常用按鍵

按鍵 功能 說明
Ctrl+O 存檔(Write Out) 下方會顯示檔名,按 Enter 確認
Ctrl+X 離開 有沒存的修改會問 Save modified buffer?:Y 存檔、N 不存、Ctrl+C 取消
Alt+6 複製 沒有選取時複製游標所在的一整行
Ctrl+K 剪下 沒有選取時剪下游標所在的一整行;連按幾次會把連續幾行一起剪下
Ctrl+U 貼上 貼在游標所在的位置
Ctrl+6 或 Alt+A 設定選取起點 移動游標後反白的部分就是選取範圍,再按一次取消;選取後再按 Alt+6 或 Ctrl+K
Ctrl+W 搜尋(Where Is) 輸入要找的字,按 Enter
Alt+W 找下一個 重複上一次的搜尋,不必再輸入一次
Ctrl+\ 搜尋並取代 依序輸入要找的字、要換成的字;每找到一處會問 Y(換)、N(跳過)、A(全部換)
Alt+U 復原(Undo) 回到上一個動作之前
Alt+E 取消復原(Redo) 把剛剛復原的動作做回來

投影片提到用「Alt+方向鍵上/下」往上或往下搜尋,那是較舊版本的按鍵;nano 7.2 的 Alt+↑/Alt+↓ 是把畫面往上或往下捲動一行。 版本不同時按鍵可能不同,以 Ctrl+G 顯示的說明為準。

「全部取代」之後的復原

用 Ctrl+\ 搭配 A 把檔案裡的 file 全部換成 text,復原時不是一次全部還原:每按一次 Alt+U 只還原其中一處。 取代了三處,就要按三次 Alt+U 才會完全回到原狀;按過頭了,用 Alt+E 做回來。

互動練習:用 nano 編輯 /tmp/smb.conf

對應投影片 Lab01~Lab03。按 nano /tmp/smb.conf 開啟檔案後,上方的按鈕會換成 nano 的按鍵:每一顆按鈕代表在真的 nano 裡按的那組鍵(例如「Alt+6 複製這一行」)。依任務複製並貼上 [global] 這一行、存檔,搜尋 comment、把 [global] 全部取代成 [nanotest],再用復原還原回 [global];注意取代了兩處,復原要按兩次。離開 nano 後用 cat 看檔案的最後結果。

用 sudo nano 編輯系統檔案

/etc 底下的設定檔屬於 root,一般使用者只能讀、不能寫:

$ ls -l /etc/hosts
-rw-r--r-- 1 root root 132 Oct 29 14:30 /etc/hosts

不加 sudo 用 nano 開啟時,下方會先提醒 [ File '/etc/hosts' is unwritable ];硬要存檔會出現 [ Error writing /etc/hosts: Permission denied ],改了半天卻存不進去。這時按 Ctrl+X、選 N 放棄修改,再用 sudo 重新開啟:

sudo nano /etc/hosts

sudo 只在這一次讓 nano 以 root 身分執行,存檔後檔案的擁有者仍然是 root。

修改系統設定檔前,先備份一份:sudo cp /etc/hosts /etc/hosts.bak。改壞了可以用備份還原。

互動練習:用 sudo nano 修改 /etc/hosts

/etc/hosts 記錄主機名稱與 IP 的對應。先確認它屬於 root,試一次一般使用者直接寫入(會被拒絕),再用 sudo nano 開啟,在第二行後面加上一台主機 web01 的對應並存檔離開,最後用 grep 與 ls -l 確認結果。

想一想:nano 的按鍵

1.

nano 下方的提示 ^O Write Out、M-U Undo 分別要怎麼按?

2.

游標停在某一行、沒有選取任何文字,想把這一行複製一份貼在下面,應該怎麼按?

3.

用 Ctrl+\ 把檔案裡的 file 全部取代成 text,總共換了 3 處。想完全回到取代前,要怎麼做?

第 1 次作答

想一想:存檔與權限

1.

在 nano 裡改了內容後按 Ctrl+X,出現 Save modified buffer?,按 N 會怎樣?

2.

用一般使用者執行 nano /etc/hosts,改完存檔出現 Error writing /etc/hosts: Permission denied,應該怎麼做?

第 1 次作答

重點精華回顧

  • nano 檔名 開啟或建立檔案;畫面下方的 ^ 是 Ctrl、M- 是 Alt,忘了按鍵就按 Ctrl+G。
  • Ctrl+O 存檔、Ctrl+X 離開;有未存的修改時,Y 存檔、N 放棄、Ctrl+C 取消。
  • Alt+6 複製、Ctrl+K 剪下、Ctrl+U 貼上;沒有選取時處理整行,Ctrl+6 或 Alt+A 開始選取。
  • Ctrl+W 搜尋、Alt+W 找下一個;Ctrl+\ 搜尋並取代,每一處可選 Y、N 或 A(全部)。
  • Alt+U 復原、Alt+E 取消復原;全部取代之後,復原是一次還原一處。
  • 系統設定檔用 sudo nano 編輯,修改前先備份。
這一課完成了!
Next lesson:軟體管理 APT
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。