Linux基礎知識(Ubuntu)

小肚腩吖發表於2024-05-17

檔案許可權

意義

img

許可權型別

1. r 可讀
2. w 可寫
3. x 可執行/切換陌路
4. - 無許可權

萬用字元

* 匹配0個或多個字串
?匹配1個字元
[abcd] 匹配abcd中間任意一個字元
[a-Z] 匹配a-Z範圍裡的任意一個字元
[!abc] 不匹配方括號裡的任何一個字元 ;與[^abc]一致

幫助命令

man

語法

man [man options] [[section] page ...]...
man -k [apropos options] regexp ...
man -K [man options] [section] term ...
man -f [whats options] page ...
man -l [man option] file ...
man -w|-W [man options] page ...

引數

-f 顯示給定關鍵字的簡短描述資訊
-k 根據關鍵詞搜尋幫助手冊
-w 顯示手冊檔案所在位置

快捷操作

空格鍵      下翻一頁
Enter鍵      下滾一行
j           下滾一行
k           上滾一行
b           回翻一頁
f           下翻一頁
q           退出
/word       搜尋word關鍵詞

案例

檢視cp命令的幫助手冊        man cp
檢視sleep命令的簡要資訊     man -f sleep
檢視第3個章節的sleep資訊    man 3 sleep
檢視passwd檔案的詳細介紹    man 5 passwd
檢視ls命令的幫助手冊檔案所在位置    man -w ls
搜尋disk相關的幫助手冊      man -k disk

info

作用:閱讀info 格式的檔案

語法

info [OPTION]...[MENU-ITEM..]

引數

-w 顯示info文件的物理位置
-f 指定要訪問的info檔案
-n 在首個瀏覽過info檔案中指定節點
-O 跳轉至命令列選項

常用操作

n           顯示下一節點的頁面內容
p           顯示上一節點的頁面內容
l           返回上一個訪問節點的頁面內容
空格鍵      向前滾動一頁
退格鍵/del  向後滾動一頁
b/e         一個節點內容的開始/結束
h           開啟info教程
d           回到info的初始節點
Enter鍵       跳轉到連結文字
q           退出

案例

檢視ls命令的info文件           info ls 
顯示ls命令info文件的物理位置    info -w ls

whatit

作用:查詢一個命令執行什麼功能並將查詢結果列印到終端上

語法

whatis 命令

案例

查詢sleep命令的功能
whatis sleep

touch 建立空檔案與修改時間戳命令

作用:

  1. 改變已有檔案的時間戳屬性。(注意:在修改檔案的時間屬性的時候,使用者必須是檔案的屬主,或擁有寫檔案的訪問許可權)
  2. 建立新的空檔案

語法

touch [OPTION]...FILE...

引數

-a      改變檔案的讀取時間記錄
-m      改變檔案的修改時間記錄
-r      使用參考檔案的時間記錄,與--file的效果一致
-c      不建立新檔案
-d      使用指定字串表示時間式
-t      設定檔案的時間記錄,格式與date命令相同
--no-create     不建立新檔案

案例

  1. 建立一個空檔案
touch file.txt
(前提:file.txt檔案不存在)
  1. 建立多個空檔案
touch file1.txt file2.txt file3.txt
touch file{1..3}.txt
  1. 修改已有檔案的時間戳為當前系統時間(包括修改時間和訪問時間)
touch file.txt
  1. 修改檔案的access時間(檔案的access時間指的是檔案被訪問或讀取的時間)
touch -a file.txt
  1. 修改檔案的modify時間(檔案的modify時間指的是檔案被修改的時間)
touch -m file.txt
  1. 強制避免建立新檔案
touch -c nofile.txt
touch --no-create.nofile.txt
  1. 將訪問和修改時間從一個檔案複製到另一個檔案(將ref_file.txt的訪問和修改時間複製到file.txt)
touch file.txt -r ref_file.txt
  1. 修改檔案時間為明天
touch -d "tomorrow" file.txt
  1. 修改檔案時間為任意時間
touch -t 202403060000 file.txt

mkdir 目錄建立命令

作用:建立目錄
注意:預設狀態下,如果要建立的目錄已經存在,則提示已存在,而不會繼續建立目錄,新建的目錄與它所在目錄下的檔案有重名也不行。

語法

mkdir [OPTION]...DIRECTORY

引數

-p 遞迴建立多級目錄
-m 建立目錄的同時設定目錄的許可權
-v 顯示目錄的建立過程

案例

  1. 在當前目錄下建立一個名為dir1的子目錄
mkdir dir1
  1. 建立多個目錄
mkdir dir2 dir3 dir4
mkdir dir{5..7}
  1. 遞迴建立目錄
mkdir -p dir7/dir8/dir9
  1. dir1目錄下建立子目錄dir10,並且設定檔案許可權 700
mkdir -m 700 dir1/dir10
  1. 顯示目錄的建立過程
mkdir -v dir[11...13]

rmdir 刪除空目錄命令

作用:刪除空目錄

語法

rmdir [OPTION]...DIRECTORY

引數

-p 用遞迴的方式刪除指定的目錄路徑中的所有父級目錄,非空則報錯
-v 顯示命令的詳細執行過程

案例

  1. 刪除空目錄
rmdir dir
  1. 遞迴刪除多重目錄
rmdir -p dir1/dir2/dir3
  1. 顯示指令詳細執行過程
rmdir -v dir

mv 移動或重新命名命令

作用:

  1. 移動檔案;
  2. 重新命名檔案

語法

mv [OPTION]...[-T] SOURCE DEST
mv [OPTION]...SOURCE...DIRECTORY
mv [OPTION]...-t DIRECTORY SOURCE...

引數

-i 若存在同名檔案,則向使用者詢問是否覆蓋
-f 覆蓋已有檔案時,不進行任何提示
-b 當檔案存在時,覆蓋前為其建立一個備份
-u 當原始檔比目標檔案新,或者目標檔案不存在時,才執行移動此操作

案例

  1. 將檔案file.txt移動到目錄dir
mv file.txt dir
  1. file.txt重新命名為newfile.txt
mv file.txt newfile.txt
  1. 將目錄dir1移動到目錄dir2中(前提是目錄dir2已存在,若不存在則改名)
mv dir1 dir2
  1. file1.txt改名為file2.txt,如果file2.txt已經存在,則詢問是否覆蓋
mv -i file1.txt file2.txt
  1. 將檔案file1.txt改名為file2.txt,如果file2.txt已經存在,則直接覆蓋
mv -f file1.txt file2.txt
  1. 檔案被覆蓋前做備份
mv -b file1.txt file2.txt
  1. 原始檔比目標檔案新時才執行更新
mv -u file1.txt file2.txt
  1. 移動當前資料夾下的所有檔案到上一級目錄
mv * ./
  1. 將當前目錄的一個子目錄裡的檔案移動到另一個子目錄裡
mv dir3/* dir2

cp 複製命令

作用:複製檔案到目錄

語法

cp [OPTION]...[-T] SOURCE DEST
cp [OPTION]...SOURCE...DIRECTORY
cp [OPTION]...-t DIRECTORY SOURCE...

引數

-f 若目標檔案已存在,則會直接覆蓋
-i 若目標檔案已存在,則會詢問是否覆蓋
-a 通常在複製目錄時使用,它保留連結,檔案屬性,並複製到目錄下的所有內容
-r 遞迴複製檔案和目錄
-b 覆蓋已存在的檔案目標前將目標檔案備份
-v 詳細顯示cp命令執行的操作過程

案例

  1. 複製檔案
cp file1.txt file2.txt
  1. 複製目錄
cp -r dir1 dir2
  1. 複製檔案,若目標檔案已存在,則詢問是否覆蓋
cp -i file1.txt file2.txt
  1. 複製檔案,若目標檔案已存在,則直接覆蓋,不提示
cp -f file1.txt file2.txt
  1. 複製檔案,若目標檔案已存在,則先進行備份
cp -b file1.txt file2.txt
  1. 複製目錄,並且保留源目錄所有屬性都一致
cp -a dir1 dir2

cd 目錄操作

作用:切換目錄

語法

cd [引數] 目錄

幾個特殊目錄

~ 使用者家目錄
. 當前目錄
.. 當前目錄的上一級目錄
/ 根目錄
- 上一次所在的目錄

相對路徑與絕對路徑

  1. 起始路徑為 / 的稱為絕對路徑
  2. 起始路徑不是為 / 的稱為相對路徑

案例

  1. 切換到dir 目錄
cd dir
  1. 切換到上兩級目錄
cd ../..
  1. 切換到家目錄
cd ~
cd
  1. 切換到上一次所在的目錄
cd -

目錄操作

pwd

作用:顯示當前路徑

語法

pwd

案例

顯示當前路徑

pwd

ls

作用:顯示目錄資訊

語法

ls [OPTION]...[FILE]...

引數

-a  顯示所有檔案及目錄(包括以"."開頭的隱藏檔案)
-l  使用長格式列出檔案及目錄資訊
-r  將檔案以相反次序顯示(預設依英文字母次序)
-t  根據最後的修改時間排序
-h  以人類可讀的格式顯示數字大小
-A  同 -a,但不列出 .(當前目錄)及 ..(父目錄)
-S  根據檔案大小排序
-R  遞迴列出所有子目錄
-F  在列出的檔名稱後加一符號;例如可執行檔則加*,目錄則加/

案例

  1. 列出當前目錄所有檔案(包括隱藏檔案)
ls -a
  1. 列出當前目錄檔案的詳細資訊
ls -l
  1. 列出根目錄 / 下所有檔案
ls /
  1. 列出當前目錄下所有檔案和目錄的詳細資訊(包括子目錄內容)
ls -lR
  1. 列出當前目錄下所有有f開頭的檔案的詳細資訊
ls -l f*
  1. 列出當前目錄下所有檔案,並根據修改時間倒序排列
ls -ltr
  1. 列出目前工作目錄下所有檔案及目錄;目錄於名稱後加 / ,可執行檔於名稱後加*
ls -AF
  1. 列出當前目錄詳細資訊並以可讀大小顯示檔案大小
ls -lh

tree

作用:以樹狀圖列出目錄內容

語法

tree [引數]

引數

-a  顯示所有檔案和目錄
-L  層級顯示
-t  用檔案和目錄的更改時間排序
-r  用檔案和目錄的更改時間倒序排序
-f  在每個檔案或目錄之前,顯示完整的相對路徑名稱
-d  顯示目錄名稱而非內容

案例

  1. 顯示當前目錄下的檔案和目錄
tree
  1. 顯示所有檔案和目錄
tree -a 
  1. 只顯示目錄
tree -d
  1. 只顯示n層目錄(n為數字)
tree -L 2
  1. 顯示許可權資訊
tree -p
  1. 用檔案和目錄的更改時間排序
tree -t
  1. 以相反次序排序
tree -r
  1. 顯示完整的相對路徑
tree -f

stat 顯示檔案狀態資訊命令

作用:顯示檔案或檔案系統的詳細資訊

語法

stat [OPTION]...FILE...

引數

-L 支援符號連結
-f 顯示檔案系統的資訊
-t 以簡潔的方式輸出

三種時間

  1. atime:access time 訪問時間
    讀取檔案(more/less/cat/tail)、修改時間(vim/nano)時改變
  2. mtime:modify time 修改時間
    修改檔案(vim/nano)時改變
  3. ctime:change time 狀態改變時間
    修改檔案(vim/nano)、檔案屬性變化(chmod/chown)時改變

案例

  1. 檢視檔案file.txt的資訊
stat file.txt
  1. 檢視file.txt檔案所在檔案系統資訊
stat -f file.txt
  1. 以簡潔方式輸出資訊
stat -t file.txt

rename 批次檔案重新命名命令

作用:用字串替換的方式批次改變檔名

語法

rename 's/old-name/new-name/' files
  • 原字串:將檔名需要替換的字串;
  • 目標字串:將檔名中含有的原字串替換成目標字串;
  • 檔案:指定要改變檔名的檔案列表

萬用字元

? 可替代單個字元
* 可替代多個字元

引數

-n 模擬執行,實際命令沒進行重新命名
-v 輸出每步執行資訊
-f 強制改寫

案例

  1. 將myfile.txt改為myfile.doc
rename 's/.txt/.doc/' myfile.txt
  1. 模擬將file1.txt,file2.txt,file3.txt改為file01.txt,file02.txt,file03.txt
rename -n 's/file/file0/' myfile.txt
  1. 實際更改上一步,並輸出執行過程資訊
rename -v 's/file/file0/' myfile.txt

basename 提取檔案或目錄名命令

作用:提取檔案路徑名的檔名

語法

basename NAME [SUFFIX]
basename OPTIN...NAME...

引數

-a  支援處理多個檔案
-s  刪除指定字尾

案例

  1. 提取檔名
basename /etc/passwd
  1. 提取目錄名(刪除最後的/)
basename /usr/local/
  1. 提取多個輸入
base -a /etc/passwd /usr/local/
  1. 刪除指定字尾
basename /etc/sysctl.conf .conf
basename -s .conf /etc/sysctl.conf

dirname:提取路徑目錄部分命令

作用:去除檔名中的非目錄部分

語法

dirname [OPTION] NAME...

案例

  1. 提取檔案的路徑
dirname /usr/bin/cat
  1. 提取目錄的路徑
dirname /home/xdn/commands

chattr_lsattr:修改_檢視檔案屬性命令

作用:更改檔案屬性

語法

chattr [-RVf] +-=[aAcCdDeijsStTu] files

屬性

A: 即Atime,告訴系統不要修改對這個檔案的最後訪問時間
S:即Sync,一旦應用程式對這個檔案執行了寫操作,使系統立刻把修改的結果寫到磁碟
a:即Append Only,系統只允許在這個檔案之後追加資料,不允許任何程序覆蓋或截斷這個檔案。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改檔案,而不允許刪除任何檔案。
b:不更新檔案或目錄的最後存取時間。
c:將檔案或目錄壓縮後存放。
d:當dump程式執行時,該檔案或目錄不會被dump備份
D:檢查壓縮檔案中的錯誤。
i:即Immutable,系統不允許對這個檔案進行任何的修改。如果目錄具有這個屬性,那麼任何的程序只能修改目錄之下的檔案,不允許建立和刪除檔案。
s:徹底刪除檔案,不可恢復,因為是從磁碟上刪除,然後用0填充檔案所在區域。
u:當一個應用程式請求刪除這個檔案,系統會保留其資料塊以便以後能夠恢復刪除這個檔案,用來防止意外刪除檔案或目錄。
t:檔案系統支援尾部合併(tail-merging)。
X:可以直接訪問壓縮檔案的內容。

引數

-R:遞迴處理目錄下的所有檔案。
-v:設定檔案或目錄版本。
-V:顯示指令執行過程。
+ : 開啟檔案或目錄的該項屬性。
- : 關閉檔案或目錄的該項屬性。
= : 指定檔案或目錄的該項屬性。

案例

  1. 防止某個關鍵檔案被修改
chattr +i file.txt
  1. 解鎖
chattr -i file.txt
  1. 只允許檔案追加內容(對日誌檔案特別有用)
chattr +a file.txt
  1. 對一個目錄中的所有檔案新增許可權
chattr -R +i dir
  1. 檢視檔案屬性
lsattr file.txt

file:識別檔案型別命令

作用:識別檔案型別

語法

file [引數] 檔案

引數

-b: 列出檔案型別,不顯示檔名稱
-c:詳細顯示指令執行過程
-f:指定名稱檔案,顯示多個檔案型別資訊
-L:直接顯示符號連線所指向的檔案類別
-m:指定魔法數字檔案
-z:嘗試去解讀壓縮檔案的內容
-i:顯示MIME的內容

案例

  1. 檢視檔案的型別
file file.txt
file dir
file /dev/sda
  1. 檢視檔案型別,但不顯示檔名
file -b file.txt
  1. 顯示MIME類別
file -i file.txt
  1. 檢視某個符號連結檔案(快捷方式)的型別
file /dev/cdrom
  1. 直接檢視某個符號連結檔案(快捷方式)所對應的目標檔案的檔案型別
file -L /dev/cdrom

md5sum:生成和校驗檔案的md5值命令

作用:生成和校驗檔案的md5值

語法

md5sum [OPTION] ... [FILE]...

引數

-b:以二進位制模式讀取檔案
-t:以文字模式讀入檔案內容
-c:根據已生成的md5值,對現存檔案進行校驗
--status:校驗完成後,不生成錯誤或正確的提示資訊,可以透過命令的返回值來判斷

案例

  1. 生成file.txt檔案的md5值
md5sum file.txt
  1. 不同模式計算同一個檔案的md5值
md5sum -b file.txt
md5sum -t file.txt
  1. 將生成md5值重定向到指定的檔案
md5sum file.txt > file.md5
  1. md5校驗
md5sum -c file.md5
  1. md5校驗,不顯示任何輸出,用返回碼錶示成功與否(0表示成功,1表示否)
md5sum -c --status file.md5
echo $?

find:查詢目錄或檔案命令

作用:搜尋指定檔案

語法

find [路徑][引數][條件]

引數

-name name ,-iname name:檔名稱符合name的檔案。
-perm:匹配許可權(mode為完全匹配,-mode為包含即可)。
-user:匹配所有者
-group:匹配所有組
-mtime -n +n : 匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n:匹配訪問檔案的時間(-n指n天以內,+n指n天以前)
-ctime -n +n:匹配修改檔案許可權的時間(-n指n天以內,+n指n天以前)
-nouser:匹配無所有者的檔案
-nogroup:匹配無所有者的檔案
-newer f1 !f2:匹配比檔案f1新但比f2舊的檔案
-type b/d/c/p/l/f:匹配檔案型別(後面的字母依次表示塊裝置、目錄、字元裝置、管道、連結檔案、文字檔案)
-size:匹配檔案的大小(+50KB為查詢超過50KB的檔案,而-50KB為查詢小於50KB的檔案)
-prune:忽略某個目錄
-exec ......{}\:後面可跟用於進一步處理搜尋結果的命令

案例

  1. 全盤搜尋系統中所有以.conf結尾的檔案
find / -name *.conf
  1. 在/etc目錄中搜尋所有大約1K大小的檔案
find /etc -size +1k
  1. 在/home目錄中搜尋所有屬於指定使用者的檔案
find /home -user xdn
  1. 搜尋當前目錄下所有的檔案
find -type f
  1. 搜尋當前目錄下所有許可權為664的檔案,並列出來
find . -perm 664 -exec ls -l {} \;
  1. 列出當前工作目錄中的所有檔案、目錄以及子檔案資訊
find .
  1. 在當前目錄下搜尋所有指定字尾的檔案,字尾不需要大小寫
find . -iname "*.txt"
  1. 在當前目錄下搜素所有字尾不是.log的檔案
find . ! -name "*.txt"
  1. 搜尋當前工作目錄中的所有7天內被修改過的檔案,並刪除
find . -mtime -7 -exec rm -i {} \;

which:搜尋命令位置命令

作用:查詢命令檔案所在位置

語法

which [-a] filename ...

案例

  1. 查詢檔案所在位置
which bash
which ls
which fdisk

whereis:查詢檔案命令

作用:查詢命令的二進位制程式、原始碼檔案和man手冊頁等相關檔案的路徑

語法

whereis [options][-BMS directory... -f] name...

引數

-b:查詢二進位制程式或命令
-B:從指定目錄下查詢二進位制程式或命令
-m:查詢man手冊檔案
-M:從指定目錄下查詢man手冊檔案
-s:只查詢原始碼檔案
-S:從指定目錄下查詢原始碼檔案

案例

  1. 查詢ls命令的程式路徑和man手冊頁位置
whereis ls
  1. 查詢ls命令的二進位制程式路徑
whereis -b ls
  1. 查詢ls命令的man手冊頁路徑
whereis -m ls

locate:查詢符合條件的文件命令

作用:快速查詢檔案或目錄

語法

locate [引數] [檔案]

引數

-i 忽略大小寫

案例

  1. 查詢系統中所有file.txt檔案
locate file.txt
  1. 搜尋路徑中包含/etc/sh的檔案
locate /etc/sh
  1. 查詢和whereis相關的所有檔案
locate whereis 
  1. 查詢/home/xdn/commands/locate/目錄下所有以f開頭的檔案,不區分大小寫
locate -i locate /f

chown:改變檔案所屬使用者或組命令

作用:改變檔案或目錄的使用者和使用者組

語法

chown [引數] 所屬主:所屬組 檔案

引數

-R:對目前目錄下的所有檔案與目錄進行相同的變更
-c:顯示所屬資訊變更資訊

案例

  1. 改變file.txt檔案的所屬主與所屬組
sudo chown alvin:alvin file.txt
  1. 只改變file.txt檔案的所屬主
sudo chown alvin file.txt
  1. 只改變file.txt檔案的所屬組
sudo chown :alvin file.txt
  1. 改變指定檔案的所屬主與所屬組,並顯示過程
sudo chown -c xdn:xdn file.txt
  1. 改變指定目錄及其內所有子檔案的所屬主與所屬組
sudo chown -R alvin:alvin dir

chgrp:改變檔案或目錄所屬組

作用:更改檔案使用者組

語法

chgrp [引數][目錄]

引數

-v:顯示指令執行過程
-R:遞迴處理,將指定目錄下的所有檔案及子目錄
--reference:把指定檔案或目錄的所屬群組全部設成和參考檔案或目錄的所屬群組相同

案例

  1. 改變檔案的使用者組
sudo chgrp alvin file.txt
  1. 改變檔案的使用者組,並顯示命令執行過程
sudo chgrp -v alvin file.txt
  1. 根據參照檔案改變檔案的使用者組
sudo chgrp --reference=reffile.txt file.txt
  1. 將dir及其子目錄下的所有檔案的使用者組改為alvin
sudo -R alvin dir

chmod:改變使用者對檔案或目錄的許可權

作用:改變檔案或目錄許可權(只有檔案的屬主和超級使用者 root 才能執行此命令)

語法

chmod [OPTION]...MODE[.MODE]... FILE...
chmod [OPTION]... OCTAL_MODE FILE...
chmod [OPTION]...--reference=RFILE FILE...

格式

[ugoa][+-=][rwx]

物件

物件 使用者型別 說明
u user 檔案所有者
g group 檔案所有者所在組
o others 所有其他使用者
a all 所用使用者,相當於ugo

操作

| 操作 | 說明 |
| + | 為指定的使用者型別增加許可權|
| - | 去除指定使用者型別的許可權 |
| = | 設定指定使用者許可權的設定,即將使用者型別的所有許可權重新設定 |

許可權

| 許可權 | 名字 | 說明 |
| r | 讀 | 設定為可讀許可權 |
| w | 寫 | 設定為可寫許可權 |
| x | 執行 | 設定為可執行許可權 |

數字模式

!(https://img2023.cnblogs.com/blog/3149811/202405/3149811-20240516172813142-685156644.png)

引數

-R:對目前目錄下的所有檔案與子目錄進行相同的許可權變更(即以遞迴的方式逐個變更)

案例

  1. 將檔案file.txt設定為所有人可讀取
chmod a+r file.txt
  1. 將當前目錄下所有檔案及遞迴目錄檔案設定為所有人可讀取
chmod -R a+r*
  1. 將file.txt設定為只有該檔案擁有者才可以執行
chmod u+x file.txt
  1. 將file.txt設定為檔案擁有者及其同組人員可寫入,但其他人不可寫入
chmod ug+w,o-w file.txt
  1. 將file.txt設定為所有人都可讀可寫可執行
chmod a+r,a+w,a+x file.txt
chmod 777 file.txt
  1. 將file.txt設定為檔案擁有者可讀可寫可執行,此外的其他人可讀可執行
chmod 755 file.txt
  1. 將file.txt設定為檔案擁有者可讀可寫,此外其他人都沒任何許可權
chmod u=rw,go=file.txt

grep:文字搜尋工具

作用:文字搜尋工具

語法

grep [引數] 檔案

引數

-i:忽略大小寫
-c:只輸出匹配行的數量
-l:只列出所有的匹配行,不列出具體的匹配行
-n:列出所有的匹配行,顯示行號
-h:查詢多檔案時不顯示檔名
-s:不顯示不存在,沒有匹配文字的錯誤嘻嘻
-v:顯示不包含匹配文字的所有行
-w:匹配整詞
-x:匹配整行
-r:遞迴搜尋
-q:禁止輸出任何結果,已退出狀態表示搜尋是否成功
-b:列印匹配行距檔案頭部的偏移量,以位元組為單位
-o:與-b結合使用,列印匹配的詞據檔案頭部的偏移量,以位元組為單位
-F:匹配固定字串的內容
-E:支援擴充套件的正規表示式

案例

  1. 搜尋某個檔案中,包含某個關鍵詞的內容
grep xdn /etc/passwd
  1. 搜尋多個檔案中,包含某個關鍵詞的內容
grep xdn /etc/passwd /etc/shadow
  1. 搜尋多個檔案中,包含某個關鍵詞的內容,不顯示檔名稱
grep -h xdn /etc/passwd /etc/shadow
  1. 遞迴搜尋,不僅搜尋指定目錄,還搜尋其內子目錄內是否有關鍵詞檔案
grep -rl hello *
  1. 輸出在某個檔案中,包含某個關鍵詞行的數量
grep -c root /etc/passwd /etc/shadow
  1. 忽略大小寫
grep -i XDN /etc/passwd 
  1. 在檔案中查詢要搜尋的內容,並顯示行號
grep -n xdn /etc/passwd
  1. 反向查詢
grep -v xdn /etc/passwd
  1. 搜尋當前工作目錄中,包含某個關鍵詞內容的檔案,未找到則提示
grep -l hello *
  1. 搜尋某個檔案中,精準匹配到某個關鍵詞的內容
grep -x hello file1.txt
grep -x hello file3.txt
  1. 判斷某個檔案中,是否包含某個關鍵詞,透過返回狀態值輸出結果(0為包含,1為不包含),方便在shell指令碼中判斷和呼叫
grep -q hello file1.txt
grep -q hello file2.txt

egrep:檔案內查詢指定字串命令

cat:檢視文字內容命令

more:逐頁閱讀文字命令

less:分頁檢視文字內容命令