我的$HOME/bin
文件夹中有一个脚本,必须使用sudo
.
如果我跑
sudo <nameofthescript>
我明白了
sudo: <nameofthescript>: command not found
将此脚本添加到$PATH
of的最可取的方法是sudo
什么?
我应该搬进去/usr/local/sbin
吗?
我应该创建一个/root/bin
文件夹吗?
我的$HOME/bin
文件夹中有一个脚本,必须使用sudo
.
如果我跑
sudo <nameofthescript>
我明白了
sudo: <nameofthescript>: command not found
将此脚本添加到$PATH
of的最可取的方法是sudo
什么?
我应该搬进去/usr/local/sbin
吗?
我应该创建一个/root/bin
文件夹吗?
sudo
设置了一个 limitedPATH
,所以它不会找到你的本地脚本。您可以将其配置为不env_reset
针对给定用户等,但也许最简单的事情是编写您自己的单行mysudo
脚本:然后说
mysudo somecommand ...
而不是sudo somecommand ...
。它会要求 sudo 运行一个 shell,将PATH
它设置回原来的样子,然后运行在该原始路径中找到的命令。PATH
是 Linux、Windows 等操作系统上的环境变量,它具有可执行程序所在的特定目录集。根据您的问题,您的可执行脚本位于$HOME/bin
目录下。因此,如果要运行不在 PATH 中的脚本,则需要提供完整的文件结构路径以让 OS 访问文件以执行它。例如,如果您不想一直提供完整的文件路径,您可以使用以下命令将该文件路径置于名副其实的环境中。考虑到,您已将脚本保存在
$HOME/bin
目录中。上面的命令会将您的 bin 目录添加到环境路径,然后您可以
<nameofscript>
在系统上的任何位置使用。此外,这只会在您的 bash 运行之前有效,如果您在新终端中尝试相同的操作,您的 PATH 将更改为默认值。要使其永久化,您需要在文件$HOME/.profile
或$HOME/.bashrc
文件中添加以下行。要只允许 root 用户
<nameofscript>
从任何地方执行,您可以放在目录下/sbin
或/usr/sbin
目录下。