有两种情况:
- 您正在使用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工作顺利!