天天看點

which、whereis、whatis、du、who、w、whoami用法總結

1.which

指令用于查找并顯示給定指令的絕對路徑,環境變量PATH中儲存了查找指令時需要周遊的目錄。which指令會在環境變量$PATH設定的目錄裡查找符合條件的檔案。也就是說,使用which指令,就可以看到某個系統指令是否存在,以及執行的到底是哪一個位置的指令。

文法

which(選項)(參數)

選項

-n<檔案名長度>:制定檔案名長度,指定的長度必須大于或等于所有檔案中最長的檔案名;

-p<檔案名長度>:與-n參數相同,但此處的<檔案名長度>包含了檔案的路徑;

-w:指定輸出時欄位的寬度;

-V:顯示版本資訊。

參數

指令名:指令名清單。

執行個體

查找檔案、顯示指令路徑:

[root@localhost~]# which pwd

/bin/pwd

[root@localhost~]#  which adduser

/usr/sbin/adduser

說明:which是根據使用者所配置的 PATH 變量内的目錄去搜尋可運作檔的!是以,不同的 PATH 配置内容所找到的指令當然不一樣的!

2.whereis

指令用來定位指令的二進制程式、源代碼檔案和man手冊頁等相關檔案的路徑。

whereis指令隻能用于程式名的搜尋,而且隻搜尋二進制檔案(參數-b)、man說明檔案(參數-m)和源代碼檔案(參數-s)。如果省略參數,則傳回所有資訊。

和find相比,whereis查找的速度非常快,這是因為linux系統會将 系統内的所有檔案都記錄在一個資料庫檔案中,當使用whereis和下面即将介紹的locate時,會從資料庫中查找資料,而不是像find指令那樣,通 過周遊硬碟來查找,效率自然會很高。但是該資料庫檔案并不是實時更新,預設情況下時一星期更新一次,是以,我們在用whereis和locate 查找檔案時,有時會找到已經被删除的資料,或者剛剛建立檔案,卻無法查找到,原因就是因為資料庫檔案沒有被更新。

whereis(選項)(參數)

-b:隻查找二進制檔案;

-B<目錄>:隻在設定的目錄下查找二進制檔案;

-f:不顯示檔案名前的路徑名稱;

-m:隻查找說明檔案;

-M<目錄>:隻在設定的目錄下查找說明檔案;

-s:隻查找原始代碼檔案;

-S<目錄>隻在設定的目錄下查找原始代碼檔案;

-u:查找不包含指定類型的檔案。

指令名:要查找的二進制程式、源檔案和man手冊頁的指令名。

将相關的檔案都查找出來

[root@localhost~]# whereis tomcat

tomcat:

[root@localhost~]# whereis svn

svn:/usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

說明:tomcat沒安裝,找不出來,svn安裝找出了很多相關檔案

隻将二進制檔案查找出來

[root@localhost~]# whereis -b svn

svn:/usr/bin/svn /usr/local/svn

[root@localhost~]# whereis -m svn

svn:/usr/share/man/man1/svn.1.gz

[root@localhost~]# whereis -s svn

svn:

說明:whereis -m svn查出說明文檔路徑,whereis -s svn找source源檔案。

3.whatis

指令是用于查詢一個指令執行什麼功能,并将查詢結果列印到終端上。

whatis指令在用catman -w指令建立的資料庫中查找command參數指定的指令、系統調用、庫函數或特殊檔案名。whatis指令顯示手冊部分的頁眉行。然後可以發出man指令以擷取附加的資訊。whatis指令等同于使用man -f指令。

whatis

[root@localhost~]# whatis ls

ls                   (1)  - list directory contents

ls                   (1p)  - list directory contents

[root@localhost~]# whatis cp

cp                   (1)  - copy files and directories

cp                   (1p)  - copy files

[root@localhost~]# whatis chown

chown                (1)  - change file owner and group

chown                (1p)  - change the file ownership

chown                (2)  - change ownership of a file

chown                (3p)  - change owner and group of a file

[root@localhost~]# whatis man

man                  (1)  - format and display the on-line manual pages

man                  (1p)  - display system documentation

man                  (7)  - macros to format man pages

man                 (rpm) - A set of documentationtools: man, apropos and whatis.

man-pages           (rpm) - Man (manual) pages from theLinux Documentation Project.

man.config[man]     (5)  -configuration data for man

4.du

指令也是檢視使用空間的,但是與df指令不同的是Linux du指令是對檔案和目錄磁盤使用的空間的檢視,還是和df指令有一些差別的。

du [選項][檔案]

-a或-all 顯示目錄中個别檔案的大小。

-b或-bytes 顯示目錄或檔案大小時,以byte為機關。

-c或--total 除了顯示個别目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。

-k或--kilobytes 以KB(1024bytes)為機關輸出。

-m或--megabytes 以MB為機關輸出。

-s或--summarize 僅顯示總計,隻列出最後加總的值。

-h或--human-readable 以K,M,G為機關,提高資訊的可讀性。

-x或--one-file-xystem 以一開始處理時的檔案系統為準,若遇上其它不同的檔案系統目錄則略過。

-L<符号連結>或--dereference<符号連結> 顯示選項中所指定符号連結的源檔案大小。

-S或--separate-dirs 顯示個别目錄的大小時,并不含其子目錄的大小。

-X<檔案>或--exclude-from=<檔案> 在<檔案>指定目錄或檔案。

--exclude=<目錄或檔案> 略過指定的目錄或檔案。

-D或--dereference-args 顯示指定符号連結的源檔案大小。

-H或--si 與-h參數相同,但是K,M,G是以1000為換算機關。

-l或--count-links 重複計算硬體連結的檔案。

顯示目錄或者檔案所占空間:

[root@localhosttest]# du

608 ./test6

308 ./test4

4 ./scf/lib

4 ./scf/service/deploy/product

4./scf/service/deploy/info

12./scf/service/deploy

16 ./scf/service

4 ./scf/doc

4 ./scf/bin

32 ./scf

8 ./test3

1288 .

隻顯示目前目錄下面的子目錄的目錄大小和目前目錄的總的大小,最下面的1288為目前目錄的總大小

顯示指定檔案所占空間:

[root@localhosttest]# du log2012.log

300 log2012.log

檢視指定目錄的所占空間:

[root@localhosttest]# du scf

4 scf/lib

4scf/service/deploy/product

4scf/service/deploy/info

12scf/service/deploy

16 scf/service

4 scf/doc

4 scf/bin

32 scf

顯示多個檔案所占空間:

[root@localhosttest]# du log30.tar.gz log31.tar.gz

4 log30.tar.gz

4 log31.tar.gz

隻顯示總和的大小:

[root@localhosttest]# du -s

[root@localhosttest]# du -s scf

[root@localhosttest]# cd ..

[root@localhostsoft]# du -s test

1288 test

5.who

指令是顯示目前登入系統的使用者資訊。執行who指令可得知目前有那些使用者登入系統,單獨執行who指令會列出登入帳号,使用的終端機,登入時間以及從何處登入或正在使用哪個X顯示器。

who(選項)(參數)

-H或--heading:顯示各欄位的标題資訊列;

-i或-u或--idle:顯示閑置時間,若該使用者在前一分鐘之内有進行任何動作,将标示成"."号,如果該使用者已超過24小時沒有任何動作,則标示出"old"字元串;

-m:此參數的效果和指定"am i"字元串相同;

-q或--count:隻顯示登入系統的帳号名稱和總人數;

-s:此參數将忽略不予處理,僅負責解決who指令其他版本的相容性問題;

-w或-T或--mesg或--message或--writable:顯示使用者的資訊狀态欄;

--help:線上幫助;

--version:顯示版本資訊。

檔案:指定查詢檔案。

[root@localhost~]# who

root     pts/0        2013-08-19 15:04 (192.168.0.134)

root     pts/1        2013-12-20 10:37 (180.111.155.40)

[root@localhost~]# who -q

root root

# users=2

[root@localhost~]# who -H

NAME     LINE         time             COMMENT

[root@localhost~]# who -w

root     + pts/0        2013-08-19 15:04 (192.168.0.134)

root     + pts/1        2013-12-20 10:37 (180.111.155.40)

6.w

指令用于顯示已經登陸系統的使用者清單,并顯示使用者正在執行的指令。執行這個指令可得知目前登入系統的使用者有那些人,以及他們正在執行的程式。單獨執行w指令會顯示所有的使用者,您也可指定使用者名稱,僅顯示某位使用者的相關資訊。

w(選項)(參數)

-h:不列印頭資訊;

-u:當顯示目前程序和cpu時間時忽略使用者名;

-s:使用短輸出格式;

-f:顯示使用者從哪登入;

使用者:僅顯示指定使用者。

w

 20:39:37 up 136 days,  3:58, 1 user,  load average: 0.00, 0.00,0.00

USER     TTY     FROM              login@   IDLE  JCPU   PCPU WHAT

root     pts/0   222.94.97.122    20:39    1.00s 0.00s  0.00s w

7.whoami

指令用于列印目前有效的使用者名稱,相當于執行id -un指令。

whoami(選項)

[root@localhost~]# whoami

root

[root@localhost~]# id -un

本文轉自 Runs_ 51CTO部落格,原文連結:http://blog.51cto.com/12667170/1906884,如需轉載請自行聯系原作者