screenコマンドの使い方
どこかのマシンにssh接続して作業をしていると、
長い計算途中でネットワークの問題でsshが途切れたり、
計算が終わるまで家に帰れなくなったり。
そういう時にscreenコマンドが非常に便利。
覚えたてだから説明が間違ってるかも。
screen コマンドとは
screenはUNIX/Linux系OSの画面管理ソフトウェア screenコマンドにより仮想端末を生成することでその仮想端末上のウィンドウで様々な作業を行うことが可能となる。
簡単な使い方
書こうとすると長くなるから本当に基本的なことだけ
セッションの開始
screen
セッションが開始されると自動的に画面が切り替わりシェルが実行される。
また
screen -S session_name
でセッションに名前をつけることができる。
セッションのデタッチ
Ctrl-aと打ってd
これで今いるセッションから離れ最初にいた端末に帰ってくる。
セッションの確認
screen -ls
セッション一覧を表示
セッションにアタッチ
screen -r
でセッションにアタッチ。
複数のセッションがデタッチされていた場合、screen -lsでセッションのidを調べ、
screen -r id
とする。
セッションに名前をつけていた場合、
screen -r session_name
でもo.k
最低限これらさえ覚えておくだけでだいぶ作業が楽になる。
一度デタッチしてしまえば、接続先のマシンの電源さえ切れなければ、
こっちの端末はネットから切断されようが電源を落とそうが
問題なくセッションは稼働する。
これで大量のデータ解析をさせたままパソコンを閉じて家に帰れる。
2018.6.5 追記
セッション中に
exit
でセッションを終了できます。
git clone が出来ない
自分は研究でしかgitを使わないんですけど、
企業とかのプログラマーの人たちってやっぱりgitで作業をすることが多いんですかね?
てことで今日直面したgit cloneが出来ない問題について
いつもは自分のMacで作業をしているんですが
今日は大学のコンピュターにssh接続して作業を行うことに。
$ git clone ssh://git@hogehoge
で、
Permission denied (publickey). fatal: The remote end hung up unexpectedly
なんぞこれ?
ssh接続に慣れている人らならこんなの原因なんて一発でわかるのでしょうが自分にはさっぱり。
で、色々調べた結果、どうやら SSH Keyの鍵登録を忘れていたようです。
普段のローカルのパソコンで普通にgit cloneできていたのですっかりその存在もやり方も忘れていました。
なので備忘録として以下にやり方。
1 RSAの秘密鍵と公開鍵を作成
$ ssh-keygen -t rsa -C your.e-mail@example.com Generating public/private rsa key pair. Enter file in which to save the key (/Users/you/.ssh/id_rsa): #鍵のファイルの名前、適当にgit_id_rsaとか Enter passphrase (empty for no passphrase): #任意のpassward Enter same passphrase again:
そしたらgit_id_rsaとgit_id_rsa.pubってファイルができる
2 公開鍵をgitに登録
できたgit_id_rsa.pubの中身をコピーして
自分のgitのページのSSH Keyってところにペーストして登録ボタンをクリック。
3 自分宛にメールが届く
うまくいくとyour.e-mail@example.com宛に登録完了のメールが届く。
そんなに難しくなかった。
自分はgitlabを使っているのでgithubの人はちょっと違うかもしれない。
まあこの手の記事は
Qiita
にいっぱいあるからそれ見れば多分大丈夫。
改めていざgit clone
$ git clone ssh://git@hogehoge
Cloning 'hoge'...
Enter passphrase for key '/${file_path}/id_rsa':
でpasswardを入力して
remote: Counting objects: 143, done. remote: Total 143 (delta 0), reused 0 (delta 0) Receiving objects: 100% (143/143), 70.87 KiB | 0 bytes/s, done. Resolving deltas: 100% (51/51), done.
めでたしめでたし。
飽きるまでやります。
初めまして、いつも進捗に追われ進捗に殺されかける大学院生です。
以前からブログに興味があり、
やって見たいなぁと思いつつも面倒だからと先延ばしにして来ましたが
そろそろ言いたいこともたまって来たしやってやるかぁ〜と
重い腰をあげました。
大学院生ですが研究のことを書くと、特定が怖いためかなりぼかして表現することが多いですがご容赦ください。
研究に関連してプログラミングや深層学習などの話などを書いて行きたいと思います。
それ以外には映画の感想や読んだ本について書いて行こうと思います。
P.S.教授に特定されたらやめます。