外观
我的 Bash 配置与终端环境设置
作为 Linux 用户,.bashrc 是最常用的配置文件之一。本文将详细介绍我的 Bash 配置,包括环境变量、别名、代理设置和开发工具配置。
语言环境设置
export LANG=en_US.UTF-8设置默认语言为英语,默认编码为 UTF-8,确保终端能够正确显示各种字符。
常用别名
文件操作
alias ll='ls -alF'
alias la='ls -A'll:详细列表,显示所有文件(包括隐藏文件)la:显示所有文件(不包括.和..)
彩色输出
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'为 ls 和 grep 系列命令启用彩色输出,提高可读性。
任务管理
alias f='fg'
alias j='jobs'f:快速将后台任务切换到前台j:查看当前后台任务
安全删除
alias rm='trash-put'将 rm 命令替换为 trash-put,删除的文件会进入回收站而不是直接删除,避免误删重要文件。
安装 trash-cli:
sudo apt install trash-cli常用命令:
trash-put file:删除文件trash-list:查看回收站trash-restore:恢复文件trash-empty:清空回收站
开发工具别名
Git 快捷命令
alias gt='git status'快速查看 Git 仓库状态。
LaTeX 编译
alias lc='latexmk -C -bibtex'
alias lcc='latexmk -C -bibtex && rm -f *.nav *.snm *.vrb *.fls'lc:清理 LaTeX 编译产生的辅助文件lcc:彻底清理,包括 Beamer 演示文稿的额外文件
Ctags 生成
alias tags='ctags --exclude=@.tagsignore -R .'递归生成 ctags,排除 .tagsignore 文件中指定的目录和文件。
创建 .tagsignore 文件:
# .tagsignore
node_modules
.git
build
dist
*.min.jsBear 编译数据库
alias bmake='bear -- make'使用 Bear 生成 compile_commands.json,用于 clangd、YCM 等工具的代码补全和跳转。
安装 Bear:
sudo apt install bear代理设置
export https_proxy=http://127.0.0.1:7897
export http_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
alias noproxy='unset http_proxy https_proxy all_proxy'配置本地代理(如 Clash、V2Ray):
- HTTP/HTTPS 代理:7897 端口
- SOCKS5 代理:7897 端口
noproxy:临时关闭代理
使用场景:
# 使用代理下载
git clone https://github.com/user/repo.git
# 临时关闭代理
noproxy
curl http://local-server
# 重新启用代理(重新加载 .bashrc)
source ~/.bashrc科学计算环境
PETSc 配置
export PETSC_DIR=/opt/petscPETSc(Portable, Extensible Toolkit for Scientific Computation)是一个用于科学计算的并行数值库。
MPI 环境
# OpenMPI (系统安装)
# /usr/lib/x86_64-linux-gnu/openmpi
# Intel MPI (可选)
# /opt/intel/oneapi/mpi/latest配置 MPI(Message Passing Interface)环境,用于并行计算。
自定义 PATH
export PATH=/home/wugs/.local/bin:/home/wugs/software/glvis-4.4:/home/wugs/bin:$PATH添加自定义软件路径:
~/.local/bin:用户级 Python 包和工具~/software/glvis-4.4:GLVis 可视化工具~/bin:个人脚本和工具
远程服务器配置
超算中心访问
alias papplogin='papp_cloud login -u username@domain -p'
alias bscc='papp_cloud ssh xxxx@xxxx'
alias pscp='papp_cloud scp'配置超算中心(如北京超算)的快速访问:
papplogin:登录云平台bscc:SSH 连接到超算节点pscp:通过云平台传输文件
Node.js 环境
NVM 配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"NVM(Node Version Manager)用于管理多个 Node.js 版本。
常用命令:
# 安装最新 LTS 版本
nvm install --lts
# 切换版本
nvm use 18
# 查看已安装版本
nvm list
# 设置默认版本
nvm alias default 18键盘映射
# 交换 Caps Lock 和 Escape
setxkbmap -option caps:swapescape
# 恢复默认
setxkbmap -option对于 Vim 用户,因为经常要在 Insert 模式和 Normal 模式间切换,Escape 键的使用频率非常高,但是 Esc 的位置不容易按到;相反,Caps Lock 其实没什么用,完全可以通过 Shift 代替,但它在一个非常好按的位置(左手小拇指)。 将 Caps Lock 映射为 Escape 可以大幅提高效率。
永久生效:
在 ~/.profile 或 ~/.xsessionrc 中添加:
setxkbmap -option caps:swapescape通知提醒
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'用于长时间运行的命令完成后发送桌面通知:
# 编译完成后通知
make -j8; alert
# 下载完成后通知
wget https://example.com/large-file.zip; alert我的常用技巧
1. 查找历史命令
# 查看历史
history | grep keyword
# 执行历史命令
!123 # 执行第 123 条命令
!! # 执行上一条命令
!$ # 上一条命令的最后一个参数2. 管道和重定向
# 保存输出到文件
command > output.txt
# 追加到文件
command >> output.txt
# 同时输出到终端和文件
command | tee output.txt
# 忽略错误输出
command 2>/dev/null
# 合并标准输出和错误输出
command &> output.txt总结
一个好的 .bashrc 配置可以显著提高终端使用效率。我的配置重点包括:
- 安全性:使用
trash-put代替rm,避免误删 - 效率:丰富的别名和快捷命令
- 开发环境:完整的科学计算和开发工具配置
- 网络:灵活的代理设置
- 可维护性:清晰的注释和模块化配置
建议根据自己的工作流程逐步完善配置,不要一次性添加太多内容。每次添加新配置后,记得用 source ~/.bashrc 重新加载。
参考资料
Happy Bashing! 🐚
版权所有
版权归属:Guisong Wu