问题描述
我在〜/ .bash_aliases中有别名
我曾经运行过ubuntu,这些别名从启动时就自动起作用。
现在,当我切换到Windows并开始使用Git Bash时,我必须使用
source ~/.bash_aliases
或
. ~/.bash_aliases
让它们被bash识别
如何在每次打开bash时不使用此命令就能使它们工作?
我认为这是我必须在〜/ .bashrc中做的事情
解决方法
是的,您是对的!要配置bash别名,可以将其放在主目录的.bashrc
文件中。例如:
cd
echo alias ll=\'ls -ltrh\' >> .bashrc
下一步,您需要获取该文件的源代码(即运行源.bashrc
)或重新启动终端以使更改生效。
如果.bashrc
或C:\Users\<username>\AppData\Local\GitHub\PortableGit_\etc\profile.d\aliases.sh
下有alias.sh文件(与C:\Program Files\Git\etc\profile.d\aliases.sh
文件等效),您也可以使用该文件。
当您登录或打开新的bash shell时,.bashrc将从bash获取。 您在.bashrc中获取的任何内容-也会被获取。
所以在您的情况下放置
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
在您的.bashrc中,应该可以解决问题。
,如果它们在启动时存在,则取决于调用的方式,会加载各种文件。
作为登录外壳调用
当Bash作为交互式登录shell或使用--login选项作为非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它将按该顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取并执行命令。启动外壳程序时,可以使用--noprofile选项来禁止这种行为。
退出交互式登录Shell或非交互式登录Shell执行exit内置命令时,Bash会从〜/ .bash_logout文件(如果存在)中读取并执行命令。
被称为交互式非登录外壳
启动不是登录shell的交互式shell时,Bash从〜/ .bashrc读取并执行命令(如果该文件存在)。使用--norc选项可以禁止这种情况。 --rcfile file选项将强制Bash从文件而不是〜/ .bashrc中读取和执行命令。
因此,通常,〜/ .bash_profile中包含以下行
if [-f〜/ .bashrc];然后 。 〜/ .bashrc;科幻 在任何特定于登录的初始化之后(或之前)。
您可以通过添加来自bash_aliases
文件中的.bashrc
文件
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
也this is helpful post来了解.bashrc
和.bash_profile
之间的区别