Linux環境設定/bashのプロンプトに現在の時刻や、作業内容のメモを表示させる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* bashのプロンプトに現在の時刻や、作業内容のメモを表示さ...
本資料は、bashのプロンプトに各種情報を表示する設定方法を...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#q96bc59c]
-[[プロンプトに色をつける方法>Linux環境設定/プロンプトに...
* bashのプロンプト [#c4ede9e1]
bashのプロンプトには、様々な情報を表示させることができま...
ホスト名や現在の作業ディレクトリを表示することは一般的な...
他にも様々な情報を表示させることが可能です。~
以下はbashのプロンプトで使える特殊機能を持つ文字列です。
|\d |日付表示(曜日, 月 , 日)|
|\D{format} |時間表示。システムコール strfttime(3)のフォ...
|\h |ホスト名(ドメインパートを含まない)|
|\H |ホスト名|
|\j |バックグラウンドで起動しているジョブの数|
|\l |仮想端末の番号(pts/0, pts/1などの数字)|
|\n |改行(LF)|
|\r |改行(CR)|
|\s |シェル名(bash)|
|\t |時刻表示(24時間表示 HH:MM:SS)|
|\T |時刻表示(12時間表示 HH:MM:SS)|
|\@ |時刻表示(12時間表示 HH:MM AM/PM)|
|\A |時刻表示(24時間表示 HH:MM)|
|\u |ユーザ名|
|\v |bashのバージョン|
|\V |bashのバージョン(パッチレベル含む)|
|\w |現在の作業ディレクトリ(フルパス表示)|
|\W |現在の作業ディレクトリ(現在のディレクトリ名のみ表...
|\! |history上の番号|
|\# |bashが起動してからのコマンド番号|
|\$ |rootの場合には、# となり、それ以外のユーザでは $ と...
|\nnn |8進数での文字指定(nは数字)|
|\\ |\そのもの|
|\[ |ターミナル操作用のシーケンス文字列の開始|
|\] |ターミナル操作用のシーケンス文字列の終了|
* プロンプトのカスタマイズ [#jf4186ea]
これらの特殊な文字列を、シェル変数の''PS1''に設定すること...
例えば以下のように設定すると、
PS1="(\u@\H:\w \D{%FT%T})\n\\\$ "
プロンプトは以下のようになります。~
(ユーザ名・ホスト名・現在のディレクトリ・現在時刻・改行...
(root@ubuntu:~ 2013-08-15T00:18:33)
#
プロンプトはシェル変数や環境変数、コマンドの実行結果も表...
以下は''w''コマンドの同時ログインユーザ数をプロンプトに表...
PS1="Now $(w | head -1 | awk '{print $6}') users login \...
プロンプトは以下のようになります。
Now 2 users login #
* プロンプト情報の活用 [#v76f0733]
プロンプトは端末上で常に表示されているものなので、この機...
例えば、プロンプトに以下のような情報を含めておけば、端末...
作業の証跡としてのログを振り返って確認するときには非常に...
** 現在時刻を表示させる [#ud48de93]
上述のプロンプトでは現在の時刻が表示されています。~
(リアルタイムに時刻表示がカウントアップするわけではない...
プロンプトが表示された(先に実行したコマンドが完了した)...
''\D{%FT%T}''が現在の日付と時刻を表示している部分です。こ...
2013-08-15T00:18:52
のような時刻の表示フォーマット(ISO8601形式)としています。
これによって、作業履歴としてどの時間に何のコマンドを実行...
** 現在の作業内容のメモををプロンプトに含める [#ad72f08d]
自分が今何の作業をしているのか、もちろん自分が知っていま...
しかし、証跡としてのログを振り返って確認するときにはそう...
あるいは複数の作業を並列して実行しているときに、~
どの端末でどの作業をしていたか混乱することもありえます。
常に表示されているプロンプトに、その端末で実施している作...
ケアレスミスの防止や未来での作業内容の確認時に非常に有益...
* プロンプトに任意の文字列を随時設定する機能 [#dc971e23]
プロンプトの設定はシェル変数''PS1''を変更するだけです。~
しかし「現在の作業内容メモ」=「任意の文字列」を簡便に変更...
** bashの関数として組み込む [#d9ce5af2]
function caption() {
if [ x"$*" = x ]; then
CAPTION=""
else
CAPTION=" $*"
fi
PS1="(\u@\H:\w \D{%FT%T}${CAPTION})\n\\\$ "
}
これを''.bashrc''に追加すると通常のコマンドと同様に利用で...
** 利用方法 [#gff7dee9]
+ 通常状態では、ユーザ名とホスト名、カレントディレクトリ...
#
(root@ubuntu:~ 2013-08-15T00:18:33)
#
#br
+ 作業開始です。~
''caption''というコマンド(bash関数)に続いて、''TEST01 S...
# caption TEST01 START
(root@ubuntu:~ 2013-08-15T00:18:43 TEST01 START)
#
#br
+ プロンプトに''TEST01 START''が表示されています。~
''TEST01''の作業中だということが(後から作業ログを見ても...
作業(psの実行)を行います。
#br
# ps
PID TTY TIME CMD
24062 pts/0 00:00:00 sudo
24063 pts/0 00:00:00 bash
24125 pts/0 00:00:00 ps
(root@ubuntu:~ 2013-08-15T00:18:52 TEST01 START)
#
#br
+ ''TEST01''は完了したので、''caption TEST01 END''を実行...
# caption TEST01 END
(root@ubuntu:~ 2013-08-15T00:18:57 TEST01 END)
#
#br
+ 続いて、''TEST02''を開始します。~
''caption''で''TEST02 1ST TRY''と実行し、プロンプトの表示...
作業(pingの実行)を行います。
# caption TEST02 1ST TRY
(root@ubuntu:~ 2013-08-15T00:19:08 TEST02 1ST TRY)
# ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 t...
--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 0.053/0.053/0.053/0.000 ms
(root@ubuntu:~ 2013-08-15T00:19:41 TEST02 1ST TRY)
#
#br
+ ''TEST02''作業は完了しました。''TEST02 END''を打ち込み...
# caption TEST02 END
(root@ubuntu:~ 2013-08-15T00:19:53 TEST02 END)
#
#br
+ すべての作業が完了したら、引数なしで''caption''を実行し...
# caption
(root@ubuntu:~ 2013-08-15T00:19:57)
#
プロンプト文字列を設定するのは小技ですが、利用の仕方によ...
以上、bashのプロンプトに現在の時刻や、作業内容のメモを表...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* bashのプロンプトに現在の時刻や、作業内容のメモを表示さ...
本資料は、bashのプロンプトに各種情報を表示する設定方法を...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#q96bc59c]
-[[プロンプトに色をつける方法>Linux環境設定/プロンプトに...
* bashのプロンプト [#c4ede9e1]
bashのプロンプトには、様々な情報を表示させることができま...
ホスト名や現在の作業ディレクトリを表示することは一般的な...
他にも様々な情報を表示させることが可能です。~
以下はbashのプロンプトで使える特殊機能を持つ文字列です。
|\d |日付表示(曜日, 月 , 日)|
|\D{format} |時間表示。システムコール strfttime(3)のフォ...
|\h |ホスト名(ドメインパートを含まない)|
|\H |ホスト名|
|\j |バックグラウンドで起動しているジョブの数|
|\l |仮想端末の番号(pts/0, pts/1などの数字)|
|\n |改行(LF)|
|\r |改行(CR)|
|\s |シェル名(bash)|
|\t |時刻表示(24時間表示 HH:MM:SS)|
|\T |時刻表示(12時間表示 HH:MM:SS)|
|\@ |時刻表示(12時間表示 HH:MM AM/PM)|
|\A |時刻表示(24時間表示 HH:MM)|
|\u |ユーザ名|
|\v |bashのバージョン|
|\V |bashのバージョン(パッチレベル含む)|
|\w |現在の作業ディレクトリ(フルパス表示)|
|\W |現在の作業ディレクトリ(現在のディレクトリ名のみ表...
|\! |history上の番号|
|\# |bashが起動してからのコマンド番号|
|\$ |rootの場合には、# となり、それ以外のユーザでは $ と...
|\nnn |8進数での文字指定(nは数字)|
|\\ |\そのもの|
|\[ |ターミナル操作用のシーケンス文字列の開始|
|\] |ターミナル操作用のシーケンス文字列の終了|
* プロンプトのカスタマイズ [#jf4186ea]
これらの特殊な文字列を、シェル変数の''PS1''に設定すること...
例えば以下のように設定すると、
PS1="(\u@\H:\w \D{%FT%T})\n\\\$ "
プロンプトは以下のようになります。~
(ユーザ名・ホスト名・現在のディレクトリ・現在時刻・改行...
(root@ubuntu:~ 2013-08-15T00:18:33)
#
プロンプトはシェル変数や環境変数、コマンドの実行結果も表...
以下は''w''コマンドの同時ログインユーザ数をプロンプトに表...
PS1="Now $(w | head -1 | awk '{print $6}') users login \...
プロンプトは以下のようになります。
Now 2 users login #
* プロンプト情報の活用 [#v76f0733]
プロンプトは端末上で常に表示されているものなので、この機...
例えば、プロンプトに以下のような情報を含めておけば、端末...
作業の証跡としてのログを振り返って確認するときには非常に...
** 現在時刻を表示させる [#ud48de93]
上述のプロンプトでは現在の時刻が表示されています。~
(リアルタイムに時刻表示がカウントアップするわけではない...
プロンプトが表示された(先に実行したコマンドが完了した)...
''\D{%FT%T}''が現在の日付と時刻を表示している部分です。こ...
2013-08-15T00:18:52
のような時刻の表示フォーマット(ISO8601形式)としています。
これによって、作業履歴としてどの時間に何のコマンドを実行...
** 現在の作業内容のメモををプロンプトに含める [#ad72f08d]
自分が今何の作業をしているのか、もちろん自分が知っていま...
しかし、証跡としてのログを振り返って確認するときにはそう...
あるいは複数の作業を並列して実行しているときに、~
どの端末でどの作業をしていたか混乱することもありえます。
常に表示されているプロンプトに、その端末で実施している作...
ケアレスミスの防止や未来での作業内容の確認時に非常に有益...
* プロンプトに任意の文字列を随時設定する機能 [#dc971e23]
プロンプトの設定はシェル変数''PS1''を変更するだけです。~
しかし「現在の作業内容メモ」=「任意の文字列」を簡便に変更...
** bashの関数として組み込む [#d9ce5af2]
function caption() {
if [ x"$*" = x ]; then
CAPTION=""
else
CAPTION=" $*"
fi
PS1="(\u@\H:\w \D{%FT%T}${CAPTION})\n\\\$ "
}
これを''.bashrc''に追加すると通常のコマンドと同様に利用で...
** 利用方法 [#gff7dee9]
+ 通常状態では、ユーザ名とホスト名、カレントディレクトリ...
#
(root@ubuntu:~ 2013-08-15T00:18:33)
#
#br
+ 作業開始です。~
''caption''というコマンド(bash関数)に続いて、''TEST01 S...
# caption TEST01 START
(root@ubuntu:~ 2013-08-15T00:18:43 TEST01 START)
#
#br
+ プロンプトに''TEST01 START''が表示されています。~
''TEST01''の作業中だということが(後から作業ログを見ても...
作業(psの実行)を行います。
#br
# ps
PID TTY TIME CMD
24062 pts/0 00:00:00 sudo
24063 pts/0 00:00:00 bash
24125 pts/0 00:00:00 ps
(root@ubuntu:~ 2013-08-15T00:18:52 TEST01 START)
#
#br
+ ''TEST01''は完了したので、''caption TEST01 END''を実行...
# caption TEST01 END
(root@ubuntu:~ 2013-08-15T00:18:57 TEST01 END)
#
#br
+ 続いて、''TEST02''を開始します。~
''caption''で''TEST02 1ST TRY''と実行し、プロンプトの表示...
作業(pingの実行)を行います。
# caption TEST02 1ST TRY
(root@ubuntu:~ 2013-08-15T00:19:08 TEST02 1ST TRY)
# ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 t...
--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time ...
rtt min/avg/max/mdev = 0.053/0.053/0.053/0.000 ms
(root@ubuntu:~ 2013-08-15T00:19:41 TEST02 1ST TRY)
#
#br
+ ''TEST02''作業は完了しました。''TEST02 END''を打ち込み...
# caption TEST02 END
(root@ubuntu:~ 2013-08-15T00:19:53 TEST02 END)
#
#br
+ すべての作業が完了したら、引数なしで''caption''を実行し...
# caption
(root@ubuntu:~ 2013-08-15T00:19:57)
#
プロンプト文字列を設定するのは小技ですが、利用の仕方によ...
以上、bashのプロンプトに現在の時刻や、作業内容のメモを表...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: