UNIX のコマンドの覚え書きを書いておきます。よく使うものを中心に使い方とそのヒントを思いついたままに書きました。極々基本的なコマンドのみです。FreeBSDでもLinuxでも共通だと思います。shellによっては動かないものもあります。間違っていたらご指摘下さい。
ls
MS-DOS のdir コマンドと似ています。カレントディレクトリのファイルやディレクトリが羅列されます。ただし、ls だけでは.(ピリオド゙)で始まるファイルやディレクトリは無視されます。また、lsだけでは、ファイルとディレクトリの区別がつきません。ですから、ls -al として属性も含めて表示した方が分かりやすいでしょう。
例: % ls -al total 1662 drwxr-xr-x 7 masao wheel 512 Mar 6 10:33 . drwxr-xr-x 4 root wheel 512 Jul 17 1997 .. drwxr-xr-x 5 masao wheel 512 Feb 26 20:22 .AppleDesktop drwxr-xr-x 2 masao wheel 512 Feb 24 12:58 .AppleDouble -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 632 Mar 6 00:15 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 3 masao wheel 512 Feb 26 20:22 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core drwxr-xr-x 3 root wheel 512 Oct 4 13:19 tmp
pwd
今自分が居るディレクトリ(カレントディレクトリ)を示します。ディレクトリの深い階層に入り、迷子になったときによく使います。
例: % pwd /home/masao
cd
Change Directory コマンドで、カレントディレクトリを移ります。なお、../は上位ディレクトリを、./は同位ディレクトリを表します。また、cd ..で上位ディレクトリに移動、cd / でルートディレクトリに移動します。
例: % pwd /home/masao % ls -al total 1662 drwxr-xr-x 7 masao wheel 512 Mar 6 10:33 . drwxr-xr-x 4 root wheel 512 Jul 17 1997 .. drwxr-xr-x 5 masao wheel 512 Feb 26 20:22 .AppleDesktop drwxr-xr-x 2 masao wheel 512 Feb 24 12:58 .AppleDouble -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 632 Mar 6 00:15 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 3 masao wheel 512 Feb 26 20:22 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core drwxr-xr-x 3 root wheel 512 Oct 4 13:19 tmp % cd tmp % pwd /home/masao/tmp % cd .. % pwd /home/masao % cd ../atsuko % pwd /home/atsuko
cp
コピーコマンドです。-R を付けるとディレクトリを中身ごとコピーできます。
書式: cp [copy元のdirectory/file] [copy先のdirectory/file] 例: % cp -R masao masao2
mv
moveコマンドです。-R を付けるとディレクトリを中身ごと移動できます。
書式: cp [移動元のdirectory/file] [移動先のdirectory/file] 例1: % mv masao masao2 masaoというファイルがmasao2というファイル名に換わります。 例2: % mv masao /home/masao/ masaoというファイルが、/home/masao ディレクトリに移動します。
rm
remove コマンドです。ファイルを削除するときに使用します。シンボリックリンクを削除するときもこのコマンドを使います。オプションに -R を付けるとディレクトリを中身ごと削除できます(rmdirでは中身ごと削除できません)。
% ls -al total 1660 drwxr-xr-x 5 masao wheel 512 Mar 11 15:39 . drwxr-xr-x 4 root wheel 512 Jul 17 1997 .. -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core drwxr-xr-x 2 masao wheel 512 Mar 11 15:39 tmp % rm -R tmp % ls -al total 1659 drwxr-xr-x 4 masao wheel 512 Mar 11 15:47 . drwxr-xr-x 4 root wheel 512 Jul 17 1997 .. -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core
rmdir
remove directory コマンドです。ディレクトリを削除するときに使用します。ディレクトリがemptyでない場合は削除できません。その場合はrmコマンドを使います。
touch
ファイルを作成する時に使用します。
例: % ls Network Trash Folder public_html sysinstall.core % touch tmp % ls Network Trash Folder sysinstall.core public_html tmp
mkdir
make directory コマンドです。ディレクトリを作成します。
% mkdir tmp
chown
change owner コマンドです。ファイルやディレクトリの所有者を変更します。
書式: chown [owner] [file/directory] [file/directory]..... 例: # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwxrwxrwx 1 atsuko masao 0 Mar 11 15:57 tmp # chown masao tmp # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwxrwxrwx 1 masao masao 0 Mar 11 15:57 tmp
chgrp
change group コマンドです。ファイルやディレクトリの属するグループを変更します。
書式: chgrp [group] [file/directory] [file/directory]..... 例: # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwxrwxrwx 1 atsuko masao 0 Mar 11 15:57 tmp # chgrp atsuko tmp # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwxrwxrwx 1 atsuko atsuko 0 Mar 11 15:57 tmp
chmod
change mode コマンドです。ファイルやディレクトリの許可属性(permission)を変更します。
permissionはrwxで表されます。それぞれ、r=読みとり可能、w=書き込み可能、x=実行可能を表しています。rwxの組み合わせが左からowner、group、othersの順で表現されます(最初の一桁はディレクトリか否かを表す)。ですから、-rwxr-xr-- はownerは読みとり・書き込み・実行可能、groupに属するユーザーは読みとり・実行可能、それ以外のユーザーは読みとりのみ可能という意味になります。このrwxを3ビット(2進数3桁)で表現すると、それぞれrwx = 22+21+20=7, r-x = 22+20=5, r-- = 22=4, すなわち754ということになります。このpermissonを変えるのがchmodコマンドです。
例: # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwxrwxrwx 1 masao masao 0 Mar 11 15:57 tmp # chmod 711 tmp # ls -l total 1657 -rw-r--r-- 1 masao wheel 466 Jul 17 1997 .cshrc -rw------- 1 masao wheel 625 Mar 9 18:07 .history -rw-r--r-- 1 masao wheel 619 Jul 17 1997 .login -rw-r--r-- 1 masao wheel 290 Jul 17 1997 .mailrc -rw-r--r-- 1 masao wheel 1203 Jul 17 1997 .profile -rw------- 1 masao wheel 257 Jul 17 1997 .rhosts drwx---rwx 3 masao wheel 512 Feb 26 20:32 Network Trash Folder drwxr-xr-x 2 masao wheel 512 Mar 6 13:36 public_html -rw------- 1 root wheel 1675264 Jul 27 1997 sysinstall.core -rwx--x--x 1 masao masao 0 Mar 11 15:57 tmp
df
disk free コマンド。diskの空き容量をパーティションごとに表します。
例:
% df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0a 31775 21574 7659 74% / /dev/wd0s1f 3555390 332186 2938773 10% /usr /dev/wd0s1e 29727 13918 13431 51% /var procfs 4 4 0 100% /proc
du
disk used コマンドです。カレントディレクトリのディレクトリ毎の使用量を表示します。-a を付けるとすべてのディレクトリ/ファイルの使用量が表示されます。
% ls Network Trash Folder sysinstall.core public_html tmp % du -a 1 ./.cshrc 1 ./.login 1 ./.mailrc 2 ./.profile 1 ./.rhosts 1 ./.history 1648 ./sysinstall.core 0 ./tmp 1 ./public_html 1 ./Network Trash Folder/.AppleDouble/.Parent 1 ./Network Trash Folder/.AppleDouble/Trash Can Usage Map 3 ./Network Trash Folder/.AppleDouble 0 ./Network Trash Folder/Trash Can Usage Map 4 ./Network Trash Folder 1661 .
find
ファイルやディレクトリの場所を捜すコマンドです。
書式: find [directory] -name [file/directory] -print 例: # find /usr -name www -print /usr/local/www /usr ディレクトリ以下で、wwwという名前のファイル・ディレクトリを表示します。
which
プログラムの場所を捜すコマンドです。
書式: which [program] 例: # which perl /usr/bin/perl
what
プログラムの素性を知るためのコマンドです。バージョン情報を知るときなどに使用します。shellによっては動きません。
書式: what [program(full path)] 例: # what /usr/sbin/named
dd
ディスクイメージを作成します。同じ容量のHDDを2つ用意するこてで、HDD丸ごとのコピーが作れます。僕はこれをハードディスク障害のためのバックアップとして週に1度、cronで定期的にやらせています。詳しくは、man dd で。
例(FreeBSD): # dd if=/dev/wd0 of=/dev/wd1 bs=63b ----- 例(Linux): # dd if=/dev/hda of=/dev/hdb bs=63b