開発、サーバーのメンテナンス、またはスクリプトの実行を行う際、私たちはしばしばターミナルで複数のウィンドウを開いて操作する必要があります。しかし、各ウィンドウごとに新しいターミナルを開く必要があると、時間が無駄になるだけでなく、操作が混乱することになります。このような時、ターミナルの再利用ツールが非常に役立ちます。その中で、tmux は一般的に使用されるターミナル再利用ツールの一つです。
tmux のインストール#
Ubuntu では、以下のコマンドを使用して tmux をインストールできます:
sudo apt-get install tmux
tmux の起動#
tmux を起動するのは簡単で、ターミナルに以下のコマンドを入力するだけです:
tmux
これにより、新しい tmux セッションが開かれます。
tmux のショートカットキー#
tmux の大きな特徴はショートカットキーで、これによりより効率的に使用できます。
以下は一般的な tmux のショートカットキーです:
Ctrl+b "
:現在のウィンドウに新しい水平パネルを作成Ctrl+b %
:現在のウィンドウに新しい垂直パネルを作成Ctrl+b 矢印キー
:現在のウィンドウで異なるパネルに切り替えCtrl+b c
:新しいウィンドウを作成Ctrl+b ,
:現在のウィンドウの名前を変更Ctrl+b 数字キー
:対応する番号のウィンドウに切り替えCtrl+b d
:現在の tmux セッションから離れるtmux attach
:以前の tmux セッションに再接続
さらに多くのショートカットキーはtmux list-keys
コマンドで確認できます。
tmux の設定ファイル#
tmux の設定ファイルは~/.tmux.conf
です。この設定ファイルを変更することで、tmux のデフォルトの動作を変更し、カスタムショートカットキーを追加できます。以下は一般的な設定です:
# Ctrl+bをCtrl+aに変更
set-option -g prefix C-a
# ウィンドウとパネルの番号を1から始める
set-option -g base-index 1
setw -g pane-base-index 1
# Altキーでウィンドウを切り替え
bind-key -n M-h select-pane -L
bind-key -n M-l select-pane -R
bind-key -n M-j select-pane -D
bind-key -n M-k select-pane -U
# Ctrl+a cで新しいウィンドウを作成
bind-key C-a c new-window
Arch Linux の i3wm で alacritty ターミナルを起動する際に tmux をデフォルトで開くように設定する方法#
-
tmux をインストール
Arch Linux では、以下のコマンドを使用してインストールできます:
sudo pacman -S tmux
-
tmux 設定ファイルを作成
ユーザーディレクトリに
.tmux.conf
という名前のファイルを作成し、以下の内容を追加します:# Ctrl+bをCtrl+aに変更 set-option -g prefix C-a # ウィンドウとパネルの番号を1から始める set-option -g base-index 1 setw -g pane-base-index 1
-
alacritty 設定ファイルを変更
alacritty 設定ファイル
~/.config/alacritty/alacritty.yml
を開き、以下の内容を追加します:shell: program: /usr/bin/tmux args: - new-session
これにより、alacritty ターミナルを起動すると自動的に新しい tmux セッションが開かれます。
alacritty を起動した後すぐに tmux に入ることを希望する場合は、以下の内容を追加できます:
shell: program: /usr/bin/tmux args: - new-session - -A
A
オプションは、既に tmux セッションが存在する場合、そのセッションに直接接続することを意味します。
-
i3wm を再起動
以下のコマンドを実行して i3wm を再起動します:
i3-msg restart
その後、alacritty ターミナルを起動すると、自動的に tmux セッションが開かれます。
結論#
tmux は非常に便利なターミナル再利用ツールで、私たちがターミナルをより効率的に使用できるようにします。一般的なショートカットキーを習得し、設定ファイルを変更することで、より個性的に tmux を使用できます。この記事があなたに役立つことを願っています!