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 スキャフォールディング学習プロジェクト作成方法

推薦する

非常に実用的なTomcat起動スクリプトの実装方法

序文セキュリティ上の理由から、会社が Linux サーバーへのすべてのログインにセキュリティ制限を課...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

MySQL が「operate_time」エラーのデフォルト値が無効であると報告する問題を解決する

データベースでcreate tableステートメントを実行する テーブル `sys_acl` を作成...

dockerでlnmp環境を構築する方法

プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...

MySQL における in と exists の使い方と違いの紹介

まずコードを書いて (int i=0;i<1000;i++){ (int j=0;j<5...

Vue.jsで実装されたカレンダープラグインの使い方を詳しく説明します

本日実装する機能は、以下の機能です。vue.js シミュレーションカレンダープラグインさて、もう無駄...

VueはOpenLayersを使用してTiandi MapとAmapを読み込み

目次1. 世界地図1. VueにOpenLayersをインストールする2. アマップ1. 世界地図1...

Flexboxレイアウトの最もシンプルなフォーム実装

フレキシブル レイアウト (Flexbox) はますます人気が高まっており、CSS レイアウトの記述...

JavaScriptはランダムコードの生成と検証を実現する

JavaScriptでのランダムコードの生成と検証は参考までに。具体的な内容は以下のとおりです。イベ...

Windows で MySQL 5.6 を 5.7 にアップグレードする方法

前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...

Linuxでmore、less、catコマンドを使用してファイルの内容を表示します

Linux では、cat、more、less の各コマンドを使用してファイルの内容を表示できます。c...

MySQL の null 制約のケースの説明

目次テーブルを作成するときにNOT NULL制約を設定するテーブルを変更するときに非NULL制約を追...

ubuntu16.04でNFSサービスを構築する方法

NFS の紹介NFS (ネットワーク ファイル システム) は、FreeBSD でサポートされている...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...