圆~圈

修改Shell标题

bashrc CentOS linux shell 终端

缘由

有时候开启的终端多了,切换时容易混乱,所以给每个终端自定义一个title,方便查找。通过百度,收集了以下几种方案。

环境

centos 7

解决方案

1. 自定义方法(推荐)

  • 在~/.bashrc中添加以下代码
function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}
  • 保存,退出shell重新打开。
  • 使用 set-title blog.iquanzi.top

2. 命令行方式

  • 使用转义码字符
echo -e "\033]0;自定义终端窗体标题\007"
  • 使用转义字符
echo -n $'\e'"]0;自定义终端窗体标题"$'\a'

3. 提示符方式(不推荐)

export PS1="\[\033]0;自定义标题\007\]"

其他

除了上面的修改shell标题之外,还可以修改终端命令行信息,比如我添加IP地址到终端命令行,可以参考:shell bash终端中输出颜色和格式详解

1. 单网卡

tee -a ~/.bashrc << 'EOF'
IP=$(ip addr | grep -w "inet" | grep -w "eth0" | awk '{ print $2; }' | sed 's/\/.*$//')
export PS1="[\[\e[32m\]\u\[\e[m\]@\h(\[\e[32m\]$IP\[\e[m\]) \W]\\$"
EOF

2. 多网卡

tee -a ~/.bashrc << 'EOF'
IP=$(ip addr show eth0 | grep -w "inet" | awk '{ print $2; }' | sed 's/\/.*$//')
export PS1="[\[\e[32m\]\u\[\e[m\]@\h(\[\e[32m\]$IP\[\e[m\]) \W]\\$"
EOF