Linuxのdateコマンドは、システムの日付と時刻を表示または設定するために使用されます。これにより、ユーザーは時間をさまざまな形式で表示し、過去と未来の日付を計算できます。
このチュートリアルでは、dateコマンドについて学習します。 Linuxで使用例 。
Linuxのdateコマンドの使用方法は?
Linux端末でのdateコマンドの構文は次のとおりです。
date [option]... [+format]
デフォルトでは、dateコマンドはシステムが構成されているタイムゾーンの日付を出力します。日付と時刻を変更するには、rootまたはsudo権限を持つユーザーが必要です。
表示日
日付コマンドをオプションや引数なしで使用すると、現在の日付と時刻がデフォルトの形式で次のように表示されます。
$ date
出力には、曜日、月の日、現在の月、年、現在の時刻、および年を含むタイムゾーンが表示されます。 dateコマンドは、オペレーティングシステムに設定されているデフォルトのタイムゾーンを表示します。
将来の日付を表示
日付文字列-dまたは--dateオプションを使用すると、将来または今後の日付を印刷できます。将来の日付を印刷するには、「次の金曜日」、「明日」などの文字列に値を入力します。
たとえば、明日の日付を印刷するには、次のコマンドを入力します。
$ date -d ”tomorrow”
次の金曜日の日付を表示します:
$ date -d "next Friday"
過去の日付を表示する
-dオプションを使用すると、Linuxシステムで過去の日付を表示できます。日付文字列を使用すると、「昨日」、「土曜日」、「先週の金曜日」、「3年前」などの値を入力できます。したがって、次の日付文字列を使用すると、過去の日付を表示できます。
$ date -date "1 year ago"
昨日の日付を表示するには、dateコマンドで次の文字列を使用します。
$ date -d ”yesterday”
同様に、最終金曜日の日付を表示するには、以下のコマンドを実行します。
$ date -d ”last Friday”
日付コマンド形式オプション
Linux dateコマンドの表示される端末出力は、「+」記号が前に付いたフォーマット制御文字を使用してフォーマットできます。これらのフォーマットコントロールはすべて「%」記号で始まり、その後に値が続きます。
たとえば、dateコマンドの出力を次のようにフォーマットします。
$ date +"Year: %Y, Month: %m, Day: %d"
次の最も一般的なフォーマット文字のリストを使用して、出力を希望のフォーマットで表示できます。
- %a-平日の名前を短い形式(例:月)で印刷します
- %A-平日の完全な名前(月曜日など)を表示するために使用されます
- %b-月の名前を短い形式で表示します(例:1月)
- %B-月全体の名前(1月など)を表示するために使用されます
- %d-月の日を表示します(例:05)
- %H-表示時間(00..23)
- %I-時間を(01..12)形式で表示
- %j-年の日(001..366)を表示します
- %m-月を数値(01..12)で表示します
- %M-議事録を00..59秒で印刷します。
- %S-秒(00..60)を表示します
- %u-週の日を数値(1..7)で表示します
- %Y-通年(例:2019)を表示するために使用されます
次のコマンドを使用して、dateコマンドのフォーマットオプションの完全なリストを調べることができます。
$ date --help
$ man date
文字列値から日付を表示
-dateまたは-dオプションを使用すると、特定の日付を表示できます。日付文字列から特定の日付を表示するには、次のコマンドのように人間が読める形式の日付文字列を指定します。
$ date -d "2020-10-09 10:22:47"
-dオプションを使用すると、次のようにカスタム形式で日付を表示することもできます。
$ date -d '12 Jan 2021' +'%A, %d %B %Y'
ファイルの最終変更時刻を表示
場合によっては、ファイルの最終変更時刻を表示する必要があります。 Linuxシステムのdateコマンドは、ファイルの最後の変更時刻を印刷するのに役立ちます。 dateコマンドに続けて「-r」オプションを使用すると、ファイルの最終変更時刻が出力されます。
たとえば、「/ etc / hosts」ファイルの最終変更日を表示するには、次のコマンドを使用します。
$ date -r /etc/hosts
タイムゾーンを設定するDateコマンド
dateコマンドは、「/ etc/localtime」ファイルで定義されているシステムのデフォルトのタイムゾーンを表示します。ただし、別の国のタイムゾーンを印刷するには、「TZ」環境変数を目的のタイムゾーンに設定します。
次のコマンドを実行して、使用可能なすべてのタイムゾーンリストを表示するには:
$ timedatectl list-timezones
たとえば、シドニーからオーストラリアの時刻を表示するようにタイムゾーンを設定するには、次のコマンドを実行します。
$ TZ='Australia/Melbourne' date
エポックコンバータとしての使用
dateコマンドは、エポックコンバーターとしても機能します。エポックは、1975年2月2日00:00:00UTCから経過した秒数で時間を表示します。現在の日付までの経過時間を秒単位で表示するには、フォーマットコントロール%s:
とともにdateコマンドを使用します。$ date +%s
たとえば、エポックから特定の日付までに経過した秒数を表示するには、次のコマンドを使用します。
$ date -d "1980-10-25" +"%s"
他のコマンドでの日付の使用
Linuxシステムの「date」コマンドを他のコマンドと一緒に実装して、現在の日付と時刻に関する情報を含むさまざまなファイル名を作成できます。
次の例では、以下のコマンドを使用して新しいSQLバックアップファイルを作成しました。
$ mysqldump database_name > database_name-$(date +%Y%m%d).sql
dateコマンドは、シェルスクリプトでも使用できます。次の例では、dateコマンドの出力を新しい変数「date_now」に割り当てました。
$ date_current=$(date "+%F-%H-%M-%S")
$ echo $date_current
Linuxで日付を設定
dateコマンドを使用すると、Linuxシステムの日付を手動で設定できます。
たとえば、Linuxシステムの日付と時刻を2021年10月13日の午後2時30分に手動で設定するには、次のコマンドを実行します。
$ date --set="20211013 05:30"
ほとんどのLinuxディストリビューションのシステム時刻は、デフォルトでNTPまたはtimedatectl/timesyncdと同期されます。したがって、変更についてあまり心配する必要はありません。
結論
Linuxシステムでdateコマンドを使用する方法についてのチュートリアルを提供しました。日付コマンドの詳細については、日付コマンドのマニュアルページにアクセスしてください。