====== zsh ======
シェルはUnix上でユーザが入力した文字列を__**コマンド(命令)**__として認識して実行してくれるアプリケーションである。
コマンドにはディレクトリやファイルを管理したり、プログラムや他のアプリケーションを起動するものなど様々ある。
大学の仮想端末では zsh というシェルにつながっており、普段は以下のような文字列が表示される。
roy{user}% ■
「''roy{user}%''」の部分(人によって異なる)を__**プロンプト**__といい、あなたがコマンドを入力するのを待っている状態である。\\
**以後、プロンプトは「''%''」のみで省略する。**
この状態のときコマンドを入力してEnter を押すことでコマンドが実行できる。
===== キー操作 =====
^ キー操作 ^ 機能 ^
| C-c | コマンドを強制終了する。 |
| C-d | シェルを強制終了する。 |
| C-z | コマンドを中断する(コマンド「''fg''」で再開)。 |
| C-a | カーソルを行頭に移動する。 |
| C-e | カーソルを行末に移動する。 |
| C-k | カーソルから文末までを削除する。 |
| Tab | コマンドを補完する。 |
| Up | 一つ前のコマンドを表示する。 |
| Down | 一つ後のコマンドを表示する。 |
===== 主なコマンド =====
|< 100% 5em - 12em >|
^ コマンド ^ 機能 ^ 由来の英語 ^
| ''ls'' | ファイル一覧を表示する。 | **l**i**s**t |
| ''pwd'' | カレントディレクトリを表示する。 | **p**rint **w**orking **d**irectory |
| ''cd'' | カレントディレクトリを移動する。 | **c**hange **d**irectory |
| ''mkdir'' | ディレクトリを作成する。 | **m**a**k**e **dir**ectory |
| ''rmdir'' | ディレクトリを削除する。 | **r**e**m**ove **dir**ectory |
| ''touch'' | ファイルの最終更新日時などを変更する。ファイルが無い場合は空ファイルを作成する。 | **touch** |
| ''rm'' | ファイルを削除する。 | **r**e**m**ove |
| ''mv'' | ファイルやディレクトリを移動する。 | **m**o**v**e |
| ''cp'' | ファイルをコピーする。 | **c**o**p**y |
| ''chmod'' | ファイルやディレクトリのモードを変更する。 | **ch**ange **mod**e |
| ''cat'' | ファイルの内容を出力する。 | **cat**enate |
| ''lv'' | ファイルの内容を閲覧する。 | |
コマンドにはオプションをつけることで付加的なことができるようになる。
コマンドやファイル名などを一々入力するのは面倒だが、はじめの数文字を入力して[Tab]キーを押すと残りを補完してくれる機能があるので便利である。
----
==== ls ====
^ コマンド ^ 機能 ^
| ''ls [オプション]'' | カレントディレクトリのファイル一覧を表示する。 |
| ''ls [オプション] ディレクトリ'' | ディレクトリ内のファイル一覧を表示する。 |
|< 100% 6em >|
^ オプション ^ 機能 ^
| ''-F'' | ファイル名の後ろにタイプ識別子(「''/''」はディレクトリ、「''*''」は実行可能なファイル、「''@''」はシンボリックリンク)を付けて分かりやすくする。 |
| ''-l'' | ファイルの所有者や更新日時などを詳細に表示する。 |
| ''-a'' | ドットファイルを含めて表示する。 |
「''ls -l''」の表示例
{{ :terminal:ls-l.png?nolink |「ls -l」の表示例}}
=== コマンド例(行頭の「%」は入力不要、「#」以下はコメントなので入力不要) ===
% ls # カレントディレクトリのファイル一覧
% ls ~/ # ホームディレクトリのファイル一覧
% ls ~/public_html # ディレクトリ ~/public_html のファイル一覧
% ls -F # カレントディレクトリのファイル一覧(分かりやすく)
% ls -l # カレントディレクトリのファイル一覧(詳細)
% ls -lF # オプション -l と -F の組み合わせ
----
==== pwd, cd ====
^ コマンド ^ 機能 ^
| ''pwd'' | カレントディレクトリを表示する。 |
| ''cd'' | カレントディレクトリをホームディレクトリに変更する。 |
| ''cd ディレクトリ'' | カレントディレクトリを指定したディレクトリに変更する。 |
| ''cd -'' | カレントディレクトリを一つ前にいたディレクトリに戻す。 |
=== コマンド例(行頭の「%」は入力不要、「#」以下はコメントなので入力不要) ===
% pwd # カレントディレクトリの確認
% cd ~/public_html # カレントディレクトリをディレクトリ ~/public_html に変更
% pwd # カレントディレクトリの確認
% cd # カレントディレクトリをホームディレクトリに変更
% pwd # カレントディレクトリの確認
% cd - # カレントディレクトリを一つ前にいたディレクトリ(~/public_html)に戻す
% pwd # カレントディレクトリの確認
----
==== mkdir, rmdir ====
^ コマンド ^ 機能 ^
| ''mkdir ディレクトリ'' | ディレクトリを作成する。すでにその名前のディレクトリがある場合はエラーになる。 |
| ''rmdir ディレクトリ'' | ディレクトリを削除する。削除するディレクトリ内にファイルが残っているとエラーになる。 |
=== コマンド例(行頭の「%」は入力不要、「#」以下はコメントなので入力不要) ===
% cd # カレントディレクトリをホームディレクトリに変更
% ls -F # ファイル一覧
% mkdir wareki # ディレクトリ wareki を作成
% ls -F # ファイル一覧で wareki が作成されたのを確認
% rmdir wareki # ディレクトリ wareki を削除
% ls -F # ファイル一覧で wareki が削除されたのを確認
----
==== touch, rm, mv, cp ====
|< 100% 15em >|
^ コマンド ^ 機能 ^
| ''touch ファイル'' | ファイルの最終更新日時などを変更する。ファイルが無い場合は空ファイルを作成する。 |
| ''rm ファイル'' | ファイルを削除する。 |
| ''rm -rf ディレクトリ'' | ディレクトリとディレクトリ内のファイルをまとめて削除する。 |
| ''mv ファイル1 ファイル2'' | ファイル1をファイル2に移動する(ファイル名変更)。 |
| ''mv ファイル群 ディレクトリ'' | ファイル群をディレクトリの中に移動する。 |
| ''cp ファイル1 ファイル2'' | ファイル1をファイル2にコピーする。 |
| ''cp ファイル群 ディレクトリ'' | ファイル群をディレクトリの中にコピーする。 |
* ''mv'' や ''cp'' ではファイルの上書きに注意しよう。
* ''rm'' では本当に削除してよいファイルか考えてから削除しよう。
=== コマンド例(行頭の「%」は入力不要、「#」以下はコメントなので入力不要) ===
% mkdir ~/wareki # ディレクトリ ~/wareki を作成
% cd ~/wareki # カレントディレクトリを ~/wareki に変更
% touch showa.txt # 空のファイル showa.txt を作成
% ls -F # ファイル一覧で showa.txt が作成されたのを確認
% mv showa.txt heisei.txt # ファイル showa.txt を heisei.txt に移動(ファイル名変更)
% ls -F # ファイル一覧でファイル名変更を確認
% cp heisei.txt reiwa.txt # ファイル heisei.txt を reiwa.txt にコピー
% ls -F # ファイル一覧でコピーを確認
% rm heisei.txt # ファイル heisei.txt を削除
% ls -F # ファイル heisei.txt が無いのを確認
% cd .. # 一つ上のディレクトリに移動
% rmdir wareki # ディレクトリ wareki を削除したいがファイルが残っているのでエラー
% rm -rf wareki # ディレクトリ wareki 内のファイルごと削除
% ls -F # ディレクトリ wareki が無いのを確認
----
==== chmod ====
^ コマンド ^ 機能 ^
| ''chmod モード ディレクトリ'' | ディレクトリのモードを変更する。 |
| ''chmod モード ファイル'' | ファイルのモードを変更する。 |
モードとは、ディレクトリやファイルのアクセス権(パーミッション)のことである。
あるファイルを誰でも実行可能にしたり、ファイルの所有者以外は読めなくしたりできる。
この講義では、作成した Ruby プログラムを実行可能にするために使用する。
----
==== cat, lv ====
^ コマンド ^ 機能 ^
| ''cat ファイル'' | ファイルの内容を出力する。出力を途中で止めるには C-c と操作する。 |
| ''lv ファイル'' | ファイルの内容を閲覧する。カーソルキーでスクロールし、[q]キーで終了する。 |
=== コマンド例(行頭の「%」は入力不要、「#」以下はコメントなので入力不要) ===
% cat /etc/hosts # ファイル /etc/hosts の内容をすべて出力
% lv /etc/hosts # ファイル /etc/hosts を閲覧
----