“command not found”主因是PATH未包含命令路径,需先用which或find确认命令是否存在,再将路径通过export(临时)、~/.bashrc(用户级)或/etc/profile(系统级)加入PATH,并排查权限、别名及Shell配置匹配问题。

Linux 中输入命令提示 “command not found”,绝大多数情况是 PATH 环境变量没包含该命令所在的目录。核心思路就两点:确认命令是否存在、再把它所在的路径加进 PATH。
先确认命令是不是真装了
别急着改环境变量,先看命令本身在不在系统里:
- 用 which 命令名(如
which nginx)查路径;没输出说明可能没装或不在标准路径 - 用 find / -name 命令名 2>/dev/null 全盘搜索(比如
find / -name java 2>/dev/null),重点留意bin或sbin目录下的可执行文件 - 用包管理器检查是否安装:Ubuntu/Debian 执行
dpkg -l | grep 包名,CentOS/RHEL 执行rpm -q 包名
把命令路径加进 PATH
找到命令真实路径后(比如 /opt/java/bin 或 /usr/local/nginx/sbin),选一种方式加入 PATH:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
临时生效:运行
export PATH=$PATH:/你的/命令/路径(当前终端有效) -
用户级永久生效:编辑
~/.bashrc(bash 用户)或~/.zshrc(zsh 用户),末尾加一行export PATH=$PATH:/你的/命令/路径,然后执行source ~/.bashrc -
系统级永久生效:编辑
/etc/profile或/etc/environment,添加同样语句(需 root 权限,影响所有用户)
注意 PATH 本身别被覆盖或写错
如果改完 /etc/profile 后连 ls、cd 都报错,大概率是 PATH 被错误重写,导致基础路径丢失:
- 立即补救:手动恢复 PATH,运行
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin - 再检查
/etc/profile中的 PATH 设置,确认没有漏掉冒号、多写等号、路径拼错等问题 - 修改后务必用
source /etc/profile生效,而不是只重启终端
顺带排查其他常见干扰项
有时问题不单出在 PATH 上:
-
权限问题:用
ls -l /路径/命令名看是否有x(执行)权限,没有就chmod +x /路径/命令名 -
别名冲突:运行
alias 命令名查看是否被 alias 覆盖;用\命令名或command 命令名绕过别名测试 -
Shell 类型不匹配:确认你编辑的是当前 Shell 的配置文件(
echo $SHELL查看),bash 用户别去改.zshrc

















