#freeze
*シェルコマンド [#c78cb45a]
#contents
**コマンドの標準出力とエラー出力を、ファイルと標準出力の両方に出す方法 [#d872cf58]
[bash]
> make 2>&1 | tee log.txt
もしくは
> make | tee log.txt 2>&1
[csh]
> make |& tee log.txt
**diff と patch [#see2052f]
ディレクトリの差分を取る場合、
> diff -crN 修正前ディレクトリ 修正後ディレクトリ > 差分ファイル名
|-c|差分を詳細に取る|
|-r|サブディレクトリも再帰的に検索する|
|-N|ファイルが無い場合も空ファイルとして比較してくれる|
で、パッチを当てるときには、
> patch -p0 -d パッチを当てるディレクトリ名 -E < 差分ファイル名
|-p0|相対パス指定。対象ディレクトリの中で実行するなら-p1を指定する|
|-d|diffで差分を取ったときのカレントディレクトリ名を指定する|
|-E|空ファイルは削除する|
cygwinでは、改行コードをUNIX風(LF)にしないとpatchがうまく動かない。
**解凍と圧縮 [#j55f8539]
|CENTER:ファイル形式|CENTER:解凍|CENTER:圧縮|
|.tar.gz .tgz|tar xvfz test.tar.gz|tar cvfz test.tar.gz test..|
|.tar.bz2 .tbz|tar xvfj test.tar.bz2|tar cvfj test.tar.bz2 test..|
|.tar|tar xvf test.tar|tar cvf test.tar test..|
|.gz (LZ77)|gunzip test.gz|gzip test|
|.bz2|bzip2 -d test.bz2|bzip2 test|
|.zip|unzip test.zip|zip test.zip test..|
|.lzh|lha x test.lzh|lha c test.lzh test..|
-tarは圧縮はせずにファイル群をまとめるだけ
-bzcat (bzip2 -dc) で、bz2ファイルを標準出力に解凍する
**cygwin で設定しておくと便利そう [#p8e603c1]
lsの日本語ファイル名の表示、色付け
> alias ls='ls --show-control-chars --color=auto'
e ディレクトリ名 で、エクスプローラで開く
> function e {
> explorer $(cygpath -w $1)
> };
ホームに[.inputrc]として保存しておくと便利そうなもの
# Make Bash 8bit clean
set meta-flag on
set convert-meta off
set output-meta on
# IME の漢字入力と表示を可に
set input-meta on
set output-meta on
set convert-meta off
# ファイル名のマッチングと補完を行う際に大文字と小文字を区別しない
set completion-ignore-case on
** MD5 (Message Digest 5) チェックサム [#h1c82dc2]
サムファイル作成
> md5sum.exe 対象ファイル > md5file
サムファイルでチェック
> md5sum.exe --check md5file
**バイナリダンプ [#r3a6518c]
> od -Ax -t x1 binfile
[-Ax] はアドレス表示を16進にする (デフォルトだと8進数)~
[-t x1] で出力を決める。1を2にするとshort表示、4にするとlong表示。~
> od -c binfile
[-c] で、アスキー出力する
**rpm パッケージ管理 [#mc7c9106]
インストール
> rpm -ivh ???.rpm
ソースの検索方法 (例えば、odコマンドのソースを探すなら、)
> which od (コマンドのフルパスを知る)
> rpm -qf /usr/bin/od (コマンドが含まれるパッケージの名前を表示する)
で表示されるパッケージの名前に .src.rpm を付けた名前のファイルをネットから探す。~
それをインストールすると、/usr/src/redhat/SOURCES/ 以下にソースが展開される。~
取得場所~
http://ftp.redhat.com/~
ftp://ftp.redhat.com/
**debian パッケージ管理 [#hb773679]
|インストール|dpkg -i ???.deb|
|情報を見る|dpkg -I ???.deb|
|インストールしているパッケージ一覧|dpkg -l|
|アンインストール|dpkg -r ???|
|設定ファイルを消す|dpkg --purge ???|
|インストール (/etc/apt/sources.list から)|apt-get install ???|
|更新リストのアップデート|apt-get update|
|インストールしている全パッケージのアップグレード|apt-get upgrade (apt-get dist-upgrade)|
|アンインストール|apt-get remove ???|
|パッケージ検索|apt-cache search ???|
|依存関係を調べる|apt-cache depends ???|
**Windows側ドライブのマウント [#l5cf7daa]
mountでマウントできるファイルシステム一覧を調べる
> cat /proc/filesystems
FAT32はvfat。NTFSはntfs。~
NTFSが無い場合、RedhatやFedoraの場合は以下からドライバを入手。~
http://linux-ntfs.sourceforge.net/rpm/downloads.html~
バージョンはカーネルバージョンに合ったものをダウンロードする。~
カーネルバージョンは cat /proc/version で。~
~
マウントの仕方。日本語ファイル名が表示されない場合はiocharset=で指定する。~
EUCの場合はeuc-jp。~
uid=の値は、コマンド"id ユーザ名"で調べる。~
> mount -t ntfs -o iocharset=utf8,uid=500 /dev/hda1 /mnt/c
起動時に自動でマウントするためには、/etc/fstab を編集する。以下のように追加。
/dev/hda1 /mnt/c ntfs defaults uid=500,iocharset=utf8 0 0
**USBメモリのマウント [#q696c385]
> mkdir /mnt/usbfm
> mount /dev/sda1 /mnt/usbfm