我刚刚安装了Windows版Git,很高兴看到它安装了Bash。
我想自定义外壳以同样的方式我可以在Linux下(如设立类似于别名ll
为ls -l
),但我似乎无法找到.bashrc
或等效的配置文件。
我应该编辑什么?
我刚刚安装了Windows版Git,很高兴看到它安装了Bash。
我想自定义外壳以同样的方式我可以在Linux下(如设立类似于别名ll
为ls -l
),但我似乎无法找到.bashrc
或等效的配置文件。
我应该编辑什么?
Answers:
创建.bashrc
文件,~/.bashrc
随身携带。同样适用于~/.gitconfig
。
~
通常是您的C:\Users\<your user name>
文件夹。echo ~
在Git Bash终端中键入将告诉您该文件夹是什么。
如果无法创建文件(例如,运行Windows),请运行以下命令:
copy > ~/.bashrc
该窗口将输出一条错误消息(未找到命令),但是将创建文件并准备好进行编辑。
notepad ~/.bashrc
在bash提示符下键入,便会在打开此文件的情况下启动记事本,或者要求创建它(如果不存在)。如果您愿意使用vim,请输入vim ~/.bashrc
。它对我很好。
touch ~/.bashrc
在Windows的较新版本的Git中,启动Bash --login
会导致Bash无法.bashrc
直接读取。相反,它显示为.bash_profile
。
如果此文件不存在,请使用以下内容创建它:
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
这将导致Bash读取.bashrc
文件。根据我对这个问题的了解,Git for Windows应该自动执行此操作。但是,我刚刚安装了2.5.1版,但没有安装。
我不得不添加一个用户环境变量HOME
,以C:\Users\<your user name>
通过将系统,高级系统设置,在系统属性窗口,在高级选项卡,环境变量 ...
然后在我中C:\Users\<your user name>
创建文件.bashrc
,例如,touch .bashrc
并添加所需的别名。
我认为这里的问题是如何在Windows上找到.bashrc文件。
由于您使用的是Windows,因此您可以简单地使用以下命令
start .
要么
explorer .
打开包含您的Git Bash安装根目录的窗口.bashrc
。如果不存在,则可能需要创建一个。
您可以使用Windows Notepad ++之类的Windows工具来编辑文件,而不是在Bash窗口中使用Vim。
1)首先在管理员模式下打开git-bash.exe。(右键单击该文件,然后选择“以管理员身份运行”,或在“属性”→“兼容性”→“以管理员身份运行此程序”中更改设置。)
2)运行cd ~
。它会带你去C:/Users/<Your-Username>
。
3)运行vi .bashrc
。这将使您进入编辑器。点击INSERT,然后开始输入以下信息:
alias ll="ls -la" # this changes the default ll on git bash to see hidden files.
cd "C:\directory\to\your\work\path\"
ll # this shows your your directory before you even type anything.
请使用以下命令,
cat /etc/bash.bashrc > ~/.bashrc
这将生成一个具有默认值的新bashrc文件。请使用vi ~/.bashrc
编辑此文件。
有时文件实际上位于~/
。这些是我将Zsh作为Visual Studio Code / Windows 10 上的默认终端启动的步骤。
cd ~/
vim .bashrc
粘贴以下内容...
if test -t 1; then
exec zsh
fi
保存/关闭Vim。
重启终端
如果要在打开Git Bash时拥有项目选择列表,请执行以下操作:
ppath
在代码头中编辑Git项目路径,将此代码放入.bashrc文件,然后将其复制到$ HOME目录(在Windows Vista / Windows 7中,通常为C:\ Users \ $ YOU)。
#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0
echo
echo -e "projects:\n-------------"
for f in *
do
if [ -d "$f" ]
then
PROJECTS+=("$f")
echo -e $((++i)) "- \e[1m$f\e[0m"
fi
done
if [ ${#PROJECTS[@]} -gt 1 ]
then
echo -ne "\nchoose project: "
read proj
case "$proj" in
[0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
*) echo " wrong choice" ;;
esac
else
echo "there is no projects"
fi
unset PROJECTS