UNIX誕生とともに搭載されていたシェルBourne ShellをUNIX/LinuxにおけるオープンソースプロジェクトGNUが改良したのがBourne-again Shellです。
コマンドとしてのbourne SHellはsh、Bourne-Again SHellはbashです。
bashも多くのUNIX/Linuxに標準でインストールされ、shとbashがある場合でも、そのほとんどは、shのalias(別名)としてbashが割り当てられています。
UNIX/Linuxにはいくつかの種類のシェルが実装されていてユーザーが切り替えることができることも珍しくありませんが、ここではbashについて書きます。
UNIX/Linux環境があって下記の3つを知っていれば、仮に初心者でもすぐに始められます。
キーボードからの入力方法
ログイン/ログアウトと端末のシャットダウン
2~3個のコマンドとhelpオプション、man/info/helpコマンドの使い方
UNIX/Linuxは、シェルやコマンド含めてman、info、helpコマンド、各コマンドのhelpオプションと、これでもかというくらいそのシステム上には豊富な情報があるのでコマンド(名)さえ知っていれば仮に豊富なコマンドラインオプションがあったとしても情報には事欠きません。
$ set -o vi
$ set -o emacs
bashでコマンドラインに入力をする場合にvi (vim)モード/emacsモードの2種類あり、デフォルト(既定)ではemacsモードで変更するには、このようにします。
viを使ったことがない場合、とりあえずコマンドライン操作は、既定のemacsモードの方が無難です。
コマンドにはシェル組み込みコマンドとシステム必須コマンド、GNUコマンドを含むその他のコマンドなどがありますが、普段その違いを意識して利用することはあまりありません。
(例) :
login :
password :
シェルにログインする際には、普通そこに表示される何らかの入力を促すアナウンスに従って、アカウント名(ユーザー名)とパスフレーズ(パスワード)を入力します。
$
正しく入力されるとシェルプロンプトが表示されます。
ちなみにログイン中の人を確認するには[who]と入力して[Enter]
$ who * bashに誰?って聞いてみると教えてくれる
自分が誰か(なんと言うユーザー名でログインしているか)を調べるには(スペースを入れずに)[whoami]と入力して[Enter]を押します。
$ whoami * bashに私は誰?って聞いてみると教えてくれる
$ logout
ログアウトするには、[logout]と入力し、[Enter]を押します。
もし、下記のようにログインしたシェル(ログインシェル)のシェルプロンプトから更にbashを立ち上げた(サブシェルの)場合、
$ bash
$ ←実は違うbash(サブシェル)のプロンプト
* csh/tcshならプロンプトが%になりわかりやすい
[exit]コマンドを入力して終了すると、呼び出し元のシェルに戻るので
そこで[logout]と入力し[Enter]を押すと再度ログイン画面が表示されます。
$ bash
$ exit
exit
$ logout
[logout]は、席を離れる際などに安全のためにも行いますが、端末の電源を落とす場合には、[shutdown]コマンドを使用します。
$ shutdown
再起動など[shutdown]にはオプションとなるオプションスイッチと場合によってコマンドライン引数(コマンドライン入力の際にコマンドと一緒に渡す何らかの値)があります。
コマンドには、オプション必須含めオプション指定できるものがあり、
$ gcc -c -o foo ←複数ある場合それぞれハイフン必須
$ ls -alF ←複数ある場合ハイフン1つに複数オプション指定可
$ ar crsv ... ←ハイフン不要
$ tcsh --version ←ハイフン2つ
のようなケースがあり、例えばlsの場合には、それぞれのオプションに[-]ハイフンを付けても可だったりしますし、[-]ハイフン2つというのは、実はオプションなしという意味なので往々にしてコマンドのバージョンやヘルプなどの情報として使われたりするわけですが、あとはman/info/helpコマンドと入力補完機能、ディレクトリ操作、各ディレクトリにどんなファイルがあるかを眺めるlsコマンド、ファイル閲覧/作成編集/コピー/移動/削除とリダイレクト/ヒアドキュメント・標準入力/標準出力/標準エラー出力がわかれば、実にさまざまなことができるようになりますし、自然といろいろ試してみたくなると思います。
シェルスクリプトやシェル関数及び演算子や制御構造、はたまたパラメータ展開、時にbash設定ファイルや環境変数については関心が向いた時、必要になった時に調べればよいでしょう。