ほとんどLinuxしか触ってません
カレントディレクトリ以下でhogeなるファイル・ディレクトリを検索
find ./ -name hoge
対象を、ファイルまたはディレクトリに限る
find ./ -name hoge -type d # directory find ./ -name hoge -type f # file
大文字小文字の区別をなくすには、name を iname とする。
USBやSCSIなどが使えるか否かというのは、その機能がカーネルでサポートされているかに因ります。しかし、何でもかんでも機能をカーネルに盛り込んでしまうとカーネルが誇大化してしまい、何かと不都合です。そのため、必要な機能を使うためのコードというのをカーネルの外部に用意しておき、必要なときに読み込んで使用するといった方式が開発されました。この外部のコードのことをモジュールと言います。この機能を有効にする(動的なモジュール呼び出しを有効にする)ためには、カーネルの
Enable Loadable module support
というパラメータを有効にしておく必要があります。又、モジュールに関するコマンドは以下のようになっています。
insmod モジュールのインストール rmmod モジュールを除く depmod -a モジュール依存関係のアップデートを行う modprobe 依存関係を考慮した上でモジュールのインストールをする lsmod 現在のモジュールを見る
設定は、/etc/modules.conf に記されていますが、これを変更したら depmod -a としてアップデートを行う必要があります。
FORTRANは数値計算の分野では現役の言語ですが、コンピュータ言語そのものとしては過去のものという雰囲気があるようです(FORTRANの規格は改良され続けていますが)。そんなFORTRANのソースファイルをCのものに変換するのがf2cというプログラム(ライブラリ)です。まずこちらからモノを入手し、バラします。解凍後のファイルも余さず解凍します。
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
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 |
例えばCPU温度やファン回転数といった情報をモニタすることができるのが lm_sensorsというソフトです。バージョン2.8.1を使用して EPIA ME600 での動作に成功しました。
ソースを入手し、注意事項を良く読みます。まずは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を実行すれば完了です。
デュアルブート環境などは、Windowsパーティションのディスクの内容も見られたほうが何かと便利です。以下にその方法を簡単に説明します。SCSIの場合はよく分かりません。 Linuxにおいては、諸々のデバイスをファイルとして扱いますが、IDEハードディスクとて例外ではありません。/dev ディレクトリに、 hda2 や hdb1 という名前で格納されていると思います。最初の h という文字は「ハードディスク」の略だと思います。2文字目は、以下の規則に従います。
最後の数字はパーティションの通し番号です。どのファイルがどこのディスクのどこのパーティションに属するか調べるためには
# 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
などという行を書き込めば有効になります。場所は、ファイルの最後尾の行にした方がいいでしょう。末尾に現れる数字は以下のような意味を表します。
書いておいてなんですが、2番目の数字のオプションは私自身よく分かっていません。しかし私が/etc/fstabに
/dev/hda2 /mnt/win vfat defaults 1 2
と記述したところ、起動時に「このファイルシステムはまだALPHAバージョンだからどーのこーの」と怒られたので、
/dev/hda2 /mnt/win vfat defaults 0 0
としてオプションをはずしてしまいました(これだと怒られずにすみました)。これらの数字の前にある"defaults"というのは、マウントのためのパラメータです。これには以下のようなものがあります。
"defaults"というのは、上のパラメータのうち"rw"と"exec"と"auto"を有効にするものです。
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の再起動後にはトラックポイントでマウスカーソルが動くようになっていました。青ボタンによるスクロールもちゃんと機能します。
マルチブートをするにせよ、しないにせよ、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が立ち上がります。
通常プリンタの設定は、/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などのメニューを用いて印刷した方が簡単かも知れません。両面印刷については奥村氏の解説に解りやすく述べられています。ところで、どなたかAcrobatから両面印刷する方法をご存じでないでしょうか?