モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

tmux の基本的な使い方

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/04/21
最終更新最終更新
2022/05/31
記事区分記事区分
一般公開

tmux は GNU Screen のような仮想端末を提供します。

必要最小限の設定

~/.tmux.conf

# プレフィックスキー
set -g prefix C-t

# C-t C-t でトグル
bind C-t last-window

# Vim 風のキーバインド
setw -g mode-keys vi

# ステータスバーの色
set -g status-fg white
set -g status-bg black
setw -g window-status-current-fg black
setw -g window-status-current-bg yellow

# 履歴の長さ
set-option -g history-limit 10000

主要な操作

セッション名を指定して新規セッションを作成

$ tmux new -s セッション名

デタッチ

C-t d

セッション一覧を表示

$ tmux ls

アタッチ

直近のセッション

$ tmux a

セッション名を指定

$ tmux a -t セッション名

他のクライアントをデタッチしてからアタッチ

tmux a -d
tmux a -d -t セッション名

セッションの削除

$ tmux kill-session -t セッション名

ウィンドウの作成

C-t c

二つのウィンドウを行ったり来たり

C-t C-t

前後のウィンドウに移動

previous

C-t p

next

C-t n

ウィンドウの一覧

C-t w

ウィンドウ名の変更

C-t ,

セッション名の変更

C-t $

Vim 風の操作で過去のターミナル履歴を閲覧

C-t [

範囲選択の開始 (スペースキー) → 範囲選択の完了 (エンター) → 貼り付け (C-t ])

ヘルプ

C-t ?

ウィンドウを閉じる

C-t &

複数のサーバを同時操作

.tmux.conf に以下の設定を追加します。C-t e で同時に複数ペインを操作できるようになります。

bind e setw synchronize-panes on
bind E setw synchronize-panes off

ペインを水平方向または垂直方向に追加

C-t %
C-t "

ペインを移動

C-t o
C-t ;

ペインを破棄

C-t x

ペインを整理

C-t space

ペインを拡大、戻す

C-t z

ペイン番号を環境変数で取得できます。

echo ${TMUX_PANE}
%7

echo ${TMUX_PANE} | sed 's/%//' | awk '{ printf "%04d\n", $1 }'
0007

bash スクリプトから設定

コマンドラインから tmux を設定することができます。以下の例は、複数サーバに同時に ssh を行いたい場合に便利です。

#!/bin/bash
set -eu
set -o pipefail

NAME="awesome-window"
LAYOUT="tiled"  # "even-horizontal" "even-vertical"

CMDS=(
"ssh host1"
"ssh host2"
"ssh host3"
"ssh host4"
"ssh host5"
"ssh host6"
"ssh host7"
"ssh host8"
"ssh host9"
)

tmux new-window -n ${NAME}

for i in $(seq ${#CMDS[@]}); do
  tmux send-keys -t ${NAME}.$(expr $i - 1) "${CMDS[$i - 1]}"
  if [ $i -ne ${#CMDS[@]} ]; then
    tmux split-window -t ${NAME}
    tmux select-layout -t ${NAME} ${LAYOUT}
  fi
done

tmux set-window-option -t ${NAME} synchronize-panes on
Likeボタン(off)0
詳細設定を開く/閉じる
アカウント プロフィール画像

優しくしてください

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

>>さらに詳しくステッカーを贈る
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    ログインする

    関連記事

    • 使い所が難しいマイナーな運用コマンド
      コマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin /...
      けんちゃんけんちゃん11/1/2022に更新
      いいねアイコン画像0
    • ipコマンドの基本的な使い方
      ネットワーク関連のコマンドはたくさんあります。しかしながら、その一部は ip コマンドに集約できます。 基本形 ("man ip" より抜粋) $ ip OBJECT COMMAND OBJECT: link, neigh, addr, route (等) COMMAND: show, add, delete (等) データリンク層のネットワークデバイス情報 (ifconfigコマンドの代用) M...
      こもれびさんこもれびさん2/8/2017に更新
      いいねアイコン画像0
    • プロセス関連のコマンド
      サムネイル画像-7b5901f600
      プロセスID関連 (ps, pgrep, pkill) 全プロセスを表示するためには $ ps ax とすればよく、その表示を見やすくするためには "u" と "w" を追加して $ ps auxw とすればよいです。表示件数自体は同じです。そのうち特定のコマンドのプロセスIDだけを表示したい場合は $ ps ax | grep 'my_script' | grep -v grep | awk '...
      kenken11/27/2021に更新
      いいねアイコン画像0
    • rpmとyumのチートシート
      サムネイル画像-f69c6665b8
      rpm (RedHat Package Manager または RPM Package Manager) はRedHat系のパッケージ管理ツールで、yum (Yellowdog Updater Modified) は内部的にrpmを実行するメタパッケージ管理ツールです。rpmには柔軟性がありyumには利便性があります。 rpmは "rpmパッケージファイル" があれば何でもインストールできますが、...
      まるたんまるたん2/2/2022に更新
      いいねアイコン画像0
    • メモリおよびディスクリソースを調査するために便利なコマンドおよび周辺知識
      メモリ使用量を表示 (free) 既定ではキロバイト単位で表示されます。オプション "-b", "-k", "-m", "-g" を付与して実行するとそれぞれバイト、キロ、メガ、ギガで表示されます。 $ free total used free shared buffers cached Mem: 510824 ...
      しおまめしおまめ8/30/2017に更新
      いいねアイコン画像0