我希望添加一些可以在任何目录中使用的基本全局函数。这可能吗?
假设我只想执行一个简单的测试命令:
say_hello () {
echo "Hello World!"
}
是否有某个文件可以定义它,以便我可以在整个计算机上使用它?
答案1
听起来您可能想修改 $PATH 环境变量。您可以很容易地做到这一点,但man bash
在遵循任何人的建议之前您应该阅读。bash
启动时会读取几个配置文件,阅读手册页会告诉您这些文件的读取顺序。
在描述更改之前,请知道更改应该去哪里(几个配置文件中的哪一个)。我建议你使用这个:
~/.profile
(其中~
只是您的主目录的简写),
或者您可以考虑将更改放入此文件中:
~/.bash_profile
您应该在阅读后决定使用哪一个man bash
如果您选择的文件不在您的主目录中,您将通过输入以下命令来创建它:
touch ~/.profile
(例如)
在改变你的道路之前,你应该知道现在是什么。这将告诉您当前路径是什么:
echo $PATH
您可能应该将该路径复制并粘贴到某处(作为注释行~/.profile
恕我直言,将是一个不错的选择)。如果情况恶化,这将使恢复变得更容易。
要更改路径,您应该添加而不是替换它。路径变量的顺序很重要,因为这是 shell 搜索的顺序。您可以添加到路径的前端或后端,但对于您的情况,我建议添加到后端。让我们暂时更改一下:
export PATH=$PATH:~/your/path
(your/path
您希望附加到路径的位置在哪里)
例如,如果您想将主目录中的文件夹添加~/myscripts
到路径中,则命令如下:
export PATH=$PATH:~/myscripts
您可以通过以下方式检查是否有任何影响:
echo $PATH
您应该会在路径列表的末尾看到刚刚添加的路径
因此,如果您对此感到满意,请在编辑器中打开文件~/.profile
,然后在文件末尾添加刚刚使用的行:
export PATH=$PATH:~/myscripts
就是这样。每次启动 shell 时,您添加的路径都将成为“环境”的一部分。如果您想再次更改它,只需编辑~/.profile
以反映您的口味即可。