Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2008年12月29日月曜日

/etc/hostsは間違っているらしい。 このエントリーを含むはてなブックマーク

本記事では、ubuntu 8.04で/etc/hostsの誤りについてまとめる。

ホスト名とIPアドレスの対応が記述されている設定ファイル/etc/hostsで、 下のようにインストーラで指定したホスト名xxxxxxのIPアドレスが存在しないもの(127.0.1.1)を指定している。これにより一部のアプリケーションの動作が遅くなるらしい。

127.0.0.1 localhost
127.0.1.1 xxxxxx
 
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

解決方法は、二行目はコメントアウトして、1行目を

127.0.0.1 localhost xxxxxx
とすればよい。

参考サイト: Electronic Genome

2008年12月28日日曜日

Google検索テクニックの基本 このエントリーを含むはてなブックマーク

本記事では、Google検索テクニックの基本を簡単にまとめる。

世の中には膨大な量のwebサイトがあり、その中から知りたい情報にたどりつくことには困難が伴う。単にキーワードを列挙するだけでは検索結果に多くのノイズが含まれてしまうため、キーワードの列挙以上の検索テクニックを知っておくことは便利であるし、効率的でもある。ゆえに、以下ではいくつかの基本的な検索テクニックをまとめる。

フレーズ検索

「Operation not permitted」などのエラーメッセージに関する情報をWebで調査したいときに、Googleの検索ボックスにそのまま入れると各単語のつながりが考慮されなくて適切でないことがある。

その場合は、

"Operation not permitted"
のように二重引用符でまとめると良い。

ブール演算

複数の単語を列挙した場合、デフォルトではそれらをすべて含むWebサイトが検索結果になります。

例) 「google hack 」

google AND hack
と同じです。ANDは大文字です。

同じようにORを使うこともできます。ORは大文字です。

例)

google (ハック OR  hack)
ORの代わりに「|」(パイプ)を使うこともできます。
google (ハック | hack)

マイナス検索

google (ハック OR hack)
で検索すると、オライリーの同名の書籍が検索結果に多く含まれるでしょう。

しかし、書籍でなくWebサイトに書かれている情報に興味がある場合は、

google (ハック OR hack) -オライリー
とすれば、多くの不要な情報は除去できます。マイナスとキーワードの間にはスペースを入れないでください。

もちろん除去されたいくつかの情報は有益なものかもしれませんから、除去するキーワードは適切に選択する必要があります。

類義語

類義語を使った検索もできます。

google ~ハック
のようにハックの先頭にチルダを付けると、ハックの類義語も含めて検索されます。

チルダとキーワードの間にはスペースを入れないでください。

ワイルドカード

フレーズの中の単語を任意にしたいときは「*」(アスタリスク)を使います。

"linux * ~howto"
で検索すると、The Linux BootPrompt-HowTo, Linux Networking HowTo, Linux NFS-HOWTOなどlinuxに関する各種howto文書がヒットします。

その他のチップス

  • キーワードは大文字でも小文字でも区別されません。
  • キーワードは最大31語までが有効です。それ以降はすべて無視されます。 ただし、ワイルドカードは1語にカウントされません。
  • 同じキーワードを複数列挙すると、重み付けされる。 例)
    linux ubuntu ubuntu howto
    

特別構文

  • intitle:キーワード キーワードの含まれるタイトルを持ったサイト 例)
    intitle:"linux * howto"
    
  • allintitle:キーワードたち 列挙したすべてのキーワードを含むタイトルを持ったサイト 例)
    allintitle: linux network howto
    
  • inanchor:キーワード キーワードを含むリンクアンカーを持ったサイト 例)
    inanchor:"linux * howto"
    
  • allinanchor:キーワードたち すべてのキーワードを含むリンクアンカーを持ったサイト
  • site:ドメイン 指定したドメイン内に限定して検索 例)
    "google (ハック OR hack)" site:jp
    
  • inurl:キーワード キーワードを含むURLを持ったサイト 例)
    inurl:google
    
  • allinurl:キーワードたち すべてのキーワードを含むURLを持ったサイト 例)
    allinurl:google hack
    
  • link:URL 指定したURLにリンクしているサイト 例)
    link:www.google.co.jp/
    
  • filetype:拡張子 指定した拡張子を持ったファイルを検索 例)
    google hack filetype:pdf
    
注意:allのつく構文は、他の構文と組み合わせて使うことはできません。単独で使ってください。

英語のページだけを検索

英語で書かれたページだけを対象に検索したいときには、URLの末尾に

&hl=en&lr=lang_en
を付け加えます。

例えば、「google」というキーワードで検索したとき、次のようなURLで検索されていました。

http://www.google.co.jp/search?hl=ja&lr=&rlz=1G1GGLQ_JAJP294&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=google&spell=1

このURLの末尾に先ほどのキーワードを追加します。

http://www.google.co.jp/search?hl=ja&lr=&rlz=1G1GGLQ_JAJP294&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=google&spell=1&hl=en&lr=lang_en

ちなみに、アンド記号(&)はキーワードをつなげるときの結合子のような役割があります。

  • hl=en   検索結果のページの表示言語を英語に指定
  • lr=lang_en   検索対象の言語を英語に指定
URLの前方に既にhl=jaなどと書かれていますが、後に書いた方が優先されます(今の場合ではhl=enが優先されます)。

参考文献: 「Google Hacks 第2版—プロが使うテクニック&ツール100選」Tara Calishain (著), Rael Dornfest (著)オライリージャパン 第2版 この本にはもっと面白いハックがたくさん載っています。

scimがCPUを占有 このエントリーを含むはてなブックマーク

本記事は、ubuntu 8.04でscimがCPUを占有してシステムが入力を受け付けなくなる現象についてまとめる。

原因とそれの(必要十分な)解決策がよく分かっていないから、 途中経過なども含めて多少冗長な内容でまとめている。 (ヒントになりそうな情報が漏れないように)

症状

ubuntu 8.04を入れているマシンで作業中に、突然動作が極端に遅くなった。 システムモニターで確認したところ、scim-bridgeのCPU占有率が極端に高くなっていた。 Ctrl-Alt-Delでログアウトして、再ログインするとgnomeの起動中にフリーズしてしまった。 自動起動してあったxosviewでは、CPU占有率が100%になっていた。

~/.xsession-errorsには

Start IM through /etc/X11/xinit/xinput.d/ja_JP linked to /etc/X11/xinit/xinput.d/scim-bridge.
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
after 209 requests(70 known procesed) with 0 events remaining
と書かれていた。

調査

xtermを.xsessionrcで自動起動するように設定しておくと、gnomeの起動中でフリーズした際でも作業ができるので(gnome-terminalではプロンプトが現れなくて使えなかった)、

$ ps aux | less
でプロセスを確認してみると、scim-launcherとscim-bridgeがそれぞれ50%ほどの占有率だった。

ネットで調べてみると、次の2つの方法が見つかった。

  1. ~/.anthy/last-record2_defaultの末尾の行を削除する(あるいはこのファイル自体を削除する) このファイルはかな漢字の変換の履歴を保持するファイルらしい。
  2. /tmp以下のディレクトリおよびファイルをすべて削除する

方法

2の方法を最初にやってみると、途中でフリーズせずにgnomeが完全に立ち上がったが、その後に作業しているとscimのCPU占有率が100%ほどになった。したがって、1の方法で、~/.anthy/last-record2_default.utf2の末尾の行を削除してみた。

すると次からはCPU占有率が極端に高くなることはなくなった。 しかし、上で試行錯誤しているときにシステムモニタでCPUを占有していたscim-launcherとscim-bridgeを停止させていたので、もしかしたらその効果もあるのかもしれない。。。

気になったこと

システムモニターで起動プロセスを確認してみると、二重あるいは三重で同じものが起動しているものが見られる。それらのプロセスは、上で出てきたscim-launcherやscim-bridge、他にはgconfd-2, scim-panel-gtk, scim-helper-manager, update-notifierがあった。 これらを複数起動する必要が分からない。

参考サイト:

2008年12月27日土曜日

Webブラウザのセキュリティを検査する。 このエントリーを含むはてなブックマーク

本記事では、Webブラウザのセキュリティに問題がないか検査する方法をまとめる。今回はITコンサルタント会社のscanit社が提供しているブラウザの安全性をオンラインで検査するサービスBrowser Security Testを利用する。

(注意)筆者はscanit社とは一切関係がありません。本記事はBrowser Security Testの簡単な説明をまとめていますが、正確性や安全性を保証するものではありません。利用の結果生じた損害について、一切責任を負いません。

注意事項を確認する。

ブラウザを立ち上げてBrowser Security Testに訪れる。次の注意事項が書かれています。

Careful! The test will try to crash your browser! Close all other browser windows before starting and bookmark this page. If your browser crashes during the test, restart it and return to this page. It will show which vulnerability crashed your browser and offer you to continue the test or view the results.

(訳:注意してください!このテストはあなたのブラウザをクラッシュさせようと試みるものです!テストを開始する前にブラウザの他のすべてのウィンドウを閉じてから、このページをブックマークしてください。テストの最中にブラウザがクラッシュしたら、ブラウザを再び立ち上げてこのページを訪れてください。すると、クラッシュした理由(脆弱性)が表示されるでしょう。そして、テストを続行するか結果を見るか尋ねます。)

下の写真のモザイクがほどこされた部分に、自分のOSやブラウザの情報が表示されていると思います。

テスト方法の選択

ラジオボタンでテスト方法を3種類のうちから1つ選択します。

テスト方法:

  1. Only test for bugs specific to my type of browser(訳:自分のブラウザに合ったテストだけ行う)
  2. Run all available tests(訳:利用できるすべてのテストを行う)
  3. Choose individual tests(訳:個別にテストを選択する)

以下では、2番目の「Run all available tests」を選択した場合を説明します。 ラジオボタンで選択した後に、熊のマークでStart the testと書かれた部分をクリックすると検査が始まります。

テスト中の注意事項

テストの進捗状況がレベルメータで表示されます。

「Quick Help」では、次の2つの注意事項が説明されています。簡単に訳しておきます。

  1. Help! My anti-virus says there is a virus! アンチウィルスソフトがウィルスを発見したと警告した場合: アンチウィルスソフトが正常に動作しているだけです。アンチウィルスソフトは、テストが試みている活動を検知して、それを警告しています。検知されたウィルスは、テストされているブラウザの脆弱性を利用する悪意のあるソフトウェアです。しかし、同じ脆弱性を利用していることを除いて、Browser Security Testとそのウィルスとはまったく関係がありません。このテストはトロヤの木馬をインストールしませんし、ウィルスを感染させようともしません。
  2. What do I do if my browser crashes? もしブラウザがクラッシュした場合: ブラウザを再び立ち上げてください。もしセッションを再開するか、あるいは新規セッションで開始するかブラウザに尋ねられたならば、「Start new session(新規セッションで始める)」あるいは「Start with blank page(白紙のページで始める)」を選択してください。Browser Testのホームページ(http://bcheck.scanit.be:80/bcheck/)を訪れてください。テストの中間結果が表示されます。そして、テストを継続することができます。

テスト結果

下のように検査項目ごとに結果が表示されます。緑色のチェックマークは、その検査が問題なかったことを表しているようです。そして、最後の行に「Congratulations! The test has found no vulnerabilities in your browser!(訳:おめでとうございます!あなたのブラウザにはいかなる脆弱性も見つけられませんでした。)」と書かれていたら、問題ないということでしょう。

2008年12月25日木曜日

Firefoxで英単語の意味を素早く調べる方法 このエントリーを含むはてなブックマーク

本記事では、WebブラウザのFirefoxで英単語の意味を素早く調べる方法をまとめる。

その方法とは、Firefoxの拡張機能GreasemonkeyとFast look up JP and ENというユーザスクリプトを使って、goo辞書などのWebサービスを素早く利用するものです。Greasemonkeyとは、

Greasemonkey(グリースモンキー)とは、Mozilla FirefoxおよびSongbird用の拡張機能。後述のユーザスクリプト形式に従ったJavaScriptを組み合わせて、ウェブページ閲覧時にを実行することができる。

from Wikipedia
というものです。

セットアップの手順を説明します。

(1)Firefox AddonからGreasemonkeyを探して、インストールします。

(2)userscript.orgからFast look up JP and ENを探して、インストールします。 インストール後、ブラウザを再起動します。

(3)ブラウザのステータスバーの右端にある猿のアイコン(下写真)を右クリックして、Fast look up JP and ENを有効化します。

(4)Fast look up JP and ENの設定を行うには、Alt-y (Altキーを押しながら、yを押すこと) すると、次のようなウィンドウが画面に現れる。 サービス一覧の中から、使用するものをクリックで選択する。×印は、そのサービスで利用できないことを意味する。○印のところから、使用するものを選ぶ。 選択すると、数字に変わる。これはサービスを使用する順番を意味している。

ウィンドウをスクロールすると、Settingという欄が現れる。そこで、Fast look up JP and ENを使うときのショートカットキーなどを設定できる。 デフォルトでは、

  • Altキーを押して、単語を選択 → 検索結果(単語の意味)がポップアップされる。
  • クリック → ポップアップされたウィンドウを閉じる。
  • y → 検索ウィンドウを表示(ここに入力することで、検索できる)
  • Alt-y → 設定ウィンドウを表示
  • Esc → (Fast look up JP and ENの)すべてのウィンドウを閉じる。
となっている。私は次のように変更した。
  • Ctrlキーを押して、単語を選択 → 検索結果がポップアップ。私の環境では、Altキーを押して、単語を選択してもポップアップウィンドウは現れなかったから。
  • y → 検索ウィンドウを表示。無効にした(設定欄に何も入力せず)。
  • Ctrl-c → すべてのウィンドウを閉じる。
(注意)設定後にはブラウザを再起動した方が良いです。再起動していないと異なるタブでは設定が反映されていなかったりしていました。

スクリーンショット

次の写真は、英単語の意味をポップアップ表示した場合のスクリーンショットです。ショートカットキーを使って、操作することに慣れている人にはとても使いやすい機能だと思います。

2008年12月23日火曜日

ftpプロキシ経由でファイル転送 このエントリーを含むはてなブックマーク

この概要は表示できません。投稿を閲覧するには ここをクリック してください。

2008年12月21日日曜日

ファイアーウォールを導入する。 このエントリーを含むはてなブックマーク

本記事では、ubuntu8.04にファイアーウォールを導入する方法をまとめます。

ポートを開いてサービスを提供する場合などに、そのポートからの不正アクセスを 防ぐためにファイアーウォールが必要になります。

そこでiptablesを用いるわけですが、デフォルトで設定が何もされていません。 firestarterというGUIによる設定ツールがあるので、これをsynapticからインストール して設定しました。

インストール後に実行してみると。。。

インストール後に、

$ gksudo firestarter &
で、起動する。最初はウィザードが立ち上がるので、質問に答える。

しかし、起動してみると次のようなエラーが出てしまう。 設定ファイルを少し修正する必要があるようです。

設定ファイルの修正

まず、firestarterを閉じます。スクリプトファイル

/etc/firestarter/firestarter.sh
をroot権限で編集します。emacsで編集する場合は次を実行します。
$ gksudo emacs /etc/firestarter/firestarter.sh
下の写真で赤丸で囲んであるところはデフォルトでMasと書かれていると思うので、そこを写真のようにinetと書きます。その後、この設定ファイルを保存して閉じます。

許可するホストの設定

基本的にはすべて拒否しておいて、個別的に許可するものを付け加えることにします。 「ポリシー」の「受信側のトラフィックのポリシー」にて、 localhost.localdomainの接続だけ許可しておきます。

ファイアーウォールを動作させる。

次の写真のようにファイアーフォールの状態が「無効です」と書かれていたら、 ファイアーウォールは動作していません。 赤丸で囲んだところ(「起動」と書かれている)をクリックして、ファイアーウォールを起動させます。

うまく起動すれば次の写真のように、ファイアーウォールの状態は「有効です」と表示される。 ファイアーウォールを停止させたいときは、赤丸で囲んだところ(「停止」と書かれている)をクリックします。

参照:

不要なポートが開いていないか確認する。 このエントリーを含むはてなブックマーク

本記事では、Ubuntu8.04で不要なポートが開いていないか確認する方法をまとめる。

Ubuntu 8.04では:デフォルトでポートはすべて閉じられているらしい。しかし、追加でアプリをインストールした場合に、ポートが開かれることがある(外部にサービスを提供するアプリなど)。firewallソフトのiptablesは何も設定されていない状態なので、気づかないうちにポートが開いたままになっていたら危険です。したがって、開いているポートがないかチェックする必要があります。そのために、nmapというアプリを使います。これはsynapticからインストールできます。

使い方

$ nmap localhost -sV
のように実行します。 (注意)このコマンドは他者のマシンに対して実行しないでください。 他者のマシンに不正アクセスを試みているとみなされるかもしれませんから。 あくまで、自分のマシンに対してチェックのためにだけ使用してください。

実行結果の例

2008年12月20日土曜日

マルウェア駆除ツールの導入 このエントリーを含むはてなブックマーク

本記事では、ubuntuにマルウェア駆除ツールchkrootkitとrootkit hunterを導入する方法と使い方をまとめる。

「ルートキット(rootkitあるいはroot kit)はコンピュータシステムへのアクセスを確保したあとで第三者(通常は侵入者)によって使用されるソフトウェアツールのセットである。」

from wikipedia
chkrootkitrootkit hunterは、さまざまな方法でシステムの整合性をチェックするツールです。それぞれsynapticからインストールできます。

使い方: chkrootkitはただコマンド名を打ち込むだけです。

$ chkrootkit

rootkit hunterはデータファイルを更新するために

$ rkhunter --update
を定期的に実行する必要があります。そして、チェックを実行するには次のようにします。
$rkhunter --check

参照:

2008年12月8日月曜日

暗号化ソフトGnuPGの導入 このエントリーを含むはてなブックマーク

本記事では、暗号化ソフトのGnuPGの導入と使い方をまとめる。

キーを生成する。

$ gpg --gen-key
対話的に質問がなされるので、答えていく。

鍵タイプの指定:RSA+ELGAMAL
有効期限:なし
個人情報:名前とメールアドレス
パスフレーズ:適当に設定

公開鍵の登録

次のコマンドで公開鍵をpublic.txtに書き出す。

$ gpg -o public.txt -a --export userid
PGP公開鍵サーバに先ほどの公開鍵を登録する。

公開鍵の登録

先ほどの、PGP公開鍵サーバから(登録したい人の)公開鍵を検索して取得する。

$ gpg --import public.txt

ファイルを暗号化・復号化する。

$ gpg -e before.txt
$ gpg -d after.txt.gpg

Enigmailのインストール

Thunderbirdでgnupgを使えるように、Enigmailをインストールする。synapticから enigmailとenigmail-locale-jaをインストールする。 参考サイト:MacOSXでGnuPGを使おう」、「GNU Privacy Guard講座

2008年12月3日水曜日

PDFファイルからテキストを抽出する このエントリーを含むはてなブックマーク

本記事では、ubuntu8.04でPDFファイルからテキストを抽出するコマンドpdftotextをセットアップする方法についてまとめる。

pdftotext:はPDFファイルからテキストを抽出するツールである。(PDFファイルviewerの)xpdfパッケージに含まれている。しかし、何もしないままで実行すると、

$ pdftotext a.pdf a.txt
Error: Unknown character collection 'Adobe-Japan1'
Error: Unknown character collection 'Adobe-Japan1'
Error: Unknown character collection 'Adobe-Japan1'
というエラーで怒られてしまう(a.pdfに日本語が含まれているときに)。「Unknown character collection 'Adobe-Japan1'」でネットを検索してみると解決法がいくつか紹介されているが、どれでやっても解決できなかった。

ネットで紹介されていた方法

(1)cmap-adobe-japan1とcmap-adobe-japan2を入手して、/usr/share/fonts/cmap/cmap-adobe-japan1およびcmap-adobe-japan2と配置する。(←ネットで入手したものは、もともと入っていたものより古いものだった。後で分かったことだが、入れ替える必要はなかった。)

(2)/etc/xpdfrc/xpdfrc-japaneseでそのフォントの場所を指定する。 書き込む内容は以下の通りである。

cidToUnicode    Adobe-Japan1    /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode
unicodeMap      ISO-2022-JP     /usr/share/xpdf/japanese/ISO-2022-JP.unicodeMap
unicodeMap      EUC-JP          /usr/share/xpdf/japanese/EUC-JP.unicodeMap
unicodeMap      Shift-JIS       /usr/share/xpdf/japanese/Shift-JIS.unicodeMap
cMapDir         Adobe-Japan1    /usr/share/fonts/cmap/adobe-japan1
toUnicodeDir                    /usr/share/fonts/cmap/adobe-japan1

これをやった後で、再度実行したら

$ pdftotext a.pdf a.txt
Error: Unknown character collection 'Adobe-Japan1'
Error: Unknown character collection 'Adobe-Japan1'
Error: Unknown character collection 'Adobe-Japan1'
再び怒られた。

結局、設定が反映されていない。設定を明示的に反映するコマンドを実行する必要があるのだろうか?と考えたが、その必要はないようだ。ちなみに、pdftotextを実行したら

  • ホームディレクトリにある.xpdfrcを読み込む。
  • それがなければ、システムの設定ファイル(/etc/xpdf/xpdfrc)を読み込む。
となるとmanに書いてあった。設定は確かにAdobe-Japan1について書いてあるのになぜか反映されていない。

試行錯誤の後に分かったこと:xpdf-utilsパッケージをインストールしていなかったということだった!apt-getで入れてから、

$ pdftotext a.pdf a.txt
と実行すると、何もエラーがでずに実行できた。すなわち、結局必要だったことは、
  • xpdf-utilsをインストールすること
  • /etc/xpdf/xpdfrc-japaneseに再設定すること
の2つだけだったのだ。

2008年12月2日火曜日

全文検索エンジンnamazuを導入する。 このエントリーを含むはてなブックマーク

本記事では、ubuntu 8.04に全文検索エンジンnamazuを導入する方法をまとめる。

インストール

$ apt-get install namazu2 namazu2-index-tools libtext-kakasi-perl libnkf-perl

最初、 namazu2 namazu2-index-toolsだけをインストールしたら、mknmzコマンドを使ってインデックスを作成しているときに、Can't locate NKF.pmとかCan't locate Kakasi.pmなどと怒られた。

したがって、次の2つを追加インストールした。

libtext-kakasi-perl
libnkf-perl
これで、インデックスを作成できた。

インデックスの作成

検索を高速化するために、あらかじめ対象ディレクトリにあるファイルのインデックスを作成する。例えば、/usr/local/share/namazu/docにある文書のインデックスを作成するためには

$ mknmz /usr/local/share/namazu/doc
とすれば良い。mknmzを実行したときのディレクトリに、インデックスファイルが作成されます。

検索

作成したインデックスに対して、キーワードで検索をかけるには次のようにします。

$ namazu キーワード インデックスのあるディレクトリ

参考サイト:使ってみようNamazu 2.0

追記

PDFファイルを検索対象に含めるには、pdftotextが必要。デフォルトではうまく動かなかったので、設定が必要(「PDFファイルからテキストを抽出する」)。

また、TEXファイルを検索対象に含めるには、detexが必要。

$ sudo apt-get install texlive-extra-utils
これでdetexがインストールされる。

apt-cacheでインストール可能なパッケージを探す。 このエントリーを含むはてなブックマーク

本記事では、apt-cacheコマンドでインストール可能なパッケージを探す方法についてまとめる。

apt-getコマンドでパッケージをインストールするときは、パッケージ名をあらかじめ知っておかなければならない。そのためにはapt-cacheコマンドを使うと良い。

キーワードに該当するパッケージの一覧を取得するには

$ sudo apt-cache search キーワード
とすれば良い。例えば、firefoxに該当するパッケージ一覧は次のように取得する。
$ sudo apt-cache search firefox
kubuntu-docs - kubuntu documentation
totem-mozilla - Totem Mozilla plugin
ubufox - Ubuntu Firefox specific configuration defaults and apt support
などなど

パッケージの情報を取得するには:ubufoxというパッケージの情報は次のように取得する。

$ sudo apt-cache show ubufox
Package: ubufox
Priority: optional
Section: web
Installed-Size: 220
Maintainer: Alexander Sack 
Architecture: all
Version: 0.5-0ubuntu1
Depends: apturl (>= 0.1.2ubuntu1), firefox | firefox-3.0 | firefox-2
Filename: pool/main/u/ubufox/ubufox_0.5-0ubuntu1_all.deb
Size: 40448
MD5sum: 2e0fead039392af9fcd66fa296c14514
SHA1: 3e67f904ff9be7b29004771b09d5d8a4627284aa
SHA256: 0e74ed358b74e52de3119f7364935b0f73c681f644c09d0e4d2319649071f807
Description: Ubuntu Firefox specific configuration defaults and apt support
 Extension package for Firefox provides ubuntu specific configuration defaults
 as well as apt support for firefox plugins/extensions.
 .
 You can uninstall this package if you prefer to use a pristine firefox
 install.
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu
Task: ubuntu-desktop, edubuntu-desktop, xubuntu-desktop

インストールするには

$ sudo apt-get install ubufox

cutコマンドの基本的な使い方とその応用 このエントリーを含むはてなブックマーク

本記事では、linuxのcutコマンドの基本的な使い方をまとめて、応用としてワーキングディレクトリにあるディレクトリの一覧を表示する方法を紹介する。

cutコマンドとは:各行から選択した部分を表示するものです。例えば、test.txtというファイルには、次のようにコロンで区切られたデータが列挙してあるとします。

aaa:bbb:ccc
ddd:eee:fff
ggg:hhh:iii

2番目のデータだけを表示したいときは次のようにします。

$ cut -f2 -d":" test.txt
bbb
eee
hhh

  • dオプションで、区切り文字を指定します。
  • fオプションで、データの番目を指定します。

注意事項:連続する空白文字を1つの区切り文字として扱うことができないので、注意が必要です。

例えば、

$ls -l
drwxr-xr-x  2 aaa bbb 4.0K 2008-10-29 12:16 dir1
drwxr-xr-x 22 aaa bbb 4.0K 2008-11-25 02:15 dir2
-rwx------  5 aaa bbb 4.0K 2008-12-02 15:53 file1
-rwx------  2 aaa bbb 4.0K 2008-12-02 20:19 file2
のときに、ディレクトリだけを表示させたいならば
$ls -l | grep ^d | cut -d" " -f8
でうまくいきそうですが、実際は
12:16
dir2
となってしまいます(ちなみに、grepの引数^dは先頭がdで始まる行だけを抜き出すことを意味しています)。

原因は、dir2以外は1番目と2番目のフィールドを区切っている空白文字が2個連続しているためです。したがって、1つ目の空白文字が区切り文字としてみなされて、連続する2つ目の空白文字は2番目のデータとみなされたわけです。

応用:連続する空白文字を1つの空白に置換して、(今いるディレクトリにある)ディレクトリだけの一覧を表示するには次のようにします。

$ ls -l  | sed -e 's/\s\{1,\}/ /g' -ne '/^d/p ' | cut -d' ' -f8 |  column -x

sedの使い方:sedの引数として引用符で囲まれた文字列を列挙すると、順番に評価されます。したがって、上のsedの部分のコマンドは

  1. 空白文字(\s)の一回以上の繰り返し(\{1,\})を1個のスペースで置換する。
  2. 先頭がdで始まる行だけを抜き出す
となります。2つ目の引用符で囲まれた文字列の前でnオプションを付けていますが、これは必要です。このオプションを付けなかったら、先頭がdでない行も出力されるからです。

columnの使い方:テキストを表形式に整形するコマンドです。ここでは標準入力からテキストを受け取っています。xオプションで縦方向でなく横方向に列挙するように指定しています。

補足

特定の列だけ取り出すにはgawkが便利です。上の例

$ls -l
drwxr-xr-x  2 aaa bbb 4.0K 2008-10-29 12:16 dir1
drwxr-xr-x 22 aaa bbb 4.0K 2008-11-25 02:15 dir2
-rwx------  5 aaa bbb 4.0K 2008-12-02 15:53 file1
-rwx------  2 aaa bbb 4.0K 2008-12-02 20:19 file2
で、ディレクトリの名前の列を出力するには
$ ls -l | awk '/^d/ {print $8}'
を実行すれば良い。これはスラッシュで囲まれた条件を満たす行に関して8列目だけを出力するコマンドである。

awkを応用したコマンドの例: ディレクトリの個数をカウントする。

$ ls -l | awk '/^d/ {print $8}'| wc -l

実行したコマンドの履歴から、使用頻度順にコマンドを表示する。

$ history | awk '{print $2}' | sort | uniq -c | sort -n

  • sort:行単位でソートする。nオプションをつけると、数値としてソートする。
  • uniq:重複した行を削除する。ただし、このコマンドの実行前にsortを実行しておかなければならない。cオプションをつけると、重複回数を行の先頭に付け加えて結果を出力する。
参考サイト:

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。