Linuxチップス集
 内容がまだまだ少ないですが,思い付くままに順次書き足していこうと思っています。
 なお,特に断りのない限りSlackware 3.1.0+JE0.9.8aのLinux環境を基に記述しています。REDHATや他のディストリビューションの場合には一部内容が合わないかも知れないことをお断りしておきます。

 Linux(Unix)バリバリ使いの人は読み飛ばして下さい。




  1. catでバイナリファイルを表示させたら画面がおかしくなった。元に戻す方法は?

     次のようにコマンド入力すれば画面は正常に戻ります。
      echo ^v^[c
      ^vはctl+vで,^[はESCです。
    私の場合には,これをclsという名前のシェルスクリプトにしています。



  2. cpでDOSやWin95のように日付や属性を保存したままコピーする方法は?

     cp-pのオプションをつければ,ファイルの属性もコピーされます。



  3. シンボリックリンクのファイルをリンクファイルとしてコピーしたい。

     普通にcpでシンボリックリンクファイルをコピーすると,リンク元のファイルの内容がコピーされてしまいます。こんな時には,-dオプションをつけます。これで,リンクファイルはリンクファイルとしてコピーされます。



  4. cpでファイルをコピーする時,上書の確認を表示させる方法は?

     -iオプションをつければ,上書の確認を表示できます。



  5. rmでファイルを削除する時,削除の確認を表示させる方法は?

     -iオプションをつければ,削除してもよいかどうか確認を表示できます。常に確認を表示する場合には,ホームディレクトリの.profileの最後に次の一行を追加しておきます。
        alias rm='/bin/rm -i'
    なお,rm *などで一度にたくさんのファイルを削除したい時には,\rm *とコマンド入力すれば確認の表示なしに削除できます。



  6. rmやcpでサブディレクトリも含めてディレクトリを丸ごと削除したりコピーする方法は?

     -rオプションをつければ,ディレクトリを,その配下にあるサブディレクトリも含めて丸ごと削除したり,コピーできます。



  7. DOSのDISKCOPY A: B:のようにフロッピーディスクをディスクコピーする方法は?

    FDドライブが2基装備されているならば
       dd if=/dev/fd0 of=/dev/fd1
    でディスクコピーできます。
    FDドライブが1基しかない場合には,
       dd if=/dev/fd0 of=fdtmp
    として,次に新しいディスクをセットし,
       dd if=fdtmp of=/dev/fd0
    でディスクコピーできます。
    このddコマンドによるディスクコピーでは,Linux,DOS,Win95OSの種類を問わず一度物理フォーマットされたディスクならコピーできます。



  8. DOSやWin95で作成したフロッピーディスクのファイルの読み書き方法は?

     ファイルシステムとしてフロッピーディスクをmountする方法とディスクアクセスツールであるmtoolsを使う2つの方法があります。
    ファイルシステムとしてmountする方法
     mkdir /dosaなどとして,マウントするディレクトリを作成しておきます。
     ・DOSで作成したフロッピーディスクなら,
        mount -t msdos /dev/fd0 /dosa
     ・Win95で作成したフロッピーディスクなら,
        mount -t vfat /dev/fd0 /dosa
     でマウントし,後は/dosaディレクトリにアクセスします。
     フロッピーディスクを抜く時には,umount /dosaでアンマウントしてください。

     DOS,Win95に関係なくどちらの方法でマウントしても構いませんが,-t msdos でマウントした場合には長いファイル名が使えず,-t vfat でマウントした場合には長いファイル名が使えるというだけの違いです。

    mtoolsを使う方法
    ・ファイルを書き込む場合,mcopy file a:で,Linux上のfileという名前のファイルがフロッピーディスクに書き込めます。
    ・ファイルを読み込む場合,mcopy a:file .で,フロッピーディスク上のfileという名前のファイルがLinuxのカレントディレクトリにコピーされます。
     mtoolsでは長いファイル名も使えます。

     mtoolsには,その他便利なコマンドがたくさんあります。一度man mtoolsmanページを読んで見ることをお薦めします。



  9. Linuxで使っていたboot diskなどのフロッピーディスクをDOSやWin95で再度使えるようにする方法は?

     DOSWin95でディスクフォーマットすればいいのですが,物理フォーマットされていても再度物理フォーマットされるため時間がかかるのが難点です。
     Linuxならmtoolsを使って,mformat a:とすれば簡単にフォーマットできます。ただし,物理フォーマットはできません。DOSFATを書き込むだけですので短時間にフォーマットできます。
     購入したばかりの一度もフォーマットされていないディスクをLinuxで物理フォーマットから行うには,
      fdformat /dev/fd0H1440
      mformat a:
    となります。



  10. tarでカレントディレクトリ以外のディレクトリにファイルを展開したいのだが?

     -Cオプションを使うとカレントディレクトリ以外のディレクトリに展開できます。
     展開する元のファイルがディレクトリ階層の深いディレクトリにある場合に便利なオプションです。
     ダウンロードしたLinuxのカーネルソースが/root/download/pub/linux/kernel/ディレクトリにlinux-2.0.30.tgzファイルとしてあった場合,その展開は,
      cd /root/download/pub/linux/kernel
      tar xvzf linux-2.0.30.tgz -C /usr/src
    とすれば,/usr/srcディレクトリに展開できます。

     この場合,-Cオプションを使わなければ,
      cd /usr/src
      tar xvzf /root/download/pub/linux/kernel/linux-2.0.30.tgz
    となります。



  11. 1台のハードディスクでWin95とLinuxをインストールして使用していた。今回ハードディスクをLinux専用で増設した。増設したハードディスクにLinuxを再インストールしないで今のLinuxを丸ごとコピーして使用したいのだがその方法は?

     今まで使っていたハードディスクを/dev/hdaと仮定します。さらに, /dev/hda1Win95/dev/hda2Linux swapパーティション,/dev/hda3Linux rootパーティションであると仮定します。
     今回増設したハードディスクは/dev/hdbとであるものとし,/dev/hdb1swapパーティションに,/dev/hdb2rootパーティションにするものと仮定します。

    /dev/hdaから/dev/hdbにLinuxを移行する手順は次のとおりです。
    1. ハードディスクを増設し,現在のLinuxでマシンを立ち上げます。
    2. fdiskで/dev/hdbに,swap(/dev/hdb1),root(/dev/hdb2)の各パーティションを作成します。
    3. mkswap /dev/hdb1でswapパーティションをフォーマットします。
    4. mke2fs /dev/hdb2でrootパーティションをフォーマットしファイルシステムを作成します。
    5. mount /dev/hdb2 /mntで増設したハードディスクのrootパーティションを/mntディレクトリにマウントします。
    6. cd /でrootディレクトリに移動します。
    7. tar cf - [^pt]* | tar xf - -C /mntで/proc,/tmp,を除く全てのディレクトリ内容を/mntディレクトリにコピーします。
    8. mkdir /mnt/proc /mnt/tmpでproc,tmpのディレクトリを作成します。
    9. vi /mnt/etc/fstabで増設ディスクのfstabのエントリーの中のswap,/ のマウントデバイスをhda*からhdb*に変更します。
         /dev/hda2 swap swap defaults 0 0 ----> /dev/hdb1 swap swap defaults 0 0
         /dev/hda3 / ext2 defaults 1 1 ----> /dev/hdb2 / ext2 defaults 1 1
    10. vi /etc/lilo.confで,現在のlilo configuration fileに次のエントリーを追加します。
         image = /mnt/vmlinuz
           root = /dev/hdb2
           label = new
           read-only
    11. /sbin/liloを実行し,現在のliloで増設ディスクのLinuxが仮に起動出来るようにします。
    12. reboot(あるいはshutdown -r now)でマシンをリブートします。
    13. liloのboot:プロンプトでnewと入力し,増設ディスクの方のLinuxを立ち上げます。
    14. vi /etc/lilo.confで増設ディスクの方のlilo configuration file のエントリーを次のように変更します。
           root = /dev/hda3 ----> root = /dev/hdb2
    15. /sbin/liloを実行し,増設ディスクのLinux専用のliloを作成し直します。
    16. reboot(あるいはshutdown -r now)でマシンをリブートします。

     以上で増設したディスクにLinuxを移行することができました。/dev/hdaにあるLinuxはもう削除しても構いません。



  12. kterm上でlsを実行した時もカラーで表示したいのだが?

    --colorのオプションをつけて実行すればカラー表示されます。ファイルタイプによって表示される色は環境変数LS_COLORSの内容によって変化します。
    /etc/DIR_COLORSTERMエントリーに次の一行を追加し,
       TERM kterm
    ウィンドウマネージャーから直接ログインシェルとしてktermを起動(kterm -ls)すれば,環境変数LS_OPTIONS, LS_COLORSが適切に設定され,ls'/bin/ls $LS_OPTIONS'にエイリアスされますので--colorのオプションをつけなくてもカラー表示されます。



  13. 16ビットカラーや32ビットカラーでXウィンドウを起動する方法は?

     Xウィンドウをstartxで起動する場合は次のようになります。
      startx [ -- -bpp 8]  8ビットカラー(デフォルト)
      startx -- -bpp 16  16ビットカラー
      startx -- -bpp 32  32ビットカラー



  14. pppdのダイヤルアップ接続がうまくいかない。設定で注意すべき事柄は?

    ログイン認証のサーバーに接続する場合次の2つのファイルをチェックしてください。
    /usr/sbin/ppp-on
    1. TELEPHONE, ACCOUNT, PASSWORDの内容に間違いがないか確認する。
    2. ファイルの最後の方にある/dev/modem 38400の速度設定が使用しているモデムの速度に合致しているか確認。
    3. ファイルの最後の方にあるasyncmap 20A0000 escape FF のオプションを一度外して接続を試してみる。
    /etc/ppp/ppp-on-dialer
    1. 使用しているモデムに応じて必要なATコマンドを追加しているか。デフォルト状態で端末速度固定にならないモデムの場合には設定が必要です。
    2. 二つ目のTIMEOUT 60をTIMEOUT 90などに変更してみる。
    3. サーバーから送られてくるモデム接続後の文字列が正しく設定されているか確認。cuコマンドなどで一度手動で接続を試み,サーバーから送られてくる文字列を確認するのがよい。

    PAP認証のサーバーに接続する場合次の3つのファイルをチェックしてください。
    /usr/sbin/ppp-on
    1. TELEPHONE, ACCOUNT, PASSWORDの内容に間違いがないか確認する。
    2. ファイルの最後の方にある/dev/modem 38400の速度設定が使用しているモデムの速度に合致しているか確認。
    3. ファイルの最後の方にあるasyncmap 20A0000 escape FF のオプションを一度外して接続を試してみる。
    4. ファイルの最後にname $ACCOUNTのオプションを追加すること。
    /etc/ppp/ppp-on-dialer
    1. 使用しているモデムに応じて必要なATコマンドを追加しているか。デフォルト状態で端末速度固定にならないモデムの場合には設定が必要です。
    2. 二つ目のTIMEOUT 60をTIMEOUT 90などに変更してみる。
    3. サーバーから送られてくるモデム接続後の文字列が正しく設定されているか確認。cuコマンドなどで一度手動で接続を試み,サーバーから送られてくる文字列を確認するのがよい。
    /etc/ppp/pap-secrets
    1. /etc/ppp/ディレクトリにpap-secretsのファイルを作成しているか確認。
    2. ファイルに,account "" password の3つが正しく記述されているか確認。
    3. accountやpasswordの文字列中に#記号が含まれる場合には,"account"や"password"のように”で囲むこと。



  15. モデムの動作を確認する簡単な方法は?
    cuコマンドを使います。
      cu -l /dev/modem -s 38400
    Connected.と表示されたらokです。後は,普通にATコマンドを入力すればモデムをテストできます。~.(チルダ・ピリオド)を入力すると終了します。
     通信ソフトminicomやseyonを使ってもいいですが,ちょっとしたテストならcuの方が簡便です。man cu で一度確認してみてください。





戻る