Linux系統(tǒng)中查找命令的區(qū)別
今天馬哥教育要跟大家分享的文章是關(guān)于Linux系統(tǒng)中查找命令的區(qū)別。正在從事Linux運維相關(guān)工作的小伙伴們一定不會對查找命令陌生。 Linux入門新手和正在Linux學習的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
一、man
學習Linux命令,就得會看幫助文檔,不然選項太多,根本記不住。常用的幫助文檔命令有man,info,--help。一般用man比較多,比help命令細,比info命令簡單。輸入man命令,即可進入man page(手冊頁面)。
man page常用的部分如下
塊名 | 介紹 |
NAME | 命令的名稱和簡要介紹 |
SYNOPSIS | 命令的基本格式 |
DESCRIPTION | 命令功能的概要介紹 |
OPTIONS | man命令最基本的部分,命令的各種選項,以及對選項的簡要介紹 |
man?java
Java命令的基本格式如下

Java命令的選項

可以看到Java支持很多參數(shù),參數(shù)的類型就有標準參數(shù),非標準參數(shù)多種。每個參數(shù)類型下面又包含許多參數(shù)。
man page下的常命令如下
命令 | 解釋 |
↑ | 向上移動一行 |
↓ | 向下移動一行 |
空格或者f [ forward(向前) ] | 向下翻動一頁 |
b [backward(前后)] | 向上翻動一頁 |
/搜索詞 回車 | 在man page中查找指定內(nèi)容,從上往下搜,n下一個,N上一個 |
?搜索詞 回車 | 在man page中查找指定內(nèi)容,從下往上搜,n下一個,N上一個 |
二、find
find是最常用和最強大的命令,實時遍歷磁盤文件
find命令的基本語法如下
find?[查找目錄]?[查找條件]?[查找完成后的操作]
查找條件相當多,名字,類型,權(quán)限,用戶,修改時間,大小,舉幾個例子
#?當前目錄下(含子目錄)以apache開頭的文件
find?-name?"apache*"
./apache-tomcat-8.5.34
./zookeeper-3.4.12/docs/skin/images/apache-thanks.png
./zookeeper-3.4.12/docs/api/org/apache
#?maxdepth可以設(shè)置查找的深度
#?查找的深度為1,即只查找當前文件夾
find?-maxdepth?1?-name?"apache*"
./apache-tomcat-8.5.34
#?顯示/etc目錄下的文件夾
find?/etc?-type?d
#?查找權(quán)限為777的文件
find?/?-perm?777
文件類型有如下幾種
字符 | 解釋 |
d | 目錄 |
l | 符號鏈接(指向另一個文件) |
s | 套接字文件 |
b | 塊設(shè)備文件 |
c | 字符設(shè)備文件 |
p | 命名管道文件 |
- | 普通文件 |
三、locate
locate命令其實是"find -name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫(/var/lib/mlocate,cenos7的路徑),這個數(shù)據(jù)庫中含有本地所有文件信息。
cenos7上沒有l(wèi)ocate,需要手動安裝
#?安裝包
yum?-y?install?mlocate
#?更新數(shù)據(jù)庫
updatedb?
這個數(shù)據(jù)庫每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫。
#?查看etc目錄下的腳本
locate?/etc/*.sh
/etc/dhcp/dhclient.d/chrony.sh
/etc/dhcp/dhclient.d/ntp.sh
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh
#?查看etc目錄下以a開頭的文件
locate?/etc/a
/etc/adjtime
/etc/aliases
/etc/aliases.db
四、which
在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以看到某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的命令。
看一下我的環(huán)境變量
echo?$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jdk1.8.0_191/bin:/usr/local/maven/apache-maven-3.6.1/bin
which?java
/usr/lib/jdk1.8.0_191/bin/java
which?grep
alias?grep='grep?--color=auto'
????/usr/bin/grep
五、whereis
顯示出命令的可執(zhí)行程序, 源文件(如果存在的話)以及man page的路徑
whereis?ls
ls:?/usr/bin/ls?/usr/share/man/man1/ls.1.gz
whereis?java
java:?/usr/lib/jdk1.8.0_191/bin/java
六、type
查看命令類型,常見的類型有如下幾種
命令 | 類型 |
alias | 別名 |
keyword | 關(guān)鍵字,shell保留字 |
builtin | shell內(nèi)置命令 |
file | 外部命令 |
type?ls
ls?is?aliased?to?`ls?--color=auto'、
type?cd
cd?is?a?shell?builtin
以上就是馬哥教育今天為大家分享的關(guān)于Linux系統(tǒng)中查找命令的區(qū)別的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!