Windows下使用Git-Bash日常开发
Posted on: 2023年5月14日 at 12:27
这是一篇发布于 375 天以前的旧文,其中的部分内容可能已经过时。
参考知乎:Windows 下的 Git Bash 配置,提升你的终端操作体验
配置文件
Git-Bash
加载的配置文件是 ~/.bash_profile
,不会加载 ~/.bashrc
。
如果想要加载 ~/.bashrc
,可以在 ~/.bash_profile
文件中加上一行 source ~/.bashrc
Windows Terminal 和 VSCode 打开 Git Bash,发现不会加载配置
bash.exe -l -i
加上参数 -l
和 -i
Git-Bash 修改前缀 (隐藏用户 @ 主机)
把下边这段逻辑添加到配置文件中 ~/.bash_profile
# Git Bash终端前面的字符去掉
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
# 显示 用户 @ 主机
# export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
# 隐藏用户 @ 主机,显示当前文件夹
#export PS1="\W\[\033[32m\]\$(parse_git_branch)\[\033[00m\]"
# 只显示当前文件夹
#export PS1="\[\e[32;1m\]\W $\[\e[0m\]\[\033[32m\]\$(parse_git_branch)\[\033[00m\] "
# 显示全路径
export PS1="\[\e[32;1m\]\w $\[\e[0m\]\[\033[32m\]\$(parse_git_branch)\[\033[00m\] "
上述命令中特殊符号所代表的意义:
\u
:当前用户的账号名称\w
:完整的工作目录名称。家目录会以 ~代替\W
:利用 basename 取得工作目录名称,所以只会列出最后一个目录\H
:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是 fc4.linux\h
:仅取主机的第一个名字,如上例,则为 fc4,。linux 则被省略\d
:代表日期,格式为 weekday month date,例如:“Mon Aug1”\t
:显示时间为 24 小时格式,如:HH:MM:SS\T
:显示时间为 12 小时格式\A
:显示时间为 24 小时格式:HH:MM\v
:BASH 的版本信息#
:下达的第几个命令$
:提示字符,如果是 root 时,提示符为:# ,普通用户则为:$
Git-Bash 中文乱码
- 终端不能显示中文:打开
Git bash
,右键打开选项,Options->Text->Locale
改为zh_CN
,Character set
改为UTF-8
- 解决
git status
不能显示中文:终端输入git config --global core.quotepath false
Git-Bash 不识别 bat 脚本,必须手动加上 .bat
后缀
把下边这段逻辑添加到配置文件中 ~/.bash_profile
function command_not_found_handle {
local cmd="${1##*/}" # 解析出命令名
if [[ $cmd != *.* ]]; then
shift # 将第一个参数弹出
"${cmd}.bat" "$@"
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
export -f command_not_found_handle
上面代码的逻辑就是拦截 command_not_found_handle
,当命令不存在时,执行自定义的 command_not_found_handle
函数,函数中判断:如果所执行的命令没有 .
,则尝试执行添加 .bat
后缀的命令。
添加的环境变量不生效
把下边的命令添加到 ~/.bash_profile
中,source
后不生效
export PATH="$PATH:D:\Program Files\Python310"
上面的路径是 Windows 下的路径,Linux 下不是这样的,改成下边这样
export PATH="$PATH:/d/Program Files/Python310"
把 code 添加到 PATH 中,执行 code 不能打开 vscode
# export PATH="$PATH:/d/software/Microsoft VS Code/bin"
alias code="/d/software/Microsoft\ VS\ Code/bin/code.cmd"
把 /d/software/Microsoft VS Code/bin
添加到 PATH
中,并不能打开 vscode
,是因为该目录中有两个同名的 code 文件:code
和 code.cmd
。code
是 wsl
中执行的,code.cmd
才是我们需要执行的。
设置终端标题为当前路径
PROMPT_COMMAND='echo -ne "\033]0;${PWD}\007"'
执行 sudo 命令
需要先安装 gsudo,然后把 gsudo
的安装目录添加到 PATH
中:
export PATH="$PATH:/d/Program Files/gsudo/Current"