Linux で Bash コマンド プロンプトをカスタマイズする方法

Linux で Bash コマンド プロンプトをカスタマイズする方法

序文

ご存知のとおり、bash (Bourne-Gain Shell) は、ほとんどの Linux ディストリビューションで使用されるデフォルトのシェルです。この記事では、色やスタイルを追加して bash コマンド プロンプトの表示をカスタマイズする方法を説明します。多くのプラグインやツールは簡単にこの要件を満たすことができますが、プラグインやツールを使用せずに、特定の要素の追加や変更、前景色の変更、背景色の変更など、いくつかの基本的な表示方法を手動でカスタマイズすることもできます。

Linux で bash コマンド プロンプトをカスタマイズする

bash では、$PS1 環境変数の値を変更することで、bash コマンド プロンプトをカスタマイズできます。

通常、bash コマンド プロンプトは次のようになります。


上記のデフォルトの表示では、「sk」がユーザー名で、「ubuntuserver」がホスト名です。

バックスラッシュで始まる特別なエスケープ シーケンスを挿入するだけで、コマンド プロンプトを好みに合わせて変更できます。いくつか例を挙げてみましょう。

始める前に、~/.bashrc ファイルをバックアップすることを強くお勧めします。

$ cp ~/.bashrc ~/.bashrc.bak

bashコマンドプロンプトのユーザー名@ホスト名の部分を変更する

上記のように、bash コマンド プロンプトには通常、「username@hostname」の部分があり、これは変更できます。

~/.bashrc ファイルを編集するだけです:

$ vi ~/.bashrc

ファイルの末尾に次の行を追加します。

PS1="ostechnix> "

「ostechnix」を任意の単語に置き換え、ESC キーを押して :wq と入力し、ファイルを保存して終了します。

変更を有効にするには、次のコマンドを実行します。

$ ソース ~/.bashrc

追加した「ostechnix」が bash コマンド プロンプトに表示されることがわかります。


「username@hostname」を「Hello@welcome>」に置き換える別の例を見てみましょう。

前と同じように ~/.bashrc ファイルを変更します。

エクスポート PS1=Hello@welcome>

次に、source ~/.bashrc を実行して、変更をすぐに有効にします。

以下は、Ubuntu 18.04 LTS で変更した後の結果です。


ユーザー名のみ表示

ユーザー名のみを表示する必要がある場合は、~/.bashrc ファイルに次の行を追加します。

エクスポートPS1="\u "

ここでの \u はエスケープ文字列です。

以下は、bash コマンド プロンプトのスタイルを変更するために $PS1 環境変数に追加できるエスケープ文字列です。変更をすぐに有効にするには、各変更後にsource ~/.bashrcコマンドを実行する必要があります。

ユーザー名とホスト名を表示する

エクスポート PS1="\u\h "

コマンドプロンプトは次のようになります。

skubuntuサーバ

ユーザー名と完全修飾ドメイン名を表示する

エクスポート PS1="\u\H "

ユーザー名とホスト名の間に追加の文字を表示する

ユーザー名とホスト名の間に他の文字 (@ など) を表示する必要がある場合は、次の形式を使用できます。

エクスポート PS1="\u@\h "

コマンドプロンプトは次のようになります。

sk@ubuntuserver

ユーザー名、ホスト名を表示し、最後に$記号を追加します

エクスポート PS1="\u@\h\\$ "

上記の2つの表示方法を組み合わせる

エクスポートPS1="\u@\h> "

コマンド プロンプトは最終的に次のようになります。

sk@ubuntuserver>

同様に、コロン、セミコロン、アスタリスク、アンダースコア、スペースなどの他の特殊文字を追加することもできます。

ユーザー名、ホスト名、シェル名を表示する

エクスポート PS1="\u@\h>\s "

ユーザー名、ホスト名、シェル名、シェルのバージョンを表示します。

エクスポート PS1="\u@\h>\s\v "

bash コマンドプロンプトの表示スタイル:


ユーザー名、ホスト名、現在のディレクトリを表示する

エクスポート PS1="\u@\h\w "

現在のディレクトリが $HOME の場合、チルダ ( ~ ) 付きで表示されます。

bashコマンドプロンプトで日付を表示する

bash コマンド プロンプトにユーザー名とホスト名に加えて日付を表示する場合は、~/.bashrc ファイルに次のコードを追加します。

エクスポート PS1="\u@\h>\d "

bash コマンドプロンプトで日付と 12 時間形式を表示する

エクスポート PS1="\u@\h>\d\@ "

日付と時刻をhh:mm:ss形式で表示します

エクスポート PS1="\u@\h>\d\T "

日付と24時間表示

エクスポート PS1="\u@\h>\d\A "

日付と時刻を24時間形式hh:mm:ssで表示します

エクスポート PS1="\u@\h>\d\t "

上記は、bash コマンド プロンプトを変更できる一般的なエスケープ シーケンスの一部です。その他のエスケープ シーケンスについては、bash マニュアル ページの PROMPTING の章を参照してください。

いつでも次のコマンドを実行して、現在のコマンド プロンプト スタイルを表示することもできます。

$ エコー $PS1

bashコマンドプロンプトのユーザー名@ホスト名の部分を削除します

調整したくない場合は、ユーザー名@ホスト名の部分を完全に削除するだけでよいのでしょうか?答えはイエスです。

技術ブロガーの場合は、Linux ターミナルのスクリーンショットを Web サイトやブログにアップロードする必要があるかもしれません。ユーザー名とホスト名があまりにもクールでユニークすぎるため、他の人に見られたくない場合があります。この場合、コマンドプロンプトで「ユーザー名@ホスト名」の部分を非表示にする必要があります。

ユーザー名とホスト名を公開したくない場合は、以下の手順に従ってください。

~/.bashrc ファイルを編集します:

$ vi ~/.bashrc

ファイルの最後に次の行を追加します。

PS1="\W> "

:wq と入力してファイルを保存して閉じます。

変更をすぐに有効にするには、次のコマンドを実行します。

$ ソース ~/.bashrc

ここでターミナルを見ると、「username@hostname」の部分が消えて、~> 記号だけが残っています。


できるだけシンプルに保ち、~/.bashrc ファイルを変更したくない場合は、システムに別のユーザー (例: "user@example"、"admin@demo") を作成するのが最適です。このようなコマンドプロンプトを持つユーザーを使用してスクリーンショットを撮ったり、画面を記録したりする場合は、ユーザー名やホスト名が他の人に見られることを心配する必要はありません。

警告: 場合によっては、この方法は推奨されません。たとえば、zsh のようなシェルは現在のシェルの設定を継承するため、予期しない問題が発生する可能性があります。このトリックは、コマンドプロンプトの「ユーザー名@ホスト名」の部分を隠すためだけに使用され、それ以上のものではありません。このトリックを他の目的で使用すると、異常が発生する可能性があります。

bashコマンドプロンプトをカラー化する

現在はbashコマンドプロンプト内の内容のみ変更しています。以下ではコマンドプロンプトに色を付ける方法を紹介します。

~/.bashrc ファイルにいくつかの設定を書き込むことで、bash コマンド プロンプトの前景色 (つまり、テキストの色) と背景色を変更できます。

たとえば、次の設定行では、一部のテキストの色を赤に変えることができます。

エクスポートPS1="\u@\[\e[31m\]\h\[\e[m\] "

設定を追加したら、source ~/.bashrc を実行してすぐに有効にします。

bash コマンド プロンプトは次のようになります。


同様に、次の設定で背景色を変更できます。

エクスポートPS1="\u@\[\e[31;46m\]\h\[\e[m\] "

絵文字を追加

誰もが絵文字が大好きです。次のようにコマンドプロンプトに絵文字を挿入することもできます。

PS1="\W

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux Bash プロンプトのクールな操作 (カスタム Bash プロンプト)
  • Linuxコマンドプロンプトの表示形式を設定する方法
  • Linux シェルの興味深いコマンドとヒント 30 個 (推奨)
  • Starshipのカスタムシェルプロンプトは情報の自由を可能にします

<<:  mysqlはルートユーザーと一般ユーザーを作成し、機能を変更および削除します。

>>:  Vue スキャフォールディング学習プロジェクト作成方法

推薦する

VMware esxi6.5 のインストールと使用の詳細な手順

目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...

MySQL パーティション フィールド列に別のインデックスを作成する必要がありますか?

序文パーティション フィールドは主キーの一部でなければならないことは誰もが知っています。では、複合主...

Centos7 ベースの Nginx Web サイト サーバーの構築の詳細説明 (仮想 Web ホストの構成を含む)

1. Nginx サービス基盤Nginx (エンジン x) は、パフォーマンスの最適化のために特別...

MySQLでSQLクエリ文がどのように実行されるかを分析する

目次1. MySQL論理アーキテクチャの概要2. コネクタクエリキャッシュ4. パーサー5. オプテ...

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...

MySQL 8.0 の新機能: ハッシュ結合

MySQL 開発チームは、2019 年 10 月 14 日に MySQL 8.0.18 GA バージ...

mysql5.7.21 utf8 エンコーディングの問題と Mac 環境での解決方法

1. 目標: mysql の character_set_server の値を latin1 から ...

Docker-compose インストール yml ファイルの設定方法

目次1. オフラインインストール2. オンラインインストール3. アンインストール4. ymlファイ...

タグが新しいページを開くかどうかという問題。主要ウェブサイトの開設状況をまとめました

a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...

jQueryはマウスドラッグ画像機能を実装します

この例では、jQuery を使用してマウス ドラッグ イメージ機能を実装します。まず、ラッパーを設定...

MySQL 4 の一般的なマスタースレーブレプリケーションアーキテクチャ

目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...

MySQL初心者のための基本操作のまとめ

図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...

Vueオプションの詳細な説明

目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...

MySQLカスタム関数の簡単な使用例

この記事では、例を使用して MySQL カスタム関数の使用方法を説明します。ご参考までに、詳細は以下...

MySQL における count(*)、count(1)、count(col) の違いのまとめ

序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...