小易说IT 小易说IT

适合Linux服务器直接落地的 .bashrc 生产配置模板

下面这份是服务器生产环境 .bashrc 模板,偏向运维、开发服务器(CentOS/Rocky/Debian/Ubuntu 通用)。 特点:简洁、稳定、不花哨、适合 SSH 登录;带彩色提示符、历史记录优化、安全加固、常用别名、日志辅助;不引入 oh-my-bash 这类重型框架,避免服务器依赖和意外问题。

⚠️ 重要前置提醒

  1. 备份原有文件:cp ~/.bashrc ~/.bashrc.bak.$(date +%Y%m%d)

  2. 只放在普通用户家目录 ~/.bashrc;不要直接覆盖 root 的,root 可单独评估

  3. 修改后生效:source ~/.bashrc

  4. 容器环境、alpine、嵌入式慎用,部分特性依赖 gnu ls/grep

# ==============================================================================
# .bashrc 生产服务器模板 | 适用于 Ubuntu / Debian / Rocky / AlmaLinux / openEuler
# 用途:SSH交互式终端,稳定优先,无花哨主题,运维友好
# ==============================================================================

# 如果不是交互式 shell,直接退出,避免脚本执行时加载冗余逻辑
[[ $- != *i* ]] && return

# -------------------------- 1. 基础环境 & 历史记录优化 --------------------------
# 历史记录条数
export HISTSIZE=10000
export HISTFILESIZE=20000
# 忽略重复命令、忽略以空格开头的命令(不进历史,适合临时输密码)
export HISTCONTROL=ignoreboth
# 历史记录时间戳,方便排查什么时候敲的命令
export HISTTIMEFORMAT='%F %T '
# 追加写入历史,多终端同步历史(服务器多人共用很有用)
shopt -s histappend
# 检测窗口大小变化,自动更新列行
shopt -s checkwinsize
# 开启**目录自动cd**:直接输入目录名就能cd进去
shopt -s cdspell
shopt -s dirspell
shopt -s autocd

# -------------------------- 2. PATH 配置(按需修改) --------------------------
# 优先本地bin、后系统路径,避免污染系统PATH
export PATH="$HOME/bin:$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin:$PATH"

# -------------------------- 3. 安全、ls、grep 彩色设置 --------------------------
# 开启ls颜色
if command -v dircolors &>/dev/null; then
  eval "$(dircolors -b)"
fi

# -------------------------- 4. 别名 alias(运维高频,安全优先) --------------------------
alias ls='ls --color=auto'
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -lh'

# grep 高亮匹配文本
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

# 危险命令加交互式确认,防止手滑
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# 运维快捷
alias df='df -h'
alias du='du -h'
alias free='free -h'
alias psg='ps aux | grep -v grep | grep'
alias ports='ss -tulpn'
alias listen='ss -lnp'
alias topcpu='ps aux --sort=-%cpu | head -12'
alias topmem='ps aux --sort=-%mem | head -12'

# 日志实时跟踪(默认不截断)
alias tailf='tail -f'

# -------------------------- 5. PS1 提示符【生产推荐版本】 --------------------------
# 格式:[时间] 用户@主机 当前目录 $ | 绿色用户名,蓝色路径,红色root区分
# 判断是否root,root提示符#为红色警示,普通用户绿色
if [[ $(id -u) -eq 0 ]]; then
  # root
  export PS1="\[\033[01;31m\][\D{%F %T}] \u@\h \[\033[01;34m\]\w\[\033[00m\] # "
else
  # 普通用户
  export PS1="\[\033[01;32m\][\D{%F %T}] \u@\h \[\033[01;34m\]\w\[\033[00m\] \$ "
fi

# 二级提示符(换行续行 >)
export PS2="> "

# -------------------------- 6. 编辑器 & 工具默认变量 --------------------------
export EDITOR='vim'
export VISUAL='vim'

# -------------------------- 7. 代理(按需启用,注释默认关闭) --------------------------
# export HTTP_PROXY=http://127.0.0.1:7890
# export HTTPS_PROXY=http://127.0.0.1:7890
# export NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

# -------------------------- 8. 补全增强(系统自带bash-completion) --------------------------
# Debian/Ubuntu 一般预装bash-completion;Rocky需要 yum install bash-completion
if [[ -r /usr/share/bash-completion/bash_completion ]]; then
  source /usr/share/bash-completion/bash_completion
elif [[ -r /etc/bash_completion ]]; then
  source /etc/bash_completion
fi

# -------------------------- 9. 可选:SSH登录自动打印简单信息(不卡登录) --------------------------
# 不想登录打印就注释掉
print_server_info() {
  echo -e "\033[36m========================================\033[0m"
  echo " Hostname: $(hostname)"
  echo " IP: $(hostname -I | awk '{print $1}')"
  echo " Time: $(date '+%F %T')"
  echo " Load: $(uptime | awk -F'load average:' '{print $2}')"
  echo -e "\033[36m========================================\033[0m"
}
# print_server_info

使用步骤

  1. 备份旧配置

cp ~/.bashrc ~/.bashrc.bak.$(date +%Y%m%d)
  1. 写入

cat > ~/.bashrc <<'EOF'
# 把上面整段模板粘贴在这里
EOF
  1. 加载生效

source ~/.bashrc

生产环境取舍说明(重点)

  • ✅ 保留:历史时间戳、ignoreboth、histappend、彩色提示符、bash 补全、安全别名

  • ❌ 不加入:自动提示插件、语法高亮、oh-my-bash、复杂脚本、自动推送、通知(容易导致 ssh 登录卡顿、脚本异常)

  • 关于 rm -i:多人服务器很有用;如果你觉得每次删文件要确认麻烦,可以删掉这条 alias,高风险服务器建议保留

  • root 用户建议单独一套:提示符红色,不要随便加自动打印信息,root 登录越干净越好

配套补充(可选,适合批量分发)

如果你想要全局生效(所有用户),把里面非用户私有变量部分放到 /etc/bash.bashrc(Debian/Ubuntu) / /etc/bashrc(Rocky/CentOS),不要放 PS1 和 HISTCONTROL 这类容易冲突的。


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/linux-server-bashrc-production-config-template

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/