我应该把我的脚本放在哪里,以便我可以通过直接命令运行它?

Pan*_*dya 73 command-line scripts

我可以(应该)把我的(bash)脚本放在哪里,以便它可以(永远)被终端或直接命令使用:Alt+ F2

我知道有/usr/bin/sbin&/bin目录,但我什么时候应该在它们之间使用?

我应该把我的脚本放在哪里?

Twi*_*les 90

这取决于谁将使用您的脚本:

  • 只有你自己-$HOME/bin就像@waltinator 说的
  • 您和其他本地用户-/usr/local/bin
  • root只有——/usr/local/sbin

这样,您就可以将自己的脚本与分发提供的二进制文件分开。

  • 这只适用于`/sbin`,不适用于`/usr/sbin` 或`/usr/local/sbin`。文件系统层次结构标准规定“_本地安装的系统管理程序应放置在 /usr/local/sbin._”[\[link\]](http://www.pathname.com/fhs/pub/fhs-2.3 .html#FTN.AEN1540)。 (2认同)

Rin*_*ind 70

不要使用这些目录:

/usr/bin/sbin/bin

将它们留给包管理的可执行文件。


如果您需要一个用户的脚本,waltinator 的回答很好。

如果您需要系统上所有用户的脚本(但您也可以将其用于一个用户),请将其粘贴在/usr/local/bin/. 优点之一:此目录已在您的 PATH 中,因此无需编辑文件。


wal*_*tor 52

你应该把你的脚本放在$HOME/bin. 按照以下 PATH 实现此目的:

  1. 使用创建文件夹 mkdir $HOME/bin
  2. 然后把你的脚本放进去 $HOME/bin

  3. 最后,$HOME/.bashrc通过编辑添加以下行gedit $HOME/.bashrc

导出路径="$HOME/bin:$PATH"

当系统查找您输入的命令时,它会在每个目录中查找$PATH并执行它找到的第一个匹配项。

  • @JacobVlijm:它是“默认找到的”,因为它已添加到 `~/.profile` 中的 $PATH 中。;) (8认同)
  • 我不确定我是否理解。*首先*把它放在$HOME/bin,然后创建目录?此外,$HOME/bin 中的脚本默认是可以找到的,无需将其添加到 $PATH 中。 (3认同)
  • 将 $HOME/bin 添加到您的路径的开头将确保您的脚本在系统上的任何其他地方之前被看到。虽然这很方便,但如果您的一个或多个脚本与路径中其他位置的命令同名,则它会让您面临各种意外行为。这可能会打开安全漏洞,因为与具有提升权限的用户帐户相比,获得对用户帐户的访问权限要容易得多。例如,有人将名为 ls 的脚本添加到真正运行 rm -rf * 的 bin 目录中。将 $HOME/bin 添加到路径的末尾可以避免大多数此类问题。 (3认同)

归档时间:

查看次数:

91908 次

最近记录:

7 年,4 月 前