导语:使用跳板机或者直接ssh的时候,因为宿主机名称和terminal的原因,显示不了ip,还因此出现过几次误操作。想通过显示ip的方式减少自己因为弄错机器造成的失误。发现有Badge这个东西,结合网上一些文章在iterm2中动态显示一些定制化信息。
iterm2中修改Default下Profiles的General输入Badge为\(session.name)
在测试登录的服务器的 ~/.bashrc 添加如下内容
cat ~/.bashrc
if [ "$SSH_CONNECTION" != '' -a "$TERM" != 'linux' ]; then
declare -a HOSTIP
HOSTIP=`echo $SSH_CONNECTION |awk '{print $3}'`
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@$HOSTIP:[${HOSTNAME%%.*}]:${PWD/#$HOME/~} \007"'
fi
# 这个不加有些服务器依旧需要手动
source /etc/profile
如果有问题的话/etc/profile中也添加一下
if [ "$SSH_CONNECTION" != '' -a "$TERM" != 'linux' ]; then
declare -a HOSTIP
HOSTIP=`echo $SSH_CONNECTION |awk '{print $3}'`
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@$HOSTIP:[${HOSTNAME%%.*}]:${PWD/#$HOME/~} \007"'
fi
内容可以根据需要自定义
printf "\e]1337;SetBadgeFormat=%s\a" \
$(echo -n "\(session.name) \(user.gitBranch)" | base64)
登录跳板机测试流程,注意图片右边的变化
参考
https://iterm2.com/documentation-badges.html
https://iterm2.com/documentation-scripting-fundamentals.html
https://www.cnblogs.com/xingkoo/archive/2013/06/06/3120953.html
https://blog.csdn.net/specialsun/article/details/104451405