歡迎光臨
每天分享高質量文章

Linux下的五個查詢命令,有什麼區別?

來自公眾號:Java識堂

man

學習Linux命令,就得會看說明檔案,不然選項太多,根本記不住。常用的說明檔案命令有man,info,–help。一般用man比較多,比help命令細,比info命令簡單。輸入 man 命令,即可進入man page(手冊頁面)。

man page常用的部分如下

塊名 介紹
NAME 命令的名稱和簡要介紹
SYNOPSIS 命令的基本格式
DESCRIPTION 命令功能的概要介紹
OPTIONS man命令最基本的部分,命令的各種選項,以及對選項的簡要介紹

man java

Java命令的基本格式如下

Java命令的選項

可以看到Java支援很多引數,引數的型別就有標準引數,非標準引數多種。每個引數型別下麵又包含許多引數。

man page下的常命令如下

命令 解釋
向上移動一行
向下移動一行
空格或者 f [ forward(向前) ] 向下翻動一頁
b [backward(前後)] 向上翻動一頁
/ 搜尋詞 回車 在man page中查詢指定內容,從上往下搜,n下一個,N上一個
? 搜尋詞 回車 在man page中查詢指定內容,從下往上搜,n下一個,N上一個

find

find 是最常用和最強大的命令,實時遍歷磁碟檔案
find命令的基本語法如下

find [查詢目錄] [查詢條件] [查詢完成後的操作]

查詢條件相當多,名字,型別,許可權,使用者,修改時間,大小,舉幾個例子

# 當前目錄下(含子目錄)以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可以設定查詢的深度
# 查詢的深度為1,即只查詢當前檔案夾
find -maxdepth 1 -name "apache*"
./apache-tomcat-8.5.34

# 顯示/etc目錄下的檔案夾
find /etc -type d

# 查詢許可權為777的檔案
find / -perm 777

檔案型別有如下幾種

字元 解釋
d 目錄
l 符號連結(指向另一個檔案)
s 套接字檔案
b 塊裝置檔案
c 字元裝置檔案
p 命名管道檔案
普通檔案

locate

locate命令其實是”find -name”的另一種寫法,但是要比後者快得多,原因在於它不搜尋具體目錄,而是搜尋一個資料庫(/var/lib/mlocate,cenos7的路徑),這個資料庫中含有本地所有檔案資訊。

cenos7上沒有locate,需要手動安裝

# 安裝包
yum -y install mlocate
# 更新資料庫
updatedb 

這個資料庫每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。

# 檢視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變數指定的路徑中,搜尋某個系統命令的位置,並且傳回第一個搜尋結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

看一下我的環境變數

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

顯示出命令的可執行程式, 源檔案(如果存在的話)以及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 關鍵字,shell保留字
builtin shell內建命令
file 外部命令

type ls
ls is aliased to `ls --color=auto'、

type cd
cd is a shell builtin
已同步到看一看
贊(0)

分享創造快樂