海运的博客

tmux开机启动会话窗口并执行命令

发布时间:December 10, 2019 // 分类: // No Comments

加入rc.local,设置home目录,不然进入tmux时进行和home相关的操作时提示$HOME未设定,同时一些和$HOME相关的调用也不正常,如vim配置文件不加载。

export HOME=/root 
tmux new -s name -d "cmd"
tmux neww -t name -d "cmd"

或先新建窗口再执行命令:

tmux new -n window1 -s sess -d
tmux send -t "sess:window1" "top" Enter
tmux neww -n window2 -t sess
tmux send -t "sess:window2" "top" Enter

Tmux自动恢复或打开新窗口

发布时间:May 14, 2014 // 分类:Tmux // No Comments

方法1:

if [ "$TERM" != "screen" ]; then
    WHOAMI=$(whoami)
    if tmux has-session -t $WHOAMI 2>/dev/null; then
        tmux -2 attach-session -t $WHOAMI
    else
        tmux -2 new-session -s $WHOAMI
        exit
    fi
fi

方法2:

if [ `which tmux 2> /dev/null` -a -z "$TMUX" ]; then
        tmux -2 attach || tmux -2 new; exit
fi

20220315更新:

[ -f /usr/bin/tmux ] && [ -z "$TMUX"  ] && { tmux attach || tmux new-session;}

20230211更新,更简单的方法:

tmux new -As0

参考:
http://bionicraptor.ca/2011/07/24/automatically-start-tmux/
https://coderwall.com/p/tgm2la

Tmux多窗口分隔线显示虚线不正常解决

发布时间:September 15, 2012 // 分类:Tmux // No Comments

使用Tmux在UTF-8编码下窗口分隔线会显示为虚线,如下:
tmux分隔线虚线.png
解决方法,SSH客户端字体选项处取消Treat CJK ambiguous characters as wide支持,Xshell下设置如下:
xshell下tmux分隔线不正常解决.png
重新登录SSH终端,现tmux分隔多窗口效果如下:
tmux分隔线显示不正常解决.png

Centos安装使用配置tmux

发布时间:August 22, 2012 // 分类:Tmux // No Comments

CentOS安装支持组件:

yum install libevent-devel ncurses-devel

安装tmux

wget http://downloads.sourceforge.net/tmux/tmux-1.6.tar.gz
tar zxvf tmux-1.6.tar.gz 
cd tmux-1.6
./configure
make
make install

启动新会话:

tmux [new -s 会话名 -n 窗口名]

启动新会话时执行命令:

#-d 后台启动
#exec bash 当ping结束时启动bash,不然会退出tmux窗口
tmux new -s test -d "ping qq.com; bash"  

指定会话启动新窗口:

tmux [neww -t 会话名 -n 窗口名]

恢复会话:

tmux at [-t 会话名]

列出所有会话:

tmux ls

关闭会话:

tmux kill-session -t 会话名

在 Tmux 中,按下 Tmux 前缀 ctrl+b,然后:
会话

:new<回车>  启动新会话
s           列出所有会话
$           重命名当前会话

贴上我的tmux配置文件:

#https://www.haiyun.me
bind a send-prefix
bind m command-prompt "splitw -h 'exec %%'"
bind S command-prompt "neww -n %1 'ssh %1'"
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
bind k selectp -U 
bind j selectp -D
bind h selectp -L
bind l selectp -R
bind K resizep -U 10 
bind J resizep -D 10
bind H resizep -L 10
bind L resizep -R 10
bind ^i kill-session
bind ^l last-window
set -g prefix C-a
set -g base-index 1
setw -g pane-base-index 1
set -g display-time 5000
set -g repeat-time 1000 
set -g status-right '"#(hostname)" #(date -d "today" +"%Y/%m/%d-%H:%M")#(uptime |cut -d ',' -f 2-)'
set -g status-interval 10
set -g status-right-length 100
set -g status-utf8 on 
set -g status-keys vi 

setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-select-window on
set -g mouse-resize-pane on
set -g mode-mouse on
set -g mouse-utf8 on
setw -g mode-keys vi
setw -g utf8 on
#setw -g window-status-current-bg red

Tmux实现Screen -xR类似功能

发布时间:August 21, 2012 // 分类:常用软件 // No Comments

之前有介绍Xshell登录ssh后进入Screen窗口,意外断开后不影响当前执行任务,重新连接服务器回到之前断开的终端。

screen -xR

Tmux重新连接到之前的窗口可使用:

tmux attach

不过第一次执行会提示:

#https://www.haiyun.me
no sessions

修改Tmux配置如果无分离终端则新建:

cat ~/.tmux.conf
new-session

20220315更新,以上方法tmux加载配置有问题,如设置默认default-terminal无效。
注释no sessions使用以下命令解决:

tmux new -A -s 0

参考:
https://unix.stackexchange.com/questions/103898/how-to-start-tmux-with-attach-if-a-session-exists

分类
最新文章
最近回复
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
  • 海运: 网络,找到相应的url编辑重发请求,firefox有此功能,其它未知。
  • knetxp: 用浏览器F12网络拦截或监听后编辑重发请求,修改url中的set为set_super,将POS...
  • Albert: 啊啊啊啊啊啊啊啊啊 我太激动了,终于好了英文区搜索了半天,翻遍了 pve 论坛没找到好方法,博...
  • jiangker: good, very helpful to me
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...