bash构造tmux显示tmux ssh状态

要求: 于tmux内部链接ssh什么时候, 假设有多个ssh主机。 我们要显示相应的主机ip要显示筛查


实现效果




编辑你的bashrc, 由于我习惯在root下操作, 所以/root/.bashrc。 你假设习惯用user。 那就编辑/home/你的username/.bashrc

添加

ssh() {
    if [ "$(ps -p $(ps -p $$ -o ppid=) -o comm=)" = "tmux" ]; then
            tmux rename-window "$*"
            command ssh "$@"
            tmux set-window-option automatic-rename "on" 1>/dev/null
    else
            command ssh "$@"
    fi
}

到你的bashrc

保存后就可以。

唯一须要注意的是。由于我习惯ssh -參数 參数值 root@ip 这样来訪问, 由于改动了ssh的这个。导致參数值会无法正常识别。这里把參数參数值放到后面就可以。


附tmux.conf配置

#bind r source-file ~/.tmux.conf ;display "Reloaded!"
# #      重置预设置
set -g prefix C-a               #设置命令为ctrl-a触发prefix
unbind C-b                      #解绑ctrl-b
bind C-a send-prefix            #设置预命令为prefix


# #      面板切割
unbind '"'
bind | split-window -h          #左右切割
unbind %
bind - split-window -v          #上下切割


bind k select-pane -U           #选择上窗体 shift+k
bind j select-pane -D           #选择下窗体
bind h select-pane -L           #选择左窗体
bind l select-pane -R           #选择右窗体


bind K resize-pane -U 5         #窗格上移5  (Ctrl-k一起按)
bind J resize-pane -D 5         #窗格下移5
bind H resize-pane -L 5         #窗体左移5
bind L resize-pane -R 5         #窗体右移5


bind -r K resize-pane -U 5      #窗体反复操作
bind -r J resize-pane -D 5      #窗体反复操作
bind -r H resize-pane -L 5      #窗体反复操作
bind -r L resize-pane -R 5      #窗体反复操作




bind ^u swapp -U                #与上窗格交换   (Ctrl-u)
bind ^d swapp -D                #与下窗格交换   (Ctrl-u)


# # enable vi keys.
setw -g mode-keys vi            #兼容vi按键


# #      像vi一样复制    全部复制都会被记录在缓冲区,输入#或tmux list-buffers查看,=也能够选择粘贴缓冲区
unbind [
bind Escape copy-mode           #绑定Esc进入复制模式
#unbind p                        #解绑p
bind P paste-buffer             #绑定p为粘贴
bind -t vi-copy 'v' begin-selection #绑定v为选择
bind -t vi-copy 'y' copy-selection  #绑定y为复制


#setting the delay between PREFIX and command
set -sg escape-time 1




# # Set the base index for windows to 1 instead of 0
set -g base-index 1


# # Set the base index for panes to 1 instead of 0
setw -g pane-base-index 1


# #      又一次载入配置文件
bind r source-file /etc/tmux.conf ; display "Reloaded!"




# # Quick pane selection        #Prefix+Ctrl+h/l循环windows
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+




# # mouse support - set to on if you want to use the mouse
setw -g mode-mouse off
set -g mouse-select-pane off
set -g mouse-resize-pane off
set -g mouse-select-window off


# # Set the default terminal mode to 256color mode
set -g default-terminal "screen-256color"
set -g display-time 2000
set -g history-limit 10000


# # enable activity alerts
setw -g monitor-activity on
set -g visual-activity on


# # set the status line's colors
set -g status-fg white
set -g status-bg black


# # set the color of the window list
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim


# # set colors for the active window
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright


# # pane colors
set -g pane-border-fg white
set -g pane-border-bg black
set -g pane-active-border-fg blue
#set -g pane-active-border-bg colour240


# # Command / message line
set -g message-fg white
set -g message-bg black
set -g message-attr bright


# # Status line left side
set -g status-left-length 20
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on


# # Status line right side
# # 15% | 28 Nov 18:15
set -g status-right "#[fg=cyan]%Y-%m-%d %H:%M:%S "


# # Update the status bar every sixty seconds
set -g status-interval 60


# # Center the window list
set -g status-justify centre


# # Maximize and restore a pane
unbind Up
bind Up new-window -d -n tmp ; swap-pane -s tmp.1 ; select-window -t tmp
unbind Down
bind Down last-window ; swap-pane -s tmp.1 ; kill-window -t tmp


# # Working with the Clipboard on Linux
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
bind C-v run "tmux set-buffer "$(xclip -o -sel clipboard)"; tmux paste-buffer"




版权声明:本文博主原创文章。博客,未经同意不得转载。

原文地址:https://www.cnblogs.com/zfyouxi/p/4851396.html