様々なメモ (UNIX Tools編)

UNIXで様々なツールを使う時のメモです。
まあ、使うたびに気づいたことを足していくということで。


[[ Shell ]]

   ps の出力から xxx という文字列を含むものを捜し出して、そのプロセスを殺す
   ( 抜ける時にプロセスを大量に残す人などに有効 )
      : kill `ps -axu | grep xxx | awk '{print $2}'`


[[ Lynx ]]

   スタートページのデフォルトを指定したいとき
      環境変数 WWW_HOME に指定すれば良い。
      具体的には、.cshrc なら setenv WWW_HOME http://..... とすれば良い

[[ Emacs ]]

   [ gnus ]

      ニュースサーバを明示的に指定して立ちあげたいとき 
      : C-u M-x gnus

      ニュースサーバごとに .newsrc ファイルを使い分けるには
      : .newsrc ファイル名を .newsrc-SERVER とする
        
      rot13/47
      :  C-c C-r

   [ mail ]

      RMAIL の場合、~/.emacs に
           (setq mail-self-blind t)
      という行を追加すると、メールの送信時に自動的に  Bcc: が追加され、
      自動的にそのメールが自分にも送られてくる。

   [ egg ]

      特殊な記号や文字を入力する時
      : C-^   or   M-x special-symbol-input
      
   [ egg のカスタマイズ ]

      ローマ字カナ変換の方法をカスタマイズするには
      : 1) まず、/usr/Nemacs-3.3.2/lisp/egg-rk.el を自分用に、
           自分の適当なディレクトリにコピーする。
        2) emacs でそれを適当に編集してカスタマイズする。
        3) emacs でそれをカレントバッファにおいた状態で、
           M-x eval-current-buffer を行ない、それを emacs のメモリに
           覚え込ませる。
        4) その状態で、M-x dump-egg-mode-map とする。
           EGG Mode: と聞いてきたら、roma-kana と答える。
           Output file name: と聞いてきたら、egg-rkdump.el と答える。
        5) これで、必要なファイルができたので、それを適当なディレクトリに
           入れて、(例えば ~/elisp) .emacs に次の行を入れる。

          (if (file-exists-p "~/elisp/egg-rkdump.elc")
           		(load-file "~/elisp/egg-rkdump.elc"))
       
        6) .eggrc が無効になることもあるので注意。

   [cmutex]

        UNIX Magazine 1993.1 & 1993.3

   [ online dictionary ]

        起動
          :    M-x online-dictionary

        カーソル位置の単語をパターンとして起動:
          :    M-C-d


   [ X 用の設定 ] (cf. マニュアル等)

       Command x-set-kfont ( X Window で使用する漢字フォントを設定する)
               x-set-font  (                    ank                   )
 
       の他に、.Xdefaults に、

nemacs.BodyFont:                8x16
nemacs.KanjiBodyFont:           kanji16
nemacs.Font:                    8x16
nemacs.KanjiFont:               kanji16
x11nemacs*BodyFont:             8x16
x11nemacs*KanjiBodyFont:        kanji16

       のような記述をするという手もある。

   [ emacs そのもの ] (cf. マニュアル等)

       マルチプルウィンドウで、他のウィンドウを小さくして現ウィンドウ
       を大きくする方法
       :  C-x ^

       キーボードマクロ
            マクロ定義開始 : C-x (
            マクロ定義終了 : C-x )
            マクロ実行     : C-x e

       ハードディスク上のより新しいファイルを今のバッファへ読み直す方
       法( RCS などでチェックインを行なった場合など )
       :  M-x revert-buffer

[[ fortran ]]

   [ compile option ]

        -C   : 配列の範囲を越える添字をチェックする
        -u   : 暗黙の変数宣言を無効にする
        -xld : 行頭に D がついていてコメントになっている行もコンパイルする
               (これを用いるとデバッグがやりやすい)

[[ TeX ]]

   [ 紙に横向きに書き、印刷したい ] (ASCII-JLaTeX)
        1. スタイルオプションで landscape を指定
            例)  \documentstyle[landscape,a4j]{jarticle}
        2. PS にするには、dvi2ps -o landscape ファイル名 ... で OK.

   [ 4up で B5 2枚を B4に出力 ]

        1. b5j スタイル指定で LaTeX の文書を作る。(ASCII-JLaTeX)
        2. dvi2ps & 4up なら以下のようにするだけ
         % dvi2ps -o b4 foobar.dvi | 4up -n -page 2 | lpr
 
   [ @ を .tex ファイルの中で用いる ]

        @ を含んだ部分を \makeatletter \makeatother で囲む。

[[ p2c ]]

   *.p --------------> *.c -----------------> 実行ファイル
         "p2c *.p"           "cc *.c -lp2c"

[[ X フォント ]]   ( Cf."The Unix Super Text" <上> pp.551- )


   [ フォントのリストを得たい ]       
          xlsfonts
      (フォント名が不確定な時)        
          xlsfonts -fn  '-adobe-courier-bold-*--14-*'   など

   [ フォントを見てみたい ]
          xfontsel  (対話的:一部しか見られない:フォント名がよくわからない)
          xfd -fn フォント名  (非対話的:全部見られる:フォント名が明記される)
     (ex) xfd -fn '-jis--14-*'
     (ex) xfd -fn '-*--*-jis*-*'  (漢字フォントのリスト)

     どうやら、
         -*--*-jisx0208*-*       漢字フォント
         -*--*-jisx0201*-*       半角カナフォント

     で、漢字フォントは今のところ、X11R5についてくる実体としては

  -jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0
  -jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0
  -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0

     の3つしかないようだ。(他はエイリアス)
     実際には、
   
 k14      -misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0
 kanji16  -jis-fixed-medium-r-normal--16-*-*-*-*-*-jisx0208.1983-0
 kanji24  -jis-fixed-medium-r-normal--24-*-*-*-*-*-jisx0208.1983-0

     というエイリアスが使える。

   [ フォント名の記述 ]
         フォントパス(/usr/X11R5/lib/X11/fonts/*) 中にある
          fonts.dir        (ファイルとフォント名の対応表)
          fonts.alias      (フォント名のエイリアス)

   [ フォントパスの設定 ]
          xset fp= ...
   
[[ その他 X 関係 ]]

   [ 画面切り取り ]
       xwd > ファイル         (切り取り)
       xwud -in ファイル      (画面への出力)

       例) geometry 260x400+313+83 部分の切取りを10秒後に行なう
           xwd -sleep 10 -geometry 260x400+313+83 > ファイル
              
       他には xv の grab でも良い

   [ サーバ の設定状況 ] ( Cf."The Unix Super Text" <上> pp.556- )
          xset q

   [ xterm, kterm 内で meta キーを使うには ]
       XTerm*VT100*eightBitInput:  false     とか、
       kterm*vt100*translations: #override Meta : string("\033") insert()
                                             とか、
       KTerm*eightBitInput:    false         とかリソース設定をする。
    
      普通は、.Xresources か .Xdefaults (ちなみに、.xsession は普通は 
      .Xdefaults を読まないので注意。)に書く。
      全員に通用させたければ、
           /usr/X11R5/lib/X11/app-defaults/KTerm,XTerm 
      に
          *VT100*eightBitInput:    false
      とでもかくこと。

   [ リソース設定 ]
      xrdb コマンドで行なう。例えば .Xdefaults などを用意し、
            xrdb .Xdefaults
      とする。
      付け加える場合は、                  -merge オプション。
      現在のリソース設定を見たければ      -query オプション。
      
      Xdm -> .xsession 経由の場合、普通は .Xdefaults を見ないので要注意。

[[ z(x,y)modem ]] (Cf. man sz)
    とりあえずmomongaからファイルを電話回線経由で送りたいという場合は、
    受け手側が z(x,y)modem 対応の通信ソフトで通信しながら、
       sz -a ファイル名 (テキストファイルの場合)
       sz -b ファイル名 (バイナリファイルの場合)
    を momonga で行なった後、受け手側のソフトで receive すればよい。
    基本的にワイルドカードが使える。

[[ sendmail ]] (Cf. Unix Magazine '89 Nov.)

    /usr/lib/sendmail -bv アドレス : アドレスが正しいかどうかチェックする。

[[ nslookup ]] (工学部LAN接続の手引 ver 2.0 pp.23)

   [ IP アドレスから、マシン名を知りたい ]

     例で示す。 130.69.140.19 を知りたい時、
   
     % nslookup
     > set q=PTR
     > 19.140.69.130.in-addr.arpa

     とすると、結果が得られる。これは、そのネームサーバに PTR フィール
     ドが登録されている場合だけ得られるので、そのドメインのネームサー
     バに接続しないと答が得られない。 
     ネームサーバの探し方は、例えば、gen.u-tokyo.ac.jp を引き受けてい
     るサーバを知りたければ、 

     > set q=NS
     > gen.u-tokyo.ac.jp

     でわかる。
     で、ここで得たネームサーバに切替えて

     > lserver ほげほげ   (server コマンドでも良いが、lserver の方が早い)
     > ls gen.u-tokyo.ac.jp

     繰り返せば良い。
     ドメイン名が全然わからなくても、せめて ac.jp か ad.jp か、co.jp 
     かくらいは想像がつくので、そこからたどっていけば良い。
     なお、ls はリダイレクトが効く。


[[ gnuplot ]]

    load "..."       : ... というファイルに gnuplot への命令を書いてお
                      くとそれを読んで実行する( # がコメントマーク )。

    print ...        : その値を出力する。関数電卓がわりに使える。

    replot           : もう一回グラフを出力

    set contour      : splot の場合、等高線もつける

    set nokey        : 右上の説明文を消す。
                     : 説明文は (s)plot の title オプションで変える

    set output "..." : グラフの出力先を ... ファイルにする

    set samples ...  : サンプル点の数を指定する。ファイルデータから図
                      を出力する時は無意味。

    set terminal table  : グラフではなく、数値で出力してくれる
                         だから、数値計算の初期値を作るのなんかにとても便利 

    set title "..."  : 全体のタイトルをつける

    set xlabel "..."     : x 軸にタイトルをつける
    set xlabel "..." a,b : さらにタイトルを右に a 文字分、上に b 文字分ずらす 

    set xrange [a:b] : x 軸の値の範囲を a から b までにする

    set xtics (0, 2, 4) : x 軸で値が 0, 2, 4 のところに刻みを入れる
    set xtics ("a" 0, "b" 2, "c" 4) : x 軸で値が 0 のところに a と書き…刻みを入れる

    (s)plot ... title "abc"    : 書くグラフの右上の説明タイトルを abc に

    set logscale x             : x 軸を対数スケールにする
                               : このとき、xrange が適切になってないと
                               : エラーになるのでそういうときは 
                               : set xrange [a:b] で a <= x <= b を明
                               : 確に指定する

    set terminal postscript eps 22
    set size 1.5,1.5
    set output "filename"
    plot ..                        : eps 形式でちょっと大きめに出力

    set terminal postscript eps color 22
                                   : さらにこうするとカラー出力になる

    set contour { base | surface | both } 
                              : 3次元図 ( splot ) の場合に等高線を描く
                              : base (デフォルト) だと底面に、
                              : surface だと面自体の上に、
                              : both だと両方に描く
    set nocontour             : 等高線を描かない

    set data style 描画方法      : データの描き方のデフォルトを設定する
    set function style 描画方法  : 関数の描き方のデフォルトを設定する
                                 : 描画方法は、下のいずれか
                                 : lines         : 折れ線
                                 : points        : マーカ
                                 : linespoints   : 上の両方
                                 : impulses      : 垂線
                                 : dots          : 点
                                 : errorbars     : 誤差表示の時のみ

    set noparametric
    set hidden3d
    splot "datafile" with line  : 次のようなデータファイルを読んで隠線
                                  処理をした3次元図を書く
    (注) この時、全てのデータが同じ長さを持っていると「格子状データ」
         であると解釈され、各孤立線を結ぶ横断線も引かれる。
         よって、これを逆手にとって、一つだけデータの長さを変えておけ
         ば、with line モードでも各孤立線が独立した図を描ける!!
         (その場合は隠線処理はできない)

                   z(x1,y1)
                   z(x1,y2)
                   z(x1,y3)
                     :
                     :
                   z(x1,yn)
                                   (空行)
                   z(x2,y1)
                   z(x2,y2)
                   z(x2,y3)
                     :
                     :
                   z(x2,yn)
                                   (空行)
                   z(x3,y1)
                   z(x3,y2)
                   z(x3,y3)
                     :
                     :
                   z(x3,yn)
                   
    set parametric
    set hidden3d
    splot "datafile" with line  : 次のようなデータファイルを読んで隠線
                                  処理をした3次元図を書く
    (注) この時、全てのデータが同じ長さを持っていると「格子状データ」
         であると解釈され、各孤立線を結ぶ横断線も引かれる。
         よって、これを逆手にとって、一つだけデータの長さを変えておけ
         ば、with line モードでも各孤立線が独立した図を描ける!!
         (その場合は隠線処理はできない)

                   x1, y1, z
                   x1, y2, z
                   x1, y3, z
                     :
                     :
                   x1, yn, z
                                   (空行)
                   x2, y1, z
                   x2, y2, z
                   x2, y3, z
                     :
                     :
                   x2, yn, z
                                   (空行)
                   x3, y1, z
                   x3, y2, z
                   x3, y3, z
                     :
                     :
                   x3, yn, z
                   
[[ CD ROM ]]

   [ Sun OS 用 CDROM の eject ]

     (Superuser にて)  eject cd
    
   [ Sun OS 用 CDROM のマウント ]

     (Superuser にて)  mount -t hsfs -r /dev/sr0 /cdrom  (マウント)
     (              )  umount /cdrom                     (アンマウント)

   [ Sun OS 用 CDROM からファイルを抽出する方法 ] 
                (cf. "SunOS 4.1.1 トラブルシューティング" pp.129-)

     たとえば、/usr/openwin/lib/fonts/* を落したい時、
     まず、このファイル群のカテゴリは /OpenWindows_Fonts であるから、
     (このカテゴリは、"SunOS インストレーションガイド" 1-16 にある)

     (Superuser にて) 
        /usr/etc/install/list_files sr0 /OpenWindows_Fonts | less

     として、このファイル群がこのカテゴリに対してどういう相対パスを持っ
     ているかを調べる。
     この場合、
rw-rw-r--  0/1  16620 Jun 28 05:05 1990 ./openwin/lib/fonts/12x34.fb
     などと返ってくるので、ワーキングディレクトリを例えば /tmp とすると、

     cd /tmp
     /usr/etc/install/extract_files sr0 /OpenWindows_Fonts -f ./openwin/lib/fonts/12x24.fb

     とすることで、 /tmp/openwin/lib/fonts/* が作られる。


 [[ giant packet ]]

   ff:ff:ff:ff:ff ? のこと?
   ちなみに 4/14 に 

le0: Receive: giant packet from 8:0:20:e:e7:94
le0: Receive: STP in rmd cleared

   ということが起こっている。

 [[ Sun OS ]]

  OS CD-ROM に入っているカテゴリは以下のようである。

   root
   usr
   Kvm
   Install
   Networking
   System_V
   Sys
   SunView_Users
   SunView_Demo
   Text
   Demo
   OpenWindows_Users
   OpenWindows_Demo
   OpenWindows_Fonts
   User_Diag
   Manual
   TLI
   RFS
   Debugging
   SunView_Programmers
   Shlib_Custom
   Graphics
   uucp
   Games
   Versatec
   Security
   OpenWindows_Programmers