【Shell】シェル ~ 入門編 ~

■ はじめに

シェルをメモる。

目次

【1】シェル
【2】シェルの種類
 1)sh
 2)bash
 3)csh
 4)zsh
【3】使用するシェルに関して
 1)現在のシェルを確認する方法
 2)使用可能なシェルの確認
 3)シェルの変更

【1】シェル

* Linux OSの中核に担う Kenerl が提供する機能へのアクセスを提供するソフトウェア
 => ユーザからのコマンド操作により受け取った結果をOutputとして返すインターフェイス

【2】シェルの種類

 1)sh

* sh : Bourne シェル / POSIX シェル
 * 標準のシェル

2)bash

* バッシュ(bourne-again shell)
* Bourne シェルを元に機能拡張したシェル
* Linux で標準シェルとして採用

その他:.bashrc

 * 隠しファイルで、
   よく変更する環境変数やaliasは、
    ~/.bashrc( 「~/」 はユーザーのホームディレクトリ) 
 というファイルを編集して設定する

3)csh

* C シェル
 * BSD UNIX で採用されたシェル

4)zsh

* zsh = Z shell(ズィーシェル)
* 2019年 WWDC で発表された macOS Catalina では
 デフォルトシェルが zsh に変更

【3】使用するシェルに関して

1)現在のシェルを確認する方法

#現在のシェルの確認
echo $SHELL

2)使用可能なシェルの確認

cat /etc/shells

3)シェルの変更

* chshコマンド(change shell)を使う

例1:ZSHへの移行

# Z-shell をインストール
sudo apt-get install zsh

# シェルの変更
chsh -s /bin/zsh

exit
# 一度ログオフし再度ログイン
#現在のシェルの確認
echo $SHELL

例2:Bashに戻す

$ cat /etc/shells
/bin/sh
/bin/bash << 
...

# シェルの変更
chsh -s /bin/bash

exit
# 一度ログオフし再度ログイン
#現在のシェルの確認
echo $SHELL

参考文献

http://www2u.biglobe.ne.jp/~hsaka/docs/shell.html

関連記事

シェル ~ 基本編・構文全般 ~
https://dk521123.hatenablog.com/entry/2015/02/20/001600
シェル ~ 基本編・条件分岐 if / case ~
https://dk521123.hatenablog.com/entry/2015/05/01/000043
シェル ~ 基本編・ループ while / for etc ~
https://dk521123.hatenablog.com/entry/2021/08/09/000000
シェル ~ 基本編・関数 ~
https://dk521123.hatenablog.com/entry/2015/03/17/233124
シェル ~ 基本編 / 配列 ~
https://dk521123.hatenablog.com/entry/2021/08/11/000000
シェル ~ 基本編 / 連想配列 - ディクショナリ ~
https://dk521123.hatenablog.com/entry/2021/09/11/000000
シェル ~ 基本編・eval ~
https://dk521123.hatenablog.com/entry/2021/08/28/000000
シェル ~ 基本編・引数あれこれ ~
https://dk521123.hatenablog.com/entry/2021/07/11/000421
シェルで部分一致(前方一致・後方一致)
https://dk521123.hatenablog.com/entry/2020/09/01/000000
ヒアドキュメント ~ 複数行の テキストをファイル出力する ~
https://dk521123.hatenablog.com/entry/2016/05/13/231535
シェル ~ ファイル・ディレクトリの扱い cp/rm/mkdir etc ~
https://dk521123.hatenablog.com/entry/2015/04/30/010221
シェル ~ ファイル処理あれこれ ~
https://dk521123.hatenablog.com/entry/2020/09/28/000000
シェルでのバックアップ / リストア に関するあれこれ
https://dk521123.hatenablog.com/entry/2018/08/17/230618
シェルスクリプトあれこれ
https://dk521123.hatenablog.com/entry/2018/03/03/210642
Javaを実行するシェルスクリプト
https://dk521123.hatenablog.com/entry/2018/04/14/225800
シェル ~ 文字列抽出あれこれ ~
https://dk521123.hatenablog.com/entry/2021/08/03/160901
シェル ~ 文字列置換 ~
https://dk521123.hatenablog.com/entry/2023/10/25/000000
シェル ~ 環境変数 IFS ~
https://dk521123.hatenablog.com/entry/2024/01/24/234634
シェル ~ インストール済みかどうか調べる ~
https://dk521123.hatenablog.com/entry/2024/03/02/000000
JDBCシェルスクリプトでパースする
https://dk521123.hatenablog.com/entry/2020/03/24/223323
PostgreSQLのDBをエクスポート/インポートするスクリプト
https://dk521123.hatenablog.com/entry/2018/03/02/232623
シェルでSQL結果を受け取る
https://dk521123.hatenablog.com/entry/2021/08/16/231459
シェルでSQL結果を受け取る ~ エラーハンドリング編 ~
https://dk521123.hatenablog.com/entry/2021/08/20/100814
シェルで split するには
https://dk521123.hatenablog.com/entry/2021/09/02/000000
リダイレクト・パイプライン
https://dk521123.hatenablog.com/entry/2021/09/13/000000
シェル ~ 非同期 ~
https://dk521123.hatenablog.com/entry/2023/06/01/000000
シェル ~ Shebang
https://dk521123.hatenablog.com/entry/2024/02/02/000000
Linux ~ ユーザに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2016/06/26/233349
ファイル内容を操作するコマンド
https://dk521123.hatenablog.com/entry/2023/07/26/000000
大きいファイルを扱う際のコマンド
https://dk521123.hatenablog.com/entry/2020/06/12/000000
ファイルの内容を表示するコマンド
https://dk521123.hatenablog.com/entry/2016/08/08/235934
Linux ~ パフォーマンスに関わるコマンド ~
https://dk521123.hatenablog.com/entry/2015/02/21/112554
制御文字を扱うためのコマンド
https://dk521123.hatenablog.com/entry/2024/12/03/003405
Linuxコマンドで集合演算するには ~ sort / uniq ~
https://dk521123.hatenablog.com/entry/2024/05/11/011744
ShellCheck ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/03/26/143803
shfmt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/03/27/164109