一、交叉编译
1. ncurses 库编译
仓库地址:http://ftp.gnu.org/pub/gnu/ncurses
# 编译宽字符库
./configure --host=arm-linux-gnueabihf --prefix=/root/cross-compile/armlibs CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-shared --without-normal --without-debug --without-ada --with-cxx-binding --with-cxx-shared --enable-ext-colors --enable-ext-mouse --enable-overwrite --without-progs --enable-widec --with-termlib --enable-pc-files --with-pkg-config-libdir=/root/cross-compile/armlibs/lib/pkgconfig
# 不编译宽字体支持
./configure --host=arm-linux-gnueabihf --prefix=/root/cross-compile/armlibs CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-shared --without-normal --without-debug --without-ada --enable-pc-files --with-cxx-binding --with-cxx-shared --enable-ext-colors --enable-ext-mouse --enable-overwrite --without-progs
# 编译及安装
make -j make install
2. libevent 库编译
仓库地址: https://github.com/libevent/libevent
./configure --host=arm-linux-gnueabihf --prefix=/root/cross-compile/armlibs CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CFLAGS="-I/root/cross-compile/armlibs/include" LDFLAGS="-L/root/cross-compile/armlibs/lib" make -j make install
3. tmux 编译
仓库地址:https://github.com/tmux/tmux
./configure --host=arm-linux-gnueabihf --prefix=/root/cross-compile/armlibs --enable-utf8proc CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CFLAGS="-I/root/cross-compile/armlibs/include" LDFLAGS="-L/root/cross-compile/armlibs/lib" make -j2 make install
4. 瘦 Linux 系统 locale 设置
## On linux rootfs mkdir /usr/lib/locale # copy "zh_CN.utf8" and "en_US.utf8" to /usr/lib/locale export LC_ALL='zh_US.utf8'
二、使用说明
1. 新建会话
新建一个tmux session非常简单,语法为tmux new -s session-name,也可以简写为tmux,为了方便管理,建议指定会话名称,如下。
tmux # 新建一个无名称的会话 tmux new -s demo # 新建一个名称为demo的会话
2. 断开当前会话
会话中操作了一段时间,我希望断开会话同时下次还能接着用,怎么做?此时可以使用detach命令。
tmux detach # 断开当前会话,会话在后台运行
也许你觉得这个太麻烦了,是的,tmux的会话中,我们已经可以使用tmux快捷键了。使用快捷键组合Ctrl+b + d,三次按键就可以断开当前会话。
3. 进入之前的会话
断开会话后,想要接着上次留下的现场继续工作,就要使用到tmux的attach命令了,语法为tmux attach-session -t session-name,可简写为tmux a -t session-name 或 tmux a。通常我们使用如下两种方式之一即可:
tmux a # 默认进入第一个会话 tmux a -t demo # 进入到名称为demo的会话
4. 关闭会话
会话的使命完成后,一定是要关闭的。我们可以使用tmux的kill命令,kill命令有kill-pane、kill-server、kill-session 和 kill-window共四种,其中kill-session的语法为tmux kill-session -t session-name。如下:
tmux kill-session -t demo # 关闭demo会话 tmux kill-server # 关闭服务器,所有的会话都将关闭
5. 查看所有的会话
管理会话的第一步就是要查看所有的会话,我们可以使用如下命令:
tmux list-session # 查看所有会话 tmux ls # 查看所有会话,提倡使用简写形式
如果刚好处于会话中怎么办?别担心,我们可以使用对应的tmux快捷键Ctrl+b + s,此时tmux将打开一个会话列表,按上下键(⬆︎⬇︎)或者鼠标滚轮,可选中目标会话,按左右键(⬅︎➜)可收起或展开会话的窗口,选中目标会话或窗口后,按回车键即可完成切换。
6. 快捷键使用说明
| Ctrl+b | 激活控制台;此时以下按键生效 | |
| 系统操作 | ? | 列出所有快捷键;按q返回 |
| d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 | |
| D | 选择要脱离的会话;在同时开启了多个会话时使用 | |
| Ctrl+z | 挂起当前会话 | |
| r | 强制重绘未脱离的会话 | |
| s | 选择并切换会话;在同时开启了多个会话时使用 | |
| : | 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 | |
| [ | 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 | |
| ~ | 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 | |
| 窗口操作 | c | 创建新窗口 |
| & | 关闭当前窗口 | |
| 数字键 | 切换至指定窗口 | |
| p | 切换至上一窗口 | |
| n | 切换至下一窗口 | |
| l | 在前后两个窗口间互相切换 | |
| w | 通过窗口列表切换窗口 | |
| , | 重命名当前窗口;这样便于识别 | |
| . | 修改当前窗口编号;相当于窗口重新排序 | |
| f | 在所有窗口中查找指定文本 | |
| 面板操作 | ” | 将当前面板平分为上下两块 |
| % | 将当前面板平分为左右两块 | |
| x | 关闭当前面板 | |
| ! | 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 | |
| Ctrl+方向键 | 以1个单元格为单位移动边缘以调整当前面板大小 | |
| Alt+方向键 | 以5个单元格为单位移动边缘以调整当前面板大小 | |
| Space | 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled | |
| q | 显示面板编号 | |
| o | 在当前窗口中选择下一面板 | |
| 方向键 | 移动光标以选择面板 | |
| { | 向前置换当前面板 | |
| } | 向后置换当前面板 | |
| Alt+o | 逆时针旋转当前窗口的面板 | |
| Ctrl+o | 顺时针旋转当前窗口的面板 | |
7. 后台运行命令
# 新建会话 tmux new -d -s app # 传输命令 tmux send-keys -t app Space /opt/app/app.sh Enter # 结束会话 tmux kill-session -t app
8. 友情连接
admin