我正在尝试为终端创建一个永久别名。我把别名放在我的〜/ .profile,〜/ .bashrc和〜/ .bash_profile文件中,以前是空的。当我启动一个新的终端时,bash不能识别别名,但是如果我找到它们中的任何一个,那就确实如此。为什么打开终端时这些没有运行?我在OSX上。
答案 0 :(得分:19)
使用iTerm
加载dotfiles时,需要做两件事。
首先,您应该将以下内容添加到.bash_profile
[[ -s ~/.bashrc ]] && source ~/.bashrc
其次,您需要确保在iTerm
首选项中设置终端以启动登录shell。
希望这有帮助!
答案 1 :(得分:11)
使用默认的mac终端,对我有用的是添加一个命令,在启动时运行以获取.bash_profile。
偏好设置>个人资料>启动>添加命令来源〜/ .bash_profile'
{{3}}
可能被认为有点hacky,但它可以解决问题。
答案 2 :(得分:5)
较新的MacOS版本将zsh用作Terminal和iTerm2的默认外壳。运行echo $SHELL
确认是否适合您。
Zsh在外壳启动时会寻找.zshrc
文件,因此要在采购bash配置文件的内容时继续使用zsh,可以运行以下命令:
echo "source ~/.bash_profile" >> ~/.zshrc
打开一个新的终端窗口,以使更改生效。
答案 3 :(得分:2)
截至High Sierra,终端和iTerm都希望首先加载〜/ .profile。所以我建议你在你的.profile中添加一行,让你的Mac像其他Unix一样工作:
source~ / .bash_profile
通过编辑这一个文件,您不必搜索多个应用程序的菜单来覆盖Apple在每个应用程序中的奇怪行为。
答案 4 :(得分:1)
为什么shell的初始化文件没有加载?
与大多数事情一样,它取决于
我最近遇到了同样的现象,并通过以下练习来解决它:
我使用iTerm。 iTerm默认运行登录shell。在iTerm首选项中验证>一般>命令> (*)登录Shell 因此,我知道〜/ .bash_profile将永远被调用。
知道了,我将以下内容放在〜/ .bash_profile文件中:
for file in ~/.{bashrc,bash_exports,bash_aliases,bash_functions}; do
[ -r "$file" ] && source "$file"
done
unset file
请注意,我为.bashrc,.bash_exports等使用单独的文件。它使事情分离和简单。
另请注意,首先加载/ etc / profile,但由于我从未使用过该系统范围的初始化文件,因此我知道这不是我的问题。有关详细信息,请查看$ man bash
所以,我从〜/ .bash_profile文件开始。
我发现当我安装Canopy Express时,它的安装程序用以下内容替换了〜/ .bash_profile文件的内容:
# Added by Canopy installer on 2017-04-19
# VIRTUAL_ENV_DISABLE_PROMPT can be set to '' to make the bash prompt show that Canopy is active, otherwise 1
alias activate_canopy="source '/Users/lex/dev/python/User/bin/activate'"
# VIRTUAL_ENV_DISABLE_PROMPT=1 source '/Users/lex/dev/python/User/bin/activate'
P.S。 Canopy是一款优秀的免费python IDE,我强烈推荐。
幸运的是,我备份了我的〜/ .bash *文件,因此恢复很容易并快速解决了我的问题。
我的建议是了解调用初始化文件的顺序,从第一个开始,然后逐步完成,直到找到问题为止。
哦,你可能想验证你正在使用哪个shell(我使用bash):
~ $ echo $SHELL
/usr/local/bin/bash
答案 5 :(得分:1)
将source ~/.profile
添加到我的.bash_profile
中为我工作。
答案 6 :(得分:0)
我猜您可能会使用其他shell,例如bash,tcsh,sh,zsh等。
将source .bash_profile
放入相应的'bashrc'文件中,即可恢复自动加载,即
.tcsh.login,bash.bash_profile,zsh.zshrc
答案 7 :(得分:0)
从Catalina开始,默认外壳现在为zsh。您可以使用chsh -s /bin/bash
将其更改为bash,这将加载您的.profile
或.bash_profile
答案 8 :(得分:0)
很有可能,您可以自己创建文件,因为默认情况下它们似乎不存在。您应该授予他们执行权限以使其运行。
~ % sudo chmod 700 ~/.bash_profile
此外,您还应该检查文件的所有权。他们应该属于当前用户,而不是root。否则,您将得到permission denied
错误。
~ % ls -a -l
~ % sudo chown <user_name> ~/.bash_profile
最后,请注意,bash在主目录中依次查找.bash_profile,.bash_login和.profile。如果发现第一个,Bash将停止寻找。 这意味着如果您同时具有.bash_profile和.profile文件,则.profile将不会运行。 For more information
希望这会对您有所帮助。
答案 9 :(得分:0)
通过取消选中 Preferences > General > tmux >
解决了我的问题使用“tmux”配置文件而不是连接会话的配置文件