自动从 /usr/bin 加载 shell 脚本

Cam*_*Cam 3 bash shell-script

有没有办法让 bash 自动加载我创建的 shell 脚本并将其放入 /usr/bin 中?

或者是否有其他地方我应该放置自定义 shell 脚本以便自动加载它们?

例如,假设我创建了一个myscript包含内容的脚本:

#!/bin/bash
alias e=echo
Run Code Online (Sandbox Code Playgroud)

并使其可执行 ( chmod a+x),并将其放入 usr/bin。我无法从命令行调用 e (当我尝试时,它说找不到命令)。

我究竟做错了什么?

Ste*_*n D 7

您定义的别名只有在alias实际调用命令后才会生效。因此,如果您要这样做:

$ source myscript
$ e "Hello"
Run Code Online (Sandbox Code Playgroud)

它应该工作。但是,这显然并不理想,因为您希望e在启动 bash 时随时可用。幸运的是,bash 提供了多种方法来在 shell 启动时自动运行命令。有关 bash 如何启动的完整详细信息,请参阅手册页。就我们的目的而言,知道~/.bashrc在您的 shell 启动时运行(即您的主目录中名为“.bashrc”的文件)就足够了。在启动时使您的别名可用的一种方法是在末尾添加此行~/.bashrc

source myscript
Run Code Online (Sandbox Code Playgroud)

但是,如果您要为您想要的每个别名都这样做,您的/usr/bin文件夹可能会变得一团糟。而且,如果您在多用户系统上,填充这样/usr/bin/的脚本也可能会导致其他用户出现问题。因此,最好将您的别名放在里面,.bashrc并一起放弃单独的脚本。由于您使用的是 Ubuntu,因此在您的.bashrc文件中,您可能有如下内容:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases 
fi
Run Code Online (Sandbox Code Playgroud)

此代码.bash_aliases在您的主目录中查找文件调用并运行它在该文件中找到的任何内容。如果你有这个,或者如果你将此代码添加到你的.bashrc,你也可以把你的别名放在~/.bash_aliases. 这提供了一种将所有别名保存在一个地方并保持.bashrc文件整洁的简单方法。

  • 如果您只是想在启动时定义别名,那么我推荐 .bash_aliases 路由。.bashrc 文件可能会变得有点长,具体取决于您使用它做什么,因此我更喜欢为别名定义提供一个单独的位置,以便您可以轻松更改/添加别名。 (2认同)

gel*_*aen 5

这样的命令应该放在 ~/.bashrc 中