什么是“$ PATH”和“〜/ bin”? 我怎么能有个人脚本?

什么是$PATH

我怎样才能拥有仅适用于我的命令/程序?
我之前看到过这个路径~/bin ,但它用于什么,我该如何使用它?

$ 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 ... 

要拥有自己的专用bin目录,只需将其添加到路径中即可。 通过编辑〜/ .profile(隐藏文件)来包含以下行来完成此操作。 如果这些行已注释,则只需取消注释; 如果他们已经在那里,你们都准备好了!

 # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ]; then PATH="$HOME/bin:$PATH" fi 

现在你需要创建你的〜/ 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 ... 

关于~/bin和命令/程序仅供您的用户使用

最近的Ubuntu版本包含$PATH~/bin目录,但仅限于~/bin目录存在。

如果它不存在:

  1. 确保~/.profile包含以下节(默认的~/.profile已经执行):

     # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 
  2. 创建~/bin目录:

     mkdir -p ~/bin 
  3. 要么重新启动计算机,要么强制bash重新读取~/.profile

     exec -l bash