ファイルに書かれたコマンドを実行する。 例えば ~/.cshrc を書き換えた後
$ source .cshrc
とすると、ログインし直さなくても .cshrc の内容が反映される。
アーカイブの展開(ファイルの復元)
$ tar -xvf hogehoge.tar [file1 file2 ...]
gtar では以下も可能
$ tar -zxvf hogehoge.tar.gz
パターンにマッチする行の表示
$ grep [option] PATTERN [FILE]
オプション
-v 一致しない行の表示
-i PATTERN, 入力ファイルの双方において、大文字・小文字を区別しない
$ make 2>&1 | tee make-log.log
$ find [ディレクトリ] -name hogehoge
ストリームエディタ
$ sed -e ' コマンド ' [入力ファイル] [> 出力ファイル]
$ sed -f コマンドファイル [入力ファイル] [> 出力ファイル]
編集コマンドの例
'1,10 s/old/new/' # 1-10行目の old を new で置き換える
10a\ # 10行目の後に以下の 3行を追加
This is a pen.\
Are you happy?\
Yes I am.
パターン処理言語
$ awk [-F'区切り文字'] ' プログラム ' [入力ファイル] [> 出力ファイル]
$ awk [-F'区切り文字'] -f プログラムファイル [入力ファイル] [> 出力ファイル]
プログラムの例
'パターン {アクション}' # プログラム記述の基本
'{ if (NR % 2 == 1 ) {print $0} }' # 奇数行のみを書き出す(パターン無)
BEGIN {FS = "&" }
NR == 6 {
i = 1
while ( i <= NF ) {
print $i
i++
}
}
' NR == 6 {for ( i =1 ; i <= NF ; i++ ){print $i} }' # 6 行目の各フィールドを書き出す
$ dd if=file_1 of=file_2 ibs=xxx obs=yyy skip=a seek=b count=n
file_1 を xxx バイトづつ読み込み file_2 に yyy バイトずつ書き出す。
その際、入力については a ブロック skip し、出力については b ブロック
seek してから処理を行う。
if, of 等を指定しない場合は標準入出力が使われる。
例。一番目の HDD の先頭から 64 ブロックをファイル hogehoge に書き出す。
# dd if=/dev/hda of=hogehoge bs=512 count=64
文字列の置換
:%s/xxxx/yyyy/gcカーソルの次行に file の内容を挿入
:r filem行目からn行目までを file に書き出す
:m,nw file
$ echo (SPACE) Control+v ESC c (RETURN)
$ nohup ./run.sh & $ nohup ./run.sh < /dev/null > out.log 2> err.log & $ nohup ./run.sh < /dev/null &
$ mt -f /dev/nst0 status
$ mt -f /dev/nst1 setblk 64512
$ mt -f /dev/nst2 rewind
$ mt -f /dev/st0 offline
$ tar cvbf 126 /dev/nst0 XXXX
$ tar xvbf 126 /dev/nst0 [YYYY]
$ tar cvbf 126 - XXXX | rsh RHOST -l RUSER dd of=/dev/nst1 obs=126b
$ rsh RHOST -l RUSER dd if=/dev/nst1 ibs=126b obs=126b | tar xvbf 126 -
# /usr/sbin/visudo -f /etc/sudoers
各行の書式は
ユーザー ホスト = (権限) コマンド
設定例
hogehoge localhost = (root) /usr/bin/make install