有没有办法让 bash 自动加载我创建的 shell 脚本并将其放入 /usr/bin 中?
或者我应该在其他地方放置自定义 shell 脚本以便自动加载它们?
例如,假设我创建一个名为myscript
内容的脚本:
#!/bin/bash
alias e=echo
并使其可执行(chmod a+x
),并将其放入 usr/bin 中。我无法从命令行调用 e (当我尝试时,它说未找到该命令)。
我究竟做错了什么?
答案1
alias
您定义的别名只有在实际调用该命令后才会生效。因此,如果你要这样做:
$ source myscript
$ e "Hello"
它应该有效。然而,这显然并不理想,因为您希望e
每次启动 bash 时都可用。幸运的是,bash 提供了多种在 shell 启动时自动运行命令的方法。有关 bash 如何启动的完整详细信息,请参阅手册页。就我们的目的而言,只要知道~/.bashrc
shell 启动时运行(即主目录中名为“.bashrc”的文件)就足够了。使别名在启动时可用的一种方法是在末尾添加此行~/.bashrc
:
source myscript
但是,如果您要对每个所需的别名执行此操作,您的/usr/bin
文件夹可能会变得一团糟。而且,如果您在多用户系统上,填充/usr/bin/
这样的脚本也可能会导致其他用户出现问题。因此,最好将别名放在里面.bashrc
并放弃单独的脚本。由于您使用的是 Ubuntu,因此您的.bashrc
文件中可能有如下内容:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
此代码在您的主目录中查找文件调用.bash_aliases
,并运行在该文件中找到的任何内容。如果您有这个,或者如果您将此代码添加到您的 中.bashrc
,您也可以将您的别名放入 中~/.bash_aliases
。这提供了一种简单的方法来将所有别名保存在一个位置并保持.bashrc
文件整洁。
答案2
此类命令应放置在 ~/.bashrc 中