Linux 上找不到命令的四種解決方法,大部分新手都踩過的坑
對于一些新手而言,經(jīng)常會遇到 提示命令找不到的情況??赡軙袔追N情況,咱們接下來將展開講一下。

1. 命令打錯了?
這真不是玩笑!80% 的 Linux 小白都因為打錯命令而慌了神。
Linux是區(qū)分大小寫的,大小寫敏感的:
[root@k8s-master ~]# Grep root /etc/passwd
-bash: Grep: command not found
# 正確寫法
[root@k8s-master ~]# grep root /etc/passwd還可能因為手抖多打/少打一個字符,比如:
[root@k8s-master ~]# yum installl nginx
Loaded plugins: fastestmirror
No such command: installl. Please use /usr/bin/yum --help
# 正確寫法
yum install nginx建議安裝自動補全插件:對于一些命令較長記得費勁,可以安裝補全插件,使用tab進行補全,非常方便。
yum install bash-completion2. 命令可能根本沒安裝
對于最小化安裝的系統(tǒng),有些軟件包并沒有安裝,即使命令敲對了,也會出現(xiàn)命令找不到的情況。
你要做的就是:安裝它!
yum install 軟件包名3. 命令在哪個包里
你可能還會遇到另一種情況,我要用的命令并不是軟件包名,install說找不到。
比如我想用nslookup命令,我直接install顯示找不到該安裝包:
[root@k8s-master ~]# yum install nslookup
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
No package nslookup available.
Error: Nothing to do這種情況怎么處理?
很簡單,使用provides參數(shù)。
處理思路:先找到屬于哪個軟件包,然后再安裝:
# 先找出nslookup屬于哪個軟件包
# 這條命令會遍歷所有可用的Yum倉庫,是否存在
[root@k8s-master ~]# yum provides */nslookup
....
32:bind-utils-9.11.4-26.P2.el7_9.16.x86_64 : Utilities for querying DNS name servers
Repo : updates
Matched from:
Filename : /usr/bin/nslookup
# 找到軟件包后,直接安裝
[root@k8s-master ~]# yum install -y bind-utils安裝完成后就可以使用nslookup命令了:
[root@k8s-master ~]# nslookup
>4. 環(huán)境變量不包含命令路徑
還有一種情況找不到命令是沒在環(huán)境變量PATH中。
系統(tǒng)只在 PATH 里的目錄中查找命令。
# 查看PATH變量
[root@k8s-master ~]# echo $PATH
/data/istio-1.23.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin比如你源碼編譯安裝了一個nginx,但沒有放在PATH相關的路徑下,你直接執(zhí)行nginx -v 是找不到命令的。解決辦法就是將部署路徑加入到PATH環(huán)境變量中。
例如你將nginx源碼編譯的位置是/data/nginx:
# 例如你將nginx加入到環(huán)境變量中
vi /etc/profile
export PATH=$PATH:/data/nginx/sbin/讓配置立即生效:
source /etc/profile當然,你也可以不用寫入環(huán)境變量,直接用完整路徑也是可以的,只是有了環(huán)境變量就可以不用寫完整路徑:
/data/nginx/sbin/nginx -v99%的command not found問題,都能通過本文徹底解決。還有一種可能就是根本沒有這個命令,或是其他Linux發(fā)行版本的命令,你用錯了。



























