Linux下which指令的另類用法

2021-06-21 05:39:49 字數 953 閱讀 6656

最近在實現乙個linux下程式的時候,需要程式可以呼叫linux系統下面指定的應用程式。如果這是windows程式,那麼可以通過regopenkeyregopenkey讀取登錄檔找到指定程式的安裝路徑,再利用createprocess函式進行呼叫即可完成前面提到的功能。

因為每個人安裝程式的習慣不一樣,同乙個程式在不同作業系統下的執行路徑可能不一樣,linux下沒有登錄檔這一說,也就無法利用登錄檔來找到程式的執行路徑。由此想到利用強大的shell命令來完成這一功能。首先介紹一下which指令,which指令用於查詢可執行檔案的位置,具體說明如下:

1.命令格式:

which  可執行檔名稱 

2.命令功能:

which指令會在path變數指定的路徑中,搜尋某個系統命令的位置,並且返回第乙個搜尋結果。

3.命令引數:

-n  指定檔名長度,指定的長度必須大於或等於所有檔案中最長的檔名。

-p  與-n引數相同,但此處的包括了檔案的路徑。

-w  指定輸出時字段的寬度。

-v  顯示版本資訊

寫乙個簡單的shell指令碼即可得到程式的執行路徑,在本例用vboxmanage做示例。**如下:

which vboxmanage

儲存為shell.sh

程式呼叫shell.sh並且儲存程式執行路徑的**如下所示:

file *fp;

char buffer[100];

fp = popen("./shell.sh","r");

fgets(buffer,sizeof(buffer),fp);

pclose(fp);

上述**片段即可把指令碼執行得到的字串保持到buffer陣列中。        

Linux下的指令 查詢指令 find

linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。1.linux下find命令格式 find pathname options print exec ok 2.命令功能 用於在檔案樹中查詢檔案,並作出相應的處理 可能訪問磁碟 3.命令引數 pathname find命令所查詢的目錄路徑...

Linux下的常用指令

lsmod 檢視模組 kudzu 硬體檢測 lspci 檢視網絡卡所需的型號 df h 檢視硬碟各區的使用情況 free m 檢視記憶體和swap使用情況 fdisk l 檢視掛載的硬碟 usb等情況 mkfs t est3 dev sda 將第一塊硬碟格式ext3格式 fdisk dev sda ...

linux下的find指令

在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟...