Linux系统中将应用放在哪个目录可在任意工作目录调用?
核心问题原因说明
- 你当前只能在
/bin目录下用./ngrok运行的核心原因是:./前缀的作用是显式指定从当前工作目录加载可执行文件,这个调用方式和系统全局PATH配置没有关系。 /bin默认是包含在系统全局PATH中的,不需要调整存放位置,你在任意目录下直接输入ngrok(不加./前缀)就能正常调用。
如果直接输入ngrok提示命令不存在,按以下步骤排查:
- 先检查ngrok的可执行权限是否正常,执行命令:
sudo chmod +x /bin/ngrok - 再确认你的PATH环境变量是否包含
/bin,执行命令查看PATH:
如果输出中没有echo $PATH/bin字段,可以在当前用户的shell配置文件(bash对应~/.bashrc,zsh对应~/.zshrc)末尾添加一行:
保存后执行export PATH=$PATH:/binsource ~/.bashrc(对应你用的shell配置文件)即可生效。
Linux下自定义程序存放的规范路径
- 给所有用户使用的第三方自定义程序,更推荐放在
/usr/local/bin目录下,该目录默认也在全局PATH中,且符合系统目录规范(/bin默认用于存放系统自带的基础命令,不建议存放用户自行安装的第三方程序) - 仅给当前用户使用的自定义程序,推荐放在
~/.local/bin目录下,主流发行版默认会将该目录加入当前用户的PATH,无需额外修改全局配置。
内容的提问来源于stack exchange,提问作者CobraCabbe
相关产品推荐
相关产品推荐

