小智 27
$PATH 是用于查找命令的环境变量。~ 是你的主目录,所以 ~/bin 将是 /home/user/bin;它是一个普通目录。
例如,当您在 shell 中运行“ls”时,您实际上是在运行 /bin/ls 程序;确切位置可能因您的系统配置而异。发生这种情况是因为 /bin 在您的 $PATH 中。
要查看路径并找到任何特定命令所在的位置:
$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls # searches $PATH for an executable named "ls"
/bin/ls
$ ls # runs /bin/ls
bin desktop documents downloads examples.desktop music pictures ...
$ /bin/ls # can also run directly
bin desktop documents downloads examples.desktop music pictures ...
Run Code Online (Sandbox Code Playgroud)
要拥有自己的私有bin目录,只需将其添加到路径中即可。通过编辑 ~/.profile (隐藏文件)以包含以下行来执行此操作。如果这些行被注释了,你只需要取消注释它们;如果他们已经在那里,你就准备好了!
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)
现在您需要创建您的 ~/bin 目录,并且因为 .profile 在登录时运行并且只添加 ~/bin 如果当时存在,您需要再次登录以查看更新的 PATH。
让我们测试一下:
$ ln -s $(which ls) ~/bin/my-ls # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls # lookup through $PATH
bin desktop documents downloads examples.desktop music pictures ...
$ ~/bin/my-ls # doesn't use $PATH to lookup
bin desktop documents downloads examples.desktop music pictures ...
Run Code Online (Sandbox Code Playgroud)
Dan*_*nga 18
关于~/bin和命令/程序仅对您的用户可用
最近的 Ubuntu 版本~/bin在您的 中包含该目录$PATH,但前提是该~/bin目录存在。
如果不存在:
确保您~/.profile包含以下节(默认~/.profile已包含):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)创建~/bin目录:
mkdir -p ~/bin
Run Code Online (Sandbox Code Playgroud)要么重新启动计算机,要么强制 bash 重新读取~/.profile:
exec -l bash
Run Code Online (Sandbox Code Playgroud)