ファイルの文字コードを調べる

file -i <filename>

複数の空白を1個にまとめる

cut コマンドで ls 出力を加工したい場合など、区切りが不定数の空白だったりして、フィールド番号指定が難しい場合がある。そんなときに便利。

tr -s " "

使い方の例。

ls -l | tr -s " " | cut -f5 -d' ' | awk 'BEGIN{$S=0}{$S+=$0;}END{print $S}'

パッチの作り方/適用

パッチを作るとき。

diff -u new-file old-file > patch.diff

ディレクトリを再帰的にやるには、

diff -ur new-dir old-dir > patches.diff

パッチを当てるとき

patch -p0 < patch[s].diff

if文の制御文字について(csh/tcsh)

シェルスクリプト中の評価式で使うスイッチと意味の一覧

-eファイル名で指定したファイルが存在しているか?
-fファイル名で指定した通常のファイルが存在しているか?
-dディレクトリ名で指定したディレクトリが存在しているか?
-zファイル名で指定したファイルは空か?
-rファイル名で指定したファイルは読み込みが可能か?
-wファイル名で指定したファイルは書き込みが可能か?
-xファイル名で指定したファイルは実行可能か?

となっとります。

コメント行以外の行を取り出す

設定ファイルなどで、「行頭に#がある行はコメント」であるファイルについて、コメント行を除いたものを得たいとき(squid.confなんかすごいすね)

grep -v '^#' <filename>

としますが、これだと空行もマッチして見づらいので

grep -v '^#' <filename> | grep -v '^$'

として、空行も除きます

Cシェルでの標準出力やエラー出力の取り扱い

  • 標準出力をファイルに取り出す
command > file
  • エラー出力をファイルに取り出す
command >& file

というわけで、エラーも出力も捨てたい時は

command >& /dev/null

Kシェル/bashでの標準出力やエラー出力の取り扱い

  • 標準出力をファイルに取り出す
command 1> file
  • エラー出力をファイルに取り出す
command 2> file

というわけで、エラーも出力も捨てたい時は

command > /dev/null 2>&1

一定期間経過したファイルを削除する

 findコマンドを使って、いまいるディレクトリ配下にある*.logファイルのうち、最終更新後に7日以上経過したファイルを削除するには、

find . -type f -name "*.log" -mtime +7 -exec rm {} \;

fdiskの動作

それなりによく使うfdiskについて。

1.操作対象をブロックデバイスとみなす

  ブロックデバイスかどうかは問題にならない。注意。

2.パーティションテーブルを書き込む

3.対象デバイスのioctl()をキックする

  カーネルにパーティションテーブルを変更したから、
  再読込してね、と言う操作。
  パーティションを扱えるブロックデバイスなら、
  ドライバに実装されているはずのioctl()。

 

 以上のような動きのため、「fdiskをかけたからといってパーティションが必ずできているとは限らない」ということ。

 パーティションが正しく作成されたかどうかは、Linux系であれば/proc/partitionsをcatしてみると良い。

 それ以外のOSの場合は… /devの下を見るのだろうか…不明。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS