シェルとは、命令を読み込んでコマンドを実行するプログラムです。 ほとんどのコマンドは、シェルの外部にあるプログラムを呼び出します。 コマンドが使えるかどうかはマシンや環境に依存するので、 あるマシンで使えたコマンドが別のマシンでは使えないという状況が多々あるということに注意してください。 以下に、基本的なコマンドを抜粋しておくので、参考にしてください。 実際に実行する際には、引数を適切に与える必要があります。 引数を渡すには、空白区切りでコマンド名に続けて入力します。
プログラムを強制的に終了させるには、『[Control]-c
』とタイプします。
『[Control]-z
』だと、プログラムは中断されますが、終了しません。
mkdir |
ディレクトリを作る。 |
cp |
ファイルをコピーする。 |
mv |
ファイルの名前を変更したり、ファイルを移動したりする。 |
rm |
ファイルを削除する。 |
rmdir |
ディレクトリを削除する。ディレクトリの中身は空でなければならない。 |
cd |
現在のディレクトリを変更する。 |
ls |
ディレクトリの中身をリストアップする。 |
cat |
ファイルの内容を表示する。 |
less |
ファイルの内容を見易く表示する。 |
w3m |
ウェブページを表示する。ファイルの内容を見易く表示する。 |
man |
コマンドのマニュアルをless を使って表示する。
Cの関数の説明を見ることもできる。 |
echo |
引数を表示する。 |
date |
現在の時刻を表示する。 |
tee |
入力をファイルに保存しつつ表示する。 |
diff |
2つのファイルの違いを表示する。 |
grep |
特定のパターンが含まれる行をファイルから抽出し、表示する。 |
ed |
テキストファイルを編集する。 |
vi |
視覚的なテキストエディッタを起動する。中でed のコマンドが使える。 |
sed |
入力をフィルタして出力する。 |
sort |
入力をソートして出力する。 |
wc |
テキストファイルの文字数を数える。 |
time |
コマンドの実行時間を測定する。 |
ps |
実行中のプロセスを表示する。 |
top |
プロセスの実行状況をリアルタイムに表示する。 |
kill |
実行中のプロセスを停止させる。 |
cc |
Cのコードをコンパイルする。 |
zip |
ZIPアーカイブを作る。 |
unzip |
ZIPアーカイブを解凍する。 |
grep
やsort
では、
引数でファイル名を指定した場合には、そのファイルの内容に対して、
指定しなかった場合には、標準入力に対して操作が実行されます。
テキストを操作するコマンドの多くは、このような挙動をするように設計されています。
コマンド名として絶対パスまたは相対パスでプログラムを指定すれば、
任意のプログラムを実行させることができます。
ただし、現在のディレクトリにあるプログラムを指定するときには、
頭に「./
」をつけなければなりません。
コマンドと引数のみの簡単な命令以外に、シェルでよく使う構文を紹介します。 構文の構成要素を赤く表示しておくので、適当に応用してください。 デバッグ中に何度も同じ入力をする場合や、 入力や出力のサイズが大きい場合に便利です。
input.txt
の内容を入力として、
./prog
を実行する。
./prog arg < input.txt
./prog
を実行し、その出力をoutput.txt
に書き込む。
(output.txt
が実行前から存在する場合、その内容は失われる。)
./prog arg > output.txt
./prog
を実行し、その出力をlog.txt
の末尾に付け足す。
./prog arg >> log.txt
cc
を実行し、そのエラー出力をerror.txt
に書き込む。
cc -Wall -o prog prog.c 2> error.txt
input.txt
をgrep
し、
その出力を入力として、./prog
を実行する。
grep 'something' input.txt | ./prog
以上で構文の紹介は終わりですが、
競合しない構文は複数同時に使用することもできます。
この場合、「|
」は「>
」や「<
」
よりも結合力が弱いものとして解釈されます。
例えば、以下の命令は、input.txt
を入力として、./prog
を実行し、
その出力をソートしてoutput.txt
に保存します。
./prog arg < input.txt | sort -c > output.txt
また、「|
」は多段に実行することもできます。
以下では、./prog
の出力をソートし、重複を省いた上で行数を数えます。
./prog arg | sort | uniq | wc -l