jm-shell – 情報量豊富で自由にカスタマイズできるBashシェル
jm-shellとは
jm-shellは、無料で利用できるオープンソースの軽量Bashシェルです。シェル上での操作に関する豊富な情報をリアルタイムに表示するだけでなく、システムの負荷平均やノートパソコンのバッテリー状態など、実用的なシステム情報もひと目で確認できます。
特筆すべき点として、通常のBashが重複を除いたコマンドのみを履歴ファイルに保存するのに対し、jm-shellはすべてのシェル操作をログファイルに記録します。これにより、過去に実行したコマンドを後から確実に検索・確認できます。
さらに、現在のディレクトリがGit、Subversion、Mercurialなどのバージョン管理システムのコードリポジトリである場合、アクティブなブランチなど、リポジトリに関する情報も自動的に表示されます。
jm-shellの主な機能
- コマンドを視覚的に区切るステータスライン(区切り線)付きのプロンプト
- 現在のディレクトリ内の項目数を表示
- ファイルシステム上の現在位置を表示
- シェル操作の完全な履歴を記録するログファイルを維持
- システムの負荷平均を表示し、基準値を超えると赤色で警告(2より大きい場合は危険レベル)
- 直前のコマンドが終了した時刻を表示
- 直前のコマンドがエラーになった場合、そのエラーコードを出力
- 直前のコマンドの実行時間が4秒を超えた場合、合計時間を表示
- admin@wsxdn.com:path 形式のわかりやすいプロンプト
- 複数のプロンプトスタイルに対応
- バックグラウンドジョブに対応
- ノートパソコンのバッテリー残量表示(満充電でない場合)など、その他多数の便利な機能
Linuxシステムへのjm-shellのインストール方法
最新版のjm-shellをインストールするには、まずGitHubリポジトリからソースをクローンし、ローカルリポジトリに移動します。以下のコマンドを実行してください。
$ git clone https://github.com/jmcclare/jm-shell.git $ cd jm-shell
次に、ps1、colors.sh、color_unset.sh の各ファイルを ~/.local/lib/bash ディレクトリ(存在しない場合は先に作成)へコピーまたはシンボリックリンクを作成して、Bashがjm-shellを読み込めるように設定します。
$ mkdir ~/.local/lib/bash # ディレクトリが存在しない場合は作成 $ cp -v colors.sh colors_unset.sh ps1 -t ~/.local/lib/bash/
続いて、~/.bashrc(シェルの初期化ファイル)に以下の行を追加して、ps1 ファイルを読み込みます。
source ~/.local/lib/bash/ps1
その後、~/.bashrc 内で prompt_style 変数を使ってプロンプトスタイルを設定します。利用可能なスタイルは standard、tweaked、extensive、minimal、kirby の5種類です。
prompt_style=extensive
~/.bashrc を保存して閉じたら、sourceコマンドで変更を即座に反映させましょう。
$ source ~/.bashrc
シェルログファイルの保存場所を変更したい場合(デフォルトは ~/.local/share/bash/shell.log)は、~/.bashrc 内で BASHSHELLLOGFILE 変数を設定します。
BASHSHELLLOGFILE=~/.bash-shell.log
さらに詳しい情報については、jm-shellの公式GitHubリポジトリをご覧ください:https://github.com/jmcclare/jm-shell
jm-shellは、Bashシェルを自在にカスタマイズするためのスクリプト集であり、日常的な作業に役立つ実用的で情報量の多い機能が多数搭載されています。ぜひ実際に導入してみて、その使い心地をコメント欄でお知らせください。
-
Bashの「実行」と「source」の違いを徹底解説!シェバン・フォーク・環境変数の仕組み
この記事では、Bashでスクリプトを実行する場合とsourceコマンドで読み込む場合の違いについて、内部で何が起こっているのかを詳しく解説します。まずは、スクリプトの呼び出し方によってプログラムがどのように処理されるのかを理解していきましょう。 補足: スクリプトに拡張子を付けるかどうかは動作に影響しません。拡張子がなくても問題なく実行できます。 シェバン(#!)とは 基本的に、すべてのスクリプトはシェバン(#!)と呼ばれる行から始まります。Bashでは#(ハッシュ)記号はコメントとして解釈されますが、シェバンには特別な意味があります。シェバンは、指定されたインタプリタにプログラムの実行を委ね
-
Bashの特殊変数「$$」と「$BASHPID」の違いを徹底解説
シェルスクリプトの作業中に、Bashの特殊変数 $$ と $BASHPID の間に大きな動作の違いがあることに気づきました。Linux上で実行されるすべてのプロセスにはプロセスID(PID)が割り当てられ、OSはこのIDをもとにプロセスを管理しています。 関連記事: Bashにおけるソース読み込み(source)とフォーク(fork)の違いを学ぶ 同様に、あなたが開いているBashターミナルのセッションにもプロセスIDが割り当てられます。そして、現在のシェルのプロセスIDを格納する特別な変数として $$ と $BASHPID の2つが用意されています。 現在のシェルのPIDを確認する まずは以