いろんなコマンド

linuxのshell scriptを、excelなどを使って作った場合、実行できない場合がある。これは改行コードがCR+LFとなっているためである。

実行できるようにするには、二つの方法がある。

まずは、ftpで転送する場合、asciiモードで送信する。テキストファイルは asciiでもbinaryでも表示には問題ないが、改行コードがwindows式のCR+LFではスクリプトとして実行できない。asciiモードで送信すると、改行コードを変換してくれる。

もし、FTPで送受信していないとかで再受信できない場合は、nkfコマンドを使う。これは改行コードや文字コードを変換してくれるコマンドである。

nkf -Lu windows.txt > linux.txt

とやると、改行コードがCR+LFからLFに変換される。nkfコマンドにはほかにもいろいろオプションがあるので確認されたし。

ヒマなのでlinuxコマンドリファレンスに載っているコマンドを片っ端から使ってみた。そして発見したこと。

scriptで記録したログの制御コードを除くには、

cat log.txt|col > log2.txt

でよい。viで %s/^M//g とかやらなくても。


diff3 というコマンドは3つのファイルを比較できる。

diff -u で、結果をunified型式で出力できる。

cmp バイナリファイルの比較。差がなければ何も表示されない。

netstat -r は route と同じ。

grep -v word は、指定した語に一致しない行を出力

grep -i word は、指定した語の大文字小文字を区別せずに検索

lha もある。

bzip2 最近ちょくちょく見かけるが、圧縮率がgzipより高い。が、時間もかかるようだ。

ちなみに lhaはgzipよりちょっと圧縮率が高いようだ。

pushd/popd の使い方。あるディレクトリに居て、一時的にディレクトリを変更してすぐ戻りたい場合に、

pushd /home/aiueo

popd

とやると、戻ってこれる。




Makefile の書き方

TARGET = myfile

all: $(TARGET)

clean:
rm myfile

myfile:
gcc -o myfile myfile.c


myfile.cをコンパイルしてmyfileという名前の実行ファイルを作る。

users ログインユーザの一覧

w でもわかるけど余計な情報がつく

wget ミラーサイトなどを作るときにディレクトリごとコピーできる(未確認)

arping リモートホストにarp requestを送信する。

strings filename 指定したファイル内の文字列を表示する。使ったことはあったが意味を知らなかった。

pstree psの階層表示。どんなときに使うのかは知らないが。

alias コマンドやオプションに別名をつける。

lastlog って実行ファイルだった。いつもログファイルと思ってエディタで開いてしまう。

write username 指定したユーザにメッセージを送る。 write 文字列 ではない。

bmtoa/atobm ビットマップとはWindowsで使う画像のbmpファイルではなく、アイコンなどにつかういわゆる1bitの画像ファイルらしい。使い方はよくわからない。

cjpeg/djpeg/jpegtran jpegの画像変換。回転や反転もできる。

convert 画像のファイル変換、回転