一、搜尋命令
1.whereis命令
whereis是搜索系統命令的命令,也就是說,whereis 命令不能搜索普通文件, 而只能搜索系統命令。
命令名稱:whereis
英文原意:locate the binary, source, and manual page files for a command。
所在路徑:/usr/bin/whereis。
執行權限:所有用戶。
功能描述:查找二進制命令、源文件和幫助文檔的命令。
[root@love2 ~]# whereis whereis
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz
#whereis 命令不僅可以查看命令位置,還可以顯示幫助文檔位置。
2.which 命令
命令名稱:which。
英文原意:shows the full path of (shell) commands。
所在路徑:/usr/bin/which。
執行權限:所有用戶。
功能描述:列出命令的所在路徑
[root@love2 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
#which命令與whereis命令類似,但是which命令會顯示命令別名。
3.locate 命令
3.1、locate 命令才是可以按照文件名搜索普通文件的命令。
命令名稱:locate。
英文原意:find files by name。
所在路徑:/usr/bin/locate。
執行權限:所有用戶。
功能描述:按照文件名搜索文件。
優點:按照數據庫搜索,搜索速度快,消耗資源小。
數據庫位置/var/lib/mlocate/mlocate.db,
可以使用 updatedb 命令強制更新數據庫。
缺點:只能按照文件名來搜索文件,而不能執行更復雜的搜索,比如按照權限、大小、修改時間等搜索文件。
[root@love2 ~]# locate edu.txt
/root/edu.txt
3.2、配置文件 /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" #開啟搜索限制,使該配置文件生效。
PRUNEFS = "9p afs anon_inodefs.... # 在 locate執行搜索時,禁止搜索這些文件系統類型
PRUNENAMES = ".git .hg .svn..." #禁止搜索以這些后綴名結尾的文件
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev ..." #不搜索這些目錄
4.find 命令
命令名稱:find。
英文原意:search for files in a directory hierarchy。
所在路徑:/bin/find。
執行權限:所有用戶。
功能描述:在目錄中搜索文件。
4.1、按照文件名搜尋
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容
選項:
-name: 按照文件名搜索
-iname: 按照文件名搜索,不區分文件名大小寫
-inum: 按照inode號搜索
4.2、按照文件大小搜索
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容
選項: -size [+|-]大小:
按照指定大小搜索文件 這里的“+”的意思是搜索比指定大小還要大的文件,“-”的意思是搜索比指定大小還要小的文件.
1bytes=8byte,我們在電腦上可見的最小單位為字節
`b' for 512-byte blocks (this is the default if no suffix #64字節
is used)
`c' for bytes #1字節
`w' for two-byte words #1/4 字節
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
[root@love2 ~]# find . -size 442c
./edu.txt
4.3、按照修改時間搜索
Linux 中的文件有訪問時間(atime)、數據修改時間(mtime)、狀態修改時間(ctime)這三個 時間,我們也可以按照時間來搜索文件。
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容 選項:
-atime [+|-]時間: 按照文件訪問時間搜索
-mtime [+|-]時間: 按照文件數據修改時間搜索
-ctime [+|-]時間: 按照文件狀態修改時間搜索
4.4 按照權限搜索命令格式。
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容
選項:
-perm 權限模式: 查找文件權限剛好等於“權限模式”的文件
-perm -權限模式: 查找文件權限全部包含“權限模式”的文件
-perm +權限模式: 查找文件權限包含“權限模式”的任意一個權限的文件
4.5 按照所有者和所屬組搜索
[root@love2 ~]#
find 搜索路徑 [選項] 搜索內容
選項:
-uid 用戶ID: 按照用戶ID查找所有者是指定ID的文件
-gid 組ID: 按照用戶組ID查找所屬組是指定ID的文件
-user 用戶名: 按照用戶名查找所有者是指定用戶的文件
-group 組名: 按照組名查找所屬組是指定用戶組的文件
-nouser: 查找查找沒有所有者的文件,主要用於查找垃圾文件
4.6 按照文件類型搜索
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容
選項:
-type d: 查找目錄
-type f: 查找普通文件
-type l: 查找軟鏈接文件
-type s : 查找套接字文件
4.7 邏輯運算符
用於連接多個條件.
選項:
-a: and邏輯與
-o: or邏輯或
-not: not邏輯非
find . -size +442c -a -type f
#查找當前路徑下大於442字節且類型為普通文件的文件。
4.8 其他選項
-exec
[root@love2 ~]# find 搜索路徑 [選項] 搜索內容 -exec 命令2 {} ;
這個選項的作用其實是把 find 命令的結果交給由“-exec”調用的命令 2 來處理。“{}”就 代表 find 命令的查找結果。
-ok 選項 “-ok”選項和“-exec”選項的作用基本一致,區別在於:“-exec”的命令 2 會直接處理,而不詢 問;“-ok”的命令 2 在處理前會先詢問用戶是否這樣處理,在得到確認命令后,才會執行
find -size +442k -a -type f -exec wc -l {} \;
查找大於442k,文件類型為普通文件的文件,且統計每個文件的行數。
5.grep 命令
grep 的作用是在文件中提取和匹配符合條件的字符串行,支持正則匹配。
[root@love2 ~]# grep [選項] "搜索內容" 文件名
選項:
-i: 忽略大小寫
-n: 輸出行號
-v: 反向查找
--color=auto: 搜索出的關鍵字用顏色顯示
- find 命令用於在系統中搜索符合條件的文件名,如果需要模糊查詢,則使用通配符進行匹配,通配符 是完全匹配(find 命令可以通過-regex 選項,把匹配規則轉為正則表達式規則,但是不建議如此)
通配符 | 作用 |
---|---|
? | 匹配一個任意字符 |
* | 匹配 0 個或任意多個任意字符,也就是可以匹配任何內容 |
[] | 匹配中括號中任意一個字符。例如,[abc]代表一定匹配一個字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配范圍內一個任意字符例如,[1-9],匹配1-9中的任意一個字符 |
[^] | 表示匹配不是中括號內的一個字符。例如,[^0-9]代表匹配一個不是數字的字符 |
- grep 命令用於在文件中搜索符合條件的字符串,如果需要模糊查詢,則使用正則表達式進行匹配, 正則表達式是包含匹配。
正則 | 作用 |
---|---|
? | 匹配前一個字符重復 0 次,或 1 次(?是擴展正則,需要使用 egrep 命令) |
* | 匹配前一個字符重復 0 次,或任意多次 |
[] | 匹配中括號中任意一個字符。例如,[abc]代表一定匹配一個字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配范圍內一個任意字符例如,[1-9],匹配1-9中的任意一個字符 |
[^] | 表示匹配不是中括號內的一個字符。例如,[^0-9]代表匹配一個不是數字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
二、其他命令
1、管道符
命令格式: 命令 1 | 命令 2 命令 1 的正確輸出作為命令 2 的操作對象.
[root@love2 ~] ll -a /etc/ | more
#列出/etc目錄下所有文件,且分頁顯示。
2、alias 命令的別名
命令的別名,就是命令的小名,主要是用於照顧管理員使用習慣的。
alias grep='grep --color=auto'
執行 grep命令時,其實是執行 grep --color=auto 目的是自動顯示顏色
可以在命令行中直接設置,但是是臨時生效,重啟就沒了,可寫到文件里,vim ~/.bashrc
unalias 命令
#取消別名
三、幫助命令
1.man 命令
man 是最常見的幫助命令,也是 Linux 最主要的幫助命令
命令名稱:man。
英文原意:format and display the on-line manual pages。
所在路徑:/usr/bin/man。
執行權限:所有用戶。
功能描述:顯示聯機幫助手冊
1.1使用
[root@love2 ~]# man [選項] 命令
選項:
-f: 查看命令擁有哪個級別的幫助 或 whatis 命令
-k: 查看和命令相關的所有幫助 或 apropos 命令
[root@love2 ~]# man tar
#詳細幫助。
[root@love2 ~]# man -f cat
cat (1p) - concatenate and print files
cat (1) - concatenate files and print on the standard output
查看cat命令有哪幾個級別的命令。
1.2 man命令幫助級別
2.info 命令
info 命令的幫助信息是一套完整的資料,每個單獨命令的幫助信息只是這套完整資料中的某一個小章節。
2.1常用快捷鍵。
?鍵:它就會顯示info的常用快捷鍵。
N鍵:顯示(相對於本節點的)下一節點的文檔內容。
P鍵:顯示(相對於本節點的)前一節點的文檔內容。
U鍵:進入當前命令所在的主題。
M鍵:敲M鍵后輸入命令的名稱就可以查看該命令的幫助文檔了。
G鍵:敲G鍵后輸入主題名稱,進入該主題。
L鍵:回到上一個訪問的頁面。
SPACE鍵:向前滾動一頁。
BACKUP或DEL鍵:向后滾動一頁。
Q:退出info。
3.help 命令
help 只能獲取 Shell 內置命令的幫助
命令名稱:help。
英文原意:help。
所在路徑:Shell 內置命令。
執行權限:所有用戶。
功能描述:顯示 Shell 內置命令的幫助。
可以使用 type 命令來區分內置命令與外部命令 ,shell 是 Linux 的命令解釋器
[root@love2 ~]# type help
help is a shell builtin #表示為shell內置命令
4.--help 選項 絕大多數命令都可以使用“--help”選項來查看幫助,這也是一種獲取幫助的方法。
例如: [root@love2 ~]# ls --help 這種方法非常簡單,輸出的幫助信息基本上是 man 命令的信息簡要版。