ほとんど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]]

*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

*改行コード [#ye79806a]
OSが違えば環境も変わるのは当然ですが、とりわけややこしいのが改行コードの相違です。まとめると以下の様になります。
|OS  | 改行コード |
|DOS | CR+LF      |
|Mac | CR         |
|UNIX| LF         |

この相違により、異なるOSで作成されたファイルでは何かゴミが見えたり改行されなかったりします。 CR(Carriage Return)とLF(Line Feed)の表現方法も幾つかあって、これも混乱の要因となります。

|   | 十進  |  十六進 | | |
|CR | 13 | 0D | ^M | \r |
|LF | 10 | 0A | ^J | \n |

*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から両面印刷する方法をご存じでないでしょうか?