zoukankan      html  css  js  c++  java
  • 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"




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

  • 相关阅读:
    svn命令
    Lambda 表达式
    JAVA 探究NIO
    JAVA I/O系统
    MySQL 锁
    spring boot 集成 zookeeper 搭建微服务架构
    架构演化
    JAVA 集合
    spring boot 发送邮件
    MySQL 隔离级别
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4851396.html
Copyright © 2011-2022 走看看