Top/Lang/shell/bash/設定

目次

コマンド履歴

履歴保存先ファイルの指定

履歴にタイムスタンプを付加する

履歴を1コマンド毎に保存する

PS1 (プロンプト文字列)

PS1 で使用出来る組み込み特殊文字

特殊文字表示内容
\aASCII のベル文字 (07)
\d"曜日 月 日" という形式の日付 (例: "Tue May 26")
\D{format}format が strftime(3) に渡され、 その結果がプロンプト文字列に挿入されます。 format が空の場合には (ブレースは必要)、 ロケールで指定された時刻表記になります。
\eASCII のエスケープ文字 (033)
\hホスト名のうち最初の `.' までの部分
\Hホスト名
\jシェルによって現在管理されているジョブの数
\lシェルの端末デバイスのベース名 (basename)
\n改行 (newline)
\r復帰 (carriage return)
\sシェルの名前。つまり $0 のベース名 (最後のスラッシュ以降の部分)
\t24 時間制の HH:MM:SS 形式の現在の時刻
\T12 時間制の HH:MM:SS 形式の現在の時刻
\@12 時間制の am/pm 形式の現在の時刻
\A12 時間制の HH:MM 形式の現在の時刻
\u現在のユーザのユーザ名
\vbash のバージョン (例: 2.00)
\Vbash のリリース。バージョンにパッチレベルを加えたもの (例: 2.00.0)
\w現在の作業ディレクトリ。 $HOME の部分はチルダに短縮されます。 PROMPT_DIRTRIM の値が適用されます。
\W現在の作業ディレクトリのベース名 $HOME の部分はチルダに短縮されます。
\!このコマンドの履歴番号
\#このコマンドのコマンド番号
\$実効 UID が 0 の場合に #、 それ以外の場合は $
\nnn8進数 nnn に対応する文字
\\バックスラッシュ
\[非表示文字のシーケンスの開始。 これを使うと、プロンプト中に端末の制御シーケンスを埋め込むことができます。
\]非表示文字のシーケンスを終了します。

git 関連

設定方法

  1. PS1 に $(__git_ps1) を追加する
    • 例えば
      [\u@\h:\l \W]$

      であれば、下記のように:
      PS1="[\u@\h:\l \W $(__git_ps1)]$ "
    • git 情報の部分を赤文字にする場合:
      PS1="[\u@\h:\l \W\033[31m\]$(__git_ps1)\[\033[00m\]]$ "
  2. $(__git_ps1) による表示内容を調整する
    • git-promput から読み込んでいる下記ファイルにて、表示に関するオプションが用意されている。
      /usr/lib/git-core/git-sh-prompt
    • オプション一覧
      parametersetting val.indicate descriptionremark
      GIT_PS1_SHOWDIRTYSTATEyes"*":unstaged, "+":staged
      GIT_PS1_SHOWSTASHSTATEyes"$":something is stashed
      GIT_PS1_SHOWUNTRACKEDFILESyes"%":There are untracked files.
      GIT_PS1_COMPRESSSPARSESTATEyes
      GIT_PS1_SHOWUPSTREAMyes"<":behind, ">":ahead, "=":there is no difference
      GIT_PS1_STATESEPARATORyes
      GIT_PS1_SHOWCOLORHINTSyes
    • 上記設定値は全て、空文字かどうかで判定されているので、有効にしたいものは何らかの文字列(上記では "yes" とした)を設定し、有効にしないものはから文字にしておく。
      • "no" を設定しても "yes" としたときと同じ動作になるので注意。
    • これらのオプションは、少なくとも PS1 の定義より前に設定しておく必要がある。
    • 設定例
      $ cat ${HOME}/.bashrc
      <snip>
      GIT_PS1_SHOWDIRTYSTATE=yes
      GIT_PS1_SHOWUNTRACKEDFILES=yes
      GIT_PS1_SHOWUPSTREAM=yes
      PS1="[\u@\h:\l \W $(__git_ps1)]$ "
      <snip>

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-02-10 (土) 23:14:30