我正在尝试为我的终端创建一个永久别名。我将别名放入之前为空的 ~/.profile、~/.bashrc 和 ~/.bash_profile 文件中。当我启动一个新终端时,bash 无法识别该别名,但如果我获取其中任何一个,它就会识别。为什么当我打开终端时这些没有运行?我在 OSX 上。

有帮助吗?

解决方案

使用时这里需要发生两件事 iTerm 使点文件的加载工作。

首先,您应该将以下内容添加到您的 .bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

其次,您需要确保 iTerm 您的终端设置为启动登录 shell 的首选项。

iTerm Preferences

希望这可以帮助!

其他提示

使用默认的Mac终端,对我有效的是添加一个命令以在启动时运行以源我的.bash_profile。

首选项>配置文件>启动> add命令'source〜/ .bash_profile'

mac终端首选项窗口屏幕截图

可能被认为是有点忏悔,但它是技巧。

作为高塞拉,终端和item想要首先加载〜/ .profile。所以我建议你把一行放在你的.profile中,让你的Mac像其他Unix一样工作:

源〜/ .bash_profile

通过编辑该文件,您不必搜索多个应用程序的菜单,以覆盖每个应用程序的苹果的奇异行为。

向我的source ~/.profile添加.bash_profile,为me工作。

为什么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首先加载,但由于我从未使用该系统宽init文件,我知道这不是我的问题。有关详细信息,请签出$ man bash

所以,我从我的〜/ .bash_profile文件开始。

我发现当我安装 canopy快递它的安装程序替换了我的〜/ .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
.

我猜你可能会使用其他 shell,例如 bash、tcsh、sh、zsh 等。

source .bash_profile 进入适当的“bashrc”文件将使自动加载恢复,即

.login 用于 tcsh,.bash_profile 用于 bash,.zshrc 用于 zsh

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top