2021-05-12 14:32:11
Linux檔案檢視與查詢命令
Linux檔案檢視與查詢命令
cat 檢視一個檔案
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
-T:顯示製表符
常用:cat -An /etc/passwd
[root@linuxidc ~]# cat -An /etc/passwd 1 root:x:0:0:root:/root:/bin/bash$ 2 bin:x:1:1:bin:/bin:/sbin/nologin$ 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin$ 4 adm:x:3:4:adm:/var/adm:/sbin/nologin$ 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$ 6 sync:x:5:0:sync:/sbin:/bin/sync$ 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$ 8 halt:x:7:0:halt:/sbin:/sbin/halt$ 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin$
more 分頁檢視檔案
檔案內容較多時,用more命令檢視,空格鍵下翻,b鍵上翻,Q退出
[root@linuxidc ~]# more install.log Installing libgcc-4.4.7-17.el6.x86_64 warning: libgcc-4.4.7-17.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c10 5b9de: NOKEY Installing fontpackages-filesystem-1.41-1.1.el6.noarch Installing m17n-db-1.5.5-1.1.el6.noarch Installing liberation-fonts-common-1.05.1.20090721-5.el6.noarch Installing setup-2.8.14-20.el6_4.1.noarch Installing xkeyboard-config-2.16-1.el6.noarch Installing xml-common-0.6.3-33.el6.noarch Installing iso-codes-3.16-2.el6.noarch Installing filesystem-2.4.30-3.el6.x86_64 Installing dejavu-fonts-common-2.33-1.el6.noarch Installing mozilla-filesystem-1.9-5.1.el6.x86_64 Installing control-center-filesystem-2.28.1-40.el6.x86_64 Installing paktype-fonts-common-2.0-8.el6.noarch Installing mesa-dri-filesystem-11.0.7-4.el6.x86_64
head 顯示前十行內容
[root@linuxidc ~]# head install.log Installing libgcc-4.4.7-17.el6.x86_64 warning: libgcc-4.4.7-17.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Installing fontpackages-filesystem-1.41-1.1.el6.noarch Installing m17n-db-1.5.5-1.1.el6.noarch Installing liberation-fonts-common-1.05.1.20090721-5.el6.noarch Installing setup-2.8.14-20.el6_4.1.noarch Installing xkeyboard-config-2.16-1.el6.noarch Installing xml-common-0.6.3-33.el6.noarch Installing iso-codes-3.16-2.el6.noarch Installing filesystem-2.4.30-3.el6.x86_64
-c#:指定獲取前#個位元組
[root@linuxidc ~]# head -c6 install.log Instal[root@linuxidc ~]#
-n#:指定獲取前#行
[root@linuxidc ~]# head -n6 install.log Installing libgcc-4.4.7-17.el6.x86_64 warning: libgcc-4.4.7-17.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Installing fontpackages-filesystem-1.41-1.1.el6.noarch Installing m17n-db-1.5.5-1.1.el6.noarch Installing liberation-fonts-common-1.05.1.20090721-5.el6.noarch Installing setup-2.8.14-20.el6_4.1.noarch
-#:指定行數
[root@linuxidc ~]# head -3 install.log Installing libgcc-4.4.7-17.el6.x86_64 warning: libgcc-4.4.7-17.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Installing fontpackages-filesystem-1.41-1.1.el6.noarch
tail 預設顯示檔案後面10行的內容
[root@linuxidc ~]# tail install.log Installing iwl3945-firmware-15.32.2.9-4.el6.noarch Installing ql2200-firmware-2.02.08-3.1.el6.noarch Installing rt73usb-firmware-1.8-7.el6.noarch Installing ipw2100-firmware-1.3-11.el6.noarch Installing ql23xx-firmware-3.03.27-3.1.el6.noarch Installing ipw2200-firmware-3.1-4.el6.noarch Installing rootfiles-8.1-6.1.el6.noarch Installing man-pages-3.22-20.el6.noarch Installing words-3.0-17.el6.noarch *** FINISHED INSTALLING PACKAGES ***[root@linuxidc ~]#
-n#:指定獲取後#行
[root@linuxidc ~]# tail -n2 install.log Installing words-3.0-17.el6.noarch *** FINISHED INSTALLING PACKAGES ***[root@linuxidc ~]#
-#:指定行數
[root@linuxidc ~]# tail -2 install.log Installing words-3.0-17.el6.noarch *** FINISHED INSTALLING PACKAGES ***[root@linuxidc ~]#
-f:實時檢視檔案的最新變化 用於排查故障的時候 等同於tailf
[root@linuxidc ~]# tailf install.log Installing iwl3945-firmware-15.32.2.9-4.el6.noarch Installing ql2200-firmware-2.02.08-3.1.el6.noarch Installing rt73usb-firmware-1.8-7.el6.noarch Installing ipw2100-firmware-1.3-11.el6.noarch Installing ql23xx-firmware-3.03.27-3.1.el6.noarch Installing ipw2200-firmware-3.1-4.el6.noarch Installing rootfiles-8.1-6.1.el6.noarch Installing man-pages-3.22-20.el6.noarch Installing words-3.0-17.el6.noarch *** FINISHED INSTALLING PACKAGES ***
cut:文字內容切割並按要求輸出
-d:指明分隔符
-f:指明要取出的欄位
如要取出此檔案內容的第一段
[root@linuxidc ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync [root@linuxidc ~]# cut -d ":" -f1 /etc/passwd root bin daemon adm lp sync
wc:檢視檔案內容有多少字元,多少行,多少位元組
[root@linuxidc ~]# wc /etc/passwd 35 54 1672 /etc/passwd
wc -l:統計行數 (常用)
[root@linuxidc ~]# wc -l /etc/passwd 35 /etc/passwd
sort:排序
-r 逆序
-n 按照數位大寫
-f 忽略字串大小寫
-t “c” 以後面的字元作為分隔符
-k 選擇某個欄位 進行排序
[root@linuxidc ~]# cat /etc/passwd | sort -t ":" -k3 root:x:0:0:root:/root:/bin/bash uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin
uniq:刪除重複 (常和sort命令一起使用)
-c 顯示每行重複出現的次數
-d 僅顯示重複
-u 顯示不重複
連續且完全相同方為重複
用last顯示登陸使用者,排序後顯示登陸的次數
[root@linuxidc ~]# last | cut -d' ' -f1 | sort | uniq -c 1 26 reboot 1 wtmp
文字檢索工具
grep:作用:文字搜尋工具,根據使用者指定的模式,對目標檔案逐行進行匹配檢查,列印匹配到的行
模式:由正規表示式的元字元及文字字元所編寫出的過濾條件
-v:取反 顯示不能被匹配到的行
-i:忽略字元的大小寫
-n:顯示行號
-c:顯示統計到的行數,等同於wc -l
-o:僅顯示匹配到的字串
-q:靜默輸出(不輸出任何資訊) 只關心命令的執行結果 不關心輸出結果
-A #:後#行
-B #:前#行
-C #:前後#行 檢視紀錄檔 搜尋鍵碼排查錯誤的時候
-e:指定多個條件,條件是或的關係
-w 匹配整個單詞
-E === egrep 支援擴充套件的正規表示式
-F === fgrep 不支援正規表示式
顯示出/etc/passwd下root的前後兩行(第一個root為第一行,所以沒有前兩行)
[root@linuxidc ~]# grep -C 2 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin -- mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
基本正規表示式
字元匹配:
.:匹配任意單個字元
[]:匹配指定範圍內的任意單個字元 ——> 如:[abc] a | b | c
[^]:匹配指定範圍外的任意單個字元 ——> 如:[^abc] 除abc之外的字元
[:alnum:] 數位和字元
[:alpha:] 英文大小寫字元 a-z A-Z
[:lower:] 小寫字母
[:upper:] 大寫字母
[:space:] 專門匹配空格
匹配次數:用在要指定其出現的次數的字元的後面,用於限制其前面字元出現的次數
*:匹配其前面的字元任意次 0-無窮
[root@linuxidc ~]# grep "r*" /etc//passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
.*:任意長度的任意字元出現任意次
[root@linuxidc ~]# grep "gdm.*" /etc/passwd gdm:x:42:42::/var/lib/gdm:/sbin/nologin
?:匹配前面的字元出現0次或者1次 (其前面的字元是可有可無的)
+:匹配前面的字元至少1次
{m,}:匹配前的字元至少出現m次
{m,n}:匹配前面的字元出現至少m次至多n次
{0,n}:匹配前面的字元最多出現n
{m,}:匹配前的字元至少出現m次
位置錨定:用來定位字元出現的位置
^ 錨定行首(用於模式最左側)
[root@linuxidc ~]# grep "^root" /etc//passwd root:x:0:0:root:/root:/bin/bash
$ 錨定行尾(用於模式最右側)
[root@linuxidc ~]# grep "bash$" /etc//passwd root:x:0:0:root:/root:/bin/bash zhouao:x:500:500:zhouao:/home/zhouao:/bin/bash openstack:x:3000:3000::/home/openstack:/bin/bash
^$:匹配空行
^[[:space:]]*$:空行或包含空白字元的行
單詞:非特殊字元組成的連續字元(字串)都稱為單詞
b b:匹配詞首和詞尾
[root@linuxidc ~]# grep 'broot' /etc//passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
< >:匹配詞首和詞尾
例如:找出/etc/passwd下以/bin/bash結尾的行
[root@linuxidc ~]# grep "bash>" /etc//passwd root:x:0:0:root:/root:/bin/bash zhouao:x:500:500:zhouao:/home/zhouao:/bin/bash openstack:x:3000:3000::/home/openstack:/bin/bash
分組及參照
():將一個或多個字元綑??在一起,當做一個整體進行處理
分組括號中的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中
1:模式從左側起,第一個括號以及與之匹配的右括號之間的模式所匹配到的字元
2:模式從左側起,第二個括號以及與之匹配的右括號之間的模式所匹配到的字元
3:模式從左側起,第三個括號以及與之匹配的右括號之間的模式所匹配到的字元
[root@linuxidc ~]# grep "r..t" /etc//passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@linuxidc ~]# grep "^(r..)t.*1" /etc//passwd root:x:0:0:root:/root:/bin/bash
egrep:支援擴充套件的正規表示式實現類似於grep文字過濾功能
-G:支援基本正規表示式
擴充套件正規表示式
字元匹配
.:匹配任意單個字元
[]:匹配指定範圍內的任意單個字元 ——> 如:[abc] a | b | c
[^]:匹配指定範圍外的任意單個字元 ——> 如:[^abc] 除abc之外的字元
[:alnum:] 數位和字元
[:alpha:] 英文大小寫字元 a-z A-Z
[:lower:] 小寫字母
[:upper:] 大寫字母
[:space:] 專門匹配空格
次數匹配:
匹配次數:用在要指定其出現的次數的字元的後面,用於限制其前面字元出現的次數
*:匹配其前面的字元任意次 0-無窮
?:0或一次,其前的字元是可有可無的
+:其前的字元至少一次
{m}:其前的字元m次
{m,n}:至少m次,至多n次
位置錨定:
^:行首錨定
$:行位錨定
< >:詞首錨定
b b:詞首錨定
分組及參照:
():分組,括號內的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中
1:模式從左側起,第一個括號以及與之匹配的右括號之間的模式所匹配到的字元
2:模式從左側起,第二個括號以及與之匹配的右括號之間的模式所匹配到的字元
3:模式從左側起,第三個括號以及與之匹配的右括號之間的模式所匹配到的字元
或:
a|b:a或者b
C|cat:C或cat
(c|C)at:cat或Cat
例如:找出etc/passwd檔案中的兩位數或三位數
[root@linuxidc ~]# egrep "<[0-9]{2,3}>" /etc/passwd mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [root@linuxidc ~]# egrep "<[0-9]{2,3}>" /etc/passwd | cut -d: -f3,4 8:12 10:14 11:0 12:100 13:30 14:50 99:99 81:81 113:113
檔案查詢命令
find:實時查詢工具,根據我們指定的內容或者條件在系統上進行實時查詢
根據檔名查詢
-name 可以使用萬用字元 比如 * ? [] [^]
find . -name “????”
例如:我想找某個檔名叫 yum 在/etc下
[root@linuxidc ~]# find /etc/ -name "yum" /etc/logrotate.d/yum /etc/yum
-iname 檔名稱忽略大小寫
[root@linuxidc ~]# find /etc/ -iname "think" /etc/test/think /etc/test/Think
根據屬主和屬組來查詢
-user (查詢屬主指定使用者的所有檔案)
-group (查詢屬組指定組的所有檔案)
-uid (查詢屬主指定的UID的所有檔案)
-gid (查詢屬組指定的GID的所有檔案)
-nouser 查詢沒有屬主的檔案或者目錄
-nogroup 查詢沒有屬組的檔案或者目錄
drwx------. 2 gdm gdm 4096 Apr 8 21:00 orbit-gdm drwx------. 2 gdm gdm 4096 Apr 8 21:01 pulse-AThZYiEcGGK5 -rw-r--r--. 1 root root 0 Apr 1 11:38 tianjin [root@linuxidc ~]# find /tmp -user gdm /tmp/orbit-gdm /tmp/orbit-gdm/linc-8ff-0-1f7ec1765e7bc /tmp/orbit-gdm/linc-8d7-0-2f1d8aa3391d9 /tmp/orbit-gdm/linc-900-0-6e691ca28c58d /tmp/orbit-gdm/linc-8fe-0-16fedb9f41908 /tmp/orbit-gdm/linc-8fd-0-12f82f71240f1 /tmp/orbit-gdm/linc-905-0-3d0482583370 [root@linuxidc ~]# find /tmp -group gdm /tmp/orbit-gdm /tmp/orbit-gdm/linc-8ff-0-1f7ec1765e7bc /tmp/orbit-gdm/linc-8d7-0-2f1d8aa3391d9 /tmp/orbit-gdm/linc-900-0-6e691ca28c58d /tmp/orbit-gdm/linc-8fe-0-16fedb9f41908 /tmp/orbit-gdm/linc-8fd-0-12f82f71240f1 /tmp/orbit-gdm/linc-905-0-3d0482583370 /tmp/orbit-gdm/linc-8fc-0-2f41c894bb0a2
根據檔案型別查詢
-type f 普通檔案
d 目錄
l 連結檔案
s 通訊端檔案
b 塊裝置
c 字元裝置
p 管道
[root@linuxidc ~]# find /dev -type b -ls 11341 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram9 11330 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram7 11320 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram8 11310 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram6 11302 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram5 11286 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram3 11277 0 brw-rw---- 1 root disk Apr 8 20:58 /dev/ram4
組合條件:
與:-a
或:-o
非:-not, !
多個條件要使用() 不能使用“”
例如:查詢/usr目錄下不屬於root、lp或gdm的所有檔案或目錄
[root@linuxidc ~]# find /usr -not ( -user root -o -user lp -o -user gdm ) /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
此題可理解為查詢/usr目錄下非root或lp或gdm的所有檔案或目錄
find |
查詢 |
/usr |
/usr目錄 |
-not |
非 |
() |
多個條件要使用() 不能使用“” |
-user root |
查詢屬主指定使用者的所有檔案或目錄root |
-o |
或 |
–user lp |
查詢屬主指定使用者的所有檔案或目錄lp |
-o |
或 |
-user gdm |
查詢屬主指定使用者的所有檔案或目錄gdm |
根據檔案大小來查詢 常用單位:k M G
-size +:大於多少的檔案
-size -:小於多少的檔案
-size :等於多少的檔案
[root@linuxidc ~]# find /tmp -size -100k /tmp /tmp/keyring-jZvoAq /tmp/keyring-jZvoAq/socket.pkcs11 /tmp/keyring-jZvoAq/socket.ssh /tmp/keyring-jZvoAq/socket /tmp/.ICE-unix /tmp/.ICE-unix/2351 /tmp/pulse-Pdz6rX1vqurd /tmp/pulse-Pdz6rX1vqurd/pid /tmp/pulse-Pdz6rX1vqurd/native /tmp/keyring-RBkZ6c
根據時間來查詢
-mtime +7 7天以前的 從第8天開始
-mtime 7 當前時間往前推第7天
-mtime -7 當前時間往前推第7天以內
[root@linuxidc ~]# find /tmp -atime +7 /tmp/keyring-jZvoAq/socket.pkcs11 /tmp/keyring-jZvoAq/socket.ssh /tmp/keyring-jZvoAq/socket /tmp/keyring-1sJnSE/socket.pkcs11 /tmp/keyring-1sJnSE/socket.ssh /tmp/keyring-1sJnSE/socket /tmp/keyring-fa8GPq/socket.pkcs11 /tmp/keyring-fa8GPq/socket.ssh [root@linuxidc ~]# stat /tmp/keyring-GggOAV/socket File: `/tmp/keyring-GggOAV/socket' Size: 0 Blocks: 0 IO Block: 4096 socket Device: 806h/2054d Inode: 524364 Links: 1 Access: (0755/srwxr-xr-x) Uid: ( 500/ zhouao) Gid: ( 500/ zhouao) Access: 2017-03-31 08:28:12.218218519 +0800 Modify: 2017-03-31 08:28:10.672218526 +0800 Change: 2017-03-31 08:28:10.672218526 +0800
根據許可權來查詢
-perm 755 精確匹配有755許可權的檔案
-perm -222 必須包含全部的222許可權才可以
-perm +222(CentOS 6)
/222(CentOS 7)
只要有一個比如說屬主 屬組或者其他人有一個擁有寫許可權即可
[root@linuxidc ~]# find ./ -perm 644 -ls 8388610 56 -rw-r--r-- 1 root root 50606 Mar 24 05:57 ./install.log 8393099 4 -rw-r--r-- 1 root root 176 May 20 2009 ./.bash_profile 8388611 12 -rw-r--r-- 1 root root 10033 Mar 24 05:53 ./install.log.syslog 8393132 0 -rw-r--r-- 1 root root 0 Apr 1 11:32 ./tianjin 8393102 4 -rw-r--r-- 1 root root 129 Dec 4 2004 ./.tcshrc 8393100 4 -rw-r--r-- 1 root root 176 Sep 23 2004 ./.bashrc [root@linuxidc ~]# find ./ -perm /666 -ls 8388609 4 dr-xr-x--- 7 root root 4096 Apr 8 21:03 ./ 8393137 4 -rw------- 1 root root 67 Apr 3 15:18 ./.xauthHk2uLQ 8393128 4 drwx------ 3 root root 4096 Mar 24 06:01 ./.config 8393129 4 drwx------ 3 root root 4096 Mar 24 06:01 ./.config/ibus 8393130 4 drwx------ 2 root root 4096 Mar 24 06:01 ./.config/ibus/bus 8393133 4 drwxr-xr-x 2 root root 4096 Apr 1 15:10 ./test 8393124 4 -rw------- 1 root root 1478 Mar 24 05:57 ./anaconda-ks.cfg 8388610 56 -rw-r--r-- 1 root root 50606 Mar 24 05:57 ./install
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/143549.htm
相關文章