UNIX Command

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

TOP PAGE