シェルとは?
シェルとは、Linuxカーネルを操作するためのソフトウェアである。
プロンプト
下記のような画面をプロンプトと言う。
[ec2-user@ip-172-31-37-175 ~]$ echo hello linux!
hello linux!
- @より前 が ユーザ名(ec2-user)
- @より後 が ホスト名(ip-172-31-37-175)
である。
「$」は一般ユーザであることを、「#」はrootユーザであることを表す。
ログインシェル
EC2にTeratermなどでログインした場合、自動的にシェルが起動される。
ログイン時に最初に起動されるシェルのことを、ログインシェルと言う。
ログインシェルは $SHELL に格納されている。
$ echo $SHELL
/bin/bash
上記例では、/bin/bashがログインシェルである。
シェルの種類と切り替え
Linuxの各ディストリビューションでよく使われるシェルは下記の通り。
- sh…最も古くから存在するシェル。
- csh…shに比べて対話型操作における機能が向上している。
- bash…多くのLinuxのログインシェルとして使われている。十分な機能を有する。
- zsh…多機能なシェル。Macのログインシェルとして使われている。
シェルを切り替えるには、単純にシェル名をコマンド入力すれば良い。
% sh
sh-3.2$ bash
bash-3.2$ zsh
%
コマンドにおけるカーソル移動
カーソル移動は矢印キーでもできる。
しかし、次のようなショートカットを利用すると良い。
ショートカット | 説明 |
Control+F(Forward) | 1文字分、先へ(右へ) |
Control+B(Back) | 1文字分、後ろへ(左へ) |
Control+A | 行頭へ |
Control+E | 行末へ |
esc -> F | 1単語分、先へ(右へ) |
esc -> B | 1単語分、後ろへ(左へ) |
Control+h | 1文字削除 |
Control+w | 1単語削除 |
シェルにおける変数(シェル変数)
変数宣言時は$はなし、変数参照時は$をつけます。
$ var='hogehoge' # 変数宣言時は$不要です。
$ echo $var # $をつけると変数を参照します。
hogehoge
$ echo var # $をつけないと変数を参照してくれません。
var
- 変数宣言時に「=」の前後には「 」半角スペースはいれません。
- 値が半角スペースを含む場合は「'」で囲みます。
変数を上書きするときは、変数宣言のとき同様です。
$ echo $var
hogehoge
$ var=hogehogehoge
$ echo $var
hogehogehoge
Linuxの文字コード
OSの文字コードは環境変数 $LANG に格納されている。
$ echo $LANG
ja_JP.UTF-8
一昔前は EUC-JP が使われていたが、最近ではUTF-8が標準となっている。
AWSでの環境構築で手間取ることはありませんか?環境構築にはLinuxの基礎知識が不可欠だと悟り、私はこの本でLinuxを勉強し直しました。