Shellに関する基本的な知識をまとめていきます。
##Shellとは
シェルはOSの中核であるカーネルと対話するためソフトウェアのことです。表現を変えれば、人間とPC(カーネル)は直接やりとりができないのでシェルがやり取りの仲介役となってくれているというもの。
##ターミナル・コンソール
ターミナル、コンソールはどれもCUIでLinuxにコマンドを打ち込むときに使用するものです。これら二つはシェルと同じであるとよく間違えられますが厳密には違う意味を表しています。それぞれ一つずつ説明します。
コンソール
現時点で「コンソール」というと一般的に黒い画面でコマンド入力を受け付ける画面を指すことが多いです。
ターミナル
コマンド入力を受け付ける点はコンソールと同じですが、GUIの上でCUIの操作をしたいときに使用するアプリケーションという点でコンソールとは異なります。
コンソール&ターミナルでコマンド入力を受け付け、受けた入力をシェルが仲介して、PC(カーネル)に分かるようにしているイメージ。
##BashとZsh
BashもZshもシェルの一種を表します。
基本的なシェルとしてBashが多く導入されていますが、Zshには以下のような導入メリットがあります。
Zsh
・カスタマイズができる
・他のシェルの機能を取り込んでおり、性能が高い
・軽量
・ユーザーの起動している全てのzshでコマンド履歴を共有することができる。
・プログラム可能な補完機能に拠って、多くのユーザーコマンドのオプションや引数を打つのを支援する
これだけメリットがあるとZsh導入した方が良さそうですね…!
##Tmuxとは
tmuxは端末多重化ソフトウェアです。詳しく言うと1つのターミナル上で複数のターミナルを立ち上げて同時並行で作業できるものです。つのターミナルで操作しているシェルから実行したtmux上で複数の仮想端末を操作できるため、ターミナルを複数開くことなく複数のサーバへログインしたり、それぞれの仮想端末で別々のプログラムを実行できるようになるため、より効率的に作業が行えます。