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

ラベル ハック の投稿を表示しています。 すべての投稿を表示
ラベル ハック の投稿を表示しています。 すべての投稿を表示

2009年2月13日金曜日

Windowの名前、クラス名を調べる。 このエントリーを含むはてなブックマーク

本記事では、LinuxのX上で表示されるウィンドウの名前、クラス名を調べる方法をまとめる。 例えば、WindowManagerのtwmの設定ファイルでアプリケーションごとのウィンドウの挙動を設定するときなどに、そのウィンドウの名前やクラス名を使うときに必要になる。

xpropコマンドを実行してウィンドウをクリックすれば、そのウィンドウに関する性質が端末に出力される。それでは、順を追って説明する。

次のコマンド

$ xprop
を実行すると、マウスポインタが十字架になるのでウィンドウをクリックする(下の写真に十字架のポインタは写ってませんが、、、)。

そのウィンドウに関する情報が端末に出力される。大量の情報なので、grepで抜き出す。ウィンドウの名前(WM_NAME)の場合は次のようにする。

$ xprop | grep WM_NAME
ウィンドウのクラス名(WM_CLASS)の場合は次のようにする。
$ xprop | grep WM_CLASS

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版 この本にはもっと面白いハックがたくさん載っています。

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月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がインストールされる。

キーワード

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

過去の記事

筆者について

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