# 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

関連記事

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