通用脚本的 /usr/local/bin 的非 sudo 替代方案

use*_*366 18 permissions command-line bash scripts

我习惯于将常用脚本放入其中,/usr/local/bin以便我可以使用终端从任何地方执行它们。

例如,我创建了一个名为 的 shell 脚本1,使其可执行chmod +x 1并放入 中/usr/local/bin,然后在脚本中#!/bin/sh的第一行输入,然后输入我的命令。从那以后,它非常方便地使用并且通过键入快速执行

1Enter

在终端上,从任何文件夹内。

我的问题是我目前正在使用一台无法完成的计算机,sudo我也不希望得到它,所以我无法将我的脚本放在/usr/local/bin.

我有哪些选择?是否有另一条具有相同“从任何地方运行”功能的路径,我可以在没有 的情况下访问它sudo,或者以另一种方式实现等效的功能?

这篇文章的公认答案说

对于用户范围的脚本,请在您的主目录中使用 bin/。

我试过了,但bin我的主目录中没有文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行脚本。

我在 Ubuntu 12.04 LTS 上运行。

May*_*hux 20

我有哪些选择?是否有另一条具有相同“从任何地方运行”功能的路径,我可以在没有 sudo 的情况下访问它,或者另一种实现等效功能的方法?

怎么做?

在您的家中创建一些目录来保存通常命名bin为约定的脚本。

mkdir ~/bin
Run Code Online (Sandbox Code Playgroud)

现在将您的脚本移至 bin

mv somescript ~/bin
Run Code Online (Sandbox Code Playgroud)

现在如何让它从四面八方变通?!

你必须添加bin到 PATH

打开你的 .bashrc

gedit .bashrc
Run Code Online (Sandbox Code Playgroud)

并添加这一行:

export PATH=$PATH:/home/username/bin
Run Code Online (Sandbox Code Playgroud)

不要忘记替换username为您的用户名

保存退出,然后source bashrc

source .bashrc
Run Code Online (Sandbox Code Playgroud)

现在你很好了,你可以像以前一样运行你的脚本了!但您必须注意这仅与您的用户有关。

注意:最好将您的脚本重命名为 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
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

9068 次

最近记录:

4 年,8 月 前