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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM