Created
September 6, 2025 03:37
-
-
Save JaHIY/846aa0c93b94567dec74975afdc90c49 to your computer and use it in GitHub Desktop.
minimal bashrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ======================== | |
# 1. 基础配置与环境变量 | |
# ======================== | |
# 如果不是交互式 Shell,则停止执行 | |
[[ $- != *i* ]] && return | |
# 设置默认文本编辑器 | |
export EDITOR='vim' | |
export VISUAL='vim' | |
# 扩展命令搜索路径 | |
export PATH="$HOME/bin:$HOME/.local/bin:$PATH" | |
# 设置 Bash 选项 | |
shopt -s checkwinsize # 检查窗口大小变化 | |
shopt -s histappend # 追加历史记录而不是覆盖 | |
shopt -s globstar # 支持 ** 递归匹配目录 | |
# ======================== | |
# 2. 实用别名定义 (Aliases) | |
# ======================== | |
# 导航与列表 | |
alias ls='ls --color=auto -F' | |
alias ll='ls -l' | |
alias la='ls -A' | |
alias lla='ls -lA' | |
alias ..='cd ..' | |
alias ...='cd ../..' | |
alias .3='cd ../../../' | |
# 安全操作 | |
alias rm='rm -i' | |
alias cp='cp -i' | |
alias mv='mv -i' | |
# 快速编辑与重载配置 | |
alias bashrc='$EDITOR ~/.bashrc && source ~/.bashrc' | |
alias reload='source ~/.bashrc' | |
# 网络与系统 | |
alias grep='grep --color=auto' | |
alias egrep='egrep --color=auto' | |
alias fgrep='fgrep --color=auto' | |
alias df='df -h' | |
alias du='du -h' | |
alias free='free -h' | |
# ======================== | |
# 3. 自定义函数 (Functions) | |
# ======================== | |
# 创建目录并进入 | |
mkcd() { | |
mkdir -p "$1" && cd "$1" | |
} | |
# 计算文件或目录大小 | |
dsize() { | |
du -sh "$@" 2>/dev/null | sort -h | |
} | |
# 快速提取压缩文件 | |
extract() { | |
if [ -f "$1" ]; then | |
case "$1" in | |
*.tar.gz) tar -xzf "$1" ;; | |
*.tar.bz2) tar -xjf "$1" ;; | |
*.zip) unzip "$1" ;; | |
*) echo "不支持的文件格式: $1" ;; | |
esac | |
else | |
echo "文件不存在: $1" | |
fi | |
} | |
# 查找进程并高亮显示 | |
psg() { | |
ps aux | grep -i "$1" | grep -v grep | |
} | |
# ======================== | |
# 4. 提示符定制 (PS1) | |
# ======================== | |
# 颜色定义 | |
COLOR_RESET='\[\033[0m\]' | |
COLOR_RED='\[\033[1;31m\]' | |
COLOR_GREEN='\[\033[1;32m\]' | |
COLOR_YELLOW='\[\033[1;33m\]' | |
COLOR_BLUE='\[\033[1;34m\]' | |
COLOR_CYAN='\[\033[1;36m\]' | |
# 设置提示符: | |
# 格式: [用户@主机 工作目录]$ | |
# 成功为绿色,失败为红色 | |
set_prompt() { | |
local LAST_STATUS=$? | |
PS1="${COLOR_CYAN}[${COLOR_RESET}" | |
PS1+="${COLOR_GREEN}\u@\h${COLOR_RESET} " | |
PS1+="${COLOR_YELLOW}\w${COLOR_RESET}" | |
PS1+="${COLOR_CYAN}]${COLOR_RESET}" | |
if [ $LAST_STATUS -eq 0 ]; then | |
PS1+="${COLOR_GREEN}\$${COLOR_RESET} " | |
else | |
PS1+="${COLOR_RED}\$${COLOR_RESET} " | |
fi | |
} | |
export PROMPT_COMMAND='set_prompt' | |
# ======================== | |
# 5. 历史记录配置 | |
# ======================== | |
# 设置历史命令记录格式:完整日期 + 时间 (YYYY-MM-DD HH:MM:SS) | |
export HISTTIMEFORMAT="%F %T " | |
# 增加历史记录容量 | |
export HISTSIZE=5000 | |
export HISTFILESIZE=10000 | |
# 忽略重复和历史中的特定命令 | |
export HISTCONTROL=ignoreboth:erasedups | |
# 忽略常见无用命令 | |
export HISTIGNORE="ls:ll:la:cd:pwd:exit:history" | |
# 实时追加历史记录(避免多个会话丢失历史) | |
export PROMPT_COMMAND="$PROMPT_COMMAND; history -a" | |
# ======================== | |
# 6. 色彩支持与安全选项 | |
# ======================== | |
# 确保终端支持色彩 | |
if [ -x /usr/bin/dircolors ]; then | |
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" | |
fi | |
# 安全选项:禁止执行包含空格的变量解析 | |
set -o noclobber # 防止重定向覆盖文件 | |
set -o nounset # 使用未定义变量时报错 | |
# ======================== | |
# 7. 本地配置覆盖(可选) | |
# ======================== | |
# 如果存在本地配置文件,则引入 | |
if [ -f ~/.bashrc.local ]; then | |
source ~/.bashrc.local | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment