『入門git』 Travis Swicegood 著 でびあんぐる 監訳
Amazon | URL |
---|---|
タイトル | 入門git |
著者 | Travis Swicegood |
価格 | 2520円(本体2400円+税) |
ISBN | 978-4-274-06767-9 |
発売日 | 2009/08 |
判型 | A5 208頁 |
正誤表 | - |
PDF版もある。
良書。さすが The Pragmatic Bookshelf。内容は充実していながら、とても読みやすく、万人におすすめ。
Subversionなど他のバージョン管理システムとの比較や、SubversionやCVSを知っている人向けのわかりやすい説明、Subversionからの移行、Windows版での注意なども書かれており、わかりやすく、つまづきにくい内容となっている。
『入門Git』(濱野純) が、ほぼLinux版のGitについてのみ扱っているのとは対照的だ。
『入門Git』 濱野純
Amazon | URL |
---|---|
タイトル | 入門Git |
著者 | 濱野純 |
価格 | 2310円(税込)(本体2200円) |
ISBN | 978-4-7980-2380-9 |
発売日 | 2009/9/19 |
判型 | A5 |
正誤表 | URL |
良書。Gitのメンテナーである濱野純が日本語で書き下ろしたGitのバイブル本。
概要を説明する1章「gitとは」の次の2章「gitの基本概念」が、いきなり内部構造の話となり、とっつきにくい。このため、読み手を選ぶ本となってしまっている。
しかし、内部構造を理解しておくと、Gitの理解の助けとなり、その後の理解が深まることは確実だ。
9章「変更履歴を追いかける」では、リーナス版管理システムに求める理想を語っており、これを知ることもGitの理解の大きな助けとなる。
このように、開発の最初期から中心になって関わっているメンテナーならではの他では得難い内容を多く含んでいる。
10章「パッチベースのワークフロー」では、Linuxのような大規模なオープンソースプロジェクトがどのように開発を進めており、Gitがなぜ必要で、どのように役に立つのかが語られており、Gitの使い方を説明するに留まらない。
肝心のGitの使い方の説明も、とてもわかりやすい。「独りで使う」→「2ヶ所で使う」→「グループで使う」→「ブランチを使った開発」→「分散環境とブランチとの関連」と、順を追って、よくあるストーリーにそって説明されるので、無理なく理解を深めていくことができる。
いつも手元に置いておきたい一冊。
リモートサーバーにあるファイルとのdiff
ssh remote_host cat /path/to/file | diff - /path/to/file
color tee コマンド "cotee" 素案
tail -f で、ログを眺めているときに、キーワードを見落とさないように色を付けたい。
実行例。
$ cat cotee | ./cotee #!/usr/bin/ruby # # cotee - color tee command. read from stdin and write to stdout with color and files # # filename = ARGV.shift begin file = open("#{filename}", "w") if filename ARGF.each_line do |line| print line.gsub(/ERROR/, "\e[31m" + '\&' + "\e[0m") # ERRORに色を付ける file.print line if file end rescue => e puts e ensure file.close if file end
こんなことができたらいいな。
- 色をつける文字を正規表現で指定可能にする
- 何色をつけるか指定可能にする
- 上記2つの組み合わせを可能にする
- tee表示中に画面からの入力が出力ファイルにも反映される
- ログを流しているときにあとで見直しやすいように、区切りを入れたり、説明を入れたり
source
#!/usr/bin/ruby # # cotee - color tee command. read from stdin and write to stdout with color and files # # filename = ARGV.shift begin file = open("#{filename}", "w") if filename ARGF.each_line do |line| print line.gsub(/ERROR/, "\e[31m" + '\&' + "\e[0m") # ERRORに色を付ける file.print line if file end rescue => e puts e ensure file.close if file end
今すぐSQLite入門。知っておくべきたった5つのこと。
SQLite (エス・キュー・ライト) は、サーバー不要のお手軽データベース。
特徴
- データの保存に単一のファイルのみを使用する
- 中小規模ならば速度に遜色はない
- ファイルを使わないインメモリ・データベースとしても利用可能
- データ型を指定する必要がない
- サポートしている型は、Null / Integer / Real / Text / BLOG のみ
- Unicodeサポート
その他の特徴として、コメントは、SQLコメント(--から行末まで)に加えてC言語スタイル(/* から */ 複数行)が使用可能。
1. インストールは超簡単
Red Hat系のCentOSなどならば、yumコマンドで一発。
$ sudo yum install sqlite
(sudoよく分からないって人はrootユーザになって実行)
sqlite3-rubyなどライブラリのインストールにはsqlite-develも必要となるので、インストールしておく。
$ sudo yum install sqlite-devel
RHEL5、CentOS5 ならばバージョンは 3.3.6-5 がインストールされる。(2011年4月1日現在)
2. 起動/終了は不要
サーバー型ではないので、サーバープロセスの起動といった煩雑な手順は不要。
インストールが終わったら今すぐに使える!
sqlite3コマンドで接続して、.quit か .exit で切断。
$ sqlite3 SQLite version 3.3.6 Enter ".help" for instructions sqlite> .help .databases List names and files of attached databases (略) .exit Exit this program (略) .quit Exit this program (略) sqlite> .quit
3. ユーザの作成/削除/パスワード変更は不要
SQLiteにはユーザという概念がない。パスワードという概念もない。
だから、ユーザもパスワードもなくてもお手軽に利用できるというメリットがある。
反面、セキュリティ上のリスクというデメリットがあることも覚えておこう。
4. データベースの作成/削除
これも簡単。特別にデータベースを作成するというコマンドはない。
作成したいデータベース名を指定してsqlite3コマンドを実行するだけでよい。
$ sqlite3 otameshidb.sqlite3
「otameshidb.sqlite3」がデータベース名(長いね...)。データベースが既に存在すれば接続し、存在しなければ新規作成する。
データベース名と同じ名前のファイルが作成されるので、データベース名には必ず「.sqlite3」と付けて、拡張子代わりにするのがオススメ。
実際には、接続して空っぽのままではデータベースファイルは作成されないので、テーブルを作る。
$ sqlite3 otameshidb.sqlite3 SQLite version 3.3.6 Enter ".help" for instructions sqlite> create table test_table(id, name); sqlite> .quit $ file otameshidb.sqlite3 otameshidb.sqlite3: SQLite database (Version 3)
データベースの削除は、このファイルを削除するだけでよい。
$ rm otameshidb.sqlite3
5. バックアップ/リストア
データベースの実体はたった1つのファイルなので、バックアップはこのファイルをコピーすればよい。
$ cp otameshidb.sqlite3 otameshidb.sqlite3.backup
リストアはこのファイルを戻すだけ、超簡単。
(.backup/.restoreや.dump/.readという方法もある。)
以上
これだけ知っておけば、さっそく今からSQLiteが安心して使えるよ! Enjoy!
参考サイト
Linuxパフォーマンス問題判別
情報収集のためのツール
- CPU
- vmstat/sar
- システム全体のCPU使用率調査
- top/ps
- プロセス単体のCPU資料率調査
- vmstat/sar
- メモリ
- I/O
- vmstat/sar
- I/O Wait発生状況調査
- iostat
- デバイス単位のI/O状況調査
- vmstat/sar
- ネットワーク
- sar
- ネットワーク使用状況の調査
- ソケット数・コネクション数調査
- 障害の可能性調査
- sar
コマンド | 概要 | CPU | メモリ | ディスク | ネットワーク |
---|---|---|---|---|---|
vmstat | 指定した時間間隔でリソース使用状況を取得 | ○ | ○ | △ | × |
mpstat | 指定した時間間隔でCPU使用状況を取得 | ○ | × | × | × |
sar | 指定した時間間隔でリソース使用状況を取得 | ○ | ○ | ○ | ○ |
top | プロセス単位のCPU使用率、メモリ使用率を取得 | ○ | ○ | × | × |
ps | プロセス単位のCPU・メモリ使用率を取得 | ○ | ○ | × | × |
free | メモリ、スワップの空き状況を取得 | × | ○ | × | × |
ipcs | 共有メモリ、セマフォ、メッセージキューの使用状況を取得 | × | ○ | × | × |
iostat | デバイス単位のディスクI/Oの状況を取得 | ○ | × | ○ | × |
netstat | ネットワーク接続状況や統計情報を取得 | × | × | × | ○ |
Oracleをreadlineに対応させる(rlwrap)
入力の履歴やBackSpaceに対応していなくて入力にイライラするCUIアプリケーションのお悩み解決!
すべてのCUIアプリケーションに対応可能。rlwrapに続いて通常のコマンドを入力するだけ。
$ rlwrap sqlplus user/pass@orcl
本家
http://utopia.knoware.nl/~hlub/rlwrap/
インストールは通常通り、./configure; make: make install;。
REHL/CentOS用RPMはないみたいだが、Fedora ExtrasにあるらしいのでRPMでインストールしたい場合は(って普通そうだよね)そこから持ってきたらよいかも。
http://www.e-tsuyama.com/cgi-bin/blog/ms.cgi?blogid=20
CentOS5 = RHEL5 = Fedora Core 6 だから(イコールじゃないけど)、Fedoraの... と思ったらこんなもの発見。
http://www.rpmfind.net/linux/rpm2html/search.php?query=rlwrap
これ使ってみよう。
CentOS5(x86_64)を使っているのでel5.x86_64を選択。
$ wget ftp://194.199.20.114/linux/EPEL/5/x86_64/rlwrap-0.30-1.el5.x86_64.rpm $ sudo rpm -ivh rlwrap-0.30-1.el5.x86_64.rpm $ which rlwrap /usr/bin/rlwrap
使ってみる。
$ rlwrap ruby p 'hello rlwrap!' p 'hello rlwrap!' p 'hello rlwrap!' "hello rlwrap!" "hello rlwrap!" "hello rlwrap!" rlwrap: Oops, segfault - this should not have happened! If you need a core dump, re-configure with --enable-debug and rebuild Resetting terminal and cleaning up...
Ctrl-Dでruby的には正常終了しているのにrlwrapでエラーが起きているっぽいのがイマイチだなぁ。
でも、便利!