ホーム
 TOPへ 最終更新日:2006年 2月23日



Contents
RedHat Linux 9.0 向け Samba サーバ手順
-------------------------------------------------------------------------------
 
● [一般] ファイルをダンプ(16進数)表示

    # hexdump -C <ファイル名>
    ※ -C を付けると右側に ASCII キャラクタ表示がつく。



  Indexに戻る

 
● [一般] PCMCIA挿入音を消す

    # cardmgr -q
    
    ※起動時から消したい場合、
        # vi /etc/sysconfig/pcmcia
        で、
        CARDMGR_OPTS=-q



  Indexに戻る

 
● [一般] リモート端末の X アプリケーションをローカル端末で表示する

    ・ローカル端末側操作
        # xhost +
    
    ・リモート端末側操作
        # export DISPLAY=(ローカル端末名):0.0



  Indexに戻る

 
● [一般] X Window の BEEP オンを消す

    # xset -b



  Indexに戻る

 
● [一般] '@' キーを押すと '[' と入力されてしまう

    ・日本語キーボードに対応させる
    
        # setxkbmap jp
    
        ※再起動時に対応しておくには、/etc/X11/XF86Config
          (または XF86Config-4)で、
          Section "InputDevice"
          以下で、
            Option  "XkbModel" "jp106"
            Option  "XkbLayout" "jp"
          のようにする。


  Indexに戻る

 
● [一般] find で見つけたファイルを操作する

    # find (対象ディレクトリ名) -name "(対象ファイル名)" -exec (コマンド) {} \;
    
    確認しながら操作するには、

    # find (対象ディレクトリ名) -name "(対象ファイル名)" -ok (コマンド) {} \;
    
    ※ '{}' は引数として見つけたファイルを指定することを表す。'\;' はターミネータ。
    ※ コマンドの後ろに引数をつける場合、シェルに展開されないように'' でくくった
       ほうがよい。

       例) カレント以下の *.c を ../dstdir/ 下に属性付きでコピーする

           # find . -name "*.c" -exec cp '-p' {} '../dstdir/' \;


  Indexに戻る

 
● [一般] find で特定ディレクトリを対象から外す

    ' -path (対象外ディレクトリ名) -prune -o ... ' という書式を用いる。

    ※ (対象外ディレクトリ名)にマッチしたら何もせず、マッチしない場合には -o
       以下を実行する、という意味となる。

    例) カレント以下かつ ./nocheck 下以外の *.c ファイルを ./nocheck にコピーする

       # find . -path "./nocheck" -prune -o -name "*.c" -exec cp '-p' {} './nocheck/' \;

       ※-path で指定するディレクトリ名には最後に'/'を付けないこと("./nocheck/"だとNG)


  Indexに戻る

 
● [vim] お役立ちページ

    vi に関しては、今まで参照した中では↓が一番簡潔にまとまっており、
    わかりやすくて便利だった。
    http://www.kawaz.jp/pukiwiki/?vim

    ↓のページも有用。
    http://pcmania.jp/~moraz/index.html


  Indexに戻る

 
● [vim] デフォルト設定を変更する

    # vi ~/.vimrc
    ※古くは ~/.exrc を編集していたが、vim の場合には~/.vimrcの方がよい模様。
    
    でオプションを設定
    
    例1) タブ幅 4 にする
        set tabstop=4
    
    例2) 行番号を表示する
        set number
    
    例3) ルーラを表示する
        set ruler
    
    例4) 日本語対応にする(漢字を一文字として扱う等)
        set encoding=japan



  Indexに戻る

 
● [vim] インデントをTABではなくスペースにする

    『普段のインデントはTABで問題ないけれども、一時的にスペースにしたい』
    ことがある。

    その場合は、

    :set expandtab

    とすれば、以降のインデントはTABでは無くスペースになる。

    上記設定前にすでにいくつかTABが入ってしまっていた場合、

    :retab

    でTABからスペースへの一括置換が可能。


  Indexに戻る

 
● [telnet] 8bit キャラクタを通す

    # vi ~/.telnetrc
    で、
    DEFAULT set binary
    を追加(行頭にスペースを入れないこと)。
    
    ※RedHat7.xのマシンに対して telnet すると、デフォルトでは漢字入力が
      出来なくなるため、これに対する対策として有効。



  Indexに戻る

 
● [ftp] ftp のログインに時間がかかる

    サーバが wu-ftpd で、クライアントが Ident 要求(TCP Port113)を無視する設定に
    なっているときには、ログインに30秒以上要する場合がある。
    
    サーバ側で対応する(Ident要求を出さないようにする)には、
    
    # vi /etc/xinetd.d/wu-ftpd
    
    で、
        log_on_success      += DURATION USERID
        log_on_failure      += USERID
    となっている箇所を、
        log_on_success      += DURATION HOST PID
        log_on_failure      += HOST
    のように修正後、
    
    # /etc/init.d/xinetd restart
    
    のようにして xinetd を再起動する。



  Indexに戻る

 
● [ftp] mgetコマンドが使えない対象からディレクトリ以下の全ファイル取得

    - 下のようなシェルスクリプト(ftpgetall)を用意してPATHの通った所
      (/usr/local/bin等)に置いておく。
    - ~/.netrc に対象となるマシンのアドレスと、ログインするためのユーザ名&
      パスワードを登録しておく。
      例)
        machine 192.168.0.2 login anonymous password root@localhost
    
    このように設定したうえで、例えば
    # ftpgetall 192.168.0.2 /home/guest/archive archive
    とすれば、ローカルの ./archive 以下に、対象マシン上の 
    /home/guest/archive/ 以下の取得可能な全ファイルが取得できる。
    
    ※ただし、手抜きなスクリプトなので結果は保証しない。
      特に、指定した第3引数(無い場合は ./第2引数)の名前を持つディレクトリ
      がローカルに既に存在した場合には、予め全て削除されてしまうので要注意。
      また、サイズが0のファイルはディレクトリと見なされるのでこれも注意。
    
[ftpgetall]
----------------------------------------------------------------------
#! /bin/bash
#
# Usage: ftpgetall <remote-host> <remote-dir> [<local-dir>]
#
# Please add account to ~/.netrc
# ex)
#  machine (address) login (user-name) password (password)
#
FTPLIST=./###ftplist###
FTPGET=./###ftpget###
CURDIR=$PWD

if [ $# -eq 0 -o $# -gt 3 ] ; then
        echo "Usage: $0 <remote-host> <remote-dir> [<local-dir>]"
        exit 1
fi
LOCALDIR=./$2
if [ $# -eq 3 ] ; then
        LOCALDIR=./$3
fi
if [ -e $LOCALDIR ] ; then
        rm -rf $LOCALDIR
fi
mkdir -p $LOCALDIR
cd $LOCALDIR

echo "open $1" > $FTPLIST
echo "binary" >> $FTPLIST
echo "cd $2" >> $FTPLIST
echo "nlist" >> $FTPLIST
echo "bye" >> $FTPLIST

echo "open $1" > $FTPGET
echo "binary" >> $FTPGET
echo "cd $2" >> $FTPGET
cat $FTPLIST | ftp | sed "s/^/get /" >> $FTPGET
echo "bye" >> $FTPGET

cat $FTPGET | ftp -v

rm $FTPLIST
rm $FTPGET

find . -name "*" -size 0 -exec $0 $1 $2/{} {} \;
----------------------------------------------------------------------



  Indexに戻る

 
● [開発] 実行ファイルが必要としているライブラリをチェックする

    # ldd (実行ファイル名)



  Indexに戻る

 
● [開発] 共有ライブラリのキャッシュを更新する

    # ldconfig



  Indexに戻る

 
● [開発] [Kylix3] マシン毎にアプリケーションの表示が変わる
    
    ・コンポーネント等が↑に著しく偏ってしまう場合には、
      FormのScaledプロパティをfalseにする。



  Indexに戻る

 
● [開発] [gdb] ブレイクポイントの操作等

    ・ソース検索ファイル名追加
        (gdb) dir <パス名>
    
    ・ブレイクポイントの設定
        (gdb) b <関数名>
        (gdb) b <ソース名>:<行番号>
        (gdb) b
            ※ b のみだと現在のポイントに設定
    
    ・ブレイクポイントリスト表示
        (gdb) info b
    
    ・ブレイクポイント条件設定
        (gdb) condition <No.> <条件>
            ※ <No.>は breakpoint 番号(info bで表示されるもの)


  Indexに戻る

 
● [開発] [bash] スクリプト内で関数の戻り値を判断する

    bash では、コマンドの戻り値が $? という変数に保存される。

    以下のサンプルスクリプトは、カレントディレクトリに "nogood" という
    文字列が含まれていた場合にエラーメッセージを表示して終了する。

----------------------------------------------------------------------
#! /bin/bash

echo $PWD | grep -q -e "nogood"

if [ $? -eq 0 ] ; then
    echo "Error !!"
    exit 1 ;
fi
echo "OK."

exit 0
----------------------------------------------------------------------


  Indexに戻る

 
● [開発] [bash] スクリプト実行毎に異なるログファイルを作成する

    以下のサンプルスクリプトは、実行する毎に
     ./LOG/(日付)/sample-(日付)-(No.).log
    という名称のファイルを作成する。
----------------------------------------------------------------------
#! /bin/bash

LOGDIR=./LOG/`date -I`
LOGNAME=sample-`date -I`
LOGNO=1
LOGEXT=log

mkdir -p $LOGDIR

for ((;;))
do
    LOGFILE=$LOGDIR/$LOGNAME-$LOGNO.$LOGEXT
    if [ ! -e $LOGFILE ]; then
        touch $LOGFILE
        break
    fi
    LOGNO=$(($LOGNO+1))
done
----------------------------------------------------------------------

    例) 4回実行した場合
        $ tree ./LOG/
        ./LOG/
        `-- 2006-02-09
            |-- sample-2006-02-09-1.log
            |-- sample-2006-02-09-2.log
            |-- sample-2006-02-09-3.log
            `-- sample-2006-02-09-4.log
        
        1 directory, 4 files


  Indexに戻る

 
● [IPv6] PCMCIA の Ethernet カードに IPv6 アドレスが割り当らない(暫定)

    # vi /etc/rc.d/rc.local
    で、
    /etc/init.d/network restart
    を追加する。

  Indexに戻る



ホーム  このページの先頭