1. 程式人生 > >七:Linux 文字查詢命令

七:Linux 文字查詢命令

linux 第七節 文字查詢命令

find

作用:按照指定條件查詢檔案

格式:find 查詢路徑 查詢條件 操作

查詢條件

-name : 匹配名稱查詢

-user :匹配所有者(root 或 普通使用者)

-type b/d/c/p/l/f :匹配檔案型別(塊裝置、目錄、字元裝置、管道、連結檔案、文字檔案)

-size : 匹配檔案的大小(+50k查詢超過50k的檔案,而-50k則代表查詢小於50k的檔案)

-mtime -n +n :匹配修改內容的時間(-n指n天以內,+n指n天以前)

-atime -n +n :匹配訪問檔案的時間

-ctime -n +n: 匹配修改許可權的時間

萬用字元

* :任意內容,任意個數

? :任意內容,1個字元

例如:查詢/的passwd檔案

find / -name “passwd”

find / -name “a*” 檢索以a開頭的檔案

find /etc -name "*.cfg">temp.txt 定向輸出到

find /etc -name ".txt" | wc -l (統計以txt結尾的檔案個數)

find /etc -name "d*" -user root (並且) 同時查詢多種條件

find /etc -name "e*" -o -name "f*" (或者)

find / -user 普通賬戶名

find /dev -type b 檢索裝置 (b代表塊裝置)

find /dev -type c -size -10k (在dev下檢索 c型別 小於10k的檔案)

find / -size +100M (根目錄下查詢大於100M的)

find /etc -not -mtime +7 (查詢七天內沒有更改的檔案)

find / -size -50k -size +10k (查詢區間)

find / -mtime -10 -empty (10天以內的空檔案)

標準輸入輸出重定向:

標準輸入重定向:STDIN,檔案描述符為0,預設從鍵盤輸入,也可以從其他檔案或命令中輸入

輸入重定向:將檔案

重定向符號:

輸入重定向:

命令<檔案 :將檔案作為命令的標準輸入

命令<<分界符:從標準輸入中讀取,直到遇到“分節符”才停止

輸出重定向:

命令>檔案:將標準輸出重定向到一個檔案中(清空原始檔內容)

命令>>檔案:將結果追加到檔案中(保留原始檔)

命令2>>檔案:將錯誤資訊輸出重定向到一個檔案中(追加)

管道符:

格式:命令A | 命令B |命令C ……

作用:將前一個原命令的輸出到螢幕的資訊作為下一個命令的標準輸入

常用於管道符的命令:wc ,more ,less ,grep(管道過濾),

重要的環境變數:

環境變數的作用:系統執行環境的相關引數

一般使用大寫

PATH環境變數

儲存Linux系統命令直譯器bash的程式路徑

例如:echo $PATH

PATH是命令直譯器bash的“助手”,用於給出呼叫命令的程式儲存路徑

常用的環境變數:

HOME:使用者的家目錄

SHELL:SHELL命令直譯器路徑

HISTSIZE:記錄history命令的歷史命令個數

LANG:語系

PATH:記錄執行檔案的路徑

MAIL:郵箱檔案

RANDOM:隨機數

命令執行過程:

第一步:判斷是否已絕對/相對路徑書寫的命令,是則立即執行

第二步:判斷是否為別名(alias(設定別名))

第三步:由bash判斷輸入命令是“內部命令”還是“外部命令”

內部命令:隸屬命令直譯器的預設命令,直接執行

外部命令:為外部檔案的命令

第四步:通過$PASH查詢路徑,執行命令程式

檢視變數的運算子:$,格式

區域性變數定義:NICDIR=/etc/sysconfig/network-scripts

(定義NICDIR變數(其他賬戶不可用),儲存網絡卡位置)

cd $NICDIR

全域性變數定義:export NICDIR1 (其他賬戶可用)

NICDIR1=/etc/sysconfig/network-scripts

su 普通賬戶名

cd $NICDIR1

which命令:

作用:顯示PATH環境變數中的命令的執行路徑

格式:which 命令

例如:which cat 顯示/bin/cat

注意:命令程式路徑預設在/bin路徑下

常見檔案型別:

普通檔案:

標誌:-

分類:

純文字檔案(ASCII)

二進位制檔案(binary)

c.注意:ls -l 顯示內容左列第一個字元為-表示普通檔案

目錄檔案:

標誌:d

顏色:藍色

注意:ll命令顯示左列第一個字母為d的表示目錄檔案

裝置檔案:

字元裝置:標誌為c,一般為慢速裝置,如:終端(tty),鍵盤,印表機

塊裝置:標誌為b,一般為快速裝置,如:硬碟等

連結裝置:標誌為l,相當於windows的快捷方式

其他:空檔案(emp)

檔案型別:

檔案型別通過副檔名來表示,表示檔案的型別及開啟方式

格式:*.副檔名

例如:*.txt 文字檔案 *.cfg 配置檔案 *.tar.gz 壓縮檔案 *.sh 指令碼檔案 *.conf 配置檔案 *.repo yum配置檔案

8.檔案內容查詢檔案:

(1)作用:按照關鍵字檢索文字檔案中的內容

 (2)格式:grep -引數 查詢條件 檔名

 (3)引數

a.-n:顯示檢索內容行的行號

b.-i:忽略字母大小寫

c.-v:根據檢索關鍵字進行反向顯示

d.-c:統計符合條件的行數

e.-A數字:如:-A3,顯示符合條件的當前行及下3行

f.-B數字:如:-B5,顯示符合條件的當前行及以上5行

g.-C數字:如:-C2,顯示符合條件的當前行及上下兩行

passwd檔案意義介紹

a.路徑:/etc/passwd

b.作用:記錄使用者賬戶資訊:分為7段,使用冒號分割

c.檔案內容意義:

帳戶名:密碼代號X:UID:GUI:註釋:家目錄:SHELL

第二列X:密碼加密後的代號

第七列:/sbin/nologin 不允許登陸

grep查詢例項

在passwd中檢索包含root的行資訊

grep -n "root" /etc/passwd

在passwd檢索不能登陸的資訊

grep -n "/sbin/nologin" /etc/passwd

在passwd檢索可以登陸的資訊

grep -nv "/sbin/nologin" /etc/passwd (反向)

檢索包含“halt”的行及下三行資訊

grep -nA3 “halt” /etc/passwd

檢索包含“sshd”的行及上五行

grep -nB5 “sshd” /etc/passwd

檢索包含“ftp”的上下兩行

grep -nC2 “ftp” /etc/passwd

檢索不能登陸的賬戶個數

grep -c “/sbin/nologin” /etc/passwd

(等同) grep -n “/sbin/nologin” /etc/passwd | wc -l

檢索包含大小寫d的行資訊

grep -ni “d” /etc/passwd

正則表示式:

概念:正則表示式是為了處理大量文字或字串而定義的一套規則和方法

特點:

通過定義特殊符號,系統管理員就可以快速過濾,替換,輸出需要的字串

Linux正則表示式一般以行為處理單位

分類:基礎正則表示式,擴充套件正則表示式

用途:在Linux中用於過濾大量日誌檔案內容

注意:使用正則表示式時注意語系,預設為C語系

使用[] 字符集表示

[ab]:

含義:搜尋包含a或b的行資訊,[]內只能表示一個內容

例如:

檢索包含“d”或“D”的行資訊

grep -n [Dd] /etc/passwd

檢索包含“o”字母的資訊

grep -n [oo] /etc/passwd

[^ ]:

含義:根據關鍵字進行反向顯示(反向著色)

例如:

檢索不包含字母o的資訊

grep -n [^o] /etc/passwd

注意與 -v的區別 :grep -nv “o” /etc/passwd

檢索不以r開頭的且包含00t的資訊

grep -n [^r]oot /etc/passwd

[- ]:

[0~9]:表示檢索包含0~9數字

[a~z]或[A~Z]:表示小寫,大寫字母

[a~zA~Z]:表示字母

例如:

檢索包含[7-9]的資訊

grep -n [7-9] /etc/passwd

檢索包含大寫[A-Z]的資訊

grep -n [A-Z] /etc/passwd

使用行首^和行尾$檢測

行首^

檢索以root開頭的資訊:

grep -n "^root" /etc/passwd

檢索以大寫字母開頭的資訊:

grep -n ^[A-Z] /etc/passwd

檢索以#開頭的資訊

grep -n ^# /etc/sos.conf

檢索以[開頭的資訊

grep -n ^"[" /etc/sos.conf (轉義字元)

行尾$

顯示空白行:

grep -n ^$ /etc/sos.conf

檢索數字結尾的資訊:

grep -n [0-9]$ /etc/sos.conf

檢索以]結尾的資訊

grep -n ]$ /etc/sos.conf (非轉義字元)

注意:[^]和^[]的區別

正則萬用字元:

點(.):代表一個任意字元

星號(*):重複前面一個字元多次或0次的任意字元

例如:

檢索以r開頭,t結尾,中間2為資訊

grep -n "r..t" /etc/passwd

grep -n "o*" /etc/passwd (顯示整篇)

grep -n "oo*" /etc/passwd (至少包含1個o)

grep -n ".*" /etc/passwd (整篇文章)

轉義字元和區間字元:

轉義字元:由於某些字元有特殊作用,若使用原本功能,需使用\進行去掉特殊功能,只保留字元本身功能,稱為轉義

例如:

touch ttt.txt

echo "hello" > ttt.txt

echo "word." >> ttt.txt

echo "123." >>ttt.txt

cat ttt.txt

grep -n "\."$ ttt.txt

將.進行轉義,使用雙引號進行定界

區間字元:

格式:\{n1,n2\}

由於{}有特殊作用,必須使用\{\}進行轉義

注意:n1<=n2 相等時,簡寫為\{n1\},表示執行n1 次

grep -n o"\{2\}" /etc/passwd (檢索包含2個o的資訊)

tr命令

作用:進行字元替換

格式:tr 原字元 結果字元

例如:

檢視passwd中的小寫改為大寫

cat /etc/passwd | tr [a-z] [A-Z]

cat /etc/passwd | tr [0-9] "\ " (因空格為轉義字元,需轉義)

注意:tr命令常與grep命令進行配合使用

如:grep -n "root" /etc/passwd | tr [a-z] [A-Z]

打包壓縮命令:

作用:對檔案目錄進行打包,壓縮,解壓

tar命令: