件名の通りです。
割とありふれた内容だけど、いざやろうとした時にググってもLinuxでの内容が多く引っかかって、即座に試せないことが多かったので、備忘を一番の目的に書いておこうと思った次第です。
手順
大まかに言って、こんな手順になります。
- tmuxをインストールする
- Macのユーザーに適当なのを追加する
- tmuxを共有用に立ち上げてセッションを作る
- 誰かに頼んで自分のマシンにログインしてもらう
- その誰かにセッションにアタッチしてもらう
- vimを立ち上げてリモートでペアプロの真似事をする
- .vimrcの設定についてdisりあって仲が険悪化する
このうち、6と7については任意です。今回の説明からは割愛します。
ここでやろうとしていることは、何も難しいことはなくて大雑把に言うと、以下です
- tmuxでローカルに共有用のセッションを作る
- 外から、このマシンに共有用のユーザーにログインしてもらう
- そのユーザーに、このマシンの中で共有用セッションにアタッチしてもらう
ということです。
tmuxのインストール
Homebrewで良いです。
brew install tmux
例によって、tmuxも設定ファイル類でゴニョゴニョ出来るのですが今回の目的からは外れるので割愛します。Qiitaでも設定を変更するための記事とか有るので、そちらをご覧ください。またtmuxでの独特の操作などはチートシートとかを見てみると、tmuxってこういうのも出来るんだー等と思ったりするでしょう。
Macでユーザーを作る
「システム環境設定 => ユーザー」から普通にユーザーを作ります。ここでは「一旦これで良いや」というノリの「セキュリティ意識ゼロ思考停止ユーザー」として、ID:tmux, password: tmuxとかで作ってしまいましょう。あとでユーザーを消すなりパスワードを変更するなりしてください。
それから、環境設定に来たついでに念のため「共有」の項目を見ておきましょう。リモートログインの項目にチェックが入っていることを確認してください。これが入っていないとログインしてもらえません。
tmuxを共有用に立ち上げて共有セッションを作る
コマンド一発です
tmux -S /tmp/kyouyu_session_no_namae_daze
chmod 777 /tmp/kyouyu_session_no_namae_daze
/tmp/kyouyu_session_no_namae_daze は、このバカっぽい名前を見て分かるように、この名前じゃないとダメということではありません。分かり易い名前を付けてあげましょう。リモートユーザーは、この名前のファイルにアタッチすることでセッションを共有することになります。二行目のchmod は、ユーザー"tmux"にも読み書きさせたいために行っています。大雑把でバカっぽいパーミッションですが、ここでは深く考えないようにしましょう。
誰かに頼んで自分のマシンにログインしてもらう
別の人とやった方が盛り上がるのですが、誰も頼む相手が居ない場合は仕方ないので、ひとりsshしましょう。tmuxを立ち上げたターミナルとは別のターミナルを立ち上げてログインしましょう。
ssh -2 tmux@localhost
パスワードを聞かれたら、パスワードを入力してログインを完了してください。
その誰かにセッションにアタッチしてもらう
では、繋いでくれている誰か、もしくは自分で立ち上げた、ひとりsshのターミナルで以下のコマンドを打ちます。
tmux -S /tmp/kyouyu_session_no_namae_daze attach
これで、ターミナルの共有が出来たと思います。クリティカルなオペレーションをする時等は、これでターミナルを共有してSkypeなどで喋りつつ、コマンドを入力したら実行する前にお互いに確認して時には問い詰めたりしながら楽しく作業出来そうですね。こんなに簡単に出来るのに意外と「ハードル高そうだな」と二の足を踏んでいた君も、サクっと試して楽しいtmuxライフを!