Linux Tips

Linuxについて雑多なメモ。もしくはtips

デスクトップ

Ubuntuは、マウスポインタを一定時間動かさないと消えるようになってます。 これをDebianでも実現したいと思って調べたら、unclutterを使うと一定時間で消すことができるそうです。

util-linuxに入ってるrtcwakeを使うと好きな時間にスリープから復帰できるそ う。たとえば3分後に復帰させたい場合はこんな感じ

$ sudo /usr/sbin/rtcwake -m mem -s 180

するとスリープに入って3分後、自動的に復帰します。

$ /usr/sbin/rtcwake --help
使い方: rtcwake [オプション]
    -d | --device <デバイス>  rtc デバイスを選択する (rtc0|rtc1|...)
    -l | --local              ローカル時間として RTC を使う
    -m | --mode               standby|mem|... sleep mode
    -s | --seconds <seconds>  指定秒スリープする
    -t | --time <time_t>      time to wake
    -u | --utc                RTC uses UTC
    -v | --verbose            メッセージを表示する
    -V | --version            バージョンを表示する

特定の時間だと-tを使えばいいと思うけど、UNIX Timeっぽいので変換しないと ダメかも。あと時計もローカルとUTCでは変わるので、それぞれオプションを付 けないといけないかも。

ということで2010年12月1日12時にスリープから復帰させようとしたら

$ date +%s --date "2010-12-01 12:00"
1291172400
$ sudo /usr/sbin/rtcwake -m mem -l -t 1291172400

ですかね。

サーバーなどXが無い環境でXが必要なプログラムを動かしたいけど、余計なも のを動かしたくないというときにXvfbは有効だけど、それで起動した場合、設 定を変更するなど、ちょっとしたGUIからの操作をどうするか問題になるときが あると思います。 そういうときにx11-vncを使うと、必要な時だけVNCを接続し て操作できます。

SSHなどでリモートマシンに接続して、必要なプログラムをインストールします。

$ sudo aptitude install xvfb x11-vnc

環境変数「DISPLAY」を設定してxvfbを起動。詳しくはman Xvfb

$ export DISPLAY=":1"
$ xvfb :1 -screen 0 1024x768x24 &

あとはXが必要なプログラムを起動して終わりですが、本題はその動かしたプロ グラムをちょっといじりたい時なので、それをどうするかというとx11-vncを使 います。

リモートマシン上でx11-vncを起動します。

$ x11-vnc

あとはクライアントマシンからVNCクライアントを使ってリモートマシンに接続します。

作業が終わってVNCの接続を切断すればリモート側のx11-vncも終了するので、 ムダにリソースを使わずに済みますね。

Skypeを仕事とプライベートで分けている人も多いと思いますが、そういう時のTips。

オプション一覧

Usage: skype [options]
Options:
  --dbpath=<path>       Specify an alternative path to store Skype data files.
                        Default: ~/.Skype
  --resources=<path>    Specify a path where Skype can find its resource files.
                        Default: /usr/share/skype
  --disable-api         Disable Skype Public API.
  --pipelogin           Command line login. "echo username password | skype --pipelogin"
  --version             Display version information and exit.

アカウントを複数分ける

設定を保存するディレクトリを指定する –dbpath というオプションがあ るので、これに別ディレクトリを指定すると別のアカウントを指定できます。

$ skype --dbpath=~/.Skype-otheraccount

と指定して起動すると設定を分けられます。

普通にGUIから設定してもいいのですが、–pipelogin オプションもあるの で使ってみます。 このオプションを使うとパイプから受け取った文字列「ユー ザー名 パスワード」でログインできます。

例では単純に「echo username password | skype –pipelogin」と書いてあり ますが、そのままではちょっと危ないので、

$ echo "ユーザー名 パスワード" ~/.Skype-otheraccount/passwd
$ chmod 600 ~/.Skype-otheraccount/passwd
$ cat ~/.Skype-otheraccount/passwd | skype --pipelogin

とするのがよいかと思います。

NetworkManagerアイコンの「接続を編集する」からネットワークの接続設定を 開き、ボタンの横にある「全てのユーザーに利用可能」にチェックを入れ、適 用ボタンを押す。

Linuxデスクトップ環境でプログラムメニューを追加するには、通常、デスクトッ プ環境のメニュー編集などを使いますが、インタラクティブではなくプログラ ムなどから自動で追加する場合は、所定のファイルを作成し追加する必要があ ります。その設定方法について調べたのでメモ。

参考

アプリケーションを起動するための「*.desktop」ファイルを作る

(ファイル名).desktop という名前で以下のようなファイルを作成します。

面倒な場合はデスクトップ環境で「アプリケーションの起動を追加」などでデ スクトップ上にランチャを作れば、desktopファイルが作成されるので、それを 利用するとよいでしょう。

サンプルのようにxdg-openから起動するようにして実行属性をつけておくと、 デスクトップ環境でなくてもdesktopファイルからアプリケーションを起動する ことができて便利です。

#!/usr/bin/env xdg-open

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=(実行ファイル)
Name=(名前)
Name[ja]=(日本語ロケールでの名前)
Comment=(コメント)
Comment[ja]=(日本語ロケールでのコメント)
Icon=(アイコンファイル)
Categories=(カテゴリ)

アプリケーションが入るディレクトリを指定する「*.directory」ファイルを作る

(ファイル名).directory という名前で以下のようなファイルを作成します。

desktopファイルに似ていますが、ファイル名の拡張子がdirectoryになってい ることと、TypeにDirectoryが指定されていることに注意。

[Desktop Entry]
Type=Directory
Name=(名前)
Icon=(アイコンファイル)

メニュー階層を指定するXMLファイル「*.menu」ファイルを作る

(ファイル名).menu という名前で以下のようなXMLファイルを作成します。

XMLなので一見ややこしそうに見えますが、実際のところはApplicationsの下に Menu階層を作り、NameとDirectoryに上で作った *.Directory ファイルを指定 しているだけです。

メニューについて古い資料だとシステムワイドのmenuファイルを変更して階層 を追加していますが、その必要はなく、application-mergedディレクトリに、 この作成したmenuファイルを置けば追加することができます。

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
  <Name>Applications</Name>
  <Menu>
    <Name>(名前)</Name>
    <Directory>(上で作ったdirectoryファイル).directory</Directory>
  </Menu>
</Menu>

「*.desktop」「*.directory」「*.menu」ファイルを指定のディレクトリに置く

作成した*.desktop, *.directory, *.menuそれぞれのファイルを指定のディレクトリに配置します。

  • システムワイドの場合
    • アプリケーション(*.desktop): /usr/share/applications/
    • ディレクトリ(*.directory): /usr/share/desktop-directories/
    • メニュー(*.menu): /etc/xdg/menus/applications-merged/
  • ユーザーローカルの場合
    • アプリケーション(*.desktop): $(HOME)/.local/share/applications/
    • ディレクトリ(*.directory): $(HOME)/.local/share/desktop-directories/
    • メニュー(*.menu): $(HOME)/.config/menus/applications-merged/

サウンド・グラフィック・マルチメディア

mid3iconvを使ってSJIS/CP932で書き込んだMP3のタグをUTF-8に一気に変換できます。

$ sudo apt-get install python-mutagen
$ find . -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP932 -d

xawtvをインストールしておく。

$ apt-get install xawtv

デフォルトの状態を確認する。currentが現在の状態。

$ v4lctl list
attribute  | type   | current | default | comment
-----------+--------+---------+---------+-------------------------------------
norm       | choice | NTSC-M- | NTSC    | NTSC NTSC-M NTSC-M-JP NTSC-M-KR NTSC-443 PAL PAL-BG PAL-H PAL-I PAL-DK PAL-M PAL-N PAL-Nc PAL-60 SECAM SECAM-B SECAM-G SECAM-H SECAM-DK SECAM-L SECAM-Lc
input      | choice | Composi | Televis | Television Composite1 S-Video
audio mode | choice | mono    | mono    | mono stereo lang1 lang2
bright     | int    |     128 |     128 | range is 0 => 255
contrast   | int    |     128 |     128 | range is 0 => 255
color      | int    |     128 |     128 | range is 0 => 255
hue        | int    |       0 |       0 | range is -128 => 127
volume     | int    |      31 |      31 | range is 0 => 31
mute       | bool   | on      | on      |

NTSC Japanに変更する。

$ v4lctl setnorm NTSC-M-JP

入力をComposite1に変更。

$ v4lctl setinput Composite1

ステレオに変更

$ v4lctl setattr "audio mode" stereo

長くなったのでこちらで。

Inkscapeで画像をペタペタ貼ったPDFを作成したら、かなりファイルサイズが大 きくなってしまったので最適化する方法を探してみた。

GhostScriptでスクリーン用に最適化できるそうです。

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=(出力ファイル名).pdf (オリジナルファイル名).pdf

ps|epsに出力してラッパーのps2pdfを使うほうがお手軽かも。

$ ps2pdf14 -dPDFSETTINGS=/ebook -sPAPERSIZE=a4 (オリジナルファイル名).ps (出力ファイル名).pdf

-dPDFSETTINGS=で指定できるPDFの最適化レベルはこんな感じ。

ps2pdf: PostScript-to-PDF converter: http://ghostscript.com/doc/current/Ps2pdf.htm

/screen selects low-resolution output similar to the Acrobat Distiller “Screen Optimized” setting.
/ebook selects medium-resolution output similar to the Acrobat Distiller “eBook” setting.
/printer selects output similar to the Acrobat Distiller “Print Optimized” setting.
/prepress selects output similar to Acrobat Distiller “Prepress Optimized” setting.
/default selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.

用紙サイズの-sPAPERSIZE=は、A3などのときは指定しておきます。 (指定しないとA4にぶった切られます)

ImageMagickのconvertコマンドを使う。 たとえばexample.pdfをexample-(連番).pngにする場合は以下のようにする。 %04dの意味は0で埋めて4桁の連番。

$ convert example.pdf exmaple-%04d.png

Convertにはいろいろなオプションがあるので、たとえば書き出す画像を320×240ピクセルの画像にしたければ以下のようにする。

$ convert example.pdf -geometry 320x240 exmaple-%04d.png

300dpiの画像に変換するにはオプションの-unitに単位「PixelsPerInch」を、 -densityに「300」を指定する。

$ convert example.pdf -units PixelsPerInch -density 300 exmaple-%04d.png

逆に複数の画像をPDFにはするには以下のようにすればよい。

$ convert example*jpg example.pdf

上記のことを組み合わせるとイメージに変換したののち、画像修正、PDFに変換もできる。 mogrifyconvertと同じだけれど、画像を一括上書き変換するコマンド。

$ convert example.pdf -units PixelsPerInch -density 300 exmaple-%04d.png
$ mogrify -type GrayScale -level 0%,80%,0.75 exmaple-*png
$ convert example-*png example.pdf

書きかけ

vecteezyというベクター画像を配布しているサイトがあります。

うれしいことにIllustratorのai形式以外にもeps、svg形式も配布しているので、 喜んでeps画像をダウンロードしてInkscapeで読み込ませると、こんな感じに穴 が埋まります。(画像の真ん中「EPSで読み込ませたもの」参照)

「線」のデータはあるけど「塗り」の部分の色が変換されてない?

Inkscapeはsvgしか扱えないので、pstoeditを 呼び出してsvgに変換してから読み込んでいるようです。 手で「pstoedit -f plot-svg (元の画像ファイル).eps (出力ファイル).svg」とsvgに変換して読み 込ませると、inkscapeで読みこんだものと同じように穴が埋まる。

原因がpstoeditということがわかったので、いろいろ試してみたのですが、わかった事は

  1. ai形式のファイルがあるならInkscape 0.46では直接読み込めるので、まずはそれを読みこんでみる。(Illustrator 9.0以降のai形式でpdfデータがくっついていれば、それを読み込んでいるっぽい) epsしかない、もしくはダメな場合(読み込めない、画像がおかしい場合)はpdfに変換して読み込ませる。
  2. ai形式でもInkscapeから直接読み込めないファイルがあります。その場合にはuniconverter(Debianパッケージ名はpython-uniconverter)を使ってPDFに変換して読み込みます。
  3. pdfに変換するには pstoedit epstopdfを使ってpdfに変換してInkscapeに読み込ませる。(svgには変換しない) 変換法方は pstoedit -f gs:pdfwrite (元の画像ファイル).eps (出力ファイル).pdf epstopdf (元の画像ファイル).eps –outfile=(出力ファイル).pdf でおk。(画像の左「PDFで読み込ませたもの」参照)
  4. それでもダメならsk(Skencil)形式に変換して読み込む。変換方法は「pstoedit -f sk (元の画像ファイル).eps (出力ファイル).sk」な感じ。ただCMYK→RGB変換がうまくいかないのか色合いが若干変わります。(画像の右「Skencilで読み込ませたもの」参照)

「-ssp」オプションをつけるといい?

書いた直後に、こんなの見つけてしまった。

確かに-sspつけるとSkencilで読み込ませたのと同じになる。

2009.11.19追記

Inkscapeでeps画像を読み込む場合、pdfに変換して読み込ませることには変わ りありませんが、変換をpstoeditでおこなうよりepstopdf(debianでは texlive-extra-utilsパッケージに収録)を使った方が、より精度よくInkscape で読み込めるようです。

Windows上でA3サイズのPDFをポスター印刷しようとしたら、EPSONのプリンタド ライバで対応しているポスター印刷は4枚の倍数じゃないことと、Adobe Reader 9は分割印刷できないので調べてみた。

結果、Windows上じゃなくてLinux上の pdfposterを使うとよいことが分かった のでメモ。 (pdfposterはWindows版もあるけど、インストールしようとすると 落ちてしまう。なぜ?)

インストールはDebianなら aptitude install pdfposter で終わり。 使い方は

$ pdfposter -p 2x1a4 input.pdf output.pdf

pdfposterでの分割についての例は pdfposterのExamplesに 乗ってるので、それも参照。

ページ単位でPDFを分割・結合するには、PDFsam (PDF Split and Merge)が便利。 Debianなら aptitude install pdfsam でサクっとインストールできます。


サーバー・ネットワーク

AからCへSSHで接続したいけど、Bを経由しないといけない場合のSSHの接続の仕方。

$ ssh -t -L 2223:localhost:2222 USER_B@ADDRESS_B ssh -t -L 2222:localhost:22 USER_C@ADDRESS_C 

家の中はmt-daapdで音楽を飛ばしているけど、外からでも聞けないかなと思っ てググッてみたら、単純にポートフォワードしてあげるとよいそうな。

ということで、こんな感じでSSHをバックグラウンド動かして、bansheeなどプ レイヤーのほうでlocalhost:3689を追加してあげると聞けた。

$ ssh -Nf -L 3689:localhost:3689 (ユーザー名)@daapd.example.com

ロリポップのサイトをいじることになってlftpやcurlftpsで接続しようとして も、なぜか撥ねられる。ロリポップの設定を見ても何も書いてないし、

どうしたもんかと思えば、通常のftpなのにTLSを要求しているらしい。

ということでcurlftpfsでマウントするならこんな感じにする。

$ curlftpfs -o tlsv1,user=(ユーザー名) (FTPサーバー) マウントディレクトリ/

lftpの場合はこう。

lftp :~> set ftp:ssl-allow off

バックアップと取る時にrsyncを使うけれど、使い方を忘れるのでメモ。 基本はこの形

rsync -auvvz src/ dest/
a ファイル情報を保つ
u 新しければ更新しない
vv vを重ねてより冗長表示にする
z 圧縮をかける。圧縮はなんでも効果があるわけではないので、ソースによって見極める

試すときには -n / –dry-run オプション。 リスト一覧を取るには –list-only オプション。

rsyncはソースディレクトリの最後にスラッシュがつくかつかないかで挙動が変わる。

考え方としては、 スラッシュがあるとき「rsync -auvvz src/ dest/」は、「cp src/* dest/」、 スラッシュがないとき「rsync -auvvz src dest/」は、「cp src/ dest/」 というふうに考える。

ローカルでコピーをする場合は、-W/–whole-fileオプションをつける。 (ローカルではdelta-xfer algorithmを無効にしてコピーするとよいらしい)

大きなファイルを扱う場合は、隠しファイルを作らずファイルを直接書き換える –inplace オプションをつける。

xhostの接続許可を出すとき「めんどくさいからxhost +で全開でいいやー」と か、ちょっと気を使う人なら「xhost +localhost」みたいな感じにしますが、 ユーザー限定で使えますよ、ということでこんな感じにするとよいです。

$ xhost +SI:localuser:<user name>

ssh-copy-id という、SSHの公開鍵をリモートマシンにコピーして ~/.ssh/authorized_keyに設定してくれる便利コマンドがありますが、ポート番 号を変更している場合は下のようにするとよいです。

$ ssh-copy-id '-p 2222 -i ~/.ssh/vbox.pub debian@localhost'

wgetで

$ wget -S --spider <URI>

なんてすると何もダウンロードせずサーバーレスポンスヘッダだけ返してくれます。

$ wget -S --spider http://josm.openstreetmap.de/josm-latest.jar
スパイダーモードが有効です。リモートファイルが存在してるか確認します。
--2011-02-18 11:17:08--  http://josm.openstreetmap.de/josm-latest.jar
josm.openstreetmap.de をDNSに問いあわせています... 85.214.112.59, 2a01:238:4000:0:21:6879:9ac1:9e7e
josm.openstreetmap.de|85.214.112.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
  HTTP/1.1 200 OK
  Date: Fri, 18 Feb 2011 02:17:08 GMT
  Server: Apache/2.2.14 (Ubuntu)
  Last-Modified: Wed, 16 Feb 2011 02:31:45 GMT
  ETag: "78800b-6551cf-49c5d14ff2640"
  Accept-Ranges: bytes
  Content-Length: 6640079
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: application/java-archive
長さ: 6640079 (6.3M) [application/java-archive]
リモートファイルが存在します。

シェルスクリプトで簡単に更新情報を調べることができますね。

Wgetを使ってシェルスクリプトで更新情報を調べるスクリプトを書くときの注 意としては、wgetはメッセージを標準出力ではなくて```標準エラー出力```に メッセージを出しているので、普通にパイプをつないでgrepなどは使えません。

$ wget -S --spider <URI> 2>&1 | grep Last-Modified

みたいなかんじに書きます。

curlでも調べることができるそうです。

$ curl -I <URI>

こんな感じ。

$ curl -s -I http://josm.openstreetmap.de/josm-latest.jar
HTTP/1.1 200 OK
Date: Mon, 25 Jul 2011 01:17:16 GMT
Server: Apache/2.2.14 (Ubuntu)
Content-Length: 6411527
Last-Modified: Wed, 21 Aug 2011 01:31:36 GMT
Content-Type: application/x-jar

こっちは標準出力にメッセージが出すので素直にgrepできるのですが、パイプ でつなぐとなぜかヘッダ以外のメッセージを出してしまうので、トラブルを防 ぐため明示的に「-s(–silent)」オプションをつけてメッセージを抑えるとい いかもしれません。

  • サイレントオプション無し
$ curl -I http://josm.openstreetmap.de/josm-latest.jar | grep "200 OK"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0 6261k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
  • サイレントオプション有り
$ curl -s -I http://josm.openstreetmap.de/josm-latest.jar | grep "200 OK"
HTTP/1.1 200 OK

ファイル処理

unzipではなく7zipを使ってLANG=Cで展開してconvmvでファイル名を修復する。

$ LANG=C 7z x (SJIS_archive).zip
$ convmv -f sjis -t utf8 --notest (SJIS_archive_filename)

似たような構造のAディレクトリとBディレクトリにあるファイルを比較するにはdiff-qオプションをつけるとよい。

$ diff -qr a/ d/ (-qrとなってるのは再帰するため)

大きなファイルを分割するには split を使います。

$ split [オプション]... [入力ファイル [接頭語]]
オプション 意味
-l 分割する行数(テキストファイル)
-b 分割するバイト数 (K, M, G, T, P, E, Z, Y (1024ごと) or KB, MB, … (1000ごと))
-n 分割する数
-a 接尾語の文字数
-d 接尾語を数字にする

2Gごとに分割するならこんな感じ。

$ split -b 2G [分割したいファイル名] [分割ファイルの接頭語]

ファイルを10に分割して、接尾語を3桁の数字にするならこんな感じ。

$ split -n 10 -a 3 -d [分割したいファイル名] [分割ファイルの接頭語]

マルチコアCPUに対応したgzipに、pigzというのがあります。 これを使うと並列して圧縮を行うので、大きなファイルも早く圧縮できるはず。

debianでは apt-get install pigz でインストールできます。

使い方は

$ pigz -p (プロセス数) [FILE]

で、tarと組み合わせる場合はgzipの代わりにこんな感じ。

$ tar cvf - | pigz -p (プロセス数) > [FILE]

プロセスはCPUコア+2ぐらいが、ちょうどいいような気がします。

シェルスクリプト/プログラミング

シェルスクリプトを書く時、「while read (変数)」という形でファイルを読み込んで処理しますが、変数が一つの場合、これを省略することができます。 「省略するとどの変数を見ればいいのか?」という疑問がありますが、省略された場合に使われる「REPLY」という変数が用意されているので、これを使います。

REPLY
組み込みコマンド read に引き数が与えられなかったときに読み込まれた行が設定されます。

ハードウェア

HP Compaq 2230s/CT Notebook PCのマイクデバイスのレベル調整はDigitalでする。

内蔵マイクと外部マイクのレベル調整は、排他仕様なので外部マイクを差すと 外部マイクの調整に切り替わる。


開発

Linux from scratchからコピペ。

mount -v --bind /dev $LFS/dev
 
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys

ddとかで切り出したrawイメージファイルのサイズを大きくするには、空ファイ ルを作ってcatでくっつけてやればいいみたい。

元のRawイメージファイルをhoge.imgとして

$ dd if=/dev/zero of=temp.img bs=1M count=2048
$ cat hoge.img temp.img > fuga.img

あとは出来上がったイメージファイルに対してpartedなどでパーティションサ イズを変更すればおk.

$ sudo /sbin/parted fuga.img
古い情報です。

今は「ファイルを開く」ダイアログにある、「エンコーディング」メニューから認識させたい文字コードを追加できます。

文字コードを自動認識する候補にSJISだとかEUC-JPだとかが入っていないので、ハナっから自動認識の対象になっていないそうな。 ということでgconfに日本語の設定を追加すると、日本語テキストの文字コードを自動認識していくれる。

$ gconftool-2 --set /apps/gedit-2/preferences/encodings/auto_detected --type string "UTF-8,SHIFT_JIS,EUC-JP,ISO-2022-JP,CURRENT,ISO-8859-15,UTF-16"

ハードディスクのUUIDを調べる

1. /dev/disk/by-uuid/を見る

$ ls -la /dev/disk/by-uuid/
合計 0
drwxr-xr-x 2 root root 120 2009-03-19 00:10 .
drwxr-xr-x 6 root root 120 2009-03-19 00:10 ..
lrwxrwxrwx 1 root root  10 2009-03-19 00:10 03855885-0780-4f75-a5bf-918fc7639121 -> ../../sda2
lrwxrwxrwx 1 root root  10 2009-03-19 00:10 2c345055-e89f-4494-9dcb-efd706336d2f -> ../../sda1
lrwxrwxrwx 1 root root  10 2009-03-19 00:10 348f0466-e0f5-4595-adab-78755050d249 -> ../../sda5
lrwxrwxrwx 1 root root  10 2009-03-19 00:10 daef5c4d-6d6a-4ecb-bacb-06ed5507a42c -> ../../sda6

2. vol_idコマンドを使う

# vol_id --export /dev/sda5
ID_FS_USAGE=other
ID_FS_TYPE=swap
ID_FS_VERSION=2
ID_FS_UUID=348f0466-e0f5-4595-adab-78755050d249
ID_FS_UUID_ENC=348f0466-e0f5-4595-adab-78755050d249
ID_FS_LABEL=swap
ID_FS_LABEL_ENC=swap
ID_FS_LABEL_SAFE=swap

~/.kde/share/apps/konqueror/servicemenus/にhoge.desktopのようなファイルを置く。

無線LANなどをNetwork Managerを使って自動的に接続するためには以下の条件が必要です。

  1. /etc/network/interfacesのネットワーク設定をdhcpもしくは設定しない。
  2. ユーザーをnetdevグループに追加する。

/usr/src/linux/include/sound/version.h に書いてあります。

gksuを使う

gconfの/apps/gksu/sudo-modeを設定する。

gconf-editorで変更するか、~.gconf/apps/gksu/%gconf.xmlに

<?xml version="1.0"?>
<gconf>
        <entry name="sudo-mode" type="bool" value="true"></entry> ←この行追加
</gconf>

と書いておく。

kdesuを使う

/etc/kde3/kdesurcか~/.kde/share/config/kdesurcに

[super-user-command]
super-user-command=sudo

と書いておく。

mltermのソースを取ってきて展開。 展開したディレクトリのdoc/termで

# tic mlterm.ti

としてterminfoを登録。

拡張子にだまされてたけど、いつのころからかinitrdの中身がイメージファイルからcpioで固めてgzipで圧縮したものに変わってたのでメモ。

展開

cpio -i -d -H newc -F initramfs_data.cpio --no-absolute-filenames

圧縮

#!/bin/sh
 
# Copyright 2006 Rob Landley <rob@landley.net> and TimeSys Corporation.
# Licensed under GPL version 2
 
if [ $# -ne 2 ]
then
  echo "usage: mkinitramfs directory imagename.cpio.gz"
  exit 1
fi
 
if [ -d "$1" ]
then
  echo "creating $2 from $1"
  (cd "$1"; find . | cpio -o -H newc | gzip) > "$2"
else
  echo "First argument must be a directory"
  exit 1
fi

光出力

ミキサーでIEC958 Outputをオンにする。

光入力

ミキサーで IEC958 In Select をオンにする。 モニターするにはIEC958 In Monitorをオンにする。

WanderlustからMozilla Thunderbirdに移行したのでメモ。

MHからmboxにするには 後藤大地さんが 変換スクリプトを作っておられるので、それを使います。

http://people.freebsd.org/~daichi/src/mh2thunderbird

とりあえずDebianではnmhを入れておけば使えます。 nmhを使うには最初にinstall-mhを実行しないとダメなんで実行しておきます。

$ sudo apt-get install nmh
$ /usr/bin/mh/install-mh

あとは

$ mh2thunderbird -o ~/.mozilla-thunderbird/fuga/Mail

てな感じで実行。

なぜかCannaのATOKキーバインドには、「ヴァ」行が登録されていないので登録する。

バイナリになってるローマ字かな変換テーブルをテキストに戻す。

$ dpromdic just.cbp > exapmle.txt

変換したテーブルにエディタでなんとか「ヴァ」行を追加してテーブルをバイナリに戻す。

$ mkromdic example.txt

.cannaのテーブルを指定してる所を、作ったローマ字かな変換テーブルのファイル名に変更する。

  ;(setq romkana-table "just.cbp")
  (setq romkana-table "example.cbp")

参考: Backup-mini-HOWTO, Regular Expression(正規表現), JM Project:grep(オプション)

D=`date -I` ; find /home/ | grep -v hogehoge | afio -ovZ -s 630m -L ./$D.log ./$D.afz 2>&1 | tee ./$D.list
sudo bash -c "find home/ | afio -ovZ -L /home/note/note-boot.log /home/note/note-boot.afz 2>&1 | tee /home/note/note-boot.list"

ちなみに書き戻すときは

afio -ivZ (ファイル名)