我在Mac OS上有一个.bashrc
文件,我在其中设置了一些别名。在我创建它并输入source .bashrc
之后,别名可以完美地工作。但是,如果打开另一个shell,我的快捷命令将无法识别,我需要再次执行source .bashrc
。怎么能一劳永逸地做到这一点?
答案 0 :(得分:6)
终端和iTerm 2默认打开新shell作为登录shell。当Bash作为登录shell打开时,它会显示~/.bash_profile
但不会显示~/.bashrc
。
请参阅https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html:
作为交互式登录shell调用,或使用--login
调用当Bash作为交互式登录shell或作为具有--login选项的非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。在读取该文件之后,它按顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动shell以禁止此行为时,可以使用--noprofile选项。
所以:
~/.bash_profile
代替~/.bashrc
。~/.bashrc
的{{1}}来源~/.bashrc
。我做了最后两个。例如~/.bash_profile
和Emacs中的shell模式将新shell打开为非登录shell。我仍然从tmux
获取~/.bashrc
来源,因为当我ssh到我的计算机时,Bash作为登录shell打开。
答案 1 :(得分:2)
答案 2 :(得分:1)
如果您使用的是Mac,并且想在打开ws:///
时自动打开source ~/.bash_profile
答案 3 :(得分:-1)
nano~.bash_profile(打开〜.bash_profile)
aliasname的(){ ssh user @ ipaddress (你可以为别名添加任何命令,我已经显示了特定IP地址的ssh命令)
按Control + O并按Enter键(保存文件)。 Control + X(退出纳米编辑器)
source .bash_profile
现在,无论何时键入aliasname,都可以在所有终端上执行持久命令。