如何獲取 Linux 命令的路徑?
您從終端視窗執行的 Linux 命令可以是內建命令(系統的一部分)、函式(輸入某些命令時執行的應用程式)、別名(命令的另一個名稱)或外部可執行檔案(您下載的程式)。您可以使用 which、command、whereis、whatis 和 type 工具來確定每個命令是什麼以及它們位於哪裡。
我們將重點關注 **which、command、types** 和 **whereis** 命令,因為它們通常存在於大多數基於 Linux 的作業系統中。
因此,讓我們在本篇文章中探討如何獲取 Linux 命令的路徑。
PATH 環境變數
在我們深入瞭解這些實用程式的細節之前,讓我們首先了解一下,應用程式(例如我們的 shell,我們在其中輸入命令的程式)會在名為 PATH 的環境變數中儲存的資料夾列表中搜索命令。每個資料夾都用冒號 ":" 分隔。
我們可以使用 echo 函式檢視此變數中的內容。
命令
$ echo $PATH
輸出
/sbin:/bin:/usr/sbin:/usr/bin
當我們在計算機上安裝可執行檔案以便可以從任何位置執行它時,我們必須確保 PATH 環境變數包含可執行檔案的位置。
我們可以透過鍵入以下命令臨時更改 PATH 變數
命令
$ export PATH=$PATH:/newdir/path $ echo $PATH
輸出
/sbin:/bin:/usr/sbin:/usr/bin:/newdir/path
重新啟動計算機後,上述建立的 PATH 將被重置。
我們可以透過編輯 .bashrc 檔案永久更改 PATH 環境變數。
export PATH=$PATH:/newdir/path
which 命令
大多數 Linux 作業系統發行版都包含 which 實用程式。我們可以使用此工具來確定 Linux 程式的位置。
命令
$ which echo
輸出
/usr/bin/echo
當我們在終端視窗中鍵入 echo 命令時,它將執行位於 /bin/ 目錄下的 echo 可執行檔案。
此外,which 命令有一個 -a 選項,它將打印出所有匹配的路徑 -
命令
$ which -a php
輸出
/usr/bin/php /usr/bin/php /bin/php
我們在兩個不同的目錄中有兩個可執行檔案。一個位於 /usr/bin/,另一個位於 /opt/php8/。前者預設使用,因為其位置出現在 PATH 環境變數中,而後者具有正確的許可權。
whereis 命令
讓我們快速瞭解一下 whereis(位於何處)實用程式。此工具查詢程式所在的位置。
如果我們直接呼叫這些實用程式,它們將向我們顯示二進位制檔案、原始碼和手冊頁的所有位置 -
命令
$ whereis php
輸出
php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz
我們可以使用 -b 引數僅顯示二進位制檔案。
命令
$ whereis -b php
輸出
php: /usr/bin/php /usr/lib64/php /etc/php.ini /etc/php.d /usr/include/php /usr/share/php
如果我們只想顯示手冊,則使用 -m 引數 -
命令
$ whereis -m php
輸出
php: /usr/share/man/man1/php.1.gz
type 命令
type 命令不僅可以顯示 Linux 命令的路徑,還可以確定目標是內部命令、函式、別名還是外部可執行檔案。
讓我們使用 type 命令和 -p 引數來檢視提供的 Linux 命令的路徑 -
命令
$ type -p php
輸出
/usr/bin/php
如果您不包含引數,它將顯示命令定義。
命令
$ type echo
輸出
echo is a shell builtin
如果我們使用 -a 選項,它將顯示命令描述、可執行檔案型別和完整檔名 -
命令
$ type -a echo
輸出
echo is a shell builtin echo is /usr/bin/echo echo is /usr/bin/echo echo is /bin/echo
我們還可以使用命令 type -t 顯示可執行檔案型別。
命令
$ type -t echo
輸出
builtin
上述命令輸出為 builitin,因為 echo 是內建檔案型別。
命令
$ type -t ls
輸出
alias
類似地,上面 ls 命令是別名檔案,下面的命令顯示 php 命令只是一個檔案(可執行檔案)。
命令
$ type -t php
輸出
file
command 命令
另一個用於查詢 Linux 命令位置的有用工具是 command 命令。
此工具讓我們知道我們是在處理可執行檔案還是別名命令。
command 具有兩個選項“-v”和“-V”,其中“-v”僅輸出結果,“-V”選項以句子格式提供輸出。
命令
$ command -v php
輸出
/usr/bin/php
命令
$ command -V php
輸出
php is /usr/bin/php
命令
$ command -v echo
輸出
echo
命令
$ command -V echo
輸出
echo is a shell builtin
我們必須新增 -v 或 -V 引數。
否則,它將執行我們提供的 Linux 命令。
命令
$ command ls
輸出
command filebeat-6.4.1-x86_64.rpm test.pcap config pmgo pmta4.0.zip
結論
我們可以使用 which、command、type 和 whereis 命令查詢 Linux 命令的位置。一些實用程式顯示的資訊比其他實用程式多。
在本教程中,我們瞭解到在使用某些命令時存在一些注意事項,但基本上,我們可以使用這些工具來獲取有關特定 Linux 實用程式的更多資訊。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP