如何使别名在启动时自动工作?

问题描述

我在〜/ .bash_aliases中有别名

我曾经运行过ubuntu,这些别名从启动时就自动起作用。

现在,当我切换到Windows并开始使用Git Bash时,我必须使用

source ~/.bash_aliases

. ~/.bash_aliases

让它们被bash识别

如何在每次打开bash时不使用此命令就能使它们工作?

我认为这是我必须在〜/ .bashrc中做的事情

解决方法

是的,您是对的!要配置bash别名,可以将其放在主目录的.bashrc文件中。例如:

cd
echo alias ll=\'ls -ltrh\' >> .bashrc

下一步,您需要获取该文件的源代码(即运行源.bashrc)或重新启动终端以使更改生效。

如果.bashrcC:\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之间的区别