有没有办法让 bash 自动加载我创建的 shell 脚本并将其放入 /usr/bin 中?
或者是否有其他地方我应该放置自定义 shell 脚本以便自动加载它们?
例如,假设我创建了一个myscript包含内容的脚本:
#!/bin/bash
alias e=echo
Run Code Online (Sandbox Code Playgroud)
并使其可执行 ( chmod a+x),并将其放入 usr/bin。我无法从命令行调用 e (当我尝试时,它说找不到命令)。
我究竟做错了什么?
您定义的别名只有在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文件整洁的简单方法。
| 归档时间: |
|
| 查看次数: |
3256 次 |
| 最近记录: |