1. 程式人生 > 實用技巧 >Linux下提示bash:command not found解決方法小結

Linux下提示bash:command not found解決方法小結

0x00 前言

文章中的文字可能存在語法錯誤以及標點錯誤,請諒解;

如果在文章中發現程式碼錯誤或其它問題請告知,感

0x01 解決方法

我們在使用linux開發編譯的時候可能會遇到:
1.前幾次還好用的命令,這次再輸入就出現-bash: ***: command not found的情況;
2.第一次使用就出現 -bash: ** : command not found的情況。
導致這種問題的原因有很多(就像導致肚子疼痛的原因各種各樣),有可能是環境變數配置問題,也可能某一個bin資料夾下的內容全部刪除導致等,所以現在將主要導致bash:command not found的原因寫在下面,希望對大家的開發過程有幫助。

1.檢查該命令工具是否安裝
出現這個問題時,首先用whereis命令確定該指令工具是否安裝,例如確定gcc是否安裝
whereis gcc,如果此時顯示gcc:/usr/bin/gcc則說明已經安裝好,可以接著用下面的方法繼續找原因,如果只是顯示gcc:,則說明gcc沒有下載,此時進行下載就可以。

Centos(Rehat系列)系統下載gcc命令:yum install gcc
Ubuntu系統下載gcc命令:apt-get install gcc

2.檢查各個bin資料夾的內容是否非空
在使用其它相對更復雜的手段“還原”到之前好用的狀態之前,應該先檢查的bin資料夾裡的命令是否都在,這個方法最簡單也最直觀。如果自己需要用到的命令所在的bin資料夾為空,那麼就會理所應當的出現-bash: ***: command not found情況。

要檢查的bin資料夾有以下幾個:
/bin, /usr/bin, /sbin, /usr/sbin

檢視這四個裡面的是否為空,若出現為空的情況,那麼解決辦法就是找一個同樣系統版本的linux把對應資料夾的內容複製到本地空的bin資料夾中。例如我的linux版本是CentOS release 6.8,我輸入gcc命令編譯的時候出現bash: gcc: command not found,通過檢視四個目錄發現其中 /usr/bin內容為空,然後自己通過將同樣的CentOS release 6.8系統下的 /usr/bin內容全部複製到本地的/usr/bin中,然後再次gcc編譯,通過。
注意,這種排查方法適用在輸入類似ls、tty這種常見指令以前可用但最近出現not found的情況。

3.檢查是否是$PATH設定是否正確
$PATH決定了shell到哪些目錄下去尋找命令或工具,PATH的值是一系列目錄,當程式執行時,Linux系統會到這些目錄下進行搜尋,所以當出現 -bash: ** : command not found可能因為是PATH沒有設定。

PATH設定格式:

PATH = $PATH:<PATH1>:<PATH2>:<PATH3>:...:<PATH N>
  • 1

可以將自己指定的路徑加到PATH中(見上,若有多個變數路徑則在中間用冒號":"隔開),例如:export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH,設定成功之後,使用echo檢視是否配置成功:

[root@localhost u-boot-sh4]# echo $PATH
/opt/STM/STLinux-2.3/devkit/sh4/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  • 1
  • 2

上述方法新增PATH 在終端關閉後會消失。建議通過 vi /etc/profile 修改PATH,也可修改主使用者目錄下的 .bashrc,這樣可以永久生效。若使用前一種方法,則輸入指令vi /etc/profile,然後在該檔案最後新增:

 export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
  • 1

儲存後,退出,再執行:

 [root@localhost etc]# source /etc/profile
  • 1

不報錯就成功。

當然,可能還有其它原因導致bash:command not found,這時候就需要在網上仔細找,把導致該問題的前因後果都說清楚(配置了什麼,刪掉了什麼),相信問題最後一定能解決。\

原文:https://blog.csdn.net/wangqingchuan92/article/details/89399654