MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

ターミナル生活を快適にするための端末多重化ソフトウェアtmux入門

目次

はじめに

vim好きなので、

基本的にターミナルで、

生活しているのですが、

myenigma.hatenablog.com

 

ターミナルやvimの設定などを調べている時に、

それらを使いこなしている人はみんな

tmuxというソフトウェアを

おすすめしていることに気が付きました。

https://tmux.github.io/

akiniwa.hatenablog.jp

kanjuku-tomato.blogspot.com

 

今回はこのtmuxのインストール方法や利点、

コマンド一覧などをまとめておきたいと思います。

 

インストール方法

各OSにおけるインストール方法です。

Macへのインストール

Homebrewでインストールできます。

$ brew install tmux

また、このままだとmacのターミナルで

vimでヤンクが出来ないという問題があるので、

それを直すソフトをbrewでインストールします。

$ brew install reattach-to-user-namespace

あとはtmux.confで設定が必要ですが、

そちらは後述の説明を参照下さい。

qiita.com

qiita.com

 

tmuxの使うべき理由

下記がtmuxの便利な点です。

1 一本のssh接続で複数のターミナルが使える

リモートサーバにログインして、

様々なツールを使いながら作業したい時に、

それぞれsshで繋がるのは面倒ですが、

tmuxを使うと、一つのssh接続で複数のシェルを立ち上げて、

作業することができます。

2 ssh中にネットワークが切断されても、強制終了しなくていい

ssh中にネットワークが切断されることがあり、

そんな時は普通はターミナルがクラッシュしてしまうだけですが.

tmuxを使っている場合、

ネットワーク復旧後に再度接続(アタッチ)すると、

ログイン後の状態は保持されていますし、

ログも残ってるので便利ですね。

3. tmuxの状態が保存される。

セッション(一連の画面分割とかsshの接続先)とかが、

アプリ終了後も保存されるため、

次の日などに再度作業を開始したい時に、

スムーズに作業に戻れます。

4. 別のコンピューターからでも、同じセッションが使える

別のPCからtmuxを使ってたサーバにsshすれば、

そのセッションがそのまま使えます。

5. 他の人にセッションに同時に入ってもらって、作業を見せたりできる

教育目的でも使えるようです。

 

tmuxのコマンド一覧

セッションを作る

$ tmux new -s ProjectA

ちなみに後ろに-dを付けると、

セッションを作ったあと、すぐdetachします。

既存のセッションに繋がる

$ tmux a -t ProjectA

既存のセッションのリストを表示する

$ tmux ls

セッションの削除

$ tmux kill-session -t ProjectB

セッションの全削除

$ tmux kill-server

セッションのdetach

Ctrl + b then d

セッションの名前の変更

Ctrl + b then $

時計モード

Ctrl + b then t

ESCで元に戻ります。

Windowの作成

Ctrl+b c

Windowの切り替え

Ctrl+b (番号)

次のWindowへ

Ctrl+b n

前のWindowへ

Ctrl+b p

Windowのrename

Ctrl+b ,

Windowの一覧表示

Crtl+b w

Windowの検索

Ctrl+b f

Windowの終了(削除)

Ctrl+b &

Pane作成(水平分割)

Ctrl+b "

Pane作成(垂直分割)

Ctrl+b %

Paneの切り替え

Ctrl+b o

Ctrl+b 矢印キー

Paneの番号表示・切り替え

Ctrl+b q

Paneの入れ替え

Ctrl+b {

Ctrl+b }

Paneの解除

Ctrl+b x

PaneのWindow化

Ctrl+b !

tmux設定ファイル .tmux.conf

自分のtmuxの設定ファイルは下記の通りです。

いくつかのMacでの問題への対処や、

prefixの変更、paneのサイズ変更などを設定しています。

# tmux configuration
#
# author Atsushi Sakai

# fix vim yank problem on Mac
set-option -g default-command "reattach-to-user-namespace -l bash"

# fix scroll problem on Mac
set -g mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

# change prefix to ctrl - t 
set -g prefix C-t
unbind C-b
bind C-t send-prefix

# bind r to load .tmux.conf
bind r source-file ~/.tmux.conf \; display "Configuration Reloaded!"

# h,j,k,l window resize 
bind -r h resize-pane -L 1
bind -r j resize-pane -D 1
bind -r k resize-pane -U 1
bind -r l resize-pane -R 1

github.com

 

参考資料

http://dotinstall.com/lessons/basic_tmux

qiita.com

qiita.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com