於上一篇google講師先安排了基本的linux指令教學,透過基本指令的教學由APT安裝和管理網路安全工具Suricata和tcpdump先初步讓讀者熟悉非圖形的操作介面,然而本篇將課程中會用到的進階指令都整理出來。
**核心概念 **
檔案系統: Linux 系統用於組織資料的層次結構,類似於一棵樹。
根目錄: 檔案系統的起始點,用 / 表示。
目錄: 用於組織文件的容器。
檔案: 儲存資料的單位。
路徑: 用於定位檔案或目錄的位置。
**主要命令 **
pwd: 顯示當前工作目錄。
ls: 列出當前目錄下的檔案和目錄。
cd: 切換工作目錄。
cat: 顯示整個文件的內容。
head: 顯示文件的前幾行。
**學習重點 **
檔案系統的樹形結構: 理解根目錄、子目錄和檔案之間的關係。
基本導航命令: 掌握 pwd, ls, cd 的用法。
查看文件內容: 了解 cat 和 head 命令的作用。
切換到 Linux 並讀取檔案內容
在本文中,您將回顧如何在 Bash 中使用 Linux 命令導航檔案系統。您將進一步探索 Linux 檔案系統層次結構標準的組織,查看用於導航和讀取檔案內容的幾個常見 Linux 命令,並學習一些新命令。
檔案系統層次結構標準 (FHS)
之前,您了解到檔案系統層次結構標準(FHS)是 Linux 中組織資料的元件。 FHS 很重要,因為它定義了目錄、目錄內容和其他儲存在作業系統中的組織方式。
下圖說明了 FHS 下的關係層次結構:
流程圖從頂部的根目錄開始,然後分支到多個子目錄。
功能:
pwd
功能:
-l
: 以長格式顯示,包括權限、擁有者、大小等資訊。-a
: 顯示所有檔案,包括隱藏檔案(以 .
開頭)。-d
: 僅顯示目錄。-r
: 反向排序。ls -l
ls -a
ls -d
功能:
常用用法:
cd 目錄名稱
: 切換到指定目錄。cd ..
: 返回上一層目錄。cd ~
: 切換到主目錄。範例:
cd Documents
功能:
常用選項:
-n
: 顯示行號。範例:
cat readme.txt
功能:
顯示文件開頭的幾行。
常用選項:
-n number: 顯示前 number 行。
範例:
head -n 5 log.txt # 顯示 log.txt 的前 5 行
功能:
將指定文件進行複製。
範例:
cp file1.txt file2.txt # 將 file1.txt 複製到 file2.txt
功能:
將指定文件移動到目標目錄。
mv file1.txt new_folder/ # 將 file1.txt 移動到 new_folder 目錄下
功能:
刪除指定文件。
範例:
rm file.txt # 刪除 file.txt 檔案
顯示您的工作目錄。目前工作目錄包含多少個目錄?
開啟終端機: 首先,你需要開啟一個終端機視窗。
輸入 pwd
命令: 這個命令會顯示你目前所在目錄的完整路徑。
pwd
示例輸出:
/home/user/documents
輸入 ls
命令: 列出當前目錄下的所有檔案和目錄。
ls -l
數目目錄數量: 根據 ls -l
的輸出,統計目錄的數量。
/home/analyst/logs
4
路徑切換到 /home/analyst/reports
目錄,並列出該目錄下的子目錄。
切換目錄:
cd /home/analyst/reports
列出子目錄:
ls
假設 /home/analyst/reports
目錄下有 projects
、documents
、old_reports
三個子目錄。
路徑切換到 /home/analyst/reports/users
目錄,讀取 Q1_added_users.txt
文件,並回答相關問題。
切換目錄:
cd /home/analyst/reports/users
查看文件內容:
cat Q1_added_users.txt
根據文件內容回答問題: 仔細閱讀文件中的資訊。
路徑切換到 /home/analyst/logs
目錄,查看 server_logs.txt
文件的前 10 行,並統計警告訊息的數量。
切換目錄:
cd /home/analyst/logs
查看文件前 10 行:
head -n 10 server_logs.txt
統計警告訊息:
手動逐行查看,或使用 grep
命令查找包含 "警告" 的行。
grep -c '警告' server_logs.txt
grep
命令範例:尋找包含特定字串的行:
grep "error" log.txt
忽略大小寫搜索:
grep -i "warning" messages.log
顯示行號:
grep -n "password" config.ini
列出所有 .txt
結尾的檔案,並顯示包含 "data" 的行:
ls *.txt | grep "data"
計算一個目錄下所有 .log
文件中 "error" 出現的總次數:
grep -c "error" *.log
查找所有以 "user_" 開頭,並且包含 "admin" 的檔案:
find . -name "user_*" | xargs grep "admin"
/home/analyst/logs
目錄。grep error server_logs.txt
命令搜索包含 "error" 的行。/home/analyst/reports/users
目錄。ls | grep "Q1"
命令列出名稱中包含 "Q1" 的文件。/home/analyst/reports/users
目錄。grep
命令在 Q2_deleted_users.txt
和 Q4_added_users.txt
文件中搜索使用者名稱和部門資訊。尋找包含特定字串的行:
grep "error" log.txt
忽略大小寫搜索:
grep -i "warning" messages.log
顯示行號:
grep -n "password" config.ini
列出所有 .txt
文件中包含 "data" 的行:
ls *.txt | grep "data"
計算所有 .log
文件中 "error" 的總數量:
grep -c "error" *.log
find
和 xargs
,在多個文件中搜索查找所有以 "user_" 開頭,並且包含 "admin" 的檔案:
find . -name "user_*" | xargs grep "admin"
mkdir
指令mkdir network
rmdir
指令rmdir network
touch
指令touch requests.txt
rm
指令rm requests.txt
mv
指令mv requests.txt /home/analyst/logs
mv requests.txt newname.txt
cp
指令cp requests.txt /home/analyst/logs
nano
文字編輯器nano requests.txt
Ctrl + O
Ctrl + X