##はじめに
以前からシェルの存在は知っていたが、詳しくは知らないし、最近勉強している中で、再度学ぶ機会があったので、自分なりに分かりやすくまとめてみます。
##目次
- シェルとは
- シェルの種類
- 使用中のシェルの確認方法
- シェルの主な用途
- コマンド操作
- シェルスクリプト
##シェルとは
核(カーネル)となる機能へのインターフェース部分。
ユーザー(ターミナル)から入力されたコマンドを解釈し、それをカーネル(OSの核)に伝え、カーネルから返ってきた結果をシェルが解釈し、それをユーザー側に出力する役目。
一言でまとめると[ ユーザー と カーネル の 仲介役 ]
2種類に大別すると、
CUIをベースとする「コマンドラインシェル」とGUIをベースとする「グラフィカルシェル」に分かれます。
ここでは主に、コマンドラインシェルを扱っていきます。
-
コマンドラインシェル
- シェルによって、多少の操作性の違いや、「シェルスクリプト」を扱う際に違いが出る(基本的なコマンドの実行では、シェルの違いを意識することはほとんどない)
- 大別すると、Bシェル系とCシェル系に分かれる(下記、シェルの種類を参照)
-
グラフィカルシェル
- 身近なグラフィカルシェルでは、MacのFinderや、windowsのExplorerが挙げられる
##主なシェルの種類(コマンドラインシェル)
####Bシェル系
- sh (Bourneシェル、Bシェル)
- 最も古くから存在するシェル
- Bシェル系の元祖
- bash (BourneAgainシェル)
- より使いやすくしたshシェル
- ほとんどのLinuxでの標準シェル
- ksh (Kornシェル)
- cシェル由来の機能を持っている
- Bourneシェルの完全上位互換
- zsh (Zシェル)
- bash,ksh,tcshの非常に有用な機能+独自機能の多機能シェル
- MacOS Catalina からMacOSの標準シェル(2021-09-03:現在)
- BシェルとCシェルの真ん中的な立ち位置
####Cシェル系
- csh (Cシェル)
- C言語と同じような文法で記述できるのが特徴
- Cシェル系の元祖
- tcsh (TCシェル)
- cシェルと完全な互換性を持つ
- cシェルよりも機能が豊富
##シェルの確認方法
ターミナル上で、コマンド「ps」を実行すると、お使いのPCのシェルが確認できます。
##シェル(ターミナル)でできること
###・コマンド操作
ターミナル上でコマンドを実行し、PCを操作できます。
基礎コマンドは下記サイト(侍エンジニアさん)で確認できます。
エンジニアには必須とも言われるgitもターミナルからコマンド操作で利用します。
#####gitとは
バージョン管理システムのひとつ。
現状バージョン管理システムで最もポピュラー。
他のバージョン管理システムでは、「Subversion」や「Mercurial」などが挙げられる。
[補足]
バージョン管理システム(Version Control System : VCS)とは
データはもちろん「いつ、誰が、何処を、編集したのか」と履歴を保存できるシステム
過去のある時点の状態を復元したり、変更内容の差分を確認できるようにするシステム
#####gitを使用するメリット
- 最新のファイルが一目瞭然
- 「いつ、誰が、何処を」編集したのかが分かる
- 以前の状態(バージョン)に復元可能
- 上書きやバッティングすることなく複数人で同ファイルを編集できる
- 分散型バージョン管理を採用しているため、運用リスクが低い
詳しい仕組みや使い方は以下のサイトで確認できます。
###・シェルスクリプトの実行
シェルスクリプトを使用して、処理の効率化が行えます。
古い記事ですが、基礎を学ぶには以下のサイトが分かりやすくいいと思いました。