0と1でできたブログ

プログラミングなどの個人的なメモ。他の人の参考になれば嬉しいです。

Terminalを縦に分割できるiTerm2の設定と使い方メモ

お知らせ: 新しくホームページを作りました! これから記事を増やしていくつもりなので, 良かったら見て下さい!! ホームページはこちらになります.

Terminalアプリを、iTerm2に乗り換えてみました。
理由としては、やっぱり縦分割ができるところ!!
あとsolarizedもあるし!

ってことでダウンロードはここからしました。

そしてsolarizedはここから。
Click Here To Download Latest Versionってところをクリックすると、solarizedのcolorschemeがたくさん入ったzipがダウンロードできますよー。たくさんっていうのは、いろいろなところで使えるように用途別にあるってことです。

ちょっと脱線しましたが、ダウンロードしたiTerm2をアプリケーションファイルにいれて、右クリックから開きます。

次に、colorschmeをかえるために、ツールバーのPreferenceをおして、Profileを押します。
左下の+ボタンを押して新しくcolorschemeを追加します。名前はお好みで。solarized-darkとかにしておけば、無難です。
その後は、Generalの欄から、Colorsの欄に移動して、下のほうのLoad Presetsを押して、Importを押します。そして、さっきダウンロードしたzipを展開して、iTerm用のSolarized Dark.itermcolorsを選びます。
選んだら、もう一回Load Presetsをおして、Solarized Darkを選択します。これで後はデフォルトにするだけです。デフォルトにするには、+ボタンの2つ右のOther Actionsのボタンから、Set as Defaultを選択すればできます。

最後にiTerm2のショートカットの説明を。

ショートカット 内容
⌘+n 新しいウィンドウ
⌘+t 新しいタブ
⌘+d 縦分割
⌘+shift+d 横分割
⌘+w(or Ctrl+d) ウィンドウの削除。括弧内は、iTerm2自体のショートカットではないかも
⌘+[(or ] or 矢印キー) 分割されているウィンドウのフォーカスを移動
Ctrl+tab タブ間の移動
⌘+数字 数字の割り当てられたタブに移動
⌘+enter フルスクリーン

頻繁に移動するディレクトリを登録しておくシェルスクリプト書きました

お知らせ: 新しくホームページを作りました! これから記事を増やしていくつもりなので, 良かったら見て下さい!! ホームページはこちらになります.

Terminalで作業するときに、ファイルが増えてくると、必然的に階層が深くなってしまって、そこに移動するのに一苦労。みたいになってきたので、頻繁に使うフォルダを登録して、そこにジャンプするようなシェルスクリプトを書きました。とても簡単ですが、地味に便利です。

まず、自分のいるところをmarkするコマンド。

#!/bin/sh
pwd > ~/.mark_dir

これで、markをした時点でいる場所のパスが、ホームフォルダの、.mark_dirというファイルに保存されます。
そして、次にその場所に飛ぶためのコマンド。

#!/bin/sh

while read line
do
    dir=${line}
done < ~/.mark_dir

cd ${dir}

これは、.mark_dirの中身を読んで、そこに飛ぶようになっています。 自分はそれぞれ、mark、jumpという名前で保存しています。

ここで、一つ問題があって、普通に

$ jump

とかやってもmarkした場所に移動出来ません。どうやら、シェルスクリプトないでcdを使いたいときは、

$ . jump

という風に、最初に.(ドット)を付けないと行けないようです。
ただ、毎回つけるのは面倒くさいので、自分は.bash_profileに、以下の文を加えています。

alias jump='. jump'

これで、jumpと書いたときは. jumpと認識してくれます。

screenコマンドの使い方についてのメモ

お知らせ: 新しくホームページを作りました! これから記事を増やしていくつもりなので, 良かったら見て下さい!! ホームページはこちらになります.

screenコマンドについての使い方メモ。

sshでつないで作業している時に、長時間プログラムを実行するときは、通信が切れてしまいますよね。そんな時に便利なのが、screenです。screenコマンドを使うと、仮想的にTerminalを作れて、任意のタイミングで入ったり出たりできます。(用語的に正しいかは定かでは無いですが、仮想的なTerminalのことを、以下socketと呼びます。)
よって、長時間プログラムを実行するときは、まずsshでリモート環境に入って、screenコマンドでsocket作ります。その上で、プログラムを実行しておいて、そこから出れば、好きなときに入り直せます。そして、プログラムはもちろん中断されません。

ということで、使い方を。
一番単純なのは、

$ screen

とすることです。これでもう新しいsocketができたことになります。では、このsocketを消すために、ctrl+dを押してみましょう。すると、

[screen is terminating]

と表示され、元の画面に戻ったと思います。ただ、これだとさっきのsocketは消えてしまっているので、次はsocketを消さないでsocketから出るようにしましょう。もう一度、screenコマンドを打ってみましょう。そして、次は、ctrl+a, dと押してみてください。今度は、

[detached]

と表示され、また元の画面に戻ったと思います。では、さっきのsocketが残っているか確認するために、

$ screen -ls

と打ってみましょう。自分の環境では、以下のように表示されました。

There is a screen on:
    23277.ttys001.hogehoge  (Detached)
1 Socket in ・・・

(hogehogeは自分のパソコンの名前になると思います。1 Socket inの後の点々の部分には、このソケットが保存されている場所が表示されています。)
さて、socketの名前が一つ書いてあって、その右に(Detached)と書いてあります。これは、socketを離れていることを示します。ということで、うまくいっていますね。ちなみに、socketが無いときは、

No Sockets found in ・・・

と表示されます。

では、detachしたsocketに戻ってみましょう。今回の場合、socketの名前が、23277.tty001.hogehogeとなっているので、以下のような戻り方があります。

$ screen -r
$ screen -r 23277
$ screen -r tty001
$ screen -r 23277.tty001

もちろん、23277.tty001.hogehogeと、名前全体を書いてもいいのですが、めんどくさいです。一番上が明らかに簡単ですが、これは、socketの数が1つの時だけ可能な書き方になります。また、複数作った時に、tty001などがかぶった場合は、3つめの書き方ではダメです。名前の、番号の部分はおそらくかぶらないので、(経験的にかぶって無いだけなので、確証はないです)2つめが割りとらくだと思います。では、次に自分で好きな名前をつけてみましょう。自分で名前をつけることのメリットは、

  • 何をやっているsocketかをわかりやすくできる。
  • screen -r socket-nameみたいにできるので、戻りやすい。

では、実践として、次にように打ってみましょう。

$ screen -S test

確認してみると、自分は以下の様なsocketができていました。

23440.test    (Detached)

この場合、作ったsocketに戻るのには、

$ screen -r test

すればいいことになります。もちろん番号でも大丈夫です。

基本はこんな感じです。では、最後にsocketを外から消す方法を書きます。
自分で指定した名前のsocketを消したい場合は、

$ screen -S socke-name -X quit

として(scket-nameのところに消したいsocketの名前をいれます。-rの時みたいに、番号だけとかで大丈夫です)、socketが一つしか無い場合は、

$ screen -r -X quit

とすれば消えます。
また、一気に全て消したい場合は、socketが保存されているフォルダ(screen -ls で表示させた時に、書いてある場所)の中身を全て消すとsocketを消せます。
以上、screenコマンドの使い方解説でした。


記事とは関係ないのですが,webアプリケーション開発の練習で,まとめのまとめサイトを作ってみたので,よろしければ見てみてください. (いろんなまとめのまとめ, 恋愛・結婚の2chまとめサイトのまとめ)