sshでログインして処理の重たいコマンドを実行した後にセッションが途切れてしまうとそのコマンドをもう一度fbなどでフォアグラウンドに持ってこようと思っても残念ながらできません。違うシェルのインスタンスから立ち上げたらプロセスは別のインスタンスのシェルには持ってこれないかららしいです。

Screenの使い方

まず初めからコマンドをscreenを使って立ち上げておきましょう。

$ screen ruby it_takes_very_long.rb

そして、一旦sshの接続を切って繋ぎ直します。

$ screen -listをするとこんな感じで表示されるので

$ screen -r 31744.pts-0.Sakuraでスクリーンに繋ぎ直せば画面への出力をもう一度見ることが出来ます。

参考

Linux Screen Tutorial – YouTube


今まではcygwinをインストールしたディレクトリを全部SugarSyncで同期して使ってたんだけど、
よくわからないままに色々入れてたら700MBぐらいあったので整理整頓することにしました。

どうするか?

既にインストールされてるcygwinのファイルを整理するのはめんどくさかったの新規インストールをすることにしたのはいいけど、何せパッケージ選択がめんどくさい。めんどくさいっていうか手動でやると必ず忘れてしまうので自動化したい。

そこでコマンドラインインストールの登場です!

インストール方法

これでホームディレクトリ直下の C:\Users\ironsand\cygとかにインストールされる。

やめたパッケージ

gccとか入れてcygwinでコンパイルして色々してると毎回ドツボにハマるので、もうそういうのはVirtualBox上のUbuntuですることにする。

rubypythonはWindowsのネイティブパッケージを使う。結局なんだかんだでそれが一番安定してる気がするので。

gitcygwin用のパス名周りのエラーが鬱陶しくなることがちょくちょくあったのでChocolatey使ってcinst gitでインストールする方法に変更。

注意点

何故か 64bit バージョンは動きませんでした。理由はわかりませんが、こういう関係のソフトは32bit版のほうが今はまだ安定してる気がするし大量にメモリ使うこともないので気にしないことにします。

sshだとsshコマンドはインストールされないのでopensshを指定しましょう。

インストール後に/etc/passwdのホームディレクトリ設定を/home/usernameからcygdrive/c/Users/usernameとWindowsのホームフォルダに変更しておくとsshとかのコマンドの時に設定ファイルを自動的に読みに行ってくれるので便利。便利というかしないとちゃんと動かない。

あと環境変数にset HOME=%USERPROFILE%もどこかに仕込んでたほうが良いかも。

Util-Linux

何故かカレンダー表示のcalコマンドが見つからなかったので探してみたら、calのみのインストールはないらしい。
とりあえずutil-linuxが良さそうなんでこれを使う事にした。

tree

Windows由来のコマンドなのにWindowsのtreeコマンドは階層指定もできない残念仕様なのでcygwinのを入れました。tree -L 2とかで階層指定できる。便利!


Digital OceanではOSを気軽にDropletで作成して、気軽にポイポイ捨てれるのが売りですが、そのせいで sshで新しく繋ぎ直したホストに繋ごうとすると

と怒られてしまう。

毎回、手動で該当行を削除するのはめんどくさいので最終行を削除するコマンドを使うことにした。

やり方

でOK。ブラボー、ブラボー!

ちなみに”linuxで”とは書きましたが、自分はWindowsのcygwinで使ってます。

参考

linux – Deleting last line of a file – Stack Overflow