1. 为什么需要整理常用命令集
作为一个每天与终端打交道的开发者,我发现自己经常在重复输入相同的git、bash和vim命令。每次需要执行某个操作时,要么得翻找历史记录,要么得去搜索引擎查询语法。这种低效的工作方式让我下定决心整理一份属于自己的命令手册。
命令集整理的核心价值在于:
- 减少重复劳动:把常用命令固化下来,避免每次使用时都要回忆或查找
- 提高工作效率:通过命令别名和快捷方式,把多步操作简化为一步
- 统一工作习惯:确保在不同项目和环境中使用一致的命令风格
- 便于知识传承:新团队成员可以通过命令集快速上手项目规范
2. Git命令全收录
2.1 基础版本控制操作
# 初始化仓库 git init # 克隆远程仓库 git clone <repository_url> # 查看当前状态 git status # 添加文件到暂存区 git add <file> git add . # 添加所有变更 # 提交变更 git commit -m "commit message" # 查看提交历史 git log git log --oneline --graph --all # 简洁可视化历史提示:养成频繁提交的习惯,每个提交应该只包含一个逻辑变更,这样在需要回退时会更加灵活。
2.2 分支管理实战
# 创建新分支 git branch <branch_name> # 切换分支 git checkout <branch_name> git switch <branch_name> # 更新语法 # 创建并切换到新分支 git checkout -b <branch_name> # 合并分支 git merge <branch_name> # 删除分支 git branch -d <branch_name> # 安全删除 git branch -D <branch_name> # 强制删除未合并分支 # 查看所有分支 git branch -a分支命名规范建议:
- feature/xxx:功能开发分支
- bugfix/xxx:缺陷修复分支
- hotfix/xxx:紧急修复分支
- release/xxx:版本发布分支
2.3 远程仓库协作
# 添加远程仓库 git remote add <name> <url> # 查看远程仓库 git remote -v # 推送本地分支到远程 git push <remote> <branch> # 拉取远程变更 git pull <remote> <branch> # 获取远程变更但不合并 git fetch <remote> # 跟踪远程分支 git branch --set-upstream-to=<remote>/<branch> <local_branch>协作时常见问题处理:
- 冲突解决:使用
git mergetool或手动编辑冲突文件后git add - 撤销本地提交:
git reset --hard HEAD~1 - 修改最近提交:
git commit --amend
3. Bash命令精华
3.1 文件系统操作
# 导航目录 cd <directory> cd ~ # 回家目录 cd - # 返回上一个目录 # 列出文件 ls ls -la # 显示隐藏文件和详细信息 # 创建目录 mkdir <directory> mkdir -p path/to/directory # 创建多级目录 # 文件操作 cp <source> <destination> mv <source> <destination> rm <file> rm -rf <directory> # 递归强制删除,慎用! # 查看文件内容 cat <file> less <file> # 分页查看 head -n 10 <file> # 查看前10行 tail -n 10 <file> # 查看后10行 tail -f <file> # 实时追踪日志3.2 进程与系统管理
# 查看进程 ps aux ps -ef | grep <process_name> # 终止进程 kill <pid> kill -9 <pid> # 强制终止 # 磁盘空间 df -h # 磁盘使用情况 du -sh <directory> # 目录大小 # 内存使用 free -h # 系统信息 uname -a top htop # 需要安装3.3 高效工作技巧
# 命令历史 history !<number> # 执行历史中第n条命令 !! # 重复上一条命令 !$ # 上一条命令的最后一个参数 # 别名设置(添加到~/.bashrc) alias ll='ls -la' alias gs='git status' alias gp='git pull' alias gcm='git commit -m' # 重定向 command > output.txt # 输出重定向 command >> output.txt # 追加输出 command 2> error.log # 错误重定向 command &> all.log # 所有输出重定向 # 管道 command1 | command2 # 将command1输出作为command2输入4. Vim编辑器核心命令
4.1 基本导航与编辑
# 启动vim vim <file> # 模式切换 i # 插入模式 ESC # 返回普通模式 v # 可视模式 : # 命令模式 # 光标移动 h j k l # 左 下 上 右 w # 下一个单词开头 b # 上一个单词开头 0 # 行首 $ # 行尾 gg # 文件开头 G # 文件末尾 :<number> # 跳转到指定行 # 编辑操作 x # 删除当前字符 dd # 删除当前行 yy # 复制当前行 p # 粘贴 u # 撤销 Ctrl+r # 重做4.2 高级编辑技巧
# 搜索替换 /search_term # 搜索 n # 下一个匹配项 :%s/old/new/g # 全局替换 :%s/old/new/gc # 带确认的替换 # 多文件操作 :e <file> # 打开新文件 :sp <file> # 水平分割窗口 :vsp <file> # 垂直分割窗口 Ctrl+w + 方向键 # 切换窗口 # 宏录制 qa # 开始录制宏到寄存器a q # 停止录制 @a # 执行寄存器a中的宏4.3 实用配置建议
将以下配置添加到~/.vimrc可以显著提升编辑效率:
" 基本设置 set number " 显示行号 set tabstop=4 " tab宽度 set shiftwidth=4 " 自动缩进宽度 set expandtab " 用空格代替tab set hlsearch " 高亮搜索结果 set incsearch " 实时搜索 syntax on " 语法高亮 " 快捷键映射 nnoremap <C-s> :w<CR> " Ctrl+s保存 inoremap jk <ESC> " 用jk退出插入模式 " 插件管理(Vim-plug示例) call plug#begin('~/.vim/plugged') Plug 'preservim/nerdtree' " 文件浏览器 Plug 'vim-airline/vim-airline' " 状态栏 Plug 'tpope/vim-fugitive' " Git集成 call plug#end()5. 命令集管理与优化
5.1 创建个人命令手册
建议将常用命令整理到~/.my_commands文件中,并通过以下方式快速访问:
# 添加到bashrc function cmdhelp() { less ~/.my_commands } # 或者使用alias alias chelp='cat ~/.my_commands | grep'命令文件示例结构:
=== Git === gs : git status gl : git log --oneline --graph --all gp : git pull gc : git commit -m "..." === Bash === .. : cd .. ... : cd ../.. ll : ls -la5.2 自动化常用工作流
将复杂操作封装为脚本或函数:
# 示例:快速提交并推送 function gitacp() { git add . git commit -m "$1" git push } # 示例:查找并替换多个文件中的文本 function batch_replace() { find . -type f -name "$1" -exec sed -i "s/$2/$3/g" {} + }5.3 跨设备同步配置
使用Git管理dotfiles实现配置同步:
# 初始化dotfiles仓库 git init --bare $HOME/.dotfiles alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' # 添加配置文件 config add ~/.bashrc config add ~/.vimrc config commit -m "Add bash and vim config" config push在新设备上恢复配置:
git clone --bare <repo_url> $HOME/.dotfiles alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' config checkout6. 疑难问题排查指南
6.1 Git常见问题
问题:合并冲突解决方案:
- 运行
git status查看冲突文件 - 手动编辑文件解决冲突(搜索
<<<<<<<标记) - 使用
git add标记冲突已解决 - 完成合并:
git commit
问题:误提交敏感信息解决方案:
# 从历史中彻底删除文件 git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch <file>" \ --prune-empty --tag-name-filter cat -- --all6.2 Bash脚本调试
问题:脚本语法错误调试方法:
bash -n script.sh # 检查语法 bash -x script.sh # 跟踪执行问题:命令找不到检查路径:
echo $PATH which <command> type <command>6.3 Vim异常处理
问题:Vim卡死恢复方法:
- Ctrl+c尝试中断
- 如果无效,在另一个终端执行:
killall -9 vim vim -r <file> # 尝试恢复交换文件问题:插件冲突排查步骤:
- 启动vim时跳过插件加载:
vim -u NONE - 逐个启用插件测试
- 检查
:messages查看错误信息
7. 进阶技巧与工具链
7.1 Git增强工具
tig:Git的文本模式界面
sudo apt install tig tig # 在仓库内运行diff-so-fancy:美化Git diff输出
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"git-extras:额外的Git命令集合
git summary # 仓库概览 git effort # 文件修改频率
7.2 Bash增强配置
starship:现代化的命令行提示符
curl -sS https://starship.rs/install.sh | sh # 添加到~/.bashrc eval "$(starship init bash)"fzf:模糊查找工具
# 安装 sudo apt install fzf # 使用 Ctrl+r # 搜索历史 Ctrl+t # 文件选择7.3 Vim插件推荐
- coc.nvim:智能补全引擎
- vim-surround:快速处理包围符号
- vim-commentary:快速注释代码
- fzf.vim:集成fzf进行文件搜索
安装示例(使用vim-plug):
Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'tpope/vim-surround' Plug 'tpope/vim-commentary' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim'8. 性能优化与习惯养成
8.1 终端响应速度优化
减少启动时间:
# 检查bashrc加载时间 time bash -i -c exit # 延迟加载大型工具 # 在bashrc中添加 if [ -f ~/.bash_heavy ]; then . ~/.bash_heavy fi选择性加载:
# 只在特定目录加载特定配置 if [[ $PWD == /path/to/project* ]]; then source ~/.project_specific_rc fi8.2 高效工作习惯
- 命令补全:善用Tab键自动补全
- 历史搜索:Ctrl+r反向搜索历史命令
- 快速跳转:配置
z或autojump快速访问常用目录 - 会话保存:使用
tmux或screen保存工作环境
8.3 持续学习路径
- 每周学习1-2个新命令并加入个人手册
- 关注
man手册中的"SEE ALSO"部分发现相关命令 - 参与开源项目学习他人的工作流
- 定期回顾和整理命令集,删除不再使用的命令
我在实际工作中发现,建立一个私人命令wiki(可以用Markdown格式)特别有用,不仅能记录命令语法,还能添加使用场景和注意事项。每当学习到新技巧时,立即添加到wiki中,并设置每周固定时间进行回顾整理。这个习惯让我在三年内积累了一套高度个性化的高效工作流,节省了大量重复劳动时间。