临时修改用 export,永久生效需修改 ~/.bashrc 或 ~/.bash_profile 并 source;正确写法为 export PATH="$PATH:$HOME/mybin",漏掉 $PATH 会导致系统命令失效,且路径须真实存在并有执行权限。

直接说结论:用 export 是临时加,关终端就丢;改 ~/.bashrc 或 ~/.bash_profile 才能永久生效,但得看你的 shell 启动逻辑——不是所有文件都会被读。
为什么 export PATH=$HOME/mybin 之后命令还是找不到
常见错误是只写了 export PATH=$HOME/mybin,漏了 $PATH 原有值。这会把整个系统路径覆盖掉,导致 ls、cp 全部报“command not found”。
- 正确写法必须拼接原有路径:
export PATH="$PATH:$HOME/mybin"(冒号分隔,顺序影响优先级) - 如果想让自定义命令优先执行,把新路径放前面:
export PATH="$HOME/mybin:$PATH" -
export只作用于当前 shell 及其子进程,新开终端或切换用户后失效 - 执行完
export后,用echo $PATH确认是否真加进去了,别只信自己敲对了
~/.bashrc 和 ~/.bash_profile 到底该改哪个
取决于你登录终端的方式:图形界面里点开的终端通常走 ~/.bashrc;SSH 登录或虚拟控制台登录,多数先读 ~/.bash_profile(它常会再 source ~/.bashrc)。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 日常开发推荐改
~/.bashrc:每次开新终端都加载,适合交互式命令、别名、函数 - 如果改了
~/.bashrc但 SSH 登录后不生效,检查~/.bash_profile里有没有source ~/.bashrc这行(很多发行版默认有,但有些精简系统没配) - 若两者都不存在,
~/.profile是更通用的备选,POSIX 兼容,bash/zsh 都认 - 改完记得
source ~/.bashrc或source ~/.bash_profile,否则要新开终端才看到效果
/etc/profile 和 /etc/environment 能随便动吗
能动,但不建议普通用户碰——这是全系统级别的配置,一不小心可能让所有用户(包括 root)的命令全挂。
-
/etc/profile是 shell 登录时每个用户都会读的,适合部署共用工具链(比如公司统一 JDK) -
/etc/environment不支持变量展开(不能写$HOME),只接受KEY=VALUE格式,由 PAM 直接加载,比 shell 脚本更底层 - 修改前务必备份:
sudo cp /etc/profile /etc/profile.bak - 改完测试要用新用户登录验证,别只在当前会话
source,那掩盖了真实加载路径问题
最容易被忽略的一点:PATH 中路径必须真实存在且有执行权限。加完 export PATH="$PATH:/opt/mytool/bin" 后,如果 /opt/mytool/bin 目录不存在,或者里面文件没 x 权限,命令照样跑不起来——export 不校验路径有效性,它只负责传递字符串。

















