カテゴリー別アーカイブ: UNIX

結局、Ubuntuをインストールした

 先日、FedoraとCentOSの比較について書いた。CentOSの方が安定性が高いとのことだったので、CentOSをインストールしたが、デスクトップの文字が見にくく、洗練されていないので、Ubuntuをインストールした。

 日本語版でもUbuntuはCD一枚で簡単にインストールできるので、とても満足だ。

Ubuntu日本語版

広告

軽量プログラミング言語はユニバーサルデザイン?

 最近、軽量プログラミング言語というものを知った。Lightweight Languageで、略してLLと呼ばれる。UNIXのシェル、Awk、Perl, Python, Ruby等の開発言語を指すらしい。大まかな基準としては、インタプリタ、動的型、関数オブジェクトの機能を持つ言語をLLと称するらしい。

 LLが注目を浴びてきた背景には、プログラミング資源の増大化により、相対的にプログラマーという人的資源が上昇し、プログラミングが複雑化し、より安全で快適なプログラミングが求められてきたという経緯がある。

 確かに、プログラミングが複雑怪奇になってきて、オタクだけが分かるような世界になってきて、分かりにくく、初心者に入りにくい世界となってきている。プログラミングの世界にもユニバーサルデザインが浸透してきたのだろうか。

 近々、軽量プログラミングの大会があるので、興味のある方は参加してみては?

Lightweight Language Tiger(LLの虎)2010年7月31日

データ解析、データベース作成いたします

データ解析、データベース作成いたします

データ処理10年以上の経験

UNIX, Linux, Python、自然言語処理等についてもお手伝いいたします。

Oracle, MySQL, PostgreSQL

オラクルマスターブロンズ データベース10g資格有り

時給 2000円~ 相談可

UNIX, Pythonについての講習もします。

興味のある方はどうぞご相談ください。

連絡先 川頭(かわがしら)

メール kawagashira@gmail.com

設問3:UNIXのパイプ機能を使って1行コマンド処理をしてみよう!

CodeIQに投稿した設問3の解答を説明します。

問題

データをゲノムデータベースサイトGenBankからダウンロードし、解凍します。使用するのはnames.dmpのみです。

ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz

names.dmpは、生物種のデータです。

タブも含まれていますが、’|’での区切りデータとしてください。

各フィールドの説明は以下の通り。

1. 生物種ID

2. 生物種名

3. ユニークな生物種名

4. 同義語等

UNIXにはパイプ機能がありますので、キーワード検索を行い、ソートして確認するコマンドを1行で書いてください。

1. まず、大文字・小文字の区別なく’virus’という文字列を含む行を取り出します。Virus, VIRUSも含まれます。

2. 第2フィールドの生物種名のアルファベット順(昇順)でソートします。

3. 生物種名には時々、ダブルクウォーテションや大文字・小文字が混在していますが、特殊記号は無視して、大文字・小文字の区別なくソートします。

解答するもの

1. 上記の様に抽出・ソートするための1行コマンド。目で確認する為、最後にless-Sを付けてください。

2. 1の内容の行数を計算する1行コマンド。

完成したUNIXコマンドはテキストファイルに変換し、下のファイルアップロードから提出してください。

解答例

1.

$ grep -i virus names.dmp|sort -k 2 -t "|" -f -d | less -S

セパレータの設定 -t “|” は無くても結果は同じです。

2.

ソートは要らないので、

$ grep -i virus names.dmp | wc -l
111548

※ grep -i virus names.dmp | wc -l の結果の値はデータが定期的に更新されているので、結果が異なります。

設問4:コマンドを定期的に自動実行させよう!

CodeIQに投稿した設問4の解答を説明します。

問題

cron でユーザーのディスク使用量管理

管理しているサーバーの全ユーザーのディスク使用状況を知りたいと思い、毎日定時にディスク使用量をログを取ることにしました。

UNIX のcron 機能 を使って、定期的に各ユーザーのディスク使用量の情報を取得する設定をしてください。

詳細は以下の通りです。

・/home の下にある全ユーザーのディレクトリ内の使用量をdu を使って求めてください。

・毎日23:30に情報を取得してください。

・ファイルは、/var/lib/bak に保存し、名前はdu-YYYYMMDD.log のようにしてください。

 例えば、2013年4月31日ならば、/var/lib/bak/du-20130431.log となります。

 日付の生成にはdateコマンドを使ってください。

・crontab -e で編集し、設定は crontab -e 内の一行のみで実現させてください。

 他のスクリプトファイルを読みに行くようなことはしないでください。

・使用するシェルはbashです。

【解答方法】

crontab -l の表示結果をテキストファイルに貼り付けて、そのテキストファイルをアップロードしてください。

解答

問題のプログラムのポイントは以下の3点です。

1. cronによるコマンド自動実行の理解

2. du, dateのオプションの理解

3. シェルのコマンド展開機能の理解

解答例

30 23 * * * du -s /home/* > /var/lib/bak/du-`date +"\%Y\%m\%d"`.log

dateコマンドの展開部分が難しいです。

bashスクリプト実行では、`date +”%Y%m%d”`でコマンドの展開がうまく行きますが、cronの中ではフォーマットの%\でエスケープしないと正常に動作しないです。

下記のURLも参考にしてください。

http://maruta.be/intfloat_staff/67

/var/libは管理者権限があり、実際のコマンド実行には、/var/lib/bakにユーザーの書き込み権限を与える必要があります。

真のコンピュータ文化を作り上げるために

 私は、UNIXが大好きだ。私は、Windowsはつまらないおもちゃだと思っている。

 ところが、偶然、下記のようなページを見つけた。私が20年以上コンピュータにかかわってきて感じてきたことをまさに言い表している人がいた。内容は、OSだけでなく、プログラミング言語の特色についても論じていて、まさに同意見だ。大いに勇気付けられ、目の醒める思いがした。

How To Become A Hacker: Japanese

Fedoraか、CentOSか

 今日は新しい職場に行った。着いてみると、二台のDellのコンピュータがあったが、両方ともOSが抜かれており、OSのインストールの必要があった。上司に確認したところ、好きなOSを入れてよいとのこと。ラッキー!!!Linuxを入れることにした。

 ところが、どのLinuxを入れたらよいのか、悩んでしまった。前回は、Ubuntuを入れたので、もう少し一般的(?)なものがよいかと思い、FedoraかCentOSかで迷った。ネットで探してみると両者の比較記事があり、Fedoraは実験的で、CentOSは安定的とのこと。私は、安定したOSが欲しいので、CentOSに決定した。

Fedora Project ホームページ

CentOS

 Windows PCはあまっていたので、これでインストールディスクを作ることにした。CentOSページを調べたところ、インストールDVDは、bittorrent版しか配布されてなかったので、BitCometをWindowsにインストールし、ダウンロードすることにした。

BitComet

 しばらくすると、IT室からそちらの部屋から変な信号が出ていると電話が来てしまった。犯人は俺か?bittorrentのような分散型ダウンロードアプリは、他のマシンに負荷をかけるため、禁止されているようだ。出社早々、IT室や会社の人を振り回してしまった。

 結局、Windows PC自体がDVD-R対応でないので、DVDを焼けないことが判明し、インストールディスクのために、八枚のCDを焼く羽目に。ひーーーーー。

関連記事

結局、Ubuntuをインストールした – スピード冒険野郎の操縦席