Linux の日付/時刻表示

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、コマンドラインを使用して Linux で日付と時刻を管理する方法を紹介します。現在の日付と時刻を表示する方法、さまざまな表示目的に合わせて形式をカスタマイズする方法、および時刻関連の情報を操作する方法を学びます。これらのコマンドは、さまざまなシステム管理タスク、ログ分析、スクリプトのスケジューリング、および Linux 環境での日常の多くの操作に不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/date("Date/Time Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/ls -.-> lab-271261{{"Linux の日付/時刻表示"}} linux/chmod -.-> lab-271261{{"Linux の日付/時刻表示"}} linux/cd -.-> lab-271261{{"Linux の日付/時刻表示"}} linux/date -.-> lab-271261{{"Linux の日付/時刻表示"}} linux/env -.-> lab-271261{{"Linux の日付/時刻表示"}} linux/nano -.-> lab-271261{{"Linux の日付/時刻表示"}} end

現在の日付と時刻の表示

Linux では、date コマンドを使用して現在の日付と時刻を表示できます。この基本的なコマンドは、スクリプト、ログ、および多くのシステム操作で使用されます。

プロジェクトディレクトリに移動し、以下のコマンドを実行します。

cd ~/project
date

以下のような出力が表示されるはずです。

Wed Mar 31 21:00:00 PDT 2021

この出力は以下の情報を示しています。

  • 曜日 (Wed)
  • 月 (Mar)
  • 日 (31)
  • 24 時間制の時刻 (21:00:00)
  • タイムゾーン (PDT)
  • 年 (2021)

このデフォルトの形式は簡単な参照に便利ですが、後の手順では特定のニーズに合わせて表示形式をカスタマイズする方法を学びます。

日付形式のカスタマイズ

デフォルトの日付形式は便利ですが、ログ、ファイル名付け、またはデータ処理タスクでは、特定の形式で日付と時刻を表示する必要があることがよくあります。date コマンドは、出力をカスタマイズできる形式指定子を受け付けます。

以下のコマンドを実行して、日付を YYYY-MM-DD 形式で、時刻を HH:MM:SS 形式で表示します。

date '+%Y-%m-%d %H:%M:%S'

以下のような出力が表示されるはずです。

2021-03-31 21:02:00

使用されている形式指定子を理解しましょう。

  • %Y: 4 桁の年 (例:2021)
  • %m: 2 桁の月 (01 - 12)
  • %d: 2 桁の日 (01 - 31)
  • %H: 24 時間制の時 (00 - 23)
  • %M: 分 (00 - 59)
  • %S: 秒 (00 - 59)

この形式 (YYYY-MM-DD HH:MM:SS) は、国際日付標準 (ISO 8601) に準拠しており、ファイル名に使用すると正しくソートされるため、コンピューティングで広く使用されています。

他の便利な形式の組み合わせを試してみましょう。

## 日付のみを YYYY-MM-DD 形式で表示
date '+%Y-%m-%d'
## 時刻のみを HH:MM:SS 形式で表示
date '+%H:%M:%S'
## 曜日名と月名を含むカスタム形式
date '+%A, %B %d, %Y'

最後のコマンドは、「Wednesday, March 31, 2021」のような出力を生成します。

日付の各要素を扱う

このステップでは、日付と時刻の特定の要素を抽出する方法を学びます。これは、スクリプトや条件付き操作に役立ちます。

現在の年を抽出するには、以下のコマンドを使用します。

date '+%Y'

これにより、現在の年のみが出力されます。例えば、

2021

これらの個々の要素をシェルスクリプトで使用して、タイムスタンプ付きのファイル名を付けたり、現在の日付に基づいて判断を下したりすることができます。

日付コマンドを使用してタイムスタンプ付きのファイル名を作成する簡単なシェルスクリプトを作成しましょう。プロジェクトディレクトリに timestamp.sh という名前の新しいファイルを作成します。

cd ~/project
nano timestamp.sh

以下の内容をファイルに追加します。

#!/bin/bash

## 現在の日付と時刻を異なる形式で取得
CURRENT_DATE=$(date '+%Y-%m-%d')
CURRENT_TIME=$(date '+%H-%M-%S')
TIMESTAMP=$(date '+%Y%m%d_%H%M%S')

## 値を表示
echo "Current date: $CURRENT_DATE"
echo "Current time: $CURRENT_TIME"
echo "Timestamp: $TIMESTAMP"

## ファイル名にタイムスタンプを使用する例
echo "Example filename: backup_$TIMESTAMP.tar.gz"

Ctrl+O を押してから Enter を押してファイルを保存し、Ctrl+X を押して nano を終了します。

スクリプトを実行可能にします。

chmod +x timestamp.sh

スクリプトを実行します。

./timestamp.sh

出力には、異なる日付形式と、それらをファイル名にどのように使用できるかが表示されます。

Current date: 2021-03-31
Current time: 21-05-30
Timestamp: 20210331_210530
Example filename: backup_20210331_210530.tar.gz

このスクリプトは、日付の各要素がシステム管理やファイル管理タスクで実際にどのように使用できるかを示しています。

異なるタイムゾーンでの日付表示

グローバルなチームで作業する際には、異なるタイムゾーンの時刻を理解して表示する必要があることがよくあります。Linux では、環境変数を使用して様々なタイムゾーンの日付と時刻を表示できます。

まず、システムで利用可能なタイムゾーンを確認しましょう。

ls -la /usr/share/zoneinfo

大陸や地域を表す多数のディレクトリが表示されます。特定の地域を調べることもできます。

ls -la /usr/share/zoneinfo/America

これにより、アメリカの各地域で利用可能なすべてのタイムゾーンが表示されます。

特定のタイムゾーンの日付と時刻を表示するには、date コマンドの前に TZ 環境変数を使用します。

TZ='America/New_York' date

このコマンドは、ニューヨークの現在の日付と時刻を表示します。出力は以下のようになります。

Wed Mar 31 18:00:00 EDT 2021

異なる地域の時刻を表示してみましょう。

TZ='Europe/London' date
TZ='Asia/Tokyo' date
TZ='Australia/Sydney' date

タイムゾーンの設定と形式指定子を組み合わせることもできます。

TZ='Europe/Paris' date '+%Y-%m-%d %H:%M:%S %Z'

出力の最後にはタイムゾーンの略称が含まれます。

2021-03-31 23:00:00 CEST

この例では、%Z がタイムゾーンの略称(中央ヨーロッパ夏時間の場合は CEST)を表示します。

異なるタイムゾーンの日付を表示できることは、グローバルなチーム間での活動の調整、会議のスケジューリング、および異なる地域のサーバーからのログのトラブルシューティングにおいて重要です。

まとめ

この実験では、システム管理やスクリプト作成タスクにおいて基本的な Linux の日付と時刻の操作コマンドを学びました。

  1. 現在の日付と時刻を表示するための基本的な date コマンドの使用
  2. %Y%m%d%H%M%S などの形式指定子を使用した日付と時刻の形式のカスタマイズ
  3. スクリプトで使用するための日付と時刻の特定の要素の抽出
  4. 日付形式を使用してタイムスタンプ付きのファイル名を作成するシェルスクリプトの作成
  5. TZ 環境変数を使用した異なるタイムゾーンでの日付と時刻の表示

これらのスキルは、以下を含む多くの実世界のタスクに直接適用できます。

  • タイムスタンプ付きのログファイルの作成
  • 日付情報を含むバックアップファイルの命名
  • 日付条件に基づくタスクのスケジューリング
  • 異なるタイムゾーンのチームとの調整
  • システムログ内の時間に敏感な問題のトラブルシューティング

Linux での作業を続けるうちに、これらの日付操作技術が効率的なシステム管理と自動化に欠かせないものであることがわかるでしょう。