「screen -D -R」に対応するtmuxはありますか?

「screen -D -R」に対応するtmuxはありますか?

tmux私が言ったように、screen -D -RこのコマンドをPuttyでデフォルトにする方法があるかどうか疑問に思います。

このscreenスイッチは、ユーザーの既存の画面セッションを強制的に分離し(まだアクティブで他の場所にログインしている場合でも)、現在のセッションに再接続します。また、画面セッションがない場合は、新しい画面セッションが作成されます。

私はtmuxが好きで、画面上で明らかな利点を見ることができますが、この機能があれば実際に取引が実現します。

tmux attachそれ以外の場合は、新しいセッションが作成されないようです。

tmux のマニュアルページには次のように記載されています。

サーバーが起動していない場合、attachment-session(attach)はサーバーを起動しようとします。 設定ファイルにセッションが作成されないと失敗します。

太い部分はどういう意味ですか? (confファイルからセッションを作成する例が見つかりません)。

答え1

例: tmux attach -d || tmux new

-dscreen -D同様に、つまり他の人とは別に行動しなければなりません。

SSH経由で接続した後に接続または作成する方法は次のとおりです。

$ cat bin/stmux
#!/bin/sh
exec ssh -t "$@" 'tmux attach -d || tmux new'

$ stmux my.remote.box

答え2

tmux attachセッションが存在しないときに新しいセッションを作成するには、new-sessiontmux設定ファイルのオプションを使用します。ファイルが~/.tmux.confない場合は作成後に追加

new-session

それに。そして私のニックネームtmuxtmux attach:)

答え3

POSIX準拠のシェルで動作するシェル関数を使用してこれをシミュレートできます。

tmux() {
    if [ "$#" -ge 1 ] && [ "$1" = -z ]; then
        shift
        command tmux detach 2>/dev/null
        command tmux attach "$@" || command tmux new-session "$@"
    else
        command tmux "$@"
    fi
}

今すぐ実行すると、目的のtmux -zタスクが実行されます。

答え4

私はこれが.bashrcで私に最も適していることがわかりました。

if [[ -z $TMUX ]]; then
  tmux attach-session || tmux new-session
fi

関連情報