对于习惯了Linux和Mac的同学来说,Windows自带的终端确实不太好用。其实我们完全可以用Bash取而代之。
安装Windows Terminal
自从巨硬拥抱开源之后,那是骚操作频频。Windows Terminal是一个开源项目,它本身只是一个终端容器,可以装载系统自带的CMD、PowerShell甚至是WSL子系统的终端。
下载安装很简单,可以在应用商店直接搜索Terminal安装,也可以去GitHub上下载安装包:https://github.com/microsoft/terminal/releases
注:需要Win10版本不小于1903。Win+R打开“运行”输入 winver
命令即可查看系统版本。
安装Git for Windows
先到官网(https://git-scm.com/download/win)下载 64-bit Git for Windows Setup 然后安装,基本上一路下一步,但需要注意几点最后一步有3个Enable xxx,默认第3个(和symbollink相关)没勾,请把它勾上。
安装Git主要是为了它附送的Git Bash,这是本文的主角。装好后注意配置一下环境变量Path,把这几个都加上:
# 具体路径以你安装时的选择为准
C:\Program Files\Git\cmd
C:\Program Files\Git\bin
C:\Program Files\Git\usr\bin
把Git Bash添加到Windows Terminal中
打开Terminal,在顶部可以找到Settings设置选项:
所有设置都在一个json文件中,配置起来相当灵活,我们可以看到其中有一个list数组,对应的就是现有的终端,接下来我们在数组首位插入一段关于Git Bash的配置:
"list":
[
{
"acrylicOpacity" : 0.75, // 窗口透明度
"closeOnExit" : true, // 关闭Terminal是否退出bash
"colorScheme" : "Campbell", // 颜色主题
"commandline" : "bash.exe", // Git Bash的相对路径,因为你配置了环境变量所以不用写绝对路径
"cursorColor" : "#FFFFFF", // 光标颜色
"cursorShape" : "bar", // 光标样式
"fontFace" : "JetBrains Mono", // 字体,必须是系统中已安装的字体
"fontSize" : 11,
"guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6109}", // 该终端的唯一id,一定要和list中其他项不同
"historySize" : 9001,
"icon" : "C:\\Git\\gwindows_logo.png", // Terminal标签页上的图标,自己随便找个都行
"name" : "git-bash", // 标签页上的标题
"padding" : "0, 0, 0, 0", // 终端内容内边距
"snapOnInput" : true,
"startingDirectory" : "%USERPROFILE%", // 每次打开的初始目录
"useAcrylic" : true
},
{
// Make changes here to the powershell.exe profile
...
},
{
// Make changes here to the cmd.exe profile
...
},
{
...
},
{
...
}
]
然后把你自己瞎编的那一串guid替换本json文件上方的 defaultProfile
字段,这样你每次打开Windows Terminal时就会默认启动Git Bash了。有人会问怎么编guid,你可以复制已经有的,然后改一下末尾数字:
"defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6109}"
搞定了就:
解决中文无法显示的问题
打开Git安装目录下的 C:\Git\etc\bash.bashrc (具体路径以你安装的为准)文件,在末尾追加一行:
export LC_ALL=en_US.UTF-8
并保存,重启终端就好了。
将Bash集成到IDEA(或Android Studio)等JB全家桶中
有些同学可以习惯于使用IDE内部的Terminal,这样就不用切来切去。很简单其实,左上角File,然后Settings,找到Terminal这一项设置,把原来的cmd.exe改成sh的全路径即可:"C:\Git\bin\sh.exe" -login -i
如何从任意文件夹目录下启动Bash
我们都知道Ubuntu这种Linux发行版都有在文件夹空白处鼠标右键打开终端的功能,这个很方便,不用手动cd。其实Windows也可以的。需要手动配置一下注册表,具体可以直接参考:新发布的Windows Terminal如何添加到右键菜单?
当然,如果不想修改这些的话,我们也可以在资源管理器的地址栏中输入wt,同样能打开。快速锁定地址栏焦点的快捷键是 Ctrl + L
,和鼠标单击效果一样:
然后输入 wt 再回车就打开啦:
Bash记不住history怎么办
使用过程中会发现,直接关闭Windows Terminal是不会记住bash历史记录的,但如果通过 exit
命令来退出就可以。不过这样每次都输入命令太麻烦了。没关系,有解决办法,很简单!
打开Git安装目录下的 C:\Git\etc\bash.bashrc (具体路径以你安装的为准)文件,在末尾追加内容:
HISTFILESIZE=400000000
HISTSIZE=10000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND
shopt -s histappend
题外话
本文正文已经结束啦!这里给大家安利一个Windows上的小工具。我发现Windows没有类似Linux和Mac上的同应用间切换的快捷键,即 Alt + ~
,在打开很多相同程序的窗口时,如果仅仅是用Win自带的 Alt + Tab
实在是太麻烦了。
恰好这个古董小软件居然还能用在Win10上:Easy Window Switcher
还有上面提到的JetBrains官方字体(免费),也不错的,推荐给大家:JetBrains Mono