UNIX/LINUXコマンドの使用法
卒研室のLinuxマシンでのUNIX/Linuxコマンドの基本的な使い方を説明します。
パスについて
Unix/Linuxコマンドを扱う上で、PATH(パス)という概念を知る必要があります。 Unix/Linuxのディレクトリ(Windowsでいうところのフォルダ)はツリー構造 をしており、最上位にあるもをのroot(ルート)と呼びます。ルートは 記号、"/"で表します。この下に様々なディレクトリ、ファイルが収録さ れます。ツリー構造の模式図を下図に示します。
ディレクトリを四角で、ファイルを楕円であらわしています。
相対パス
相対パスとは自分の位置を中心に他がどのように見えるかを示すものです。自分の現在地が"USER2"だとします。そうすると、その下にある "Mail"、"rpm"などはそのままの名前で見えます。 "USER2"の下の"work"の下の"file1"は、 "work/file1"となります。ディレクトリやファイルの区切り記号は "/"(スラッシュ)です。"USER2"より二つ上にある "home"は"../../home"となります。".."は一つ上を意味する特別なディレクトリです。では、"local"はどのように見えるでしょうか?答えは"../../../usr/local"です。
"USER2"から見て、"Mail"や"rpm"などは そのままの名前で見えると言いましたが、"./Mail"や "./rpm"としても構いません。"."は現在の位置を示す 特別なディレクトリです。
絶対パス
ルートからそのファイル/ディレクトリ名までの過程を全て記述するものです。"USER2"の下の"work"の下の"file1"は、絶対パスで 記述すると、"/home/sotsuken_00/USER2/work/file1"となります。
ホームディレクトリ
ユーザーがログイン後に入るディレクトリをホームデイレクトリと言います。(卒研生のみなさんのホームデイレクトリは/home/sotsuken_xx/User-IDです。 sotsuken_xxのxxには西暦の下二桁がはいります。User-IDにはログイン名が入ります。)
コマンドの記述法
コマンド名を"command"とします。単独で実行するときは次のようにキーボードからターミナル上に"command"とタイプし、最後にリターンキーを押します。
command
"$"はプロンプトで入力する必要はありません。
コマンドにオプション(ここでは"-o"とした)を付けて実行する場合は次のようにコマンドとオプションの間に半角スペースを一つ以上入れて実行します。
command -o
オプションに引数(ここでは"OARG"とした)を与えることができる場合は
command -o OARG
あるいは
command -oOARG
とします。複数のオプション(ここでは"-o"と"-p"した)を指定 できる場合は
command -o -p
あるいは
command -op
とします。オプションの指定方法はコマンドによって異なるので、詳細はコマンドごとにマニュアルで確認してください。
コマンドが引数(ここでは"CARG"とした)を取る場合は、
command CARG
とします。やはりコマンドと引数の間に半角スペースが一つ以上必要です。
コマンドが引数(ここでは"CARG"とした)とオプション(ここでは "-o"とした)を取る場合は、
command CARG -o
あるいは、
command -o CARG
コマンドが引数(ここでは"CARG"とした)とオプション(ここでは "-o"とした)を取り、オプションも引数(ここでは"OARG"とした )を取る場合は
command CARG -o OARG
あるいは、
command CARG -oOARG
あるいは、
command -o OARG CARG
あるいは、
command -oOARG CARG
とします。引数やオプションの指定方法はコマンドによって異なるので、詳細はコマンドごとにマニュアルで確認してください。
アクセス権(パーミッション)について
Unix/Linuxではファイルやディレクトリに対してアクセス権(パーミッション)を設定してアクセス制限することができます。アクセス権(パーミッション)には次の3種類があります。
種類 | 記号 | 内容 | |
---|---|---|---|
ファイル | ディレクトリ | ||
読む(read) | r | ファイルの内容を参照可 | ディレクトリの内容を参照可 |
書く(write) | w | ファイルに書込み可 | ディレクトリの名前変更、削除可 |
ディレクトリ内で、ファイルやディレクトリの作成、名前変更、削除可 | |||
実行する(excute) | x | ファイルを実行可 | ディレクトリに移動可 |
パーミッションがなければ上記の内容は不可になります。ファイルが実行可になっ ていても、そのファイルが実行形式でなければ実行できませんので注意してください。
Unix/Linuxでは、ファイルやディレクトリのパーミッションを user(ユーザ)、group(グループ)、other(その他)毎に設定することが可能です。それぞれの意味は下記の通りです。
種類 | 記号 | 内容 |
---|---|---|
user | u | ファイルやディレクトリの所有者 |
group | g | 複数のユーザーからなるグループ |
other | o | それ以外 |
よく使うUNIXコマンド
使用する頻度が高いと思われるコマンドを示します。
ファイル/ディレクトリ操作
コマンド名 | 内容 |
---|---|
pwd | カレントディレクトリの表示 |
ls | ファイルとディレクトリの表示 |
cd | ディレクトリ間の移動 |
touch | ファイルのアクセス時刻と修正時刻の変更 |
rm | ファイルまたはディレクトリの削除 |
mkdir | 新規ディレクトリの作成 |
rmdir | 空のディレクトリの削除 |
mv | ファイルまたはディレクトリ名の変更 |
cp | ファイルまたはディレクトリを複製 |
cat | テキストファイルの内容の表示 |
more | テキストファイルの内容の1画面毎の表示 |
less | テキストファイルの内容の1画面毎の表示(moreの高機能版) |
head | テキストファイルの内容の先頭数行を表示 |
tail | テキストファイルの内容の末尾数行を表示 |
chmod | ファイルまたはディレクトリのアクセス権の変更 |
grep | 文字列の検索 |
wc | テキストファイルのバイト数、単語数、行数の表示 |
find | ファイルやディレクトリの検索 |
プロセス操作
コマンド名 | 内容 |
---|---|
ps | プロセスの状態を表示 |
kill | プロセスの停止 |
アーカイブ
コマンド名 | 内容 |
---|---|
gzip | ファイルの圧縮、解凍 |
bzip2 | ファイルの圧縮、解凍 |
tar | ファイルやディレクトリのアーカイブ |
ユーティリティ
コマンド名 | 内容 |
---|---|
man | オンラインマニュアルページの整形表示 |
jman | manの日本語対応版(Vine Linuxの独自コマンド) |
who | 現在のログオン情報の表示 |
date | 現在時刻の表示 |
echo | 与えられた文字列の表示 |
ネットワーク
コマンド名 | 内容 |
---|---|
ftp | ネットワークでのファイル転送 |
sftp | セキュアなネットワークでのファイル転送 |
telnet | リモートログイン |
rlogin | リモートログイン |
slogin | セキュアなリモートログイン |
rsh | リモートシェル |
ssh | セキュアなリモートシェル |
MS-DOSファイル操作
WindowsでフォーマットしたMS-DOS形式のfloppy diskを 使用したい場合は以下のコマンドを使用してください。
コマンド使用法 | 内容 |
---|---|
mdir a: | floppy disk上のファイルの一覧 |
mcopy file.txt a: | ファイル"file.txt"のfloppy diskへのコピー |
mcopy a:file.txt . | floppy disk上のファイル"file.txt"の読み込み |
mdel a:file.txt | floppy disk上のファイル"file.txt"の消去 |
mmd a:dir | floppy disk上でのディレクトリ"dir"の作成 |
mcd a:dir | ディレクトリ"dir"への移動 |
mdeltree a:dir | ディレクトリ"dir"の消去 |
コマンドライン編集機能
コマンドライン上で以下のキー操作が可能です。
キー操作 | 内容 |
---|---|
Ctrl+p | 以前のコマンドを逆方向に順番に呼び出し |
Ctrl+n | 以前のコマンドを順方向に順番に呼び出し |
Ctrl+b | カーソルを左側に移動 |
Ctrl+f | カーソルを右側に移動 |
Ctrl+a | 先頭にカーソルを移動 |
Ctrl+e | 末尾にカーソルを移動 |
Ctrl+d | カーソル上の1文字を削除 |
Ctrl+k | カーソル上から末尾までを削除 |
Ctrl+y | Ctrl+kで削除した部分を貼付け |
Ctrl+r | 以前のコマンドを逆方向に検索 |
Ctrl+c | 入力したコマンドの取り消し |
TABあるいはESC | 入力文字の補完および選択 |
Ctrl+aとはコントロールキー(Ctrl)を押しながら、同時に"a"キーを押すというこ とです。ESCはエスケイプキー(Esc)です。TABはタブキー(Tab)です
パターンマッチ(ワイルドカード)
文字列の一部が一致するファイルを取り出したいときなどに、 以下に示す方法が使用できます。
表記 | 意味 | 使用例 | |
---|---|---|---|
表記 | 一致文字列例 | ||
* | 0文字以上の任意の文字列 | a* | a, ab, a1X, ... |
? | 任意の1文字 | a? | aa, aB, a1, ... |
[文字列] | 「文字列」に含まれる文字のどれか1つ | [abc]* | a1, b23, c4K6, ... |
[^文字列] | 「文字列」に含まれる文字以外のどれか1つ | [abc]? | d1, zU, 34, ... |
[文字1-文字2] | 「文字1」から「文字2」の間に含まれる文字どれか1つ | [A-Z]? | A1, D3, ZZ, ... |
[^文字1-文字2] | 「文字1」から「文字2」の間に含まれる文字以外のどれか1つ | [A-Z]* | A, Dz2, ABC2, ... |
{文字列1,文字列2,...} | 「文字列1」、「文字列2」、...のいずれか | {abc,def}.txt | abc.txt, def.txt |
また、「~」はホームディレクトリに、 「~USER」はUSERのホームディレクトリに一致します。
バックグラウンド
明示的に終了処理をしなければならないコマンドなどをターミナル(コマンドライン)から実行した場合、実行したコマンド(プロセス)が終了するまで、そのターミナルが使えなくなります。ターミナルも同時に使用したい場合は 次のようにコマンドの後ろに"&"(アンパサンド)をつけてバックグラウン ドで実行します。
COMMAND &
リダイレクトとパイプ
ターミナル(コマンドライン)上で実行されるコマンドは、以下の入出力機能を 持っています。
入出力機能 | 対象 | 機能 |
---|---|---|
標準入力 | 一般にキーボード | 入力された内容をコマンドに渡す |
標準出力 | 一般に画面 | コマンドの実行結果を出力する |
標準エラー出力 | 一般に画面 | コマンド実行時のエラーを出力する |
デフォルトの入出力対象は上記の通りですが、これを変更することができます。 これをリダイレクトと言います。主なものを下記に示します。
記号 | 機能 |
---|---|
? | 標準入力をリダイレクト |
? | 標準出力を上書きリダイレクト |
?? | 標準出力を追加リダイレクト |
?& | 標準出力および標準エラーを上書きリダイレクト |
パイプ"|"はコマンドの標準出力や標準エラー出力を 次のコマンドの標準入力へ渡します。
記号 | 機能 |
---|---|
| | 標準出力を標準入力へ |
|& | 標準出力と標準エラー出力を標準入力へ |
コマンド連続実行
以下に示す記号で複数のコマンドを区切って記述すれば、 コマンドを連続実行できます。
記号 | 機能 |
---|---|
; | 最初のコマンド実行後、次のコマンドを実行 |
&& | 最初のコマンドが正常に実行された場合に、次のコマンドを実行 |
|| | 最初のコマンドが正常に実行されなかった場合に、次のコマンドを実行 |
サブシェル
コマンドラインでコマンドを実行するときには、 「シェル」というものを介して行っています。コマンドを"()"内に 記述して実行すると、このコマンドは現在のシェルとは別のシェルで実行されます。
コマンド展開
コマンドの引数としてバッククォートで囲まれたコマンドを与えると、 囲まれた部分のコマンドがまず実行されます。 その標準出力へ書き出された内容が囲まれた部分と置き換わり、 元のコマンドへ渡されます。
特殊文字のエスケイプ
これまで示して来たように、コマンドライン上で使用する文字には、 "*"や"?"などの特殊な機能を持った記号があります。 以下の方法でこれらの機能を無視(エスケイプ)して、 そのままコマンドに渡すことができるようにすることができます。
- 特殊文字の前にバックスラッシュ「\」を付ける。
- 特殊文字をシングルクォート「'」で囲む。
- 特殊文字をダブルクォート「"」で囲む。 ただし、「$」ではじまるシェル変数と、バッククォート「`」 はエスケイプされない。
こちらでUnix/Linuxコマンドの使い方を練習してみましょう。