サーバーとかで作業する時,つないだ先でたくさんターミナルを開きたい,切断しても継続して欲しいと思うことがあるかもしれません.
そんな需要に答えるのがscreenやtmuxなどのターミナルマルチプレクサです.screenとtmux,あまり大きな違いはないのですが,僕はtmuxを使ってるのでtmuxについて説明します.
tmuxの主な機能は以下です.
- アタッチ,デタッチ
- ウインドウ分割
- ペイン分割
- .tmux.confによる拡張
インストールと起動
インストールはHomebrewやMacPortsなどで簡単にできます. 起動はtmuxでできます.起動すると下に緑のバーが出ます.
アタッチとデタッチ
まず,tmuxを起動して ls と入力してファイル一覧を出した後にターミナルアプリ(iTermなど)を閉じてもう一度アプリを起動してみましょう.そしてtmux aと入力します.すると,なんということでしょう,さっき ls した後の画面がtmux上でそのまま残っています.これがアタッチです. つまり,tmux上で作業中にiTermが落ちた,あるいはサーバとの切断が切れた場合でも,作業プロセスは残っています.例えばシミュレーションだったらそのまま回ってます. そして再度iTermを起動 or サーバに接続して tmux a でアタッチすれば作業を再開できます.
デタッチはアタッチの逆で,tmux上のプロセスを継続したまま元の画面に戻ってくる時に使います.コマンドは
C-b d
です.デタッチしてアタッチするとまたtmuxに戻ってこれます.tmuxを開いてデタッチしてアタッチせずにtmuxをまた起動してを繰り返すと無限にtmuxのプロセスが作れます.このひとつひとつのプロセスのことをセッションといいます.セッションの一覧は
tmux lsで出せます.各セッションには番号がついてて
tmux a -t 番号で所望のセッションにアタッチ可能で,
tmux kill-session -t 番号で所望のセッションを殺せます.
tmux new -s 名前でセッションを起動することで番号ではなく名前で区別することもできます.
ウインドウ分割
ひとつのセッションに複数のウインドウと呼ばれる単位を作れます.新規ウインドウの作成コマンドは
C-b c
です.
ウインドウの一覧は
C-b w
で出せて,
C-b 番号
で所望のウィンドウに移動できて,
C-b &
で今のウインドウを殺せます.
C-b p C-b nで前後のウインドウに移動することもできます.
ペイン分割
ウィンドウ内にさらにペインと呼ばれる分割画面を出すことができます. 縦分割は
C-b %
横分割は
C-b "
です.
C-b o C-b Up C-b Down C-b Left C-b Rightでペイン間の移動ができます
.tmux.confによる拡張
ホームフォルダに.tmux.confというのを作ってそこに設定を書いておくとtmuxの機能を拡張できます. ちなみに僕は下みたいに書いてます..bind r source-file ~/.tmux.conf\; display-message "Reload Config!!" # UTF-8 set-option -g status-utf8 on # 同時入力 bind a set-window-option synchronize-panes on bind z set-window-option synchronize-panes off # マウス機能 set -g mode-mouse on set-window-option -g mouse-select-pane onこれを書くと
C-b r
で.tmux.confをリロード,
C-b a
で全部のペインに同時入力,
C-b z
で同時入力解除できます.あとマウスでペインを選べるようにしてます.他にも便利に拡張できると思うのでいろいろやってみてください!
진심 감사합니다
返信削除तिमीलाई स्वागत छ
返信削除