# Shell と Bash のいろいろ

Bash とは Unix シェルの一種でコマンド言語である
Shell の英語翻訳は「殻」、システム上カーネル(kernel)とよく比較したり使う。Shell は複数の意味がある、1つは、OS のカーネルとコミュニティ行うインタフェースプログラムである。2つは、変数、判断、操作などのコマンド言語である。

Shell と Bash の違い
Bash は今一番使われている Shell であり、多くの場合 Bash イコール Shell

# Shell と Bash の歴史

1969 年、Ken Thompson と Dennis Ritchie は Unix 開発リリース
1971 年、Ken Thompson は初めての Shell、Thompson shell を開発、プログラム名 sh
1973 年から 1975 年の間、John R. Mashey は Thompson shell を拡張してプログラム機能入れ、Shell がプログラミング言語になった。このバージョンの Shell は Mashey shell という
1976 年、Stephen Bourne は Mashey shell を参考に Shell をリプレイスして Bourne shell バージョンをリリース
1978 年、カリフォルニア大学の Bill Joy は C 言語で C shell(csh) を開発
1979 年、Unix V7 リリース。Bourne Shell は Unix のデフォルト Shell としてインストール
1983 年、David Korn は Korn shell(ksh)を開発
1985 年、Richard Stallman はフリーソフト財団(FSF)設立、GNU ライセンスのフリーソフトを開発
1988 年、FSF プログラマー Brian Fox が Bourne shell をベースに Bourne-Again SHell を開発、略称 Bash。現在元も流行っている Linuxt 標準 Shell は Bash である。
1989 年、Bash v1.0 リリース
1996 年、Bash v2.0 リリース
2004 年、Bash v3.0 リリース
2009 年、Bash v4.0 リリース
2019 年、Bash v5.0 リリース

現在、多くの Linux、macOS、Windows 10 の Windows Subsystem for Linux などでは Bash は標準のシェルとして設定されている。

bash バージョン確認

 



bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin20)
Copyright (C) 2007 Free Software Foundation, Inc.

# Bash をカラフルで表示

Git Bash for Mac

Git Bash インストールして Bash 綺麗に表示する

  1. ターミナルでコマンド実行
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/fabriziocucci/git-bash-for-mac/master/install.sh)"
  1. ターミナル環境設定 Pro テーマ選択
  2. ターミナル再起動

# Bash 5.0 について

最新の Bash5.0 は 4.0 リリースから 10 年の 2019 年にリリースされたことが話題になった。主にバグフィクスとシェル変数の更新があった。

The most significant bug fixes are an overhaul of how nameref variables resolve and a number of potential out-of-bounds memory errors discovered via fuzzing.

もっとも重要なバグフィクスは、nameref 変数の解決方法の見直しおよびファジングで発見された領域外メモリエラーの対応だ。

The most notable new features are several new shell variables: BASH_ARGV0,EPOCHSECONDS, and EPOCHREALTIME.

注目すべき新機能としては、BASH_ARGV0、EPOCHSECONDS、EPOCHREALTIME などのいくつかの新しいシェル変数だ。

mac で bash バージョンアップグレード


 


 







# bash install homebrew必要
brew install bash

# バージョン確認
bash --version
GNU bash, version 5.1.0(1)-release (x86_64-apple-darwin20.1.0)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

# Shell の種類

今流行っている Shell バージョン Wiki リスト

Bash は現在一番使われている

システムに入っている Shell 一覧

 












cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

現在使っているデフォルト Shell

 


echo $SHELL
/bin/bash
2020-12-17
  • server

関連記事

Laravel Address already in use の原因
AWS 504 Gateway Timeout エラー対応
デプロイツール Capistrano
AWS EC2 の amazon-linux-extras の話
AWS CloudWatch ログ監視で Lambda 処理
AWS Elastic Beanstalk 環境設定
Amazon DynamoDB 制限調査
Elastic Beanstalk \$\SERVER['REMOTEADDR'] 取得できない
AWS Elastic Beanstalk php.ini 設定変更
AWS SES メール開封確認  DB に集計
AWS のタイムゾーンを UTC 協定世界時から JST 日本標準時に変更
AWS Unresolved resource dependencies [AWSEBV2LoadBalancer] エラー
content-security-policy 設定
Centos7 Webserver 構築の時のメモ
DDNS 無料ダイナミック DNS サービス 4 つ
crontab 設定いろいろ
ディスク容量を確認する df コマンド
Docker command でドッカー練習する時のメモ
Windows10 Home に Docker 入れた時のメモ
Docker Supervisor 使ってバッチ処理
Docker の基本的な使い方
VPS サーバーのセキュリティー fail2ban
ジェネレーティブ AI と大規模言語モデル(LLM)を学ぶためのリソース
Windows Mac Linux hosts ファイル場所
自宅サーバー構築!  Nextcloud で NAS クラウドストレージ
Nginx web サーバーのセキュリティ
Nginx 基本設定
Mac ターミナル SSH 接続設定
SPF メール送信なりすまし対策
メールサーバー移行と POP & IMAP 設定
robots.txt の書き方
youtube 見れるように vpn サーバー建ててみた
Ubuntu で Web サーバーを構築する手順
5 分で VPN サーバー立てる! wg-easy の使い方
よく使う WSL コマンド
xserver に nodejs インストール
積水ハウス 個人情報流出 SQL インジェクション攻撃か
xserver に vim インストール
レンタルサーバーなら xserver おすすめ理由
ZeroSSL で無料 SSL できるけど Let's Encrypt と比較
XZ Utils 事件対応
oh my zsh 使うべし
解決! xserver php バージョンアップした時に ssh 環境に反映されない
no such file or directory: /usr/share/zsh/vendor-completions/_docker
Vim 操作とショートカット