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/$ 」
こんな感じで表示されます。
ちなみに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」と入力します。
つまり、コマンドプロンプトを使うことになります。
その他、注意事項として…
- 再起動する必要があります。
- 管理者権限で実行する必要があります。
ここらへんに気をつければ導入は簡単です。
具体的に
管理者権限で実行するには、コマンドプロンプトを右クリックで「管理者権限で実行する」を選ぶのが早いかと思います。
コマンドプロンプトの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>
管理者権限がない場合、ここで怒られました。
成功したら再起動してくれ、と言われるので、再起動したら完了です。
以上でした。