bashrc更新

# mod liujiashu 2025-12-17
# ---- 非交互式shell不需要本文件 ----
case $- in
    *i*) ;;
      *) return;;
esac

# ---- 基本增强 ----
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
export EDITOR="${EDITOR:-vim}"  # 设置默认的编辑器是vim, 例如crontab -e
export PAGER="${PAGER:-less}"  # 设置默认的翻页工具室less, 例如man, ps
export LESS='-R -F'
#-R   # 允许 ANSI 颜色原样输出
#-F   # 如果内容一屏能放下,就直接退出(不进 less)
#-X   # 退出 less 后,不清屏(保留内容)

# ---- 颜色设置 ----
# 这两行只在老系统上开启,现在的linux发行版无需配置
alias ls='ls --color=auto'
alias grep='grep --color=auto'

# ---- bash历史增强 ----
# 方向键自动匹配历史命令!
if [[ $- == *i* ]]
then
    bind '"\e[A": history-search-backward'
    bind '"\e[B": history-search-forward'
fi
export HISTSIZE=500000  # 默认缓存1000条历史命令,现在大幅提升
export HISTFILESIZE=1000000  # .bash_history存储的历史命令数
export HISTCONTROL=ignoreboth:erasedups  # 忽略空命令+空格开头命令;去除重复的命令
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] "  # 记录历史的时间戳
shopt -s histappend  # 终端退出时追加历史而非覆盖
PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"
# history -a:把本终端新命令追加到文件
# history -n:只读入“其他终端追加的那部分”(增量),不会全量重载
shopt -s cmdhist  # 逻辑上的多行命令
shopt -s histverify  # 执行历史命令之前先显示

# ---- aliases ----
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
alias now='date "+%F %T"'

# ---- 自动补全 ----
if [ -f /usr/share/bash-completion/bash_completion ]; then
  . /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

# ---- cd增强 ----
# 目录切换更友好:cd 时可自动纠错/自动进入目录
shopt -s autocd 2>/dev/null
shopt -s cdspell 2>/dev/null
alias ..='cd ..'

# 解压万能(常见格式)
#extract () {
#  if [ -f "$1" ]; then
#    case "$1" in
#      *.tar.bz2) tar xjf "$1" ;;
#      *.tar.gz)  tar xzf "$1" ;;
#      *.tar.xz)  tar xJf "$1" ;;
#      *.tar.zst) tar --zstd -xf "$1" ;;
#      *.tar)     tar xf "$1" ;;
#      *.bz2)     bunzip2 "$1" ;;
#      *.gz)      gunzip "$1" ;;
#      *.xz)      unxz "$1" ;;
#      *.zip)     unzip "$1" ;;
#      *.7z)      7z x "$1" ;;
#      *) echo "extract: unsupported: $1" ;;
#    esac
#  else
#    echo "extract: file not found: $1"
#  fi
#}
posted @ 2025-12-17 23:53  一条图图犬  阅读(4)  评论(0)    收藏  举报