fmemo
Unixコマンド
最終更新:
fmemo
-
view
圧縮と伸張
gzip
ファイルを圧縮する
$ gzip hoge
ファイルを伸張する
$ gunzip hoge.gz
bzip2
ファイルを圧縮する
$ bzip2 hoge
ファイルを伸張する
$ bunzip2 hoge.bz2
xz
ファイルを圧縮する
$ xz hoge
ファイルを伸張する
$ xz -d hoge.xz
アーカイブ
主なオプション
- x 展開
- v 冗長モード
- z gzip
- f ファイル
- c アーカイブ化
- t 中身の確認
- j bzip2
使用例
hoge.tar.gzを伸張し、展開したい
$ tar xvzf hoge.tar.gz
hoge.tar.gzの中身を確認したい
$ tar tvzf hoge.tar.gz
hogeをアーカイブ化して圧縮したい
$ tar cvzf hoge.tar.gz hoge
zオプションが使えないとき
GNUのtarならばzオプションが使えるが、そうでない場合はzオプションは使えない。そのようなときは以下のようにパイプで処理する。
gunzip hoge.tar.gz | tar xvf -
test
シェルのif文などで活躍するコマンド。[ ] と同じものである。
ファイルなどに対しての評価
オプション | 意味 |
-d directory | directoryが存在すれば真 |
-e file | fileが存在すれば真 |
-f file | 通常ファイルが存在すれば真 |
-h link | シンボリックリンクならば真 |
-r file | fileが読み込み可能なら真 |
-s file | fileの大きさが1以上ならば真 |
-w file | fileが書き込み可能なら真 |
-x file | fileが実行可能なら真 |
-L link | シンボリックリンクなら真 |
- -Lと-hは同値である。-Lを使うことが推奨される。
文字列に対しての評価
オプション | 意味 |
-n string | 文字列の長さが1以上ならば真 |
-z string | 文字列の長さが0ならば真 |
string | 文字列が存在し、ヌル文字列でなければ真 |
s1 = s2 | 文字列s1とs2が同一であれば真 |
数値に対しての評価
オプション | 意味 |
n1 -eq n2 | n1とn2が代数的に同値ならば真 |
n1 -ne n2 | n1とn2が代数的に異なれば真 |
n1 -gt n2 | n1がn2より大ならば真 |
n1 -ge n2 | n1がn2以上ならば真 |
n1 -lt n2 | n1がn2未満ならば真 |
n1 -le n2 | n1がn2以下ならば真 |
論理結合
オプション | 意味 |
! expression1 | expression1が偽ならば真(NOT) |
expression1 -a expression2 | expression1とexpression2が両方真なら真(AND) |
expression1 -o expression2 | expression1とexpression2のどちらかが真ならば真(OR) |
dd
2byte整数のエンディアンを変換する。
$ dd if=infile of=outfile conv=swab
date
日付を表示する。linuxのdateとmacのdateは若干異なる。
$ LANG=C date Fri Oct 13 10:01:15 JST 2006
nkf
文字コード変換コマンド。
00README.txtに書かれた文章をUTF-8に変換して読みたいとき
00README.txtに書かれた文章をUTF-8に変換して読みたいとき
$ cat 00README.txt | nkf --utf8 | less
look
引き数で与えられた文字列から始まる英単語を表示する。/usr/share/dict/wordsを使用。
$ look city city citycism citydom cityfolk cityful cityish cityless cityness cityscape cityward citywards
grep
ファイルに対してパターンマッチをおこなう。
$ grep pattern filename
主なオプション
- -c マッチした総行数を表示
- -i 大文字小文字を区別しない
- -n 行番号をつけて表示
- -v 指定したパターンを含まない行だけを表示
- -l 指定したパターンを含むファイル名だけを表示
正規表現
- ^ 行頭
- $ 行末
- . 任意の1文字
- [abcd] abcdの中の任意の1文字
- r* 正規表現rの0回以上の繰り返し
参考サイト
exprコマンド
整数演算をおこなう。
$ expr 5 + 3 8 $ expr 14 - 8 6 $ expr 6 \* 8 # かけ算はバックスラッシュが必要 48 $ expr 32 / 5 # 割り算の余りは切り捨て 6 $ expr 32 % 5 # 余りを表示 2
演算の結果をシェル変数に代入(sh, bashの場合)
$ var=`expr 5 + 3` $ echo $var 8
bashやzshなどの場合、以下のように書いてもよい。その場合、かけ算のバックスラッシュは不要である。
$ echo $(( 5 + 3 )) 8 $ echo $(( 14 - 8 )) 6 $ echo $(( 6 * 8 )) 48 $ echo $(( 32 / 5 )) 6 $ echo $(( 32 % 5 )) 2
bc
小数計算をする。
$ bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+0.5 1.5 quit # quitで終了
割り算を小数点以下まで計算したいときは-lオプションをつける
$ bc -l bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1/7 .14285714285714285714 scale=4 # 小数点以下4桁まで表示 1/7 .1428
bcの計算結果をシェル変数に代入する
$ var=`echo "1/4" | bc -l` $ echo ${var} .12500000000000000000
cut
各行からバイト数、文字数、カラム数指定で文字列を切り出す。
od
バイナリデータをダンプする。
$ od -t dC test # 1バイト整数(符号付き)とみなして表示 $ od -t uC test # 1バイト整数(符号なし)とみなして表示 $ od -t d2 test # 2バイト整数とみなして表示 $ od -t fF test # 4バイト実数とみなして表示 $ od -t fD test # 8バイト実数とみなして表示
od -c での改行コードの見え方
OS | 見え方 |
Unix & Mac OSX | \n |
Windows | \r\n |
Mac OS 9 | \r |
参考サイトodコマンドを使った改行コードの調べ方
sort
整列させる。
オプション
- -n 文字列ではなく数字だとみなしてソート
- -r 降順にソート
uniq
同じ行が連続しているときに一度しか表示しない。-cオプションを使うと出現頻度分析ができる。
$ less fruits orange pear apple orange orange apple orange $ sort fruits | uniq -c | sort -nr 4 orange 2 apple 1 pear
cal
カレンダーを表示する。
cal 9 1752
ユリウス暦からグレゴリオ暦への転換で日数が少ない。
$ cal 9 1752 September 1752 Su Mo Tu We Th Fr Sa 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
英単語の辞書
/usr/share/dict/words
sed
置換
ファイルtest内のbeforeという文字列をafterに置き換える。
$ sed -e 's/before/after/g' test
置換条件で.(ドット)は特別な意味を持ってしまうため、頭にバックスラッシュをつけて\.と書く。gはgreedy(欲張り)の意味。
$ sed -e 's/\.txt/.doc/g' test
wget
ftpサイトやhttpサイトからデータをダウンロードする。
$ wget www.hogehoge.co.jp
再帰的にダウンロードする
$ wget -r www.hogehoge.co.jp
レジュームする(途中で失敗したファイルのDLを途中から再開)
$ wget -c www.hogehoge.co.jp
パッシブモードをオフにする(デフォルトだとオンになっているようだ。途中でDLがとまってしまうときはオフにして試してみる)
$ wget --no-passive-ftp www.hogehoge.co.jp
tr
文字の変換などをする。大文字から小文字に変換したいとき。
$ cat file.txt | tr A-Z a-z