National Yang Ming Chiao Tung University
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 70 24°C PM2.5 19
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 06

初次使用系統

登入登出、bash shell 與基礎指令
Interaction 15 minute(s)

Learning Objectives

  • 在圖形介面與文字介面登入、登出 Ubuntu
  • 看懂提示字元 student@ubuntu:~$ 每一段的意思,知道自己正在使用 bash shell
  • 用 history 查看用過的指令,用 Tab 補全指令與檔名,用 alias 建立指令別名
  • 用 ls、cd、mkdir、rm 完成基本操作,並搭配萬用字元一次處理多個檔案

第一次登入 Ubuntu

安裝完成、重新開機之後,第一件事是用安裝時建立的帳號登入。Ubuntu 有兩種登入畫面:

版本 登入方式 登出方式
桌面版(Desktop) 在圖形登入畫面點選帳號、輸入密碼 點右上角的系統選單,在電源選項裡選擇「登出」(Log Out)
伺服器版(Server) 在文字畫面輸入帳號,再輸入密碼 輸入 exit,或按 Ctrl + D

伺服器版開機後會停在文字登入畫面:

Ubuntu 24.04.1 LTS ubuntu tty1

ubuntu login: student
Password:
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-45-generic x86_64)

student@ubuntu:~$

輸入密碼時畫面不會顯示任何字元,也不會出現星號,這是正常的。打完密碼直接按 Enter 即可。 桌面版要使用指令時,開啟「終端機」(Terminal)程式,快速鍵是 Ctrl + Alt + T。

提示字元與 bash shell

登入後看到的 student@ubuntu:~$ 叫做提示字元(prompt),表示系統在等你輸入指令。每一段都有意思:

部分 意思
student 目前登入的使用者名稱
@ubuntu 這台電腦的主機名稱
:~ 目前所在的目錄;~ 代表自己的家目錄 /home/student
$ 一般使用者;如果是系統管理員 root,這裡會變成 #

切換到 /etc 之後,提示字元會變成 student@ubuntu:/etc$,從提示字元就能知道自己在哪個目錄。

接收指令、解讀後交給系統執行的程式叫做 shell。Ubuntu 預設的 shell 是 bash(Bourne Again SHell), 用 echo $SHELL 可以確認:

$ echo $SHELL
/bin/bash

投影片的範例以 root 身分登入(提示字元是 root@vm:~#)。Ubuntu 預設用一般使用者登入, 需要管理權限時才在指令前加 sudo(在「使用者與權限」一課說明)。

bash 的四項基本功能

1. 命令歷史:history

用過的指令都會被記下來。按鍵盤的 ↑、↓ 可以叫出前後的指令,修改後再按 Enter;history 列出所有紀錄,每一筆前面有編號。

寫法 作用
history 列出用過的指令與編號
!25 再執行一次第 25 筆指令
!! 再執行一次上一個指令

紀錄存在家目錄的隱藏檔 ~/.bash_history。這一次登入期間的指令先存在記憶體裡,登出時才寫進檔案, 所以登入期間用 cat ~/.bash_history 看不到這次打過的指令。Ubuntu 預設的 ~/.bashrc 設定 HISTSIZE=1000(記憶體裡保留 1000 筆)、 HISTFILESIZE=2000(檔案最多保留 2000 筆)。

2. 補全:Tab 鍵

指令或檔名打到一半時按 Tab,bash 會自動補完;開頭相同的候選不只一個時,連按兩次 Tab 會列出所有候選。 例如輸入 ls 後連按兩次 Tab,會列出所有以 ls 開頭的指令(ls、lsblk、lscpu 等)。 善用 Tab 可以少打字,也能避免檔名打錯。下方的模擬器只能按按鈕,請在自己的 Ubuntu 上試試看。

3. 指令別名:alias

alias list=ls 讓 list 變成 ls 的另一個名字。直接輸入 alias 會列出目前所有的別名;Ubuntu 預設就有 ll(等於 ls -alF)、la、l 三個。 用 alias 指令建立的別名只在這一次登入有效,想要永久保留,要把同一行寫進 ~/.bashrc。

4. 萬用字元

符號 意思 例子
* 任意長度的任意字元(包含零個字元) ls -l file-* 列出開頭是 file- 的檔案
? 剛好一個任意字元 ls file-?.txt 符合 file-1.txt,不符合 file-10.txt

萬用字元由 bash 先展開成符合的檔名清單,再交給指令執行,所以 ls、mv、rm 都能用。

基礎入門指令:ls、cd、mkdir、rm

指令 作用 例子
ls 列出目前目錄的檔案與目錄 ls -l 以清單方式列出詳細資訊
cd 切換目錄(change directory) cd /etc 到 /etc、cd ~ 回家目錄、cd .. 到上一層、cd / 到根目錄
mkdir 建立目錄(make directory) mkdir sample
rm 刪除檔案(remove) rm ./file1.txt、rm ./file1.*、rm -v 顯示刪除了哪些檔案

注意 cd 和 .. 之間要有空格。投影片寫成 cd..,bash 會把它當成一個名叫 cd.. 的指令,結果出現找不到指令(command not found)的訊息。 正確的寫法:

student@ubuntu:/etc$ cd ..
student@ubuntu:/$

萬用字元可以讓一個指令處理一群檔案:

ls -l ./file-*       # 列出目前目錄下開頭是 file- 的檔案
mv ./file-* ./aa     # 把它們全部移到 aa 目錄
rm -v ./aa/file-*    # 刪除 aa 裡開頭是 file- 的檔案,並列出刪了哪些

終端機裡用 rm 刪除的檔案不會進資源回收筒。搭配 * 刪除前,先用 ls 加同樣的萬用字元看一次會選到哪些檔案。

互動練習:第一次在終端機下指令

這一段對應投影片的 Lab1~Lab3:確認自己的身分與 shell、建立 list 別名、用 cd 在目錄之間移動、建立 sample 目錄,再用萬用字元一次搬移與刪除 file- 開頭的檔案,最後用 history 看看剛才打過哪些指令。每顆按鈕都是一行真的指令,按下後留意提示字元裡的目錄怎麼變;其中 cd.. 是故意寫錯的,看看錯誤訊息。

讓別名永久生效

在真的系統上,用指令建立的 list 別名登出後就會消失。要讓它每次登入都在,用文字編輯器(後面的 nano 一課會教) 在 ~/.bashrc 最後加上一行:

alias list='ls'

存檔後執行 source ~/.bashrc(或重新登入)就會生效。管理別名的指令:

寫法 作用
alias 列出目前所有別名
type ll 查詢 ll 是什麼,會顯示它是 ls -alF 的別名
unalias list 取消 list 別名

別名不要取成和既有指令同名,以免之後忘記原本的指令被換掉了。

想一想:提示字元與 bash

1.

提示字元是 alice@web01:/var/log$,下列哪一個說法正確?

2.

登入後打了幾個指令,接著執行 cat ~/.bash_history,沒看到剛才打的指令,原因是?

3.

執行 alias list=ls 之後登出再登入,輸入 list 會怎樣?

第 1 次作答

想一想:基礎指令與萬用字元

1.

目錄裡有 file-1.txt、file-2.txt、file-10.txt、notes.txt,ls file-?.txt 會列出哪些?

2.

在 /etc 輸入 cd.. 出現找不到指令,應該怎麼改?

3.

下列哪一個指令會回到自己的家目錄?

第 1 次作答

重點精華回顧

  • 伺服器版在文字畫面輸入帳號與密碼登入,輸入密碼時畫面不會顯示字元;exit 或 Ctrl + D 登出。
  • 提示字元是「使用者@主機名稱:目前目錄」,結尾 $ 是一般使用者,# 是 root。
  • Ubuntu 預設的 shell 是 bash,echo $SHELL 可以確認。
  • history 列出用過的指令,紀錄在登出時寫進 ~/.bash_history;↑、↓ 叫出前後的指令。
  • Tab 補全指令與檔名,連按兩次列出候選。
  • alias 名稱=指令 建立別名,寫進 ~/.bashrc 才會永久保留;Ubuntu 預設有 ll。
  • ls、cd、mkdir、rm 是最基本的四個指令;cd .. 中間要有空格。
  • * 代表任意個字元、? 代表一個字元;用 rm 搭配萬用字元前,先用 ls 確認會選到哪些檔案。
這一課完成了!
Next lesson:查指令說明
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。