• DoRubyとは
  • お問い合わせ
  • Ruby/Rails
  • Web開発
  • Webマーケティング
  • アピリッツ
  • ライフハック
  • ゲーム制作/開発
  • Railsの小技
  • Rubyの小技
  • Gemの紹介
  • ActiveRecord
  • 初心者向け
  • Java/Scalaテク
  • Unixのあれこれ
  • データベース
  • スマホ開発
  • HTML/CSS/JavaScript
  • デザイン製作
  • インフラ
  • クラウド
  • セキュリティ
  • エディタ
  • バージョン管理
  • その他
  • python
  • アクセス解析
  • Googleアナリティクス
  • Googleデータスタジオ
  • Web広告
  • SEO
  • UI/UX
  • ソーシャルメディア
  • EC開発
  • Webシステム開発
  • コンサルティング
  • Webデザイン
  • ブロックチェーン
  • ゲーム紹介
  • アプリ紹介
  • ASP
  • 風景
  • パソコン
  • ツール
  • ガジェット
  • 仕事術
  • 健康
  • 生活
  • 書評
  • Excel(エクセル)
  • PowerPoint(パワーポイント)
  • ゲームプランニング
  • SpriteStudio
  • マスターデータ入力/作成
  • Unity
  • キャラクターデザイン
  • ゲームシナリオ
  • レベルデザイン
  • ゲーム分析
  • 3DCG
  • イラスト制作
  • CG/アニメーション
  1. ホーム
  2. Web開発
  3. Unixのあれこれ
  4. bashプロンプトのカスタマイズ
  • 2016-02-03
    • カテゴリ:
    • Unixのあれこれ

bashプロンプトのカスタマイズ

この記事は公開から1年以上が経過しています。情報が古い可能性がありますのでご注意ください。

bashのプロンプトが突然「-bash-4.1$」のようになってしまって
直した時に調べたメモです。

いつもは「[hoge@localhost ~]$」のように
[ユーザ名@ホスト名 カレントディレクトリ]$
の形で表示されていたのが、
突然「-bash-4.1$」となってしまいました。

何かのタイミングでデフォルト設定に戻ってしまったようです。

・フォーマットの設定
・色の設定

■ フォーマットの設定

bashのプロンプトはPS1でフォーマットを設定できます。
デフォルトは¥s-¥v¥$です。

[hoge@localhost ~]$export PS1="\s-\v\$"
-bash-4.1$

-bash-4.1$

むむ。どうも落ち着つきません。

なので、いつもどおり
[ユーザ名@ホスト名 カレントディレクトリ]$
のフォーマットで表示されるよう設定し直します。

[\u@\h \W]\$
これを設定する。

-bash-4.1$export PS1="[\u@\h \W]\$"
[hoge@localhost ~]$

直りました。
これを「/etc/profile」や「~/.bashrc」に追記しておけばOKです。

他にも設定できるフォーマットがいろいろあって、
man bashで確認できます。

PROMPTING
       When  executing  interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary prompt PS2 when it needs more input to complete a command.  Bash allows these prompt strings to
       be customized by inserting a number of backslash-escaped special characters that are decoded as follows:
              \a     an ASCII bell character (07)
              \d     the date in "Weekday Month Date" format (e.g., "Tue May 26")
              \D{format}
                     the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation.  The braces are required
              \e     an ASCII escape character (033)
              \h     the hostname up to the first ‘.’
              \H     the hostname
              \j     the number of jobs currently managed by the shell
              \l     the basename of the shell’s terminal device name
              \n     newline
              \r     carriage return
              \s     the name of the shell, the basename of $0 (the portion following the final slash)
              \t     the current time in 24-hour HH:MM:SS format
              \T     the current time in 12-hour HH:MM:SS format
              \@     the current time in 12-hour am/pm format
              \A     the current time in 24-hour HH:MM format
              \u     the username of the current user
              \v     the version of bash (e.g., 2.00)
              \V     the release of bash, version + patch level (e.g., 2.00.0)
              \w     the current working directory, with $HOME abbreviated with a tilde (uses the value of the PROMPT_DIRTRIM variable)
              \W     the basename of the current working directory, with $HOME abbreviated with a tilde
              \!     the history number of this command
              \#     the command number of this command
              \$     if the effective UID is 0, a #, otherwise a $
              \nnn   the character corresponding to the octal number nnn
              \\     a backslash
              \[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
              \]     end a sequence of non-printing characters

■ 色の設定

サーバ毎にプロンプトの色を変えておけば
どのサーバにログインしているのかわかりやすくなります。

・文字色をシアンに変える例

$ export PS1="¥[¥e[0;36m¥][¥u@¥h ¥W]¥$¥[¥e[0m¥]"

¥[¥e[0;36m¥]~¥[¥e[0m¥] で挟まれた部分が「0;36」で指定された装飾/色になります。

この形式はANSIエスケープシーケンスというそうです。

0;36をもっと詳しく説明すると、
0と36の2つの装飾指定がされていて、

0→文字装飾なし
36→文字色をシアンにする

という意味になります。
これにさらに背景色を青にしたい、となると 0;36;44 となって、0と36と44の3つの装飾指定をする
という意味になります。

0→文字装飾なし
36→文字色をシアンにする
44→背景色を青にする

\[\e[0;36;44m\][\u@\h \W]\\$\[\e[0m\]

なので、最初に「¥[¥e[0;36m¥]~¥[¥e[0m¥]」挟まれた部分が…
とは言いましたが、本来は、 ¥[¥e[0;36m¥]以降 を「装飾無し&文字色シアン」で表示する
¥[¥e[0m¥]以降 を「装飾なし」で表示する
という意味になるようです。

もっと他の装飾指定を追加することも可能です。

↓こちらのページでとてもわかりやすく説明されていました。
http://oxynotes.com/?p=5418

とりあえず↓のように設定。

$ export PS1="\[\e[0;36m\][\u@\h \W]\\$\[\e[0m\]"

これでどのターミナル開いてるか分かりやすくなりました。


  • 1,615 views
    • Tweet
    • このエントリーをはてなブックマークに追加

この記事を書いた人
iwasyaco

「いいね!」するとDoRubyの最新記事を受け取ることができます。

Facebook

Twitterから最新記事を受け取るならこちら

Follow @doruby

Feedlyから最新記事を受け取るならこちら

follow us in feedly

おすすめの記事
  • 4,207 views
  • 2016-07-27
リニューアルをしたDoRubyの3つの目的
  • 2,148 views
  • 2016-08-15
ビット演算でフラグを管理する
  • 1,832 views
  • 2017-04-24
アピリッツの新卒合宿2017

カテゴリ

Ruby/RailsRailsの小技Rubyの小技Gemの紹介ActiveRecord初心者向けWeb開発Java/ScalaテクUnixのあれこれデータベーススマホ開発HTML/CSS/JavaScriptデザイン製作インフラクラウドセキュリティエディタバージョン管理その他pythonWebマーケティングアクセス解析GoogleアナリティクスGoogleデータスタジオWeb広告SEOUI/UXソーシャルメディアアピリッツEC開発Webシステム開発コンサルティングWebデザインブロックチェーンゲーム紹介アプリ紹介ASP風景ライフハックパソコンツールガジェット仕事術健康生活書評Excel(エクセル)PowerPoint(パワーポイント)ゲーム制作/開発ゲームプランニングSpriteStudioマスターデータ入力/作成Unityキャラクターデザインゲームシナリオレベルデザインゲーム分析3DCGイラスト制作CG/アニメーション

    人気の記事
    最近の記事
    • 6,041 views
    • 2020-04-02
    Kali Linux 2020.2 導入と日本語化
    • 2,757 views
    • 2020-03-06
    rack-lineprofを改造して管理画面からファイル指定&ログ追跡出来るように
    • 2,741 views
    • 2020-03-05
    FactoryBot と Gimei を使って架空のユーザを作る
    • 2,449 views
    • 2020-02-04
    ActionCable実装しようwith webpack
    • 2,379 views
    • 2020-01-27
    この頃のプルリクに対するレビュー
    Facebook

      サイト情報
      • DoRubyとは
      • 株式会社アピリッツ

      ソーシャルアカウント
      • Facebook
      • Twitter

      企業情報
      • 会社概要
      • 採用情報
      • お問い合わせ
      サービス製品
      • レコメンドASP
      • サイト内検索ASP「Advantage Search」
      • オープンソースECサイト構築パッケージ「エレコマ」
      • 受注・在庫・商品情報一元管理「モールコネクター」
      • セキュリティ診断サービス
      • Googleアナリティクスセミナー

      Copyright © Appirits All Rights Reserved.