Chr*_*uck 7 mac command-line macos
我有一个已添加到 .bashrc 的别名,它仅在我运行“bash”命令后才在终端中激活。我觉得我应该知道这里发生了什么,但我不知道。:)
来自man bash
:
当一个不是登录 shell的交互式 shell启动时,bash 读取并执行来自 的命令
~/.bashrc
(如果该文件存在)。
强调我的
在 OS X 上,所有终端窗口和选项卡都运行登录 shell,这相当于您运行bash --login
而不是bash
. ~/.bashrc
因此被忽略,除非明确地source
来自例如~/.bash_profile
:
当 bash 作为交互式登录 shell 被调用时,[...] 它首先从文件中读取并执行命令
/etc/profile
(如果该文件存在)。读取该文件后,它会按该顺序查找~/.bash_profile
、~/.bash_login
、 和~/.profile
,并从第一个存在且可读的命令中读取和执行命令。
~/.bash_profile
如果不存在则创建,并添加以下行:
. .bashrc
Run Code Online (Sandbox Code Playgroud)
然后.bashrc
甚至会为登录会话加载。
根据 OS X 的版本,您使用的默认 shell 可能不是 bash。您可以通过键入(在运行“bash”之前)来验证这一点:
$ echo $SHELL
/bin/zsh
Run Code Online (Sandbox Code Playgroud)
您可以将默认 shell 更改为 bash,这样您就不必按照此处的说明继续运行该命令:
https://serverfault.com/questions/21044/how-do-i-change-a-users-default-shell-in-osx
来自@chopper3
对于 <=10.4 - netinfo 管理器,/users/whoever/shell
对于 10.5=> - SysPrefs、帐户、按住 Control 键单击用户、选择高级选项、编辑登录 shell 字段。
为了进一步回答您的问题,.bashrc 仅由 bash shell 使用。如果您愿意,您可以找出您正在使用的 shell,并将别名添加到 .tcshrc 或 .zshrc,而不是更改所有内容以使用 bash。
有关 shell 是什么的更多信息:
http://en.wikipedia.org/wiki/Shell_(计算)
并特别强调:
http://en.wikipedia.org/wiki/Bash_(Unix_shell)
归档时间: |
|
查看次数: |
7049 次 |
最近记录: |