Study for Embededd System

シェルコマンド

コマンドの標準出力とエラー出力を、ファイルと標準出力の両方に出す方法

[bash]

> make 2>&1 | tee log.txt
もしくは
> make | tee log.txt 2>&1

[csh]

> make |& tee log.txt

diff と patch

ディレクトリの差分を取る場合、

> diff -crN 修正前ディレクトリ 修正後ディレクトリ > 差分ファイル名
-c差分を詳細に取る
-rサブディレクトリも再帰的に検索する
-Nファイルが無い場合も空ファイルとして比較してくれる

で、パッチを当てるときには、

> patch -p0 -d パッチを当てるディレクトリ名 -E < 差分ファイル名
-p0相対パス指定。対象ディレクトリの中で実行するなら-p1を指定する
-ddiffで差分を取ったときのカレントディレクトリ名を指定する
-E空ファイルは削除する

cygwinでは、改行コードをUNIX風(LF)にしないとpatchがうまく動かない。

解凍と圧縮

ファイル形式解凍圧縮
.tar.gz .tgztar xvfz test.tar.gztar cvfz test.tar.gz test..
.tar.bz2 .tbztar xvfj test.tar.bz2tar cvfj test.tar.bz2 test..
.tartar xvf test.tartar cvf test.tar test..
.gz (LZ77)gunzip test.gzgzip test
.bz2bzip2 -d test.bz2bzip2 test
.zipunzip test.zipzip test.zip test..
.lzhlha x test.lzhlha c test.lzh test..
  • tarは圧縮はせずにファイル群をまとめるだけ
  • bzcat (bzip2 -dc) で、bz2ファイルを標準出力に解凍する

cygwin で設定しておくと便利そう

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) チェックサム

サムファイル作成

> md5sum.exe 対象ファイル > md5file

サムファイルでチェック

> md5sum.exe --check md5file

バイナリダンプ

> od -Ax -t x1 binfile

[-Ax] はアドレス表示を16進にする (デフォルトだと8進数)
[-t x1] で出力を決める。1を2にするとshort表示、4にするとlong表示。

> od -c binfile

[-c] で、アスキー出力する

rpm パッケージ管理

インストール

> 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 パッケージ管理

インストール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側ドライブのマウント

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メモリのマウント

> mkdir /mnt/usbfm
> mount /dev/sda1 /mnt/usbfm
リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

最終更新日: Sun, 15 May 2005 21:06:38 JST (7131d)

e[NECir Yahoo yV LINEf[^[z500~`I
z[y[W NWbgJ[h COiq@COsI COze