UNIX
UNIXコマンド

最も使われるUNIXコマンドTop15

UNIXコマンド学習者のため(自分も含め),
50 Most Frequently Used UNIX / Linux Commands (With Examples)
を参考として,最も使われるUNIXコマンドのTop15をまとめます.

1. 圧縮(tar)

dirnameを名前archive_nameを指定して圧縮ファイルを作成します.
$ tar cvf archive_name.tar dirname/
archive_nameを取り除きます.
$ tar xvf archive_name.tar
圧縮ファイルの中身を出力させます.
$ tar tvf archive_name.tar

2. 文字列の検索(grep)

指定された文字列を探索する(大小文字区別しない).
$ grep -i "the" demo_file
一致した行から3行後まで出力します.
$ grep -A 3 -i "example" demo_text
すべてのファイルで指定された文字列を再帰的に検索します.
Search for a given string in all files recursively
$ grep -r "ramesh" *

3. ファイルの検索(find)

filenameを使用してファイルを検索します(大小文字区別しない).
$ find -iname "MyCProgram.c"
findコマンドで見つかったファイルに対してコマンドを実行します.
$ find -iname "MyCProgram.c" -exec md5sum {} \;
ホームディレクトリ内のすべての空のファイルを検索します.
$ find ~ -empty

4. リモートログイン(ssh)

リモートホストにログインします.
$ ssh -l jsmith remotehost.example.com
sshクライアントをデバッグします.
$ ssh -v -l jsmith remotehost.example.com
sshクライアントのバージョンを表示します.
$ ssh -V

5. ファイル形式の変換(sed)

DOSファイルをUnixにコピーすると、各行の最後に\r\nがあります。 この例では、sedコマンドを使用してDOSファイル形式をUnixファイル形式に変換します。
$sed 's/.$//' filename
ファイル内容を逆順に出力する
$ sed -n '1!G;h;$p' thegeekstuff.txt
ファイル内の空でないすべての行に行番号を追加する
$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'

6.データファイルの処理(awk)

awkを使って重複する行を削除します.
$ awk '!($0 in array) { array[$0]; print }' temp
同じuidとgidを持つすべての行を/etc/passwdから出力します.
$awk -F ':' '$3==$4' passwd.txt
ファイルから特定のフィールドのみを出力します.
$ awk '{print $2,$5;}' employee.txt

7. テキストエディタ(vim)

ファイルの143行目に行きます.
$ vim +143 filename.txt
最初の指定されたものにマッチングしたところに行きます.
$ vim +/search-term filename.txt
読み取り専用モードでファイルを開きます.
$ vim -R /etc/passwd

8. ファイルの差異の出力(diff)

Ignore white space while comparing.
比較するときに空白を無視します.
$ diff -w name_list.txt name_list_new.txt

9. ファイルの並び替え(sort)

ファイルを昇順にソートします.
$ sort names.txt
ファイルを降順でソートします.
$ sort -r names.txt
passwdを3番目のフィールドでソートします.
$ sort -t: -k 3n /etc/passwd | more

10. 環境変数の定義・リスト表示(export)

Oracle関連の環境変数を表示します.
$ export | grep ORACLE
環境変数をエクスポートします.
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0

11. 標準入力から生成したコマンドラインの実行(xargs)

すべてのイメージを外付けハードドライブにコピーします.
$ ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
システム内のすべてのjpgイメージを検索し、圧縮します.
$ find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
urllist.txtファイルに記載されているすべてのURLをダウンロードします.
$ cat url-list.txt | xargs wget –c

12. ファイルやディレクトリの情報の表示(ls)

ファイルサイズを人間が判読可能な形式(KB、MBなど)で表示します.
$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
最後の変更時刻に基づいてファイルを並び替えます(逆順).
$ ls -ltr
特殊文字によるファイルを視覚的に分類します.
$ ls -F

13. 作業ディレクトリの出力(pwd)

$ pwd

14. ディレクトリの切り替え(cd)

"shopt s cdspell"は自動的に誤ったディレクトリ名を修正できます.

15. (gzip)

*.gz圧縮ファイルを作成します
$ gzip test.txt
*.gzファイルを解凍します.
$ gzip -d test.txt.gz
圧縮ファイルの圧縮率の表示します.
$ gzip -l *.gz