有两种情况:
- 您正在使用Linux
- 您正在使用Mac Os X
对于两者,您都希望~/.bashrc在终端的外壳启动时从已加载或已获取的配置文件中获取资源。
LINUX
在Linux中,~/.profile启动时会自动在shell中提供源代码。因此,如果您在终端上输入cd ~; ls -A,您将在主目录(/home/usrname/)中看到所有文件和目录。您应该看到一个名为的文件.profile。这是启动终端时自动“获取”的文件。
如果要向其添加别名和函数~/.bashrc(这是我的工作),则应该(在~/.profile添加if语句的同时检查是否~/.bashrc为非空文件,然后为其提供源代码)。
要检查您是否~/.profile已经这样做,请输入nano ~/.profile。这将在文本编辑器中打开它(如果知道,可以使用gedit,如果知道如何使用,甚至可以使用vim)。您可能会得到一个空的文本文件(不应该这样),但是如果您这样做,则只需继续。如果您没有看到一条线的任何位置,上面写着source ~/.bashrc,然后某处输入以下行(把它放在一个合理的地方像在结束或开始,而不是在if语句中的中间):
if [ -s ~/.bashrc ]; then
    source ~/.bashrc;
fi
这将检查是否~/.bashrc为非空文件(带有if [ -s ~/.bashrc ]),如果是,则将其作为源。很简单 现在,您可以将任何有效的别名,函数,变量等添加到~/.bashrc。
MAC OS X
默认情况下,Max OS X源~/.bash_profile。为了能够添加内容~/.bashrc(同样,这也是我在OS X中所做的事情),然后按照与Linux相同的步骤进行操作。在终端中输入cd ~; nano .bash_profile。检查是否显示一行,source ~/.bashrc如果没有,则在(if [ -s ~/.bashrc ]; then source ~/.bashrc; fi)上方添加if语句。
笔记
当if语句写的,一定要留空间基本上一切之间(例如if [ -s ~/.bashrc]; then echo "found"; fi不工作,因为没有空间beween ~/.bashrc和]-解释器会认为这是一个词)。
如果您想弄清楚如何更好地检查if语句中的内容,请转到terminal并输入man \[; 从本质上讲,这使您可以使用if语句。例如,if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi检查if /path/to/file是一个文件,是否将其打印到stdout。我也经常引用此内容,以方便理解和快速参考:7.2。文件测试操作员。
我希望这有帮助。我记得当我开始所有这些工作时(不久之前),我感到多么困惑。因此,祝您未来的UNIX工作顺利!