🎬 场景
日常开发中,对于npm
以及 git
操作的命令是非常频繁的,即便他们的命令已经够简单了,但是对于高频操作仍显输入繁琐,比如说 git 的提交操作命令,要输入git commit -m ""
这么常常的一大串。你可能会说,用图形化界面不就好了,诸如sourcetree
这样的软件,点一点就可以了,完全不用输繁琐的命令。
但是我追求的是极致的效率,而毫无疑问,无鼠标全键盘操作才是最快的,图形化固然方便,但是键鼠之间的切换是我不喜欢的。程序之间的切换,焦点的转移都是对注意力的磨损。这是我摒弃一切图形化操作软件的原因。
好在 Linus 中提供了 alias 命令,使得我们可以在终端配置中对于一些命令设置自定义的命令。具体的配置如下:
💡前置知识
mac
中默认的终端是zsh
,修改zsh
的配置输入如下命令,这样会通过文本编辑器打开zsh
的配置文件:
arduino
open ~/.zshrc
修改完配置后,需要在终端输入如下命令重载配置
bash
source ~/.zshrc
🔨实操
有了上面的基础后,我们就可以在zsh
的配置文件中写入我们想要的alias
配置了,以下是我的配置分享:
常用 Linux 命令的 alias 配置
清屏、创建文件和文件夹是我平常用的比较多的 linux 命令,但是他们的命令输入都偏长,所以对他们做了如下别名,方便快速使用:
ini
alias c=clear
alias t=touch
alias mk=mkdir
npm 相关命令的 alias 配置
常用 npm 命令
开发中 npm 命令是最常用的,最常用的三个命令分别是npm install
、npm run dev
、npm run build
,所以我为他们设置了以下别名:
ini
alias n=npm
alias nd='n run dev'
alias nb='n run build'
alias ny='n init -y'
alias ni='f() { n install "$*"; }; f'
nvm 相关命令
因为会跑老项目,所以需要使用低版本的 node,我这里用到了 14 版本和 16 版本,而我默认使用的是稳定版本,所以我就给这两个版本 node 定义为低版本 node 和中版本 node,分别用l(low)
、m(middle)
。
我使用nu
来代指nvm use
,后面跟 l
或m
来表示使用低版本 node 或中版本 node,具体对应的别名如下:
ini
# 14.17.3版本node
alias nul='nvm use 14.17.3'
alias nuld='nvm use 14.17.3 && nd'
# 16.13.0版本node
alias num='nvm use 14.17.3'
alias numd='nvm use 14.17.3 && nd'
git 相关命令的 alias 配置
初始化和克隆项目
ini
alias g=git
alias gi='g init'
alias gc='f() { g clone "$*"; }; f'
分支操作 alias
ini
alias gb='g branch'
alias gba='g branch -a'
alias gbv='g branch -v'
# 切换分支
alias gck='f() { g checkout "$*"; }; f'
# 创建并切换到新分支
alias gcb='f() { g checkout -b "$*"; }; f'
# 删除分支
alias gbd='f() { g branch -d "$*"; }; f'
推送和拉取
ini
alias gps='git push'
alias gpl='git pull'
提交操作 alias
git 操作中git commit
是最频繁的,所以我将git add
和git commit
融合到一个命令里gci
,通过这个命令可以一步暂存代码并提交 commit 信息。
此外有的时候需要一件提交并推送的远程,所以我也做了封装,通过gcp
就可完成一次完成的 git 修改提交到远程仓库的操作。
ini
# 查看仓库状态
alias gs='g status'
# 添加所有更改到暂存区
alias ga='g add .'
# 提交更改
alias gci='ga && f() { g commit -m "$*"; }; f'
# 提交更改并推送
alias gcp='ga && f() { g commit -m "$*"; }; f && gps'
其它一些 git 常用的 alias
ini
# 查看远程分支地址
alias grv='git remote -v'
# 查看提交日志
alias gg='git log --oneline --decorate --color --graph'
⚙️完整配置
ini
alias c=clear
alias t=touch
alias mk=mkdir
#npm相关命令
alias n=npm
alias nd='n run dev'
alias nb='n run build'
alias ny='n init -y'
alias ni='f() { n install "$*"; }; f'
# nvm的不同版本
alias nul='nvm use 14.17.3'
alias nuld='nvm use 14.17.3 && nd'
alias num='nvm use 16.13.0'
alias numd='nvm use 16.13.0 && nd'
#git相关命令
alias g=git
alias gc='f() { g clone "$*"; }; f'
alias gi='g init'
alias gb='git branch'
alias gba='git branch -a'
alias gbv='git branch -v'
alias gck='f() { g checkout "$*"; }; f'
alias gcb='f() { g checkout -b "$*"; }; f'
alias gbd='f() { g branch -d "$*"; }; f'
alias gps='git push'
alias gpl='git pull'
alias gs='g status'
alias ga='g add .'
alias gci='ga && f() { g commit -m "$*"; }; f'
alias gcp='ga && f() { g commit -m "$*" && gps; }; f'
alias grv='git remote -v'
alias gg='git log --oneline --decorate --color --graph'
总结
通过熟练操作以上alias
,一定可以帮助各位提高日常开发的效率,减少重复的机械操作。