>> i's SQUARE >> UNIXのノウハウ >> 基本コマンド

UNIX基本コマンド




UNIXコマンドは約250ありますが、 ここでは一般的によく利用する基本コマンドの使い方を解説します。
たいていのコマンドには多数のオプションが用意されてますが、これも主なオプションだけ紹介します。

ls
今いるディクトリの中のファイルやディレクトリの情報を表示する
-l オプションで名前以外の詳細な情報を表示
-a オプションで、ファイルの先頭がピリオド「.」の隠しファイルも表示
-t オプションで最終更新日が新しい順に表示
-R オプションでサブディレクトリも再帰的に表示
-F オプションでディレクトリには「/」、実行可能ファイルは「*」をファイルの語尾に付けて表示
例)ls -alF
例)ls 2006*.txt

pwd
今いるディクトリの名前を表示する
例)pwd

cd
指定したディクトリへ移動する。 引数を指定しない場合はホームディレクトリ(ログインしたすぐのディレクトリ)に移動する
例)cd
例)cd .. 一つ上のディレクトリに移動
例)cd test testディレクトリに移動
例)cd ../../test 二つ上にあるtestディレクトリに移動
例)cd /home/tmp 絶対パス名を指定して移動

cat
ファイルの内容を表示
-n オプションで行番号を表示
例)cat -n ファイル名

more
less
ファイルの内容を画面単位で表示
スペースで次画面、[b]で前画面、「q」で表示を終了、「/str」文字列strの検索
例)more *.txt

head
ファイルの先頭の内容を表示

tail
ファイルの末尾の内容を表示
以下は log.txt ファイルの末尾100行を表示
例)tail -100 log.txt

mkdir
ディレクトリを新規に作成
以下は bin という名前のディレクトリを新規に作成
例)mkdir bin

rm
指定したファイルやディクトリを削除する
-i オプションで削除しても良いか確認
-r オプションでディレクトリを削除する場合にその下のファイルやサブディレクトリもすべて削除
aaa.txt のファイルを削除
例)rm aaa.txt
ファイルを全て削除
例)rm *
tmpディレクトリを削除
例)rm -r tmp

cp
指定したファイルやディレクトリをコピー
-i オプションでコピー先に同名のファイルがある場合に上書きするか確認
-r オプションでディレクトリの場合、ディレクトリの下のファイルも再帰的にコピー
aaa.txt というファイルを bbbディレクトリの下にコピー
例)cp aaa.txt bbb

mv
指定したファイルやディレクトリを移動する
-i オプションでコピー先に同名のファイルがある場合に上書きするか確認
aaa.txt というファイルを bbb.txt というファイル名に変更
例)mv aaa.txt bbb.txt
aaa.txt というファイルを bbbディレクトリの下に移動
例)mv aaa.txt bbb

chmod
UNIXではそれぞれのファイルやディレクトリに対してアクセス権が設定できます。 アクセス権は読み込み(read)、書き込み(write)、実行(execute)の3種類あります。
アクセス権を設定する対象は、所有者、所有者が所属するグループ、その他の利用者の3種類あります。 これとアクセス権を組合せたものを保護モードといいます。

保護モードは
ls -l
で確認できます。
drwxrwxr-x 3 p95011ji 505 Nov 21 05:05 Wnn
-rw-r--r-- 1 p95011ji 104 Nov 20 22:19 main.c
各行の最初の1文字がファイルの種類を表していて「d」はディレクトリ、 「-」はファイルです。
続く9文字でファイルのアクセス権を表してます。 この9文字の中で「-」となっているところはアクセスが禁止されていることを意味します。 所有者(u)、所有者が所属するグループ(g)、その他の利用者(o)の順番に 読み込み(r)、書込・削除(w)、実行(x)と並んでます。

[対象]
u そのファイルの所有者
g 所有者の所属するグループ
o その他のユーザー
a ugoの3文字全てを指定したのと同じ
[許可/禁止]
+ アクセス権を追加
- アクセス権を削除
[アクセス権]
r 読み取り許可
w 書込み・削除許可
x 実行許可
s スーパーバイザモード許可


aaa.txt というファイルを 他のユーザーが読み書きできなくする
例)chmod go-rx aaa.txt

aaa.sh というファイルを スーパーバイザ・モードにする
例)chmod a+s aaa.sh
スーパーバイザ・モードは、例えば、aaa.shが得点を記録するゲームの場合、 ゲームの記録ファイル(test.log)は他のユーザーが書き込みできない状態にしてて aaa.shからはtest.logに書込みができるようにしたい場合などに利用します。

grep
文字列の検索
-n オプションで指定した文字列を含む行番号も表示
-i オプションで大文字・小文字を区別せずに検索
-l オプション一致した文字列を含むファイル名だけを表示
すべてのCソースファイルから 「break」を含んでいる行を検索して行番号付で表示する
例)grep -n break *.c

wc
ファイルの中の行数、単語数、文字数およびバイト数を表示
-l オプションで行数を表示
-c オプションで文字列を表示
readme.txt というファイルの行数と文字列を調べる
例)wc -lc readme.txt

date
現在時刻を表示する
またスーパーユーザーの場合はシステム時刻を変更する事も可能
例)date 1815 システム時刻を午後6時15分に設定

who
finger
引数なしでログイン中の利用者名を表示
以下はp95011jiユーザーの詳細情報を表示
例)finger p95011ji

ps
今行われているプロセスに関する情報を表示
-e オプションで環境も表示
-g オプションで全部のプロセスを表示
-r オプションで実行中のプロセスだけを表示

今実行されているすべてのプロセスを詳しく表示
例)ps -ux

kill
プロセスの実行を強制終了
終了させたいPIDを「ps」で調べて「kill」で終了させる
例)kill 4023

fg
「Ctrl+z」でフォアグランドジョブを一時停止したジョブを再開
バックグラウンドで再開する場合は「bg」
再開させたいPIDは「jobs」で調べる
全てのバックグラウンドJOBを再開したい場合はPIDに「%」と入力する
例)bg %

df
ディクス容量・使用状況を調べる
-k オプションでキロ単位で出力
例)df -k /home

du
カレントディレクトリ以下の使用容量を調べる
-k オプションでキロ単位で出力
例)du -k

man
マニュアルからコマンドを調べる
以下は ls コマンドのマニュアルを見たい場合
例)man ls


◆その他

画面をクリアーする
% clear

直前に実行したコマンドを再度実行する
% !!

2つ前に実行したコマンドを再度実行する
% !-2

daではじまる最新のコマンドを再度実行する
% !da

一つ前に実行したコマンドを文字列単位で置換する
% ^対象文字^置換文字
例えば「ls」と打つつもりが「la」と打ってしまった場合
% ^a^s
と打てば良い

バックスペースキーを使用できるようにする
% stty erase ^H

カレントディレクトリのファイル末尾.jpgを全て.jpegに変更する
% foreach fn (*.jpg)
% mv $fn $fn:s/.jpg/.jpeg/
% end

aaaではじまる名前のファイルをカレントディレクトリから探す
% find . -name aaa\*

24時間以内に作成されたファイルをカレントディレクトリから探す
% find . -mtime 1

ファイルaaaとbbbを結合してcccを作成する
% cat aaa bbb > ccc


喜んで行ない、そして行なったことを喜べる人は幸福である。
by ゲーテ