- Created:
- Updated:
Ubuntu 添加用户专用 bin 目录
众所周知 linux 的可执行文件通常放在 bin 目录,而且 bin 目录有很多个例如 /bin
/usr/bin
等。这些路径是有优先级的,也对可执行文件进行了分类,例如 /usr/bin
目录中的可执行文件通常来自安装包安装的,/usr/local/bin
目录放一些自己开发或编译的软件。所有的路径可以直接打印查看,从左到右优先级逐渐降低
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
如果需要添加可执行文件,在这些目录中添加即可。但在这些目录添加文件需要管理员权限。有些可执行文件需要用户自己管理,则无法在这些路径添加。
PATH 还包含两个比以上路径优先级高的路径 $HOME/.local/bin
$HOME/bin
,但是这个路径默认情况下不存在的,需要自己建 mkdir ~/bin
。新建该路径后就可以添加可执行文件了,但是,刚建立的路径不是立即生效的,需要重新登录即可。
重新登陆后再次输出 PATH 可以看到,最前边的路径多了 $HOME/bin
路径
/home/fairycat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
当然,你也可以把可执行文件放在想放的位置,然后在 ~/.profile
文件中添加 PATH="/dir/xxx:$PATH"
。实际上,判断 $HOME/.local/bin
$HOME/bin
是否存在也是在这个文件里边提前定好了,如果存在则添加到 PATH 中。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
建议使用 $HOME/.local/bin
$HOME/bin
这两个目录存放可执行文件,和系统的其它 bin
路径一样好记。另外,还不用手动修改 ~/.profile
,该设置的 PATH 都已经设置好了。
如此一来,需要增加可执行文件时就不需要管理员来处理了,普通用户就可以自己解决。例如安装、更新 composer 等。