はじめに
この実験では、コマンドラインを使用して Linux で日付と時刻を管理する方法を紹介します。現在の日付と時刻を表示する方法、さまざまな表示目的に合わせて形式をカスタマイズする方法、および時刻関連の情報を操作する方法を学びます。これらのコマンドは、さまざまなシステム管理タスク、ログ分析、スクリプトのスケジューリング、および Linux 環境での日常の多くの操作に不可欠です。
この実験では、コマンドラインを使用して Linux で日付と時刻を管理する方法を紹介します。現在の日付と時刻を表示する方法、さまざまな表示目的に合わせて形式をカスタマイズする方法、および時刻関連の情報を操作する方法を学びます。これらのコマンドは、さまざまなシステム管理タスク、ログ分析、スクリプトのスケジューリング、および Linux 環境での日常の多くの操作に不可欠です。
Linux では、date
コマンドを使用して現在の日付と時刻を表示できます。この基本的なコマンドは、スクリプト、ログ、および多くのシステム操作で使用されます。
プロジェクトディレクトリに移動し、以下のコマンドを実行します。
cd ~/project
date
以下のような出力が表示されるはずです。
Wed Mar 31 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 の日付と時刻の操作コマンドを学びました。
date
コマンドの使用%Y
、%m
、%d
、%H
、%M
、%S
などの形式指定子を使用した日付と時刻の形式のカスタマイズTZ
環境変数を使用した異なるタイムゾーンでの日付と時刻の表示これらのスキルは、以下を含む多くの実世界のタスクに直接適用できます。
Linux での作業を続けるうちに、これらの日付操作技術が効率的なシステム管理と自動化に欠かせないものであることがわかるでしょう。