IT pass HikiWiki - [Exp2008]コマンド解説ページ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

((<[Exp2008]スケジュール表・各回資料>))

{{toc}}

== UNIX コマンドに関する基礎知識

UNIX のコマンドはシステムにもよりますが最低 200-300 程度はあります. ある目的のために使えるコマンドは1つとは限りません. 個々のコマンドは大抵単純な動作をするものばかりですが, コマンドを組み合わせることでいろいろな目的に利用できるようになります. コマンドの組合せの工夫次第で, ある目的の操作が簡単に行えたりします. いきなり上手に組み合わせることはできなくても, 『こんなことができるのでは?』と想像力を豊かにしていろいろ試してみてください.

== コマンド入力の約束

以下にコマンド入力時に共通した約束を列挙します.

* 大文字小文字は区別する.

* コマンド入力の最後には, 必ずエンターキーを押す.

  エンターを押すことで, コマンド入力が終ったことをシェルに知らせます. おさないといくら待っても何もおきません.

もし引数 (オプションやファイル名) を指定する場合は,

* コマンドと引数の間には空白文字 (スペースかタブ) をいれる.

* 引数と引数の間にも空白文字 (スペースかタブ) をいれる.

== 引数の分類

コマンドには 1) 引数がいらないもの, 2) 引数を必要とするもの 3) 場合によって引数がいるものがあります. 引数を与える場合, 以下のものが考えられます.

* オプション (スイッチ)

  コマンドの動作を変化させるものです. 多くの場合 "-" (マイナス, ハイフン)に続く英文字で指定.

* ファイル名

  相対パスあるいは絶対パスで指定したファイルに対してなんらかの操作をする場合.

* 文字列

  以上 2 つに分類できないもの. 例えば, 日付やログイン名, 出力したい文字そのものなど.

== man についての予備知識

man は UNIX のコマンドマニュアルを表示するコマンドです. あるコマンドの動作, 引数の付け方の詳細は man を見るのが王道です. また一度は man 自身のマニュアルに目を通し, 少なくとも下記の事柄をチェックしておきましょう.

* man に限らず, 多くの UNIX の解説書で使われるコマンド書式の約束事が書かれています.

* コマンドの内容によって章 (section) が存在します. 例えば passwd(1) と passwd(5) はまったく異なる内容の説明です.

* マニュアルページは決まった構成で書かれています. ("名前", "書式", "説明"...) この構成を知っていると, 知りたいことがらを探すのに役立ちます.

== UNIX の代表的なコマンド一覧

UNIX のコマンドも, やはり実体はファイルです. これらは /bin, /usr/bin, /sbin などにあります. 以下に使用頻度の高いコマンドの一覧と意味, 簡単な使い方をあげます. 詳細な利用方法そのマニュアルを man コマンドで参照してください. なお, man で表示されるマニュアルは一定の書式, 約束事にしたがって書かれています. マニュアルページで使われている記号の意味等を知るためにも man コマンド自身のマニュアル (man man と打つ) に是非目を通してみてください.

# RT
コマンド名, 意味
adduser, 新規ユーザーを追加する
alias, コマンドに別名 (エイリアス) をつける
cat, ファイルの中身を標準出力へ表示する
cd, 現在のディレクトリ (カレントディレクトリ) を指定されたディレクトリに変更する
chmod, 指定されたファイルもしくはディレクトリのモードを変更する
chown, 指定されたファイルもしくはディレクトリの所有者や所有グループを変更する
cp, ファイルをコピーする
echo, 文字列を表示する
export, 環境変数として変数を設定する
less, 指定されたファイルを表示する
ls, ファイルやディレクトリの一覧を表示する
man, オンラインマニュアルを表示する  
mkdir, 指定された名前のディレクトリを作成する
more, 指定されたファイルを表示する
rm, ファイル(ディレクトリも含む)を削除する
rmdir, 指定されたディレクトリを削除する
passwd, 指定されたアカウントのパスワードを変更する
pwd, カレントディレクトリを表示する
set, 現在設定されている環境変数を一覧する
vipw, パスワードファイルである /etc/passwd と /etc/shadow を編集する
finger, ログインしているユーザの情報を表示する

=== man

* 書式:

$ man [コマンド]

* 解説:

  オンラインマニュアル表示コマンド. ほとんどのコマンドは日本語マニュアルが付属しているので, コマンドの使い方がわからない場合には引いてみると良いでしょう. 詳細は,

   $ man man

  を実行してみてください.

* 例:

  * ls コマンドのマニュアル表示:

   $ man ls

  *  host を含む man ファイルの表示:

   $ man -k host

=== ls

* 書式:

$ ls [オプション] [ディレクトリ]
$ ls [オプション] [ファイル]

* 解説:

  ファイルやディレクトリの一覧を表示します. 対象となるファイルやディレクトリを指定しない場合, 現在のディレクトリ(カレントディレクトリ)内の一覧が表示されます.

* 代表的なオプション

   # RT
   オプション, 効果
   -a, ファイル名が "." で始まる隠しファイルも表示する
   -c, 更新時刻順に並べて表示する
   -d, ディレクトリの属性を表示する
   -F, ディレクトリには "/" を、実行可能なファイルには "*" 又は "@" を付加表示する
   -l, パーミッションや持ち主などの詳細属性 (ファイルモード) も表示する
   -r, 逆順に並べて表示する
   -R, サブディレクトリ以下の内容も表示する
   -s, ファイルの大きさを表示する
   --color, 色つきで一覧を表示する

* 例:

  * ホームディレクトリ内の全ファイル & ディレクトリを詳細情報と共に表示:

   $ ls -la ~/

=== cat

* 書式:

$ cat [ファイル]

* 解説:

  ファイルの中身を標準出力へ表示します. ファイルの閲覧は勿論のこと, 他にも色々と利用可能なコマンドです.

* 例:

  * au (Sun Audio format) ファイルの再生:

   $ cat sound.au > /dev/audio

=== cd

* 書式:

$ cd [ディレクトリ]

* 解説:

  現在のディレクトリ (カレントディレクトリ) を, 指定されたディレクトリに変更します. 対象となるディレクトリを指定しない場合, ホームディレクトリが指定されたものと見なされます.

* 例:

  * ホームディレクトリへ移動する:

   $ cd

=== mkdir

* 書式:

$ mkdir [ディレクトリ]

* 解説:

  指定された名前のディレクトリを作成します.

* 例:

  * sample という名前のディレクトリを作成:

   $ mkdir sample

=== rm

* 書式:

$ rm [オプション] [ファイル (ディレクトリ)]

* 解説:

  ファイル (ディレクトリも含む) を削除します. このコマンドで削除されたものはほとんど元に戻せないため, 慎重に利用して下さい. (特に root)

* 代表的なオプション

   # RT
   オプション, 効果
   -i, 削除するかどうか確認する
   -f, 読み取り専用ファイルでも削除する. -i オプションを無効にする.
   -r, 中にあるファイルごと指定されたディレクトリを削除する.

* 例:

  * sample という名前のファイルを削除:

   $ rm sample

  * ディレクトリ /home をまるごと消去 (危険):

   $ rm -rf /home

=== rmdir

* 書式:

$ rmdir [ディレクトリ]

* 解説:

  指定されたディレクトリを削除します. ただし, 削除しようとするディレクトリは空でなければなりません. 中身ごとディレクトリを削除するには rm コマンドを使います.

* 例:

  * 空のディレクトリ sample を削除:

   $ rmdir sample

=== more

* 書式:

$ more [ファイル]

* 解説:

  指定されたファイルを表示します. cat と違い, 閲覧する上で便利な様に作られています. more の高機能版として less があります.

=== less

* 書式

$ less [ファイル]

* 解説:

  指定されたファイルを表示します. more ではできなかったバックスクロールに対応, 他にも gzip で圧縮されたファイルをそのまま見られるなど, いろいろな機能が付け加えられています.

* キーバインド

   # RT
   キー, 説明
   数字, 指定行に移動
   f SPACE ^V ^F, 1画面前進
   b ^B ESC-v, 1画面後退
   RETURN e j ^N ^E ^J, 1行前進
   y k ^Y ^P ^K, 1行後退
   d ^D, 半画面前進
   u ^U, 半画面後退
   r ^R ^L, 画面を再表示
   R, ファイルを読み直して再表示
   g < ESC-<, 先頭行に移動
   G > ESC->, 最終行に移動
   /[!*@]文字列, 文字列を前方検索 (正規表現も可能)
   /!文字列, 文字列を含まない行を検索
   /*文字列, コマンドラインで指定した全てのファイルを検索
   /@文字列, ファイルの先頭から検索
   ?[!*@]文字列, 文字列を後方検索. "/" と同じ機能を持つ
   n, 次検索
   N, nとは逆方向に次検索
   ESC-u, 検索にマッチした部分の反転表示を解除
   v, エディタを起動して現在表示しているファイル編集 (環境変数 EDITOR)
   = ^G :f, 現在位置の行数・バイト数・パーセンテージを表示
   h, 簡易ヘルプを表示
   V, バージョンを表示
   q :q :Q ZZ, lessを終了
   !(リターン), シェルを起動 (環境変数 SHELL)
   !コマンド, コマンドを実行
   !!, 直前の "!コマンド" を再実行

=== passwd

* 書式:

$ passwd [アカウント]

* 解説:

  指定されたアカウントのパスワードを変更します. 何も指定しないと自分のアカウントが指定されたとみなされます. 通常, 自分以外のアカウントのパスワードを変更できるのは root のみです. 詳しくは, ((<ログイン用パスワードの変更法>)) を参照して下さい.

=== pwd

* 書式:

$ pwd

* 解説:

  カレントディレクトリを表示します.

   $echo $cwd

  と同義です.

=== adduser

* 書式:

$ adduser [アカウント名]

* 解説:

  新規ユーザーを追加します. 詳細は, ((<adduser>)) を参照して下さい.

=== vipw

* 書式:

$ vipw

* 解説:

  パスワードファイルである /etc/passwd と /etc/shadow を編集します. 具体的には, オプション無しで passwd ファイル, -s オプションで shadow ファイルを編集します. 環境変数 EDITOR でエディタを明示的に指定していない場合, vi が起動します.

  vi で直にファイルを編集する場合と異なり, 安全のため, 複数の人間が同時に編集できないようファイルがロックされます, 具体的な vi の操作法は, ((<最低限 vi>)) を参照して下さい.

=== chmod

* 書式:

$ chmod [ファイル]
$ chmod [ディレクトリ]

* 解説:

  指定されたファイルもしくはディレクトリのモードを変更します. モードは属性あるいはパーミッションとも表現されます. 詳細は, ((<[4.2.2] 利用権限の設定 (ファイルモードの設定)>)) を参照して下さい.

=== chown

* 書式:

$ chown [アカウント名] [ファイル]
$ chown [アカウント名].[グループ名] [ファイル]
$ chown .[グループ名] [ファイル]

* 解説:

  指定されたファイルもしくはディレクトリの所有者や所有グループを変更します. グループ名を指定する場合は, 直前にピリオド "." を付けるのを忘れずに.

=== finger

* 書式:

$ finger [アカウント名]
$ finger

* 解説

  現在ログインしているユーザの情報の表示をします. 引数としてユーザ名を与えると, そのユーザの情報 (/etc/passwd に 書かれた内容) も合わせて表示します.

=== export

* 書式:

$ export [変数名]=[変数]

* 解説:

  環境変数として変数を設定します.

* 例:

  * LANG 環境変数を日本語に設定する:

   $ export LANG=ja_JP.ujis

  * PAGER 環境変数を less に設定する:

   $ export PAGER=less

=== echo

* 書式:

$ echo [文字列]

* 解説:

  文字列を表示します. 何も指定しないと標準出力 (モニタ) に表示されますが, リダイレクト ">" を付けることでファイルに書き込むこともできます.

* 例:

  * モニタに "Hello World" を表示:

   $ echo "Hello World"

  * test.txt ファイルに "Hello World" を書き込む:

   $ echo "Hello World" > test.txt

  * test.txt ファイルに "Hello World" を追記:

   $ echo "Hello World" >> test.txt

=== alias

* 書式:

$ alias [別名]='[コマンド名]'
$ alias

* 解説:

  コマンドに別名 (エイリアス) をつけます. 引数を与えないと, 現在設定されている別名が一覧されます.

* 例:

  * ls として 'ls --color' を設定:

   $ alias ls='ls --color'

=== set

* 書式:

$ set

* 解説:

  現在設定されている環境変数を一覧する.

=== cp

* 書式:

$ cp [コピー元ファイル名] [コピー先ファイル名]

* 解説:

  ファイルのコピーを行います.

* 例:

  * test1.txt を test2.txt にコピー:

   $ cp test1.txt test2.txt

== 参考資料

このページは ((<URL:http://www.ep.sci.hokudai.ac.jp/~inex/y2007/1019/command.html>)) を元に作成した.