fairycat

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 等。

评论

Name

Email

Website

Subject