# screen & tmux

## screen

Enter screen mode $(screen)

Send you job from terminal ex:

$(ping ${some\_where})

Detach from screen mode ctrl + a , d

Return last job $(screen -r)

Show all screen jobs and its number $(screen ls )

Return specific job $(screen -r ${job\_number})

## Tmux

tmux 優點 1 - 可以被多個 SSH 同時連線 tmux Session 可以被多個 SSH 同時連線，這點跟 Screen 很不同。 過去用 screen 你離開辦公桌的電腦，晚上回到家裡繼續工作時，必定得 detach 再 attach。 但是用 tmux 的話，你可以在家裡 attach，隔天到公司 tmux 並不會被 detach。 所以若你開兩個 tmux 同時 attach 到同一個 Session 時，可以看到兩個視窗同時動作的有趣畫面喔。 所以在這樣的架構下，你就不用擔心像 screen 不正常斷線無法 detach 再 attach 的問題了。

tmux 優點 2 - 可在 Session 中切換到不同 Session 過去要從 screen 到另一個 screen 得先 detach， 但 tmux 只要用快速鍵（預設 Ctrl-b + s）即可切換到其他 Session。 是不是很方便呢？

tmux 優點 3 - 強大的分割視窗 screen 只能做單一水平分割，但是 tmux 可以自由自在地水平或垂直分割。 一個窗格被稱為 Pane，分割會被記錄

操作方式、常用快捷键：

**大寫的C ==> Control鍵**

**C+b c 開新視窗**

**C+b n 或 space 切換到下一個視窗**

**C+b P 切換到上一個視窗**

**C+b & 关闭当前windows**

**C+b 数字键 切换至指定窗口** **C+b l 在前后两个窗口间互相切换** c+b s 可以切換不同session的window c+b d detach session

\====視窗分割功能======

C+b " 水平分割視窗 C+b % 垂直分割視窗 C+b $ Re-session name C+b , Re-window name C+b up or down 切換分割視窗 C+b C上 or C下 分割視窗大小調整 C+b C左 or C右 分割視窗大小調整 C+b space 重新佈置分割的視窗 C+b ! 取消所有分割視窗 指令 exit 跳出當前分割視窗 C+b + Ctrl + 方向鍵上/下/左/右

### 可以調整當前分割視窗的長寬，好用！

作用鍵 + d

### 將目前的 Tmux Session 丟到背景去

```
$(tmux ls)
```

### 列出主機上所有的 Tmux Session

tmux a -t 0

### 將背景的第 0 號 Tmux Session 叫回，a 代表 attach

Ctrl+b 激活控制台；此时以下按键生效 系统操作 ? 列出所有快捷键；按q返回 d 脱离当前会话；这样可以暂时返回Shell界面，输入tmux attach能够重新进入之前的会话 D 选择要脱离的会话；在同时开启了多个会话时使用 Ctrl+z 挂起当前会话 r 强制重绘未脱离的会话 s 选择并切换会话；在同时开启了多个会话时使用 : 进入命令行模式；此时可以输入支持的命令，例如kill-server可以关闭服务器 \[ 进入复制模式；此时的操作与vi/emacs相同，按q/Esc退出 \~ 列出提示信息缓存；其中包含了之前tmux返回的各种提示信息 窗口操作 c 创建新窗口 w 通过窗口列表切换窗口 , 重命名当前窗口；这样便于识别 . 修改当前窗口编号；相当于窗口重新排序 f 在所有窗口中查找指定文本 面板操作 ” 将当前面板平分为上下两块 % 将当前面板平分为左右两块 x 关闭当前面板 ! 将当前面板置于新窗口；即新建一个窗口，其中仅包含当前面板 Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 Space 在预置的面板布局中循环切换；依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled q 显示面板编号 o 在当前窗口中选择下一面板 方向键 移动光标以选择面板 { 向前置换当前面板 } 向后置换当前面板 Alt+o 逆时针旋转当前窗口的面板 Ctrl+o 顺时针旋转当前窗口的面板 視窗取回 screen -r tmux attach 視窗取回 by session name screen -r session-name tmux attach -t session-id 視窗開啟自訂 session-name screen -S session-name tmux new -s session-name # ex: tmux new -s irc 列出所有 session screen -ls tmux ls # tmux list-sessions
