首先根据网传资料梳理:

  • cmder 本质上为Cmd增强版。
  • babun 集成了cygwin和其它一些东西,体积较大。
  • PowerShell 启动慢,非系统管理员用不上那些管理指令。
  • Git Bash 很轻巧,一般够用,本质上是mingw64,功能少。
  • WSL (Ubuntu on Windows)速度快,对linux的东西支持好,可以装上zsh和tmux,但是对windows的支持却不好.
  • cygwin 启动比git bash稍慢,不过基本开了就不关,所以可以接受,运行速度可以,能安装zsh和tmux等等.

可以参考:v2ex-Windows 下最好用的终端是什么?

根据需求,我选择了Git Bash,基本满足了我的需求,也简单方便。

Git-Bash, 是 Git 官网 上提供的一个 Git 开发工具包里的一个命令行组件. Git-Bash 源自 MinGW, 是一个用于开发原生 Window 应用的开发环境, 提供了针对 WIn32 应用的 GCC、GNU binutils 等工具.

Git-Bash 美化窗口和字体

个性化分析后,选择了OS X 系统默认的Monaco 字体

但是 Monaco 没有加入对中文的支持,而且大多数编辑器没有双字体设置功能,所以将字体设置成 Monaco 后,中文会以宋体显示,不美观。

那么有什么方法能同时兼顾中英文,让字体都显示得好看呢?

使用字体映射(Fontlink)。

Fontlink 是 Windows 采用的一种类似虚拟字体的技术。使用 Fontlink 时,某个字体可以和多个其它的字体建立连接关系。连接后,该字体通常被称作主字体,而其它那些与之连接的字体称作连接字体。例如我们将主字体 Monaco 映射一个连接字体方正兰亭黑,在输出英文时会以主字体 Monaco 显示;而在输出中文时,Windows 在主字体 Monaco 中没有找到支持中文的字体信息,那么会在连接字体方正兰亭黑中继续搜索,显然方正兰亭黑是支持中文的,所以输出中文时会以方正兰亭黑显示,美观多了。

怎么使用字体映射(Fontlink)呢?

通过修改注册表的方式。

按快捷键 Win+R 打开“运行”窗口,输入“regedit”后回车打开“注册表编辑器”,进入路径[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink],在右侧空白处右击-->新建-->字符串值,重命名为“Monaco”,打开后进行编辑,格式是xxx.ttf,xxx,128,96,这里写为分别Monaco.ttf,Monaco,128,96``是“字体文件名,字体名,缩放因子高,缩放因子宽”,“缩放因子”可以为空。

这个“缩放因子”是个重点,因为将 Monaco 映射方正兰亭黑后,默认情况下中文显示是扁的。在网上找了半天也找不出详细的资料,只知道是调节字体缩放(可以理解成高宽比)的,当值为“128,96”时,字体不会被缩放,也就是默认值。

在 Git-Bash 中我们输入以下代码: vi ~/.minttyrc,并添加下列内容。

Locale=zh_CN

Charset=UTF-8


Columns=160

Rows=45

Font=Monaco

FontHeight=11

Term=xterm-256color

CursorType=block

CursorBlinks=yes

Transparency=low

BoldAsFont=yes

AllowBlinking=no

Scrollbar=none

ScrollbackLines=10000

ClickTargetMod=off

ComposeKey=shift


ForegroundColour=248,248,242

BackgroundColour=39,40,34

CursorColour=255,255,255

Black=39,40,34

BoldBlack=117,113,94

Red=249,38,114

BoldRed=204,6,78

Green=166,226,46

BoldGreen=122,172,24

Yellow=255,255,81

BoldYellow=240,169,69

Blue=144,255,255

BoldBlue=33,199,233

Magenta=174,129,255

BoldMagenta=126,51,255

Cyan=161,239,228

BoldCyan=95,227,210

White=248,248,242

BoldWhite=249,248,245

然后重启 Git-Bash, 即可看到新的主题配色。

Git-Bash 修改前缀 (隐藏用户@主机)

有时候经常嫌一层一层目录实在太长太占地方, 而且截屏时也不方便把全路径显示出来. 所以需要隐藏起来会比较方便, 需要看全路径的话一句 pwd 就显示了.

在 Git-Bash 中我们输入以下代码: vi ~/.bash_profile , 然后把以下内容添加到配置文件里面

# Shows Git branch name in prompt.
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
# Show User @ Name (still with git branch name)
# export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
# Or hide User @ Name (still with git branch name)
export PS1="\W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

Git-Bash 小技巧

常见命令

操作命令
进入目录cd
显示当前目录pwd
创建目录mkdir 目录名
创建目录mkdir -p 目录路径
我是谁whoami
查看路径ls 路径
查看路径ls -a 路径(显示隐藏文件)
查看路径ls -l 路径(显示更多信息(drwx:d 是否是目录, rw 是否可以读写, x 是否可以执行))
查看路径ls -al 路径 (显示隐藏信息和详细信息)
创建文件echo ‘1’ > 文件路径 (并且把内容”1”写入文件)
强制创建文件echo ‘1’ >! 文件路径(只能用在 linux, windows 出错)强制重定向, 覆盖原来有的内容
追加文件内容echo ‘1’ » 文件路径(只能用在 linux, windows 出错)
创建文件touch 文件名
改变文件更新时间touch 文件名
复制文件cp 源路径 目标路径(可以覆盖原来有的文件)
复制目录cp -r 源路径 目标路径
移动节点mv 源路径 目标路径(修改文件名)
删除文件rm 文件路径
强制删除文件rm -f 文件路径
删除目录rm -r 目录路径
强制删除目录rm -rf 目录路径
查看目录结构tree(windows 不支持)
建立软链接ln -s 真实文件 链接
下载文件curl -L https://www.google.com >google.html
拷贝网页wget -p -H -e robots=off https://www.google.com (整个网页所有文件)
磁盘占用df -kh
当前目录大小du -sh .
各文件大小du -h
查看文件内容cat

需要注意的点

各种符号代表的含义

  • ~ : 用户目录: 我的电脑上就是 /c/Users/ASUS
  • / : 根目录, 一个 / 就是根目录, 不管你有多少个硬盘, 他会把所有硬盘联合起来当作一块
  • . : 一个点表示当前目录,
  • ../ : 两个点表示父目录
  • TAB 键可以补全文件名或者目录
  1. 绝对路径与相对路径
  • 如果一个路径是用 / 开始的, Windows 就从根目录开始找起(绝对路径), 否则就从当前目录开始找(相对路径).

参考

Window 平台 Git-Bash 的配置

知乎-通过字体映射 Fontlink 美化中文显示