2

Window 平台 Git-Bash 的配置

 2 years ago
source link: https://lhajh.github.io/windows/git/2019/05/05/Window-platform-Git-Bash-configuration.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

通过这篇文章, 可以了解到:

  • 为什么要使用 Git-Bash, 以及 Git-Bash 的优点
  • Git-Bash 的外观主题配置
  • Git-Bash 修改前缀 (隐藏用户@主机)
  • Git-Bash 命令行基础

Git-Bash 的优点

在开发的过程中, 我们可能需要使用大量的命令行工具, 或者远程连接到服务器进行操作. 然而, 由于 Window 自带的 CMD 和 PowerShell 都不太好用, 而且在 Window 下的命令又与 Linux 和 MacOS 的命令不太一样, 如果需要经常跨平台操作, 学习 Window 的命令行命令无疑是增加了学习成本, 因此就有了需要一个能做到通用命令的工具. 在 Window 下使用类似 Linux 命令的工具有很多, 例如 WIndow10 上提供的 WSL(WIndow Sub Linux), CygWin 以及 Git-Bash.

The Windows Subsystem for Linux lets developers run Linux environments – including most command-line tools, utilities, and applications – directly on Windows, unmodified, without the overhead of a virtual machine.

WSL 是微软提供的一套可以运行 Linux 环境而又不用加载虚拟机的子系统. 使用 WSL 可以像使用 Ubuntu 一样的操作, 而且还能访问 WIndow 上的文件系统.

CygWin

CygWin 是运行在 Window 平台的类 Unix 环境, CygWIn 通过将部分 Posix 条用转换成 Window 的 API 调用, 从而实现相关功能.

Git-Bash

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

我们可以根据自己的需求, 进行选择, 这里我选择 Git-Bash 的原因, 是我的开发需求主要为启动前端服务及提交代码, 因此选择 Git-Bash 较为方便、简单.

Git-Bash 的主题配置

Git-Bash 原生的主题, 其实也并不难看, 更换 Git-Bash 的需求主要在于, 我的 Ubuntu 服务器端配置了 oh-my-zsh. 因此如果使用 Git-Bash 的默认主题进行 SSH 连接, 会因为字体问题而无法正常显示, 还有就是 Git-Bash 原生的主题配色和 MacOS 下 iTerm Solarized 主题配色差距甚大. 因此, 一是视觉上不同一, 看上去不习惯, 而是本着手贱的探索精神, 总希望做点特别的挑战, 就有了去修改 Git-Bash 主题的需求.

修改 Git-Bash 主题主要有两个困难, 一是 Git-Bash 自带的 Options 下 Text 设置有缺陷, 只有有限的字体可选, 一些系统上已经安装了的字体, 这里并没有得选择. 而要使用 Git-Bash SSH 连接使用了 agnoster 主题的 ZSH, 需要一种含特殊字符的字体 Powerline, 没有了这种字体, 就会出现乱码.

Git-Bash 配色主题设置

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

BoldAsFont=yes
FontHeight=12
Scrollbar=none
Term=xterm-256color
BoldAsColour=yes
Black=7,54,66
Red=220,50,47
Green=133,153,0
Yellow=181,137,0
Blue=38,139,210
Magenta=211,54,130
Cyan=42,161,152
White=238,232,213
BoldBlack=0,43,54
BoldRed=203,75,22
BoldGreen=88,110,117
BoldYellow=101,123,131
BoldBlue=131,148,150
BoldMagenta=108,113,196
BoldCyan=147,161,161
BoldWhite=253,246,227
ForegroundColour=192,192,192
BackgroundColour=0,43,54
CursorColour=133,153,0
Columns=80
Rows=25

BoldAsFont=-1
Locale=zh_CN
Charset=UTF-8
Font=Consolas
Transparency=off
CursorType=block
CursorBlinks=yes

在  vim  编辑器下, 你可以使用方向键移动光标, 按 i 进入编辑模式, 编辑好后按 esc 退出编辑模式, 随后输入 :wq    并回车即可保存. 有关 Vim  的更多使用方法你可以参考这篇教程.

然后重启 Git-Bash, 即可看到新的主题配色, 以下是我的 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.baidu.com > baidu.html
拷贝网页 wget -p -H -e robots=off https://www.baidu.com (整个网页所有文件)
磁盘占用 df -kh
当前目录大小 du -sh .
各文件大小 du -h
查看文件内容 cat

需要注意的点

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

二、命令行技巧

1. 打开 Git Bash 自动运行

  1. 首先在命令行输入 vi ~/.bashrc 创建一下这个文件
  2. i 进入编辑模式编辑这个文件, 内容为 echo 'Hi'
  3. 你也可以用命令行编辑文件 echo "echo 'hi'" >> ~/.bashrc
  4. 关闭退出 Git Bash, 然后打开 Git Bash, 是不是看到了 Hi, 这说明每次进入 Git Bash, 就会优先运行 ~/.bashrc 里面的命令
  5. 如果没有看到 Hi, 运行 source ~/.bashrc , 作用是执行 ~/.bashrc
  6. 重新编辑 ~/.bashrc , 内容改为 cd ~/Desktop , 重启 Git Bash, 有没有发现默认就进入桌面目录了?
  7. 你可以用 ~/.bashrc 在进入 Git Bash 前执行任何命令, 十分方便.

2. alias 命令行缩写

  1. ~/.bashrc 里新增一行 alias f="echo 'frank is awesome'" , 等于号两边不能有空格, 你最好一个字都不要错.
  2. 运行 source ~/.bashrc , 作用是执行 ~/.bashrc
  3. 运行 f , 就会看到 frank is awesome
  4. 也就是说, 现在 f 就是 echo 'frank is awesome' 的缩写了, 利用这个技巧, 我们可以把很多常见的命令缩写一下, 比如:
   alias gl='git pull'
   alias gaa='git add .'
   alias gcmsg='git commit -m'
   alias gcam='git commit -a -m'
   alias gp='git push'
   alias gco='git checkout'
   alias gm='git merge'
   alias gss='git status -s'
   alias glol='git log –graph –pretty = format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit'
   alias grh='git reset HEAD'
   alias gba='git branch -a'
   alias gcf='git config –list'
   alias gcl='git clone –recursive'
   alias gd='git diff'
   alias ghh='git help'

   alias ns='npm run serve'
   alias nb='npm run build'
   alias nd='npm run dev'
  1. 保存退出, 然后运行 source ~/.bashrc

这样一来, 你的 Git 操作就会简单很多:

gl
gaa
gcam 'msg'
gp

3. 解决.bashrc 文件每次打开终端都需要 source 的问题

这个问题困扰我很久, 我明明改了 ~/.bashrc 文件, 每次打开 Git Bash 都要手动输入 source ~/.bashrc , 配置才会生效, 很是头疼, 于是我就研究了一下解决办法以及问题的原因是什么.

vi ~/.bash_profile 在文件内部输入:

# Loading .bashrc File
source ~/.bashrc

.bash_profile 文件中自动加载 .bashrc 文件.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK