您的位置:首页 > 运维架构 > Shell

bash构造tmux显示tmux ssh状态

2015-10-01 19:30 615 查看
要求: 于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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: