shellで日時を即取得するコマンドを作ろう
はじめに
Gitを使っていると、コメントとして日時と変更点みたいな感じで残していきたい時があります。
みたいな感じですね。
この日時の部分なのですが、変換では(デフォルトだと)時刻も含めた表示ができないことから、今までは「きょう」を変換して日付を出したあとに時刻を手打ちしていました。
しかし、非常に面倒なので、即座にコピペできるようターミナルで生成しようと思います。
もっとも、Google 日本語翻訳などを使えば変換で出せるようになるわけですが、自分はなるべく純正の変換以外を使いたくないのでそういう選択肢はとっていません。
実現したいこと
以下のように now
と打つだけで、現在の日時が表示されるようにしたいわけです。
$ now
2025/07/05 15:34
ステップ①:確認
そもそも、ターミナルにおいて日時を取得する場合には
$ date "+%Y/%m/%d %H:%M:%S"
2025/07/05 15:34:21
のように打てば、お望み通りのフォーマットで日時を取得できるわけです。
しかし、流石にめんどくさすぎるため、こいつをワンコマンドで制御できるようにしたいのです。
ステップ②:エイリアスの設定
ひとまず、ターミナルを開きます。そして、
nano ~/.zshrc
と入力します。
どのような意味を持っているのかというと、
- nano:ターミナルで使えるテキストエディタの一種
- ~/.zshrc:ホームディレクトリ(~)にある Zsh の設定ファイル(ログイン時や新しいターミナルを開いたときに実行される、シェルの初期設定ファイルです。)
であるので、「~/.zshrc という設定ファイルを nano エディタで開いて編集する」という感じですね。
コマンドの入力が終わると、
UW PICO 5.09 File: /Users/ユーザー名/.zshrc
#以下既存の内容ががある場合もある。
のような画面になるはずです。エディッティングモードに移行したので、挙動が普段のものと異なるので注意です。
ステップ③:エイリアスの入力
ファイルがひらけている状態で、既存の内容の下に1行ほど開けて、
#既存の内容
# 日時を表示するエイリアス
alias now="date '+%Y/%m/%d %H:%M'"
を入力します。
意味としては、"now" というコマンドを、"" 内の定義としてエイリアス化するということです。
これで、新たなエイリアスの作成は完了ですので、保存してやれば終わりです。
ステップ④:保存
ひとまず ctrl + O を入力します。この "O" というのは、"Write Out(i.e. 保存して書き出し)" から来ていますが、これを入力すると
File Name to write : /Users/ユーザー名/.zshrc
と表示されます。要するに確認画面です。
このあとは Enter を入力したら保存完了です。
その後、 ctrl + X を入力したら、いつもの画面に戻ってきて完了です。
ステップ⑤:動作確認
あとは正常な動作をすることが確認されれば完了です。普段の画面で、"now" を入力しましょう。
ホームディレクトリ ~ % now
2025/07/05 16:35
のような表示が出れば、完璧です。