mac上的“source”命令

时间:2014-01-18 23:37:00

标签: macos shell command

我在Mac OS上有一个.bashrc文件,我在其中设置了一些别名。在我创建它并输入source .bashrc之后,别名可以完美地工作。但是,如果打开另一个shell,我的快捷命令将无法识别,我需要再次执行source .bashrc。怎么能一劳永逸地做到这一点?

4 个答案:

答案 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选项。

所以:

  1. 使用~/.bash_profile代替~/.bashrc
  2. 使用来自~/.bashrc的{​​{1}}来源~/.bashrc
  3. 告诉您的终端应用程序打开新的shell作为非登录shell。
  4. 我做了最后两个。例如~/.bash_profile和Emacs中的shell模式将新shell打开为非登录shell。我仍然从tmux获取~/.bashrc来源,因为当我ssh到我的计算机时,Bash作为登录shell打开。

答案 1 :(得分:2)

如果您想在每次打开新标签时获取bash_profile文件,也可以在Iterm上设置命令。

转到首选项 - >个人资料 - >一般 - >命令

iter-bash-profile

答案 2 :(得分:1)

如果您使用的是Mac,并且想在打开ws:///时自动打开source ~/.bash_profile

  1. 打开终端
  2. 转到首选项
  3. 转到个人资料
  4. 选择然后打开 shell
  5. 在“运行”命令中添加此命令terminal enter image description here

答案 3 :(得分:-1)

  1. nano~.bash_profile(打开〜.bash_profile)

  2. aliasname的(){ ssh user @ ipaddress (你可以为别名添加任何命令,我已经显示了特定IP地址的ssh命令)

  3. 按Control + O并按Enter键(保存文件)。 Control + X(退出纳米编辑器)

  4. source .bash_profile

  5. 现在,无论何时键入aliasname,都可以在所有终端上执行持久命令。