Alias 无法在 Mac 上永久保存?

sta*_*ang 3 macos command-line alias

我想创建自己的别名,使一些命令的详细simpler.I添加 alias ll='ls -l'~/.bashrc,就像这样:

 ANDROID_NAME=/Users/smy/Library/Android/sdk
 PYTHONPATH=/Library/Python/2.7/site-packages:$PYTHONPATH
 PATH=$ANDROID_NAME/platform-tools:$PYTHONPATH:$PATH

 export ANDROID_HOME
 export PYTHONPATH
 export PATH

 #alias 
 alias ll='ls -l'
Run Code Online (Sandbox Code Playgroud)

当我第一次将此别名添加到此文件时,我执行source命令,如下所示:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

然后在这个命令窗口中,它可以工作,但是当我创建一个新的命令窗口时,它无法识别ll别名,即当我执行时ll,存在这样的错误:

-bash: ll: command not found
Run Code Online (Sandbox Code Playgroud)

当我输入时source ~/.bashrc,它会起作用。

所以我的问题是: 为什么每次输入别名时都无法识别别名,为什么我必须source在新命令窗口打开时执行命令才能使其工作,以及如何解决这个问题。我在 mac 上工作,任何人都可以教我这个,谢谢!

Dar*_*ust 5

您需要使用~/.bash_profile~/.profile登录 shell 而不是~/.bashrc. 从文档

当 Bash 作为交互式登录 shell 或带有--login选项的非交互式 shell 调用时,它首先从文件中读取并执行命令/etc/profile(如果该文件存在)。读取该文件后,它会按该顺序查找~/.bash_profile~/.bash_login、 和~/.profile,并从第一个存在且可读的命令中读取和执行命令。

和:

当一个不是登录 shell 的交互式 shell 启动时,Bash 读取并执行来自 的命令~/.bashrc(如果该文件存在)。

打开新的终端窗口/选项卡时,外壳应作为登录外壳打开。