Linux 命令之查詢

image
緣起
在一開始使用 Linux 時,使用的是桌面版本,所以一開始都是用系統裡的檔案管理器進行檔案搜尋。但是後來終端用的多了,就開始不太喜歡要切換來切換去了。這樣一來,在終端介面下進行搜尋就成了繞不過去的一個命令。下面就介紹一下我所瞭解的幾個搜尋命令。
find
其實 find
命令應該是最強大有用,但又是相對困難的一個。當然如果只是簡單的使用的話,還是沒有什麼問題的。
舉一個最常用的例子
$ find Documents -name test Documents/test
如果不使用路徑選項,預設是當前目錄下。 -name
用於指定要搜尋的檔名。
你也可以進行匹配搜尋
$ find Documents -name "*.md" Documents/hello.md Documents/test.md
這是我在使用 find
時最常用的兩個。但是之前說過了,這個命令相當強大,所以它還支援相當多的引數,這些就根據你自己的需要檢視 man
手冊學習吧。
最後提醒一點,除非特殊情況,不要把檔案的搜尋路徑設定的太寬泛(例如根目錄),這樣會導致 find
的執行過程非常緩慢。
whereis
whereis
用於定位命令的二進位制檔案、原始檔和手冊頁檔案。
例如,下面的指令會直接列出指定命令的二進位制檔案、原始檔和手冊頁檔案的位置。
$ whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz
或是新增其他的可選項指定檔案的型別或是在指定目錄中進行搜尋。下面舉兩個在 man
手冊頁中列出的例子
$ whereis-bm ls -m gcc ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz gcc: /usr/share/man/man1/gcc.1.gz /usr/share/info/gcc.info.gz $ whereis -m ls -M /usr/share/man/man1 -f cal ls: /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz cal: /usr/share/man/man1/cal.1.gz /usr/share/man/man1/cal.1p.gz
-b
-m
-s
這三個引數用於指定要搜尋的命令的的型別(二進位制,手冊頁檔案,原始檔)。
-B
-M
-S
如果你要在某個指定目錄中搜索指定命令的相應的檔案(二進位制,手冊頁,原始檔),就需要這三個引數。
which
which
命令用於顯示可執行檔案的路徑。如果該 shell 命令是 shell 內建的命令,會返回 shell built-in command
,如果是 PATH
環境變數下設定的那些,則會返回對應的路徑。
$ which cd cd: shell built-in command $ which java /usr/bin/java
另外還有一些,比如
$ which ls ls: aliased to ls --color=tty
這說明我們在終端輸入的 ls
命令其實是 ls --color=tty
的別名。 ls --color=tty
就是把終端的字元都以彩色形式輸出。
瞭解更多
有關這些命令的詳細內容,請參閱 man
手冊頁。
:)