Linux上の便利なコマンドたち

aliases利用:
メールを利用した情報収集です。
  • 詳細は、man で確認してね。
  • /etc/aliases に以下を追加する。
    dada: "|/bin/ps -auxww |mail mmika -s ps_on_this_host"
    dada: "|(date;/bin/df;/bin/ps -auxw)| mail mmika@spd.cs.oki.co.jp -s Status:`/bin/hostname`"
  • newaliases を実行してアップでーとする。
  • dada にメールを送ると、ps の結果をメールしてくれます。
  • .im/Aliases に以下のファイルを追加する。
    check-status: dada@icd207, dada@icd2tp, dada@icd2ck
    (関連項目:mew)
cron利用:
cron を使った便利なツールの紹介です。
  • 詳細は、man で確認してね。
  • /var/spool/cron/crontabs/root に以下を追加する。
  • ディスクチェックの報告
    • 0 09 * * * $HOME/bin/dfmail -f -m user@localhost :85:95:100
    • dfmailは、LinuxLMで流れていた、 ディスクチェックツール(perl)です。
    • 日本語が文字化けする時は、コマンドを以下のように起動します。
      env -u LANG env -u LANGUAGE set -u LC_ALL $HOME/bin/dfmail ...
  • バックアップの起動
    • 0 */2 * * * su user -c "$HOME/bin/backup.rdist 1>> /tmp/backup.rdist.log 2>&1"
    • backup.rdiskは、 バックアップの方法であげているコマンドが記述してある シェルスクリプトです。
  • 資源の報告
    • 45 8 */2 * * $HOME/bin/netdate.mail 1> /dev/null 2> /dev/null
    • netdate.mailは、netdateとclock を使った時間設定のシェルスクリプトです。 (aliasesを利用して、設定したら結果をメールします。)
  • 時間の修正
    • 0 7 * * * /home/mmika/bin/dmail
    • 0 4 */2 * * /home/mmika/bin/netdate 2>&1 1> /tmp/netdate.log
    • dmailnetdate(時刻、マシンの状態(ps,df)を 報告してくれるシェルスクリプトです。)
    • Vine2.1.5では、netdateコマンドの代わりに、rdateを使用します。
      /usr/sbin/netdate time-hostname localhost を /usr/sbin/rdate -s time-hostname にします。
  • ホームページ内容を、メールで送る。
    • 例えば、asahi.comのホームページの内容を、メールで送りたい時。
      00 10,14,18,21 * * * su - mmika -c '(TERM=vt100 ;/usr/bin/lynx -crawl -dump http://www.asahi.com/) | /usr/bin/nkf -j | /bin/sed -e "s/\[dot.gif\]//g" -e "s/\[menu.gif\]/o/g" | /bin/mail -s asahi mmika@localhost >> /tmp/cron.mmika.log 2>&1'
Dyna Fontの設定:
Dyna Font を使えるようにする。
  • マニュアルは、以下のディレクトリにあります。パッケージによって 異なります。(ないかもしれません。)
    • /usr/X11R6/lib/X11/doc/Japanese/配下
    • /usr/share/doc/packages/VFlib-2.25.1/配下
  • /usr/X11R6/lib/X11/fonts/TrueType (or /usr/share/fonts/TrueType/) 配下に、以下のファイルをコピーする。
            dfgoteb.ttc  dfhsgw5.ttc  dfhsmw3.ttc  dfhsmw9.ttc
            dfgotub.ttc  dfhsgw7.ttc  dfhsmw5.ttc  dfminub.ttc
            dfhsgw3.ttc  dfhsgw9.ttc  dfhsmw7.ttc
         
  • それぞれのフォントに対してインデックスを作成する。
            $ ttindex フォント名
         
  • /usr/share/fonts/TrueType/配下においた場合は、 /usr/X11R6/lib/X11/fonts/TrueType へ、 上記ファイル(ttc)をシンボリックリンクする。
  • /usr/X11R6/lib/X11/fonts/TrueType配下に fonts.dirfonts.alias があることを 確認する。
  • XF86Config に、以下の記述があることを確認する。
           Section "Files"
               ・・・
               FontPath   "・・・,,/usr/X11R6/lib/X11/fonts/TrueType,unix/:-1"
           EndSection
         
eman:
日本語表示にしてしまった man を英語で出力するようにします。 英語をキーワードに検索する時に便利です。
  • ログインシェルが bash の時の例です。
  • alias eman='env -u LANG man'
freewnn:
FreeWnn の設定などについて
  • xdmで起動するようにする。
    /etc/inittab の runlevel を、5(prefdm -nodeamon)を起動する。
  • ログイン時に、「FreeWnn」を指定する。
  • 設定ファイル
  • /etc/FreeWnn/ja/jserverrc
  • 便利なツール(ファイル名: wnn-tools-0.1.tar.gz)
  • uddel/uddump/udreg/....というコマンド(perl)が展開されます。
  • uddumpで、現時点の登録した文字列をファイルに格納できます。
  • udregで、上記ファイルを、Wnnの辞書に戻せます。
  • $ perl udreg < UD.file(EUCファイル)
gifとjpgの整理:集めたgifとjpg画像の htmlを自動的に作成するツール(簡単なシェルスクリプトです期待しないで下さい。)
gif/jpgを一括で参照する時やxv等でうまく表示できないgif画像などを 一括してみれるので便利だと思います。
netdateとclock:時刻合わせ
PPP接続をしたときの時刻合わせをするためのコマンドです。
locate:
指定したファイル名の場所を簡単に探せます。
  • 詳細は、man で確認してね。
  • 以下のようにするだけで、指定したファイル名の場所を教えてくれます。
    • $ locate httpd.conf
    • /etc/httpd/conf/httpd.conf
    • /etc/httpd/conf/httpd.conf.orig
  • もし、DBがないといわれたら、以下のコマンドを実行します。
    • # sh /etc/cron.daily/slocate.cron
  • cron に設定しておくと便利です。
    • 50 8 */3 * * sh /etc/cron.daily/slocate.cron 1> /dev/null 2> /dev/null
NFSの利用:
NFSを利用する。
  • 簡単な構成図。
    Linux Box1 ---------- Linux Box2
  • for LinuxBox2 only.
    • cat /etc/exports(man exports参照)
      /home LinuxBox2(rw), OtherMachine(rw)
    • /etc/rc.d/rc.inet2 の以下のデーモンを有効にする。或は、 有効になっているかを確認する。
      • rcp.portmap
      • rpc.nfsd (-r オプション)
      • rpc.mountd (-r オプション)
    • /usr/sbin/showmount -e (export info)
      mountdやnfsdをリスタートしたら、showmount -e で、編集した 内容が確認できます。
  • for LinuxBox1 only
    • カーネル構成で filesystem の nfs を有効にする。
      Kernel の filessyste で、nfs が有効になっているかを 確認して、有効になっていなかったら、make しなおす。
    • edit /etc/hosts.allow(if you set up tcpwrapper)
      portmap: 172.28.39.0/255.255.255.0
    • mount -t nfs LinuxBox2:/home /nfs/home
NumLock設定:
NumLockを、自動的に設定します。
  • Console上
    /etc/rc.d/rc.local に setleds +num を設定します。
    詳細は、"man setleds" です。(^^;
  • X上
              Section "Keyboard"
                Protocol        "Standard"
                XkbRules        "xfree86"
                XkbModel        "jp106"
                XkbLayout       "jp"
                XkbDisable
              EndSection
           
rpmコマンド:
RED HAT系ディストリビューションに使われるパッケージマネージャー
  • 詳細は、man で確認してね。
  • パッケージのインストール
    rpm -ih
  • パッケージのインストール(アップグレード)
    rpm -Uh
  • パッケージの削除
    rpm -e
  • パッケージのインストール状態
    rpm -qa
  • パッケージの内容表示
    rpm -qlp
  • パッケージ(ファイル)の内容表示
    rpm -qf
  • あるファイルがどのパッケージに属する?
    rpm -qf ファイル名
            rpm -qf /bin/ls
            fileutils-3.16-10
         
  • あるrpmファイルに格納しているファイルの一覧
    rpm -qpl ファイル名.rpm
  • あるrpmファイルに格納しているファイルの一覧
    rpm -qpi ファイル名.rpm
  • glintというコマンドもあります。
    rpmコマンドの方が使いやすい?
画像処理: X Window System上のツールを使った画像の取り込み
X Window System上のツールを使った画像の取り込み方法を以下に示します。
漢字登録:
Canna日本語入力の基本(canna/wnn)
  • 参考になるWWW
    http://www.gentei.org/~yuuji/rec/pc/intro-canna.html
  • mule上から、以下の入力でもできます。 M-x canna-extend-mode
    M-x canna-touroku-region
  • 辞書登録
            1.ユーザー辞書を作る
    $ /usr/local/canna/bin/mkdic username この結果、/usr/local/canna/lib/dic/user/username が作られる。 このユーザー辞書は $HOME/.canna に以下のように登録しておく。 $vi ~/.canna ... (use-dictionary "iroha" "fuzokugo" "hojomwd" "hojoswd" :bushu "bushu" :user "user" <---- この行を追加する。 ) ... 2.新しい単語の登録 EUC コードで以下の形式のファイルを作成する。 読み 品詞 単語 ここで、品詞としては、よく使うものを示せば #T35 "名詞" #T30 "サ変名詞" #JN "人名" #CN "地名" #KK "団体・会社" などがある。 例えば、"摂動" を登録する場合、EUC コードで以下の内容のファイルを 作る。ただし、左詰めにする。 せつどう #T35 摂動 このファイルを例えば dict.e とする。そこで、 $ /usr/local/canna/bin/addwords username < dict.e を実行する。 3.その他 ただし、ディフォールトでは、canna 関連のコマンドは /usr/local/canna/bin に、また、ユーザー辞書は /usr/local/canna/lib/user/$LOGNAME にあることを仮定している。これらは、環境変数、CANNABIN と USERDIC  で変更できる。 4.ツール この内容を教えて頂いた方のホームページにあります。 以上の手続きは煩雑なので、 単語登録を実行する Tcl/Tk を使った GUI をこのディレクトリーに用意した。 tkaddwdc
  • かな入力中にBSで消去できないんですが…
    ~/.cannaに以下の定義を入れましょう。
    (global-set-key "\C-h" 'delete-previous)
    (global-set-key "\Delete" 'delete-previous)
  • ローマ字変換テーブルのいじり方
    おなじみの hjkl を利用して zhで←、zjで↓、zkで↑、zlで→が出るよ うにする。
    1.システムのローマ字かな変換定義ファイルを探して適当なディレク トリにコピーする。
    % cp /usr/local/canna/sample/src/default.kpdef ~/misc/canna/mine.kpdef
    2.~/.cannaで mine.kpdef から生成する変換定義ファイルを参照する ように変更。
    (setq romkana-table "misc/canna/mine.kp")
    3.mine.kpdef をいじって mine.kp を生成する。
    % mkromdic mine.kpdef
Wnn日本語入力の基本(canna/wnn)
  • 以下のコマンドは、perlで記述されています。辞書の場所やperl自体の パスなどが、自分のマシン環境になっていることを確認します。
  • wnn-tools-0.1.tar.gz を利用します。 supcheck/uddel/uddump/udregのコマンドがあります。
    Usage: uddump [-hz] [-d ud_file] [-u user]
    Usage: uddel [-h] [-d ud_file] [-D server] < text
    Example: uddel -d ud2 -D localhost < delete.txt
    Usage: udreg [-h] [-d ud_file] [-D server]
    Usage: supcheck [-h] [-s] [-u user]
  • 既に、登録されている辞書がある時は、uddumpコマンドを使います。
  • 登録する時は、以下のようにして、udregコマンドを使います。
    • $ perl udreg < 辞書ファイル(EUCファイル)
    • cat 辞書ファイル
             あべにーる		アベニール		名詞	1
             あれい			アレイ			名詞	1
             あわず			粟津			人名    1
             
漢字判別:
ファイルの漢字を判別(jis,euc,sjis)をします。
  • 詳細は、man で確認してね。
  • kcc -c ファイル名
  • coco -q < ファイル名
計算方法:簡単な計算をしたい時に便利です。
色々と計算をする方法があります。
  • CUI の関数電卓 Mu-CALC という便利なツールがあります。
    • [Mu-CALCの説明]
      Mu-CALC は C で書かれた CUI ベースの数値計算プログラムです。
    • 使い方
      Mu-CALC を起動した後、
      calc> 1+2*(3+sqrt 4)
      のように数式を入力すると、
      11
      のように計算結果を返します。
    • その他
      計算精度は C の double と同じです。
      三角関数、対数等の関数をサポートしています。
      関数電卓代わりにご使用ください。
    • ホームページ http://www2.famille.ne.jp/~miura7/mu-calc/index.html
  • bc(1)はいかがでしょう。
    $ echo 'obase=16; sqrt(1024*5)' | bc
    とすると、1024*5の平方根を16進数で表示します。
    $ echo 'for(i=1;i<=10;i++)s=s+i;s' | bc
    とすると、1〜10の合計を表示します。
  • Mu-CALCはいかがでしょう。 (詳細は、「UNIX上で動作するツールです。」を参照して下さい。)
    calc> 1+2*(3+sqrt 4)
  • perlは、いかがでしょう。
    $ perl -ne 'print eval, "\n"'
  • calctoolというのがあります。
    使ったことがありません。(..)
  • xcalcは、いかがでしょう。(16進の計算とか出来ません。)
  • gtk には、標準でついている?
    使ったことがありません。(..)
電源を自動的にoff:
ケース電源が、ソフトウェア的にoffできれば、自動的に 電源を落すことができます。
  • /sbin/halt が、以下の版数以上であることを確認します。
    sysvinit-2.76.tar.gz
    cd src; make; cp halt /sbin/halt
  • /etc/lilo.conf のコンフィギュレーション
    /etc/rc.d/rc.6
    *** rc.6 Wed May 5 23:47:04 1999
    --- rc.6.org Wed May 5 09:11:22 1999
    ***************
    *** 86,98 ****
    # Now halt or reboot.
    echo "$message"
    [ ! -f /etc/fastboot ] && echo "On the next boot fsck will be FORCED."
    ! # $command -f
    ! # Find out how we were called.
    ! case "$0" in
    ! *0)
    ! $command -p
    ! ;;
    ! *)
    ! $command -f
    ! ;;
    ! esac
    --- 86,90 ----
    # Now halt or reboot.
    echo "$message"
    [ ! -f /etc/fastboot ] && echo "On the next boot fsck will be FORCED."
    ! $command -f
    !
バックアップ方法:コマンドを使ったバックアップ方法
ペンギンの表示:
Kernel-2.2.X で機動時にペンギンが表示が。。。
  • 詳細は、/usr/src/linux/Documentation/fb/*.txt で確認してね。
  • カーネルコンフィギュレーション
    Prompt for development and/or incomplete code/drivers y
    VGA text console y
    Video mode selection support y
    Support for frame buffer devices y
    graphics console で Milleniumを y<---使っているVideoカードをy
  • /etc/lilo.conf のコンフィギュレーション
    vga=askの一行を追加
    liloを実行してリーブート。
  • 私の実績
    Diamond Stealth Video VRAM 4M は、何も表示されませんでした。 Canopus PowerWindow DX/4MC は、何も表示されませんでした。
    Matrox Millenium II(PCI) は、表示されっぱなしで、実用できません。
    Matrox Millenium G200 16M(AGP) は、OKでした。(^^v
  • 他の方のホームページ
    • VESA VGA graphics console 機能を組み込んだ際に起動時に 表示される、ペンギンロゴを好きな画像に差し替える プログラムを作ってみました。
      http://www.jwri.osaka-u.ac.jp/Students/masaki/fake_jwri/ex_2.html
文字列操作:
文字列のソート方法
  • 以下の文字列をソートします。
             1.1.2.2
             1.1.2.102
             1.1.2.22
             1.1.1.1
             1.1.1.101
             1.1.1.21
           というファイルから
             1.1.1.1
             1.1.1.21
             1.1.1.101
             1.1.2.2
             1.1.2.22
             1.1.2.102
         
  • sortコマンドで
    • sort -n -t. -k3,3 -k4,4 indata
    • sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ipdata
    • sort -t. -n +0 -1 +1 -2 +2 -3 +3 -4
    • sort -t, +0n -1 +1n -2 +2n -3 +3n -4
  • awkコマンドで
    • awk -F. '{printf "%03d.%03d.%03d.%03d\n",$1,$2,$3,$4}' | \
      sort | \
      awk -F. '{printf "%d.%d.%d.%d\n",$1,$2,$3,$4}'
    • IPアドレスの各オクテット値に '0' をプレフィックスして "001.001.002.002" という形式に変換してからソートし、そのあと もとの形式に正規化する。
      $ awk -F. '{printf("%03d.%03d.%03d.%03d\n", $1, $2, $3, $4)}' \
      | sort | awk -F. '{printf("%d.%d.%d.%d\n", $1, $2, $3, $4)}'
    • awk -F'\.' '{ printf("%3d.%3d.%3d.%3d\n", $1, $2, $3, $4); }' \
      | sort | sed 's/ //g'
    • cat ipdata|\
      awk '{split($1,a,"\.");ip=a[4]+256*(a[3]+256*(a[2]+256*(a[1]-128))
文字列の並び変え
  • 以下の文字列を以下のように並び変えます。
             aaa
             bbb
             ccc
             ddd
             eee
             fff
             ggg
             hhh
           というファイルから
             aaa bbb ccc
             ddd eee fff
             ggg hhh
         
  • pasteコマンドで
    • cat filename |paste - - -
  • awkコマンドで
    • awk '(NR%3 != 0){printf "%s ", $0};(NR%3 == 0){print}' filename
文字列の長さ
  • xtrコマンド
    • xtr1.50e-0.1.tar.gz というファイルをダウンロードして make します。
    • 以下の文字列を以下のように並美変得ます。
               「あいうえおかきくけこ」
             という文字列を
               「あいうえお」
               「かきくけこ」
            
  • nkfコマンド
    nkf -fN
    N に、文字列数を指定する。(日本語対応)
  • head, cut, foldコマンド
    これらコマンドは、日本語対応していない。
  • mule(emacs)で
    • .emacsに以下の設定をする。
               (set fill-coloumn 10)
             
      と、以下のようになります。
               「あいうえおかきくけこ」
             という文字列を
               「あいうえお」
               「かきくけこ」
             

前のページへ
ホームページへ