ほとんどLinuxしか触ってません
 
 *全般 [#n21143cf]
 -[[UNIX FAQ LIST:http://www.nurs.or.jp/~asada/FAQ/UNIX/UNIX.FAQ.html]]
 -[[FileSystem選択法:http://www.dd.iij4u.or.jp/~okuyamak/Documents/2004-08-29-Fedora-Study/FileSystem/FileSystem-What.pdf]]
 
 *C言語でファイル検索 [#j61fcea2]
 WindowsならFindFirstFileというAPIがある中で、Linux環境ではどうすればよいのかわからなかった。
 globやopendirなんかで等価な作業ができそうだ。
 (http://pc.2ch.net/linux/kako/1037/10377/1037793960.html の549さん)
 
 *grep [#u27cb40a]
  grep -v
 は、マッチしないものを列挙する。
 
 *GRUB [#ra986ce7]
 LILOよりmodernなブートローダ。USBキーボードでGRUBのメニューを操作したかった時、BIOSの"USB Legacy Device Support"みたいなやつをEnableしたらできた。
 
 *ファイルシステム [#udeba58c]
 色々ある。使ってきたディストリビューションでは、ext2 ==> ext3 ==> reiser と変遷していった。結局どれがいいんだろう?
 現在マウントされてるファイルシステムは
  df -T
 でわかる。
 
 *cron [#qfbab6a9]
 自動実行のためのプログラム。設定ファイルは
  crontab -e
 として編集できる。5分おきにfetchmailしたい場合は下記みたいにする。
  MAILTO=""
  */5 * * * * fetchmail
 
 
 *SSH [#wb8407d2]
 -[[ぴろ日記:http://www.banana-fish.com/~piro/20040609.html#p06]]
 -[[ssh scp sftp の正しい自動実行方法:http://sonic64.com/2004-11-17.html]]
 
 *文字コードと改行文字 [#def030b2]
 
 OSが違えば環境も変わるのは当然だが、中でも文字コードや改行文字の相違が鬱陶しい。原則以下の様になっている。
 |OS  | 文字コード | 改行文字 |
 |DOS | Shift-JIS  | CR+LF    |
 |Mac | (知らない) | CR       |
 |UNIX| EUC-JP     | LF       |
 
 この相違により、異なるOSで作成されたファイルではゴミが見えたり改行されなかったりする。
 
 文字コードは段々とUnicodeにシフトしているのだろうが、詳しくは知らない。
 
 CR(Carriage Return)とLF(Line Feed)の表現方法も幾つかあり、これにも混乱した。
 
 |   | 十進  |  十六進 | | |
 |CR | 13 | 0D | ^M | \r |
 |LF | 10 | 0A | ^J | \n |
 
 **変換プログラム [#f4d6d208]
 
 Webブラウザだとこれらの違いを結構吸収してくれて、閲覧に限れば変換の必要性は薄そう。だけどやっぱり度々変換の必要性に迫られる。
 
 **iconv [#g943527a]
 UNIX界隈では標準の変換プログラムなのだそうだ。以下の感じで使う。
  $ iconv -f SHIFT-JIS -t EUC-JP shiftjis.txt > euc.txt
 文字コードのリストは
  $ iconv -l
 で得られた(cygwin)。
 
 とある事からUnicodeの変換がしたくなった。UTF-16とUTF-16{BE,LE}というのがあって、まあどうせ後者はエンディアンの違いを明示するもので、前者にしておけば(目的のアプリが)自動判別してくれるはずとか思ってやってみたがどうもうまくいかない。そんな時、以下のページで勉強した。
 -http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
 
 **nkf [#q4bce9e4]
 
 Network Kanji code conversion Filter なのだそうだ。日本語用で昔から非常によく使われていたみたい。最近のバージョンではUTF-8にも対応だとか。ソースを入手し、何も考えずmakeしたらバイナリができた(cygwin)。
 -[[nkfのページ:http://www.ie.u-ryukyu.ac.jp/~kono/nkf/]]
 
  cat sjis.txt | nkf -e > euc.txt
 などとして変換できる。詳しくは
  nkf --help
 で。
 
 **qkc [#k476db70]
 
 Ultra Highspeed Kanji Code Converter なのだそうだ。
 -[[QKC Home Page:http://hp.vector.co.jp/authors/VA000501/]]
 
 nkfと違い、ファイルを書換えることを念頭においている(もちろんフィルタとして動作させることも可能)。例えば
  qkc -e readme.txt
 したらreadme.txtはEUCになる。詳しくは
  qkc -H
 で。
 
 *容量 [#n4740329]
  du ./* -chs
 でOK。
  -c ... produce a grand total
  -h ... print sizes in human readable format (e.g., 1K 234M 2G)
  -s ... display only a total for each argument
 
 *w3m [#n4520681]
 HTMLを解釈できるページャ。つまりテキストベースのWWWブラウザ。sshでのログイン先からちょこっとWebを見たい時に活躍。
 
 **インストール [#v35d4455]
 まずは http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/ からGC Libraryを入手しこれをセットアップする。
  ./configure --prefix=/home/akiyama/hiroitoh
  make
  make check
  make install
 
 で次にw3mのインストールをするわけだが、
  checking size of long long... configure: error: cannot compute sizeof (long long), 77
 なるエラー回避のため、あらかじめLD_LIBRARY_PATHを設定しておく。
  setenv LD_LIBRARY_PATH /home/akiyama/hiroitoh/usr/lib
  ./configure --prefix=/home/akiyama/hiroitoh/usr --with-gc=/home/akiyama/hiroitoh/usr
  make
  make install
 
 **キーバインド [#if180f41]
 カーソル動作、検索はEmacs、viのものを大体踏襲。
 
 ***ブラウザ操作 [#qebddec3]
 | U | URL指定 |
 | B | 戻る |
 | R | 再読み込み |
 | u | カーソル下のリンク先URL表示 |
 | c | 現在のURL表示 |
 | S | 現在のバッファ保存 |
 | a | リンク先保存 |
 | v | ソース表示 |
 | ESC b | ブックマークを開く |
 | ESC a | ブックマークに追加 |
 
 ***画面操作 [#ncb09898]
 |SPC| PageDown |
 | b | PageUp |
 | J | 一行下 |
 | K | 一行上 |
 | G | 一番下 |
 | g | 一番上 |
 |> |画面を右にずらす |
 |< |画面を左にずらす |
 |. |画面を1文字右にずらす |
 |, |画面を1文字左にずらす |
 
 **エディタとtextarea [#xdd6e7bb]
 HTMLフォームの一行テキストはそのまま入力できるが、複数行テキスト(textarea)の編集には外部エディタを指定する必要がある。起動中に'o'キーでオプションを表示させ、そこからその設定が変えられる。
 
 **LINK [#ye86cd40]
 -[[公式:http://w3m.sourceforge.net/index.ja.html]]
 -[[公式よりマニュアル:http://w3m.sourceforge.net/MANUAL]]
 
 *CD/DVD関連 [#o2d5d755]
 **CD/DVDの作成 [#id53a2d3]
 http://blogs.dion.ne.jp/terasan/archives/258368.html
 
 が参考になった。
 
 
 **イメージのマウント [#na5d06d3]
 CDイメージ(iso)をマウントするには
  mount -t iso9660 /tmp/disk1.iso -o loop /mnt
 とする。
 
 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/500cdrom2iso.html
 
 *ctags [#ccb96889]
 ソースコードを解釈して「しおり」を作ってくれる。エディタ上で関数や変数を見て「これ、どういう宣言してたっけ?」と思うことはよくあるが、コマンド一発で即座に該当箇所にジャンプしてくれる優れ物。
  $ ctags -R
 でタグ(しおり)生成。vimならその後
  ctrl-] でジャンプ
  ctrl-T で戻る
 である。
 
 http://pcmania.jp/~moraz/tools/ctags.html
 
 *rsync [#s7c97d03]
 ディレクトリの同期用プログラムで、リモート・ローカルを問わずバックアップに威力を発揮する。
 **link [#t22dbedd]
 -[[rsync (+ ssh) で簡単バックアップ:http://www.double-h.com/linux/tipsmemo/others/general01.html]]
 -[[linuxwiki@ぱ研 - rsyncでお手軽バックアップ:http://www.paken.org/linuxwiki/index.php?rsync%A4%C7%A4%AA%BC%EA%B7%DA%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7]]
 など多数
 **実例 [#r8152868]
 私の常用コマンドは以下。オプションの意味は上記linkやman参照。
  $ pwd
  /cygdrive/e/hiroitoh
  $ rsync -avz --delete ./data /cygdrive/h
 eはHOMEがあるドライブで、hは外付けバックアップ用HDD
 
 *find [#yf16eeaa]
 **link [#td7738b2]
 -[[ちょっとだけカッコよく find(1) を使う:http://www.sixnine.net/roadside/find.html]]
 
 **実例 [#ka8f687d]
 カレントディレクトリ以下でhogeなるファイル・ディレクトリを検索
  find ./ -name hoge
 対象を、ファイルまたはディレクトリに限る
  find ./ -name hoge -type d   # directory
  find ./ -name hoge -type f   # file
 大文字小文字の区別をなくすには、name を iname とする。
 
 *カーネルモジュール [#fc67f7e7]
 
 USBやSCSIなどが使えるか否かというのは、その機能がカーネルでサポートされているかに因ります。しかし、何でもかんでも機能をカーネルに盛り込んでしまうとカーネルが誇大化してしまい、何かと不都合です。そのため、必要な機能を使うためのコードというのをカーネルの外部に用意しておき、必要なときに読み込んで使用するといった方式が開発されました。この外部のコードのことをモジュールと言います。この機能を有効にする(動的なモジュール呼び出しを有効にする)ためには、カーネルの
 
  Enable Loadable module support
 
 というパラメータを有効にしておく必要があります。又、モジュールに関するコマンドは以下のようになっています。
 
  insmod       モジュールのインストール
  rmmod        モジュールを除く
  depmod -a    モジュール依存関係のアップデートを行う
  modprobe     依存関係を考慮した上でモジュールのインストールをする
  lsmod        現在のモジュールを見る
 
 設定は、/etc/modules.conf に記されていますが、これを変更したら depmod -a としてアップデートを行う必要があります。
 
 *f2c [#s0816c4e]
 FORTRANは数値計算の分野では現役の言語ですが、コンピュータ言語そのものとしては過去のものという雰囲気があるようです(FORTRANの規格は改良され続けていますが)。そんなFORTRANのソースファイルをCのものに変換するのがf2cというプログラム(ライブラリ)です。まず[[こちら:ftp://netlib.bell-labs.com/netlib/f2c.tar]]からモノを入手し、バラします。解凍後のファイルも余さず解凍します。
 
  cd f2c
  gzip -d *.gz
  cd src
  gzip -d *.gz
  cd ..
  unzip libf2c.zip
 
 そしてコンパイルします。
 
  cd src
  make xsumr.out
  make f2c
  cd ../libf2c
  make -f makefile.u
 
 そしてインストール。f2c.tarを解凍したディレクトリに移って、
 
  cp src/f2c /usr/bin
  cp libf2c/libf2c.a /usr/lib
  cp f2c.h /usr/include
  cp f2c.1 /usr/share/man/man1
  ranlib /usr/lib/libf2c.a
 
 使い方は以下のようになります。
 
  f2c foo.f
  cc foo.c -lf2c -o foo
 
 *lm_sensors [#w550dc81]
 例えばCPU温度やファン回転数といった情報をモニタすることができるのが [[lm_sensors:http://secure.netroedge.com/~lm78/]]というソフトです。バージョン2.8.1を使用して EPIA ME600 での動作に成功しました。
 **インストール [#a472af1c]
 ソースを入手し、注意事項を良く読みます。まずはi2cのインストールです。
 
  # make all
  # make install    <-- モジュールとヘッダがインストールされます
  # depmod -a
 
 次にlm_sensorsのインストールにとりかかります。
 
  # make
  # make install
  # depmod -a
  # ldconfig   <-- /etc/ld.so.confに/usr/local/libの行を加えてから
  # prog/mkdev/mkdev.sh
  # prog/detect/sensors-detect
 
 私の環境ではいずれのパッケージもMakefileなどの修正は必要ありませんでした。sensors-detectは対話形式の初期設定ですが、何も考えずに言われるがままにEnterを押し続けたら動作しました。動作には幾つかのモジュールが必要で、その内容はsensors-detectの最後に示されます。Debianの場合、これらを
 
  /etc/modutils/aliases
  /etc/modules
 
 に適宜追加し、update-moduleを実行すれば完了です。
 
 **参考文献 [#y6c07f55]
 
 -[[Linuxでマザーボードの温度とか監視:http://www.oag.co.jp/~kuma/junk/unix/sensors.html]]
 -[[lm_sensorsとMRTGによるマザーボードの温度監視:http://takasato.net/pc/lm_sensors/index-ja.html]]
 -[[PCの温度、電圧を測定しグラフ表示する:http://www.yk.rim.or.jp/~kawagisi/RRDstats.html]]
 -[[CPUファンの回転数や温度、電圧などを監視したい〜Lm_sensor〜(ITMEDIA) :http://www.itmedia.co.jp/help/tips/linux/l0393.html]]
 
 *Windows パーティションのマウント [#effa08d5]
 デュアルブート環境などは、Windowsパーティションのディスクの内容も見られたほうが何かと便利です。以下にその方法を簡単に説明します。SCSIの場合はよく分かりません。
 Linuxにおいては、諸々のデバイスをファイルとして扱いますが、IDEハードディスクとて例外ではありません。/dev ディレクトリに、 hda2 や hdb1 という名前で格納されていると思います。最初の h という文字は「ハードディスク」の略だと思います。2文字目は、以下の規則に従います。
 
 -a.....プライマリのマスター
 -b.....プライマリのスレーブ
 -c.....セカンダリのマスター
 -d.....セカンダリのスレーブ 
 
 最後の数字はパーティションの通し番号です。どのファイルがどこのディスクのどこのパーティションに属するか調べるためには
 
  # fdisk -l
 
 を実行します。容量とフォーマットの形式が一覧で出てくるので大体は理解できるはずです。対象のファイル名が分かったら、次にマウントポイントを作ります。要はどこにマウントするのかと言うことで、適当にディレクトリを作ってやればいいわけです。その後、コマンドを実行します。
 
  # mount -t vfat /dev/hda2 /mnt/win
 
 ここでは、「FAT32でフォーマットされた(vfat)」、「プライマリマスターの番号2のパーティション(/dev/hda2)」を、「/mnt/win」に、マウントすることを指示しています。 vfat という指定が、FAT32のみなのか、FAT16などでも有効なのかは知りませんが、とりあえずFAT32は私の環境でマウントできました。
 Windows2000 など、NTFSでフォーマットされているのならば以下のようなコマンドにします。
 
  # mount -t ntfs /dev/hda2 /mnt/win
 
 ただし、NTFSへの書き込みは危険らしく、事実上読み込みしかできないそうです。
 これらのコマンドをいちいち実行するのが面倒ならば、
 
  /etc/fstab
 
 を編集することによって、起動時に自動的にマウントすることが可能となります。エディタで開いて
 
  /dev/hda2     /mnt/win     vfat     defaults   0 0
 
 などという行を書き込めば有効になります。場所は、ファイルの最後尾の行にした方がいいでしょう。末尾に現れる数字は以下のような意味を表します。
 
 -1番目の数字が0.....dump(バックアップコマンド)実行時にバックアップを行わない
 -1番目の数字が1.....dump(バックアップコマンド)実行時にバックアップを行う 
 
 -2番目の数字が0.....fsck(ファイルシステムをチェックするコマンド)を起動時に行わない
 -2番目の数字が1.....fsck(ファイルシステムをチェックするコマンド)を起動時にルートのパーティションに対して実行する
 -2番目の数字が2.....fsck(ファイルシステムをチェックするコマンド)を起動時にその他のパーティションに対して実行する 
 
 書いておいてなんですが、2番目の数字のオプションは私自身よく分かっていません。しかし私が/etc/fstabに
 
  /dev/hda2     /mnt/win     vfat     defaults   1 2
 
 と記述したところ、起動時に「このファイルシステムはまだALPHAバージョンだからどーのこーの」と怒られたので、
 
  /dev/hda2     /mnt/win     vfat     defaults   0 0
 
 としてオプションをはずしてしまいました(これだと怒られずにすみました)。これらの数字の前にある"defaults"というのは、マウントのためのパラメータです。これには以下のようなものがあります。
 
 -rw......読み書きを許可
 -exec.....実行を許可
 -ro.....読み込み専用
 -auto.....mount -a コマンドで自動的にマウントする
 -noauto.....自動的にマウントしない
 -sw.....スワップを有効にする
 -user.....一般ユーザーのマウントを許可する
 
 "defaults"というのは、上のパラメータのうち"rw"と"exec"と"auto"を有効にするものです。
 
 
 *Xで2つのマウスを使う [#ld638301]
 USBマウスの他にIBM のトラックポイント付のキーボード(space saver II)を使用したいと思った時には、以下のようにしました。以下をを /etc/X11/XF86Config に書き込みます。
 
  Section "InputDevice"
       Identifier     "Mouse1"  <------------もとのMouse0と競合しないようにする
       Driver         "mouse"
       Option         "Device" "/dev/psaux"
       Option         "Protocol" "PS/2"
       Option         "EmulateWheel" "true"
       Option         "EmulateWheelButton" "2"
       Option         "Inertia" "50"
  EndSection
 
 その後、ServerLayoutセクションに、
 
  InputDevice   "Mouse1" "AlwaysCore"
 
 という行を書き込むと、Xの再起動後にはトラックポイントでマウスカーソルが動くようになっていました。青ボタンによるスクロールもちゃんと機能します。
 
 
 
 *その他大勢 [#ob0ca651]
 -バイナリダンプを見るのはxxd
 -watchで、コマンドの出力結果の時間推移を眺められる
 -atを使えば指定時間にコマンドが実行できる
 -ls -lt で日付順
 -ビープが耳障りに感じたら[[ブザーの鳴らないLinuxマシン(Beepオフ):http://homepage2.nifty.com/ssfu/others/computer/linux_silence.html]]を参考に設定
 -キーボードで、CTRLとCAPSの位置を入れ替えたいと思ったら、[[コンソールで[Ctrl]と[Caps Lock]キーを入れ替えるには:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/227conctlcaps.html]]と[[X Window Systemで[Ctrl]と[Caps Lock]キーを入れ替えるには:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/226xctlcaps.html]]という記事を読む。
 -Xで、画面の位置の調整にはxvidtune(xdvituneではない)を使う。微調整の後、"show"ボタンの結果を設定ファイルのMonitorセクションに書き込む。
 -"less *"として複数ファイルの閲覧ができる。次ファイルを見るには n を、前のファイルを見るには p を押す。
 -tcshの設定は[[野沢菜:http://yutaka.prosou.nu/]]を参考にした
 -(Debian) calendarコマンドで、デフォルトでは化ける項目があった。/usr/share/calendar/calendar.all の中の "#include <calendar.russian>"なる項目をコメントアウトしたら正常になった。
 -(Debian) ログイン画面をいじるには /etc/X11/default-display-manager を編集する。
 
 
 
 
 
 *多分もう古いこと [#e02d5c12]
 
 **LILOの設定 [#jf0ba0ec]
 マルチブートをするにせよ、しないにせよ、LILOはフロッピーに入れると何かと便利と思っています。しかし、 RedHat 7.2ではインストーラがフロッピーにブートローダをインストールしてくれなさそうだったので、ブートローダはインストールせずにブートディスクで起動し、後に手動でLILOをフロッピーに書き込みました。rootになって、
 
  /etc/lilo.conf
 
 に以下のように書き込みます。
 
  prompt
  timeout=50
  default=linux
  boot=/dev/fd0
  map=/boot/map
  install=/boot/boot.b
  message=/boot/message
  linear
  
  image=/boot/vmlinuz-2.4.7-10
       label=linux
       initrd=boot/initrd-2.4.7-10.img
       read-only
       root=/dev/hdb1   <-----------インストールした場所
       append="hdc=ide-scsi"
 
 保存した後、空フロッピーを入れてから
 
  /sbin/lilo
 
 を実行すれば、次回からこのフロッピーでLILOが立ち上がります。
 
 **プリンタの設定 (RedHat 7.3) [#o27beacd]
 通常プリンタの設定は、/etc/printcap を編集することによって行われますが、RedHat 7.3 においては手で編集してはいけないようですので、設定ツールを用いて行います。起動は以下のようにします。
 
  # printconf-gui (Xの場合)
  # printconf-tui (コンソールの場合)
 
 設定は分かりやすいです。Phaser などのプリンタを Ethernet で直接繋いでいる場合は"JetDirect"を選択します。私のおかれている環境では PostScript プリンタを使用しているので印刷は比較的楽です。そうでない場合は GhostScript などを駆使して印刷する必要がありそうです。以下は PostScript プリンタの下での話です。印刷方法ですが、PSファイルの場合は
 
  lpr -P (printer) hoge.ps
 
 とします。-P オプションはプリンタ名を指定するものです。ただのtextファイルを印刷したい場合は、 textファイルをPSファイルに変換するスクリプトをlprにパイプで送ってやります。
 
  a2ps hoge.txt | lpr -P (printer)
 
 DVIファイルをPSに変換するdvipsでも同様にできます。ただ、私の環境ではプリンタを設定してからa2psやdvipsの標準出力先がプリンタになってしまったようなので、印刷したくない場合は-oオプションで出力先を指定してやる必要があります。又、textファイルを印刷したいのなら、 OperaやNetscapeなどのメニューを用いて印刷した方が簡単かも知れません。両面印刷については[[奥村氏の解説:http://oku.edu.mie-u.ac.jp/~okumura/linux/ps.html]]に解りやすく述べられています。ところで、どなたかAcrobatから両面印刷する方法をご存じでないでしょうか?