我习惯于放入常用脚本,/usr/local/bin
以便可以从任何使用终端的地方执行它们。
例如,我创建一个名为 的 shell 脚本1
,使用 使其可执行,chmod +x 1
并将其放入 中/usr/local/bin
,然后在脚本中输入#!/bin/sh
第一行,然后输入命令。从那里开始,它非常方便使用,并且可以通过输入快速执行
1
Enter
在终端上,从任何文件夹内部。
我的问题是,我目前正在使用一台无法执行操作的计算机sudo
,而且我也不指望能得到它,所以我无法将我的脚本放入/usr/local/bin
。
我有什么选择?是否有其他具有相同“从任何地方运行”功能的路径,我无需访问sudo
,或者还有其他方法可以实现等效功能?
接受的答案这个帖子说
对于用户范围的脚本,请使用主目录中的 bin/。
我尝试过,但我的主目录中没有bin
文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行该脚本。
我正在运行 Ubuntu 12.04 LTS。
答案1
我有什么选择?是否有另一条具有相同“从任何地方运行”功能的路径,我无需 sudo 即可访问,或者有其他方法可以实现相同的功能?
怎么做?
在您的主目录中创建一些目录来保存您的脚本,通常以bin
约定俗成的方式命名。
mkdir ~/bin
现在将脚本移至 bin
mv somescript ~/bin
现在如何让它从任何地方调谐?!
您必须将其添加bin
到 PATH
打开你的.bashrc
gedit .bashrc
并添加以下行:
export PATH=$PATH:/home/username/bin
不要忘记username
用你的用户名替换
保存并退出,然后 source bashrc
source .bashrc
现在一切正常,您可以像以前一样运行脚本!但您必须注意,这仅与您的用户有关。
注意:最好将脚本重命名为 1、2 以外的名称,因为您可能会遇到与这些名称相关的一些问题
更新:
你可以做同样的事情,只需在你的主目录中创建 bin 目录,而source ~/.profile
不是~/.bashrc
。因为将 ~/bin 添加到你的 PATH 中已经列出.profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
答案2
此外https://askubuntu.com/a/643030/218015你也可以在 .bashrc 中为一些小的、经常使用的任务定义一个别名。例如
alias ll='ls -l'
alias ls='ls --color=auto'
将为您创建一个“命令” ll,该命令执行 ls -l,并且在定义别名后 ls 将被着色。https://wiki.ubuntuusers.de/alias还有更多示例和设置方法。
答案3
尝试~/.local/bin/
。
(我承认这个答案没有增加任何新内容,但这个问题有一个简短的答案,不需要阅读其他所有内容。)
答案4
确实应该有一个每个用户的 bin,因为它在多用户环境中非常有用,在这种环境中,人们被拒绝 root 权限,以使每个人都更安全。在 bash 脚本中使用以下内容可自动创建它。
if [ ! -d "$HOME/.local/bin" ] ; then
mkdir -p "$HOME/.local/bin"
printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
# Change the PATH right now:
PATH="$PATH:$HOME/.local/bin"
fi