03.掌握 Ubuntu Server 的 Linux 命令列

命令列是 Linux 伺服器管理的核心。無論您是初學者還是經驗豐富的系統管理員,了解命令列管理的基礎知識對於有效管理 Ubuntu Server 都至關重要。本文深入介紹 Linux 命令列,涵蓋用於管理檔案、目錄和伺服器環境的基本命令、工具和技術。


上一篇文章:

01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何設定您的第一台 Ubuntu Server:初學者指南 – SysOSX: AI & Cloud



為什麼要學習命令列?

Linux 命令列可透過 終端機 存取,是與作業系統互動的強大工具。與圖形介面不同,命令列提供:

  • 速度:使用命令執行任務比透過 GUI 介面更快。
  • 彈性:使用指令碼自動執行流程並執行複雜操作。
  • 控制:存取更深層的系統功能並有效疑難排解。

在 Ubuntu Server 上存取命令列

Ubuntu Server 安裝預設不包含圖形介面,因此所有互動都透過終端機進行。以下是存取命令列的常見方法:

1. 透過本機主控台直接存取

登入 Ubuntu Server 後,您將看到終端機介面。

2. 透過 SSH 遠端存取

使用安全殼層(SSH)遠端存取您的伺服器:

ssh username@server_ip


初學者必備 Linux 命令

1. 瀏覽檔案系統

了解 Linux 檔案系統階層架構對於管理檔案和目錄至關重要。

檢視目前目錄:pwd

顯示目前工作目錄:

pwd

列出目錄內容:ls

列出目前位置的檔案和目錄:

ls

選項:

  • ls -l:包含權限、所有權和大小的詳細清單。
  • ls -a:包含隱藏檔案(以 .)。

切換目錄:cd

切換到另一個目錄:

cd /path/to/directory

範例:

  • cd ..:向上一級。
  • cd ~:切換到主目錄。

2. 管理檔案和目錄

建立目錄:mkdir

建立新目錄:

mkdir directory_name

範例:建立子目錄結構。

mkdir -p /home/user/documents/projects

說明:

  • -p 選項會在父目錄不存在時建立它們(例如,documents 和 projects)。

刪除目錄:rmdir

刪除空目錄:

rmdir directory_name

範例:

rmdir /home/user/old_directory

複製檔案:cp

複製檔案或目錄:

cp source_file destination_file

範例:將檔案複製到新目錄。

cp /home/user/file.txt /home/user/backup/file.txt

複製整個目錄:

cp -r /home/user/documents /home/user/backup/documents

移動或重新命名檔案:mv

移動或重新命名檔案:

mv old_name new_name

範例:重新命名檔案。

mv file.txt renamed_file.txt

將檔案移動到另一個目錄:

mv /home/user/file.txt /home/user/backup/

刪除檔案:rm

刪除檔案或目錄:

rm file_name

範例:刪除檔案。

rm /home/user/file.txt

刪除目錄及其內容:

rm -r /home/user/old_directory

警告:請謹慎使用 rm,以避免誤刪。


3. 檢視和編輯檔案

檢視檔案內容:cat

顯示檔案內容:

cat file_name

範例:

cat /etc/hostname

分頁檢視檔案內容:less

允許捲動瀏覽檔案內容:

less file_name

範例:

less /var/log/syslog

建立或編輯檔案:nano

一款對初學者友善的文字編輯器:

nano file_name

範例:建立新檔案或編輯現有檔案。

nano /home/user/new_file.txt

在檔案中搜尋文字:grep

在檔案中搜尋特定字串:

grep "search_term" file_name

範例:在記錄檔中尋找錯誤訊息。

grep "error" /var/log/syslog


4. 系統管理命令

檢查磁碟使用情況:df

顯示磁碟空間使用情況:

df -h

選項:

  • -h:人類可讀的格式。

檢查記憶體使用情況:free

顯示記憶體使用情況:

free -h

監控系統處理程序:top

顯示正在執行的處理程序和系統資源使用情況:

top

替代方案:

  • htop:更易於使用的處理程序監視器(透過以下命令安裝 sudo apt install htop)。

管理服務:systemctl

控制系統服務:

sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name

關機或重新啟動:shutdown

關閉或重新啟動伺服器:

sudo shutdown now    # Immediate shutdown
sudo shutdown -r now # Immediate restart

5. 檔案權限和所有權

Linux 使用權限模型來控制對檔案和目錄的存取。

檢視檔案權限:ls -l

以詳細格式顯示檔案權限:

ls -l

變更檔案權限:chmod

修改檔案權限:

chmod 644 file_name

變更檔案所有權:chown

變更檔案所有權:

sudo chown new_owner:new_group file_name


6. 搜尋和尋找檔案

定位檔案:locate

locate 命令預設未安裝。請先安裝它:

sudo apt update
sudo apt install mlocate

更新資料庫:

sudo updatedb

搜尋檔案:

locate file_name

尋找檔案:find

根據條件搜尋檔案:

find /path -name "file_name"


7. 網路命令

檢查網路連線能力:ping

測試與主機的連線能力:

ping google.com

檢查開放連接埠:ss

netstat 命令已棄用且預設未安裝。請改用 ss,這是一種現代替代方案:

ss -tuln

說明:

  • -t:顯示 TCP 連線。
  • -u:顯示 UDP 連線。
  • -l:顯示接聽連接埠。
  • -n:顯示數字位址和連接埠。

測試遠端連線能力:curl

從 URL 取得資料:

curl http://example.com


命令列管理的實用技巧

1. 使用 Tab 補全

在鍵入命令或檔案名稱時按 Tab,以自動補全路徑或命令。

2. 使用歷史命令

存取以前執行過的命令:

history

執行歷史記錄中的特定命令:

!number

3. 重新導向輸出

將命令輸出儲存到檔案:

command > output_file

4. 串連命令

依序執行多個命令:

command1 && command2

範例工作流程:設定 Web 伺服器

以下是使用基本命令設定 Web 伺服器的逐步指南。請按照以下說明設定您的自訂網站,並確保它取代預設的 Apache 頁面。


1. 更新系統

保持系統更新對於安全和穩定至關重要。執行以下命令以更新和升級所有套件:

sudo apt update && sudo apt upgrade -y


2. 安裝 Apache

安裝 Apache Web 伺服器:

sudo apt install apache2 -y

安裝完成後,驗證 Apache 是否正在執行:

sudo systemctl status apache2

您應該會看到類似以下的狀態訊息:Active: active (running)。


3. 為您的網站建立目錄

建立目錄來儲存您的網站檔案。在本範例中,我們將建立一個名為 mywebsite:

sudo mkdir -p /var/www/mywebsite


4. 設定權限

設定正確的所有權和權限,以便 Apache 可以存取網站檔案:

sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite

5. 建立範例 HTML 檔案

新增一個簡單的 index.html 檔案作為您網站的首頁:

sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>
EOF

這會建立一個基本頁面,顯示:“Welcome to My Website”。


6. 設定虛擬主機

要提供您的自訂網站,請為 Apache 建立新的虛擬主機設定檔:

sudo nano /etc/apache2/sites-available/mywebsite.conf

將以下內容貼到檔案中:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywebsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

按 Ctrl+O 儲存檔案,然後按 Ctrl+X 退出。


7. 啟用您的網站

啟用新的虛擬主機設定:

sudo a2ensite mywebsite.conf

停用 Apache 的預設網站設定,以確保提供您的網站:

sudo a2dissite 000-default.conf

重新載入 Apache 以套用變更:

sudo systemctl reload apache2


8. 測試連線能力

執行以下命令檢查您的網站是否正常運作:

curl http://localhost

您應該會看到自訂 index.html 檔案的 HTML 內容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome to My Website</h1>
</body>
</html>

或者,開啟瀏覽器並前往 http://<your-server-ip> 以檢視您的網站。


疑難排解

如果您仍然看到預設的 Apache 頁面或遇到問題:

  • 確保您的網站已啟用
    驗證您的設定是否處於作用中狀態:
ls /etc/apache2/sites-enabled/ 
  • 您應該會看到 mywebsite.conf。如果沒有,請使用以下命令啟用它:
sudo a2ensite mywebsite.conf
  • 檢查 Apache 記錄
    在記錄中尋找錯誤:
sudo tail -f /var/log/apache2/error.log
  • 重新啟動 Apache
    如果問題仍然存在,請重新啟動 Apache:
sudo systemctl restart apache2

結論

掌握 Linux 命令列對於有效的 Ubuntu Server 管理至關重要。透過學習和練習這些命令,您將獲得管理伺服器環境、疑難排解和有效執行管理任務的信心。

後續步驟:管理使用者和權限

一旦您熟悉了命令列管理的基礎知識,伺服器管理的下一個關鍵步驟就是了解 使用者、群組和權限。妥善管理使用者帳戶和存取控制對於維護安全以及確保只有獲得授權的個人才能存取或修改伺服器上的敏感檔案和資源至關重要。

在下一篇文章中,“管理使用者和權限”,我們將介紹:

  • 如何建立、修改和刪除使用者帳戶。
  • 管理群組以實現有效的存取控制。
  • 了解檔案和目錄權限(讀取、寫入、執行)。
  • 使用 sudo 等進階工具進行權限提升。
  • 在 Ubuntu Server 上保護使用者帳戶的最佳做法。

敬請期待可操作的見解,以增強您的安全和存取管理!

14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”

發表留言