HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

BashのPS1についての忘備録

はじめに…

異なるPC、サーバーに設定しようと思うたびに、その書式や設定の仕方を忘れるのがプロンプトの表示設定。
その仕組み、書き方を残しておこうと思います。

PS1="\[\033[1;34m\][\$(date +%Y%H%M)][\u@\h:\w]$\[\033[0m\] "

こういうやつですね。
私は時間が空くと読めなくなります(笑)。

最初にばらしてしまうと、私は↓のように設定しています。

PS1="\[\033[0;34m\]\u\[\033[0;36m\]@\h\[\033[0;37m\]:\w$\[\033[0m\] "

userName@serverName:~/work/$
こんな感じで表示されます。

参照元

ここを見れば書いてあるのですが…。
でも長いので探しづらいですし、英語ですしね…。

www.gnu.org

ちなみにPS1とは?

「The primary prompt string.」です。まんまですね。

ちなみに、PS1があるということは、PS2もあります。
こちらは「The secondary prompt string.」で、要は\(バックスラッシュ)で改行した場合の2行目移行のプロンプトの表示文字列の指定になります。
デフォルトは「>」です、と聞くとピンと来やすいのではないでしょうか。

記法について

表示する項目

上記リンクのここに書いてありますが…
「6.9 Controlling the Prompt」
いくつか抜粋すると、こんな感じです。

\d The date, in "Weekday Month Date" format (e.g., "Tue May 26").
\h The hostname, up to the first ‘.’.
\H The hostname.
\n A newline.
\t The time, in 24-hour HH:MM:SS format.
\T The time, in 12-hour HH:MM:SS format.
\u The username of the current user.
\w The current working directory, with $HOME abbreviated with a tilde (uses the $PROMPT_DIRTRIM variable).
\W The basename of $PWD, with $HOME abbreviated with a tilde.
\[ Begin a sequence of non-printing characters. This could be used to embed a terminal control sequence into the prompt.
\] End a sequence of non-printing characters.

下2つはピンと来ないかもしれませんけど、装飾で必要になります。

これを見ると、[\u@\h:\w]ここらへんの意味がわかります。
「[」「]」「@」「:」のようにそのまま書いてあるものはそのまま表示されます。

一方で、[\$(date +%Y%H%M)]のようにコマンドの実行も可能になります。

装飾

色及び装飾(太字、アンダーライン)はまとめて指定します。
これは上記リンクのマニュアルにはなかったかも?

Color Regular Bold Underline Background
Black 0;30m 1;30m 4;30m 40m
Red 0;31m 1;31m 4;31m 41m
Green 0;32m 1;32m 4;32m 42m
Yellow 0;33m 1;33m 4;33m 43m
Blue 0;34m 1;34m 4;34m 44m
Purple 0;35m 1;35m 4;35m 45m
Cyan 0;36m 1;36m 4;36m 46m
White 0;37m 1;37m 4;37m 47m
Text Reset 0m

引用元:
Bash/プロンプトのカスタマイズ - ArchWiki

上記カラーコードを、「\[\e[」(または「\[\033[」)と「m\]」で挟む必要があります。
記号ばかりでわかりづらい…。

この前後に付いている「\[」「\]」は、カラーコードが実際には表示されないものになるので付けています。
こうすることで、カーソルの位置をbashに示していることになります。

装飾のキャンセルは「\[\033[0m\]」を指定することになります。
これであらかた説明がつくはず…。

以上でした。

Caps LockキーをCtrlキーに

※2019年3月29日においても、本件は有効でした。
※2023年12月1日においても、本件は有効でした。
 2006年のソフトウェアが今も使えるってすごいですね…。

目的

私は大体のキーボードにて左手小指のひとつ外にあるであろう、Caps LockキーをCtrlとして使用しています。
しかし、手持ちのPCをWindows 8.1からWindows 10にアップデートとしたところ、また元に戻っていたので再設定です。

何が便利?

やはりホームポジションから指を動かさずに、Ctrlキーを使えるということが大きいです。
英数字入力とローマ字入力の切り替えを「Ctrl+Space」でやっている私は、特にCaps Lockは使用しないので潰してます。

手段

いろんなやり方があるとは思いますが、私はこれを使用しています。
technet.microsoft.com

これ、マイクロソフトが公開している「無償のWindowsトラブルシューティングツール」郡のひとつになります。
マイクロソフト純正なら、安心だろうと思い、使用しています。

余談ですが、他にもこのツール群には便利なものがあります。
見ているだけでも面白いです。

仮想デスクトップのソフトもあります。
なぜ今まで標準装備しなかったのか(笑)。

導入の仕方

上に紹介したリンクに実は書いてあります。

Ctrl2cap をインストールするには、Ctrl2cap のファイルを解凍したディレクトリから "ctrl2cap /install" というコマンドを実行します。アンインストールするには、「ctrl2cap /uninstall」と入力します。

つまり、コマンドプロンプトを使うことになります。
その他、注意事項として…

  1. 再起動する必要があります。
  2. 管理者権限で実行する必要があります。

ここらへんに気をつければ導入は簡単です。

具体的に

管理者権限で実行するには、コマンドプロンプトを右クリックで「管理者権限で実行する」を選ぶのが早いかと思います。
コマンドプロンプトのexeファイルはこちらにあります。

C:\Windows\System32\cmd.exe

そして、ctrl2cap.exeがあるディレクトリに移動して、上記コマンドを実行します。

Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>cd C:\Users\ユーザー名\Desktop\Ctrl2Cap

C:\Users\ユーザー名\Desktop\Ctrl2Cap>
C:\Users\ユーザー名\Desktop\Ctrl2Cap>ctrl2cap /install

Ctrl2cap Installation Applet
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Ctrl2cap successfully installed. You must reboot for it to take effect.


C:\Users\ユーザー名\Desktop\Ctrl2Cap>
C:\Users\ユーザー名\Desktop\Ctrl2Cap>

管理者権限がない場合、ここで怒られました。
成功したら再起動してくれ、と言われるので、再起動したら完了です。

以上でした。