七: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命令: