Linux学习14_linux下提示bash:command not found

文章详细介绍了在Linux精简安装后,若遇到运行正常命令如shutdown、fdisk时报错bash:commandnotfound的问题,以及如何通过检查并调整PATH环境变量来解决问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新安装的linux系统,如果进行精简安装可能会出现bash:command not found 的提示,大家在安装的时候可以选择默认安装basic的组件,一般即可。到时候可以再升级。


如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么

首先就要考虑root 的$PATH里是否已经包含了这些环境变量。

主要是这四个:/bin ,/usr/bin,/sbin,/usr/sbin。

四个主要存放的东东:

./bin:

bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

/usr/bin:
主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。


/sbin:
主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。


/usr/sbin:
放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

可以在家目录下查看.bash_profile里的PATH。如果是:PATH=$PATH:$HOME/bin则需要添加成如下:

PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

今天在虚拟机上安装了CentOS5.5,发现运行一些很正常的诸如:init,shutdown,fdisk 等命令时,悍然提示:

bash: xx command not found。

那么,首先就要考虑root 的$PATH里是否已经包含了这些环境变量(可能是我安装的时候选择了“最小安装”,导致一些功能没开启)。

主要是这四个:/bin , /usr/bin, /sbin, /usr/sbin。 


原文来自:http://www.jb51.net/LINUXjishu/32192.html

<think>嗯,用户现在遇到了一个关于kubectl命令补全的问题,报错是“-bash: _get_comp_words_by_ref: command not found”,并且重复出现了多次。我需要分析这个问题的原因,并给出解决方案。 首先,用户之前询问过如何配置kubectl的命令补全,现在可能是在配置过程中遇到了问题。错误信息中的“_get_comp_words_by_ref”是Bash补全功能的一部分,通常属于bash-completion包里的函数。如果系统没有安装这个包,或者安装的版本有问题,就会出现这个错误。 接下来,我应该考虑用户的操作系统环境。根据之前的回答,用户可能在Linux系统上,比如CentOS或Debian/Ubuntu。不同的发行版安装bash-completion的方法不同,需要分别给出对应的命令。例如,CentOS使用yum,而Debian/Ubuntu使用apt-get。另外,安装完成后需要重新加载bash配置,或者重新登录,才能生效。 另外,用户可能在执行source命令时遇到了问题,比如没有正确安装bash-completion,或者安装后没有重新加载配置。这时候需要提醒用户先安装bash-completion,然后再次尝试source命令,或者重启shell会话。 还有可能用户的环境变量或者配置文件有问题,比如.bashrc中没有正确加载bash-completion的脚本。这时候可能需要检查是否在.bashrc中有source /usr/share/bash-completion/bash_completion或者其他相关命令。 另外,用户可能没有以root权限安装bash-completion,导致安装失败。需要提醒用户使用sudo来安装包。 最后,用户可能需要验证安装是否成功,比如检查bash-completion是否安装正确,或者尝试其他补全命令是否工作,比如git的补全,来确认是否是bash-completion的问题。 总结下来,解决方案应该是:安装bash-completion包,重新加载配置,并验证是否解决了问题。如果还是不行,可能需要手动加载bash-completion的脚本,或者检查其他配置问题。</think>--- ### 问题分析 你遇到的 `-bash: _get_comp_words_by_ref: command not found` 错误,是由于系统缺少 **`bash-completion`** 依赖包导致的。`kubectl completion bash` 的自动补全功能依赖此包提供的补全框架。 --- ### 解决方法 #### 1. 安装 `bash-completion` 包 根据你的 Linux 发行版选择命令: - **CentOS/RHEL**: ```bash sudo yum install -y bash-completion ``` - **Debian/Ubuntu**: ```bash sudo apt-get install -y bash-completion ``` #### 2. 重新加载配置 安装完成后,执行以下命令使配置生效: ```bash # 重新加载 bash-completion source /usr/share/bash-completion/bash_completion # 重新生成 kubectl 补全配置 source <(kubectl completion bash) ``` #### 3. 永久生效(可选) 将以下内容添加到 `~/.bashrc` 文件末尾: ```bash # 加载 bash-completion source /usr/share/bash-completion/bash_completion # 加载 kubectl 补全 source <(kubectl completion bash) ``` 然后执行: ```bash source ~/.bashrc ``` --- ### 验证是否修复 重新输入 `kubectl de` 后按 `Tab` 键,若补全正常(例如显示 `delete`、`describe` 等命令),则问题已解决。 --- ### 常见问题延伸 | 现象 | 原因 | 解决方案 | |---------------------------|--------------------------|-----------------------------------| | 安装后仍报同样错误 | 未正确加载 `bash-completion` | 确保 `source /usr/share/bash-completion/bash_completion` 已执行 | | 补全功能不完整 | 补全脚本冲突 | 检查 `~/.bashrc` 是否重复加载补全 | | 仅 `kubectl` 补全失败 | `kubectl` 版本过低 | 升级 `kubectl` 到最新版本 | --- ### 附:操作流程示意图 ```plaintext 安装 bash-completion → 加载补全框架 → 配置 kubectl 补全 → 验证生效 | | | ˅ ˅ ˅ yum/apt 安装 source 命令激活 写入 .bashrc 永久生效 ``` 如果问题仍未解决,可尝试 **重启 Shell 会话** 或 **重新登录服务器**。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值