Linux 터미널에 날짜와 시간을 표시하는 방법 및 Bash 스크립트에서 사용하는 방법

0
1609
Unity 데스크탑 컨셉의 배쉬 쉘
Fatmawati Achmad Zaenuri / Shutterstock.com

그만큼 date 명령은 대부분의 Linux 배포판 및 심지어 macOS의 기본 쉘인 Bash 쉘에 있습니다. 이 자습서는 마스터하는 방법을 보여줍니다. date 명령 행에서 쉘 스크립트에서이를 사용하여 단순히 시간을 인쇄하는 것 이상을 수행하는 방법.

실행 date 이 정보를 보려면 명령. 시간대의 현재 날짜와 시간을 인쇄합니다.

date

날짜 명령의 출력

기본 서식은 약간 까다로워 보입니다. 시간대 뒤에서 태그를 지정하지 않고 월과 일 이후 연도가 인쇄되지 않는 이유는 무엇입니까? 걱정하지 마십시오. 원하는 출력 형식을 제어하는 ​​경우, date 스페이드로 제공합니다. 전달할 수있는 40 개 이상의 옵션이 있습니다 date 출력을 원하는대로 정확하게 형식화하도록 지시합니다.

옵션 유형을 사용하려면 date, 공백, 더하기 부호 +및 옵션 포함 선행 백분율 기호. 그만큼 %c (로케일 형식의 데이터 및 시간) 옵션을 사용하면 날짜 및 시간이 로케일과 연관된 정규화 된 형식으로 인쇄됩니다. 로케일은 운영 체제를 설치할 때 제공 한 지리적 및 문화적 정보에 의해 설정됩니다. 로케일은 통화 기호, 용지 크기, 시간대 및 기타 문화적 규범과 같은 것을 지배합니다.

date +%c

c 옵션을 사용하여 날짜 명령 출력

올해는 결과에서보다 자연스러운 위치에 나타납니다.

여러 옵션을 전달할 수 있습니다 date 한 번에. 일련의 옵션을 형식 문자열이라고합니다. 오늘의 이름을 보려면 (%A), 요일 (%d) 및 월 이름 (%B)이 명령을 사용하십시오 :

date +%A%d%B

A d B 옵션을 사용하여 날짜 명령 출력

그것은 효과가 있었지만 추악합니다. 우리는 전체 형식 문자열을 따옴표로 묶는 한 공백을 포함시킬 수 있습니다. 참고 + 간다 외부 따옴표.

date +"%A %d %B"

공백이있는 A d B 옵션을 사용하여 날짜 명령 출력

다음과 같이 형식 문자열에 텍스트를 추가 할 수 있습니다.

date +"Today is: %A %d %B"

사용자가 추가 한 텍스트로 데이터 명령 출력

를 통해 위아래로 스크롤 date 원하는 옵션을 찾는 맨 페이지는 곧 번거 롭습니다. 옵션을 그룹으로 묶어보다 쉽게 ​​길을 찾을 수 있도록했습니다.

날짜 및 시간을 표시하는 옵션

  • %씨: 시간대를 포함하여 로케일 형식으로 날짜 및 시간을 인쇄합니다.

날짜 명령의 출력

날짜를 표시하는 옵션

  • %디: 날짜를 mm / dd / yy 형식으로 인쇄합니다.
  • %에프: 날짜를 yyyy-mm-dd 형식으로 인쇄합니다.
  • %엑스: 로케일 형식으로 날짜를 인쇄합니다.

D F x 옵션을 사용하여 날짜 명령 출력

요일 표시 옵션

  • %ㅏ: 월, 화, 수 등으로 축약 된 요일 이름을 인쇄합니다.
  • %ㅏ: 월요일, 화요일, 수요일 등의 전체 이름을 인쇄합니다.
  • %유: 월요일 = 1, 화요일 = 2, 수요일 = 3 등의 요일 번호를 인쇄합니다.
  • % w: 일요일 = 0, 월요일 = 1, 화요일 = 2 등의 요일 번호를 인쇄합니다.
  • %디: 필요한 경우 앞에 오는 0 (01, 02… 09)으로 월의 일을 인쇄합니다.
  • %이자형: 필요한 경우 선행 공간 ( '1',‘2’…‘9’)과 함께 월의 일을 인쇄합니다. 아포스트로피는 인쇄되지 않습니다.
  • %제이: 필요한 경우 최대 2 개의 선행 0과 함께 일을 인쇄합니다.

A u w d e j 옵션을 사용하여 날짜 명령 출력

주를 표시하는 옵션

  • %유: 일요일을 요일을 첫 번째 요일로 간주하여 주 수를 인쇄합니다. 예를 들어, 올해의 세 번째 주, 20 주째 등
  • %V: 월요일을주의 첫 번째 요일로 간주하여 ISO 주 번호를 인쇄합니다.
  • % W: 월요일을 요일의 첫 번째 요일로 간주하여 연중 주 번호입니다.

U V W 옵션을 사용한 날짜 명령 출력

월을 표시하는 옵션

  • %비 또는 % h: 1 월, 2 월, 3 월 등으로 축약 된 월 이름을 인쇄합니다.
  • %비: 월, 1 월, 2 월, 3 월 등의 전체 이름을 인쇄합니다.
  • %미디엄: 필요한 경우 01, ​​02, 03… 12의 앞에 0을 표시하여 월의 숫자를 인쇄합니다.

b h B m 옵션을 사용하여 날짜 명령 출력

연도를 표시하는 옵션

  • %씨: 연도없이 세기를 인쇄합니다. 2019 년에는 20을 인쇄합니다.
  • %와이: 연도를 두 자리 숫자로 인쇄합니다. 2019 년에는 19로 인쇄됩니다.
  • %와이: 연도를 네 자리 숫자로 인쇄합니다.

C y Y 옵션을 사용하여 날짜 명령 출력

시간을 표시하는 옵션

  • %티: 시간을 HH : MM : SS로 인쇄합니다.
  • %아르 자형: 24 시간제를 사용하여 초와 시간없이 HH : MM으로시와 분을 인쇄합니다.
  • %아르 자형: 12 시간제와 오전 또는 오후 표시기를 사용하여 지역에 따라 시간을 인쇄합니다.
  • %엑스: 24 시간제를 사용하여 지역에 따라 시간을 인쇄합니다. 주장한 바에 의하면. 테스트하는 동안이 옵션은 다음과 같이 정확하게 작동합니다. %r 아래와 같이. 영국 로케일로 구성되고 GMT로 설정된 Linux 시스템에서 예상대로 AM 또는 PM 표시기가없는 24 시간 시계를 사용하여 시간을 인쇄했습니다.

T R r X 옵션을 사용하여 날짜 명령 출력

시간을 표시하는 옵션

  • % H: 00, 01, 02… 23 시간을 인쇄합니다.
  • %나는: 12 시간제 00, 01, 02… 12를 사용하여 시간을 인쇄합니다 (필요한 경우 앞에 0).

H I 옵션이있는 날짜 명령 출력

분을 표시하는 옵션

  • %미디엄: 01, 02, 03,… 59 분을 인쇄합니다 (필요한 경우 앞에 0).

M 옵션을 사용하여 날짜 명령 출력

초를 표시하는 옵션

  • %에스: Unix Epoch가 시작된 1970-01-01 00:00:00 이후의 시간 (초)을 인쇄합니다.
  • %에스: 필요한 경우 앞에 0을 사용하여 초 01, 02, 03… 59를 인쇄합니다.
  • %엔: 나노초를 인쇄합니다.

s S N 옵션을 사용하여 날짜 명령 출력

시간대 정보를 표시하는 옵션

  • %지: 시간대와 UTC의 시차를 인쇄합니다.
  • %:지: 시간대와 UTC의 시차를 시간과 분 사이의 :와 함께 인쇄합니다. 참고 : 사이 % 서명하고 z .
  • %::지: 시간대와 UTC의 시차를시, 분 및 초 사이의 :와 함께 인쇄합니다. 참고 :: 사이 % 서명하고 z .
  • %지: 알파벳 시간대 이름을 인쇄합니다.

시간대 옵션이있는 날짜 명령 출력

서식 관련 옵션

  • %피: AM 또는 PM 표시기를 대문자로 인쇄합니다.
  • %피: am 또는 pm 표시기를 소문자로 인쇄합니다. 이 두 가지 옵션이 있습니다. 소문자 p 대문자 출력, 대문자를 제공 P 소문자 출력을 제공합니다.
  • %티: 탭을 인쇄합니다.
  • %엔: 새 줄을 인쇄합니다.

AM PM 표시기 및 형식화 옵션이있는 날짜 명령 출력

다른 옵션을 수정하는 옵션

이 수정자는 사이에 삽입 될 수 있습니다 % 다른 옵션의 옵션 문자는 표시를 수정합니다. 예를 들어 %-S 한 자리 초 값의 선행 0을 제거합니다.

  • : 단일 하이픈은 단일 숫자 값에서 제로 패딩을 방지합니다.
  • _: 단일 밑줄은 단일 숫자 값을위한 선행 공백을 추가합니다.
  • 0: 한 자리수 값에 선행 0을 제공합니다.
  • ^: 가능하면 대문자를 사용합니다 (일부 옵션이이 수정자를 존중하는 것은 아님).
  • #: 가능한 경우 옵션의 기본 경우와 반대로 사용하십시오 (모든 옵션이이 수정자를 존중하는 것은 아님).

형식화 옵션이있는 날짜 명령 출력

두 가지 더 깔끔한 트릭

파일의 마지막 수정 시간을 얻으려면 -r (참조) 옵션. 이것은 - 대신 (하이픈) % 서명하지 않아도됩니다. + 기호. 홈 폴더에서이 명령을 시도하십시오.

date -r .bashrc

파일 수정 시간 옵션이있는 날짜 명령 출력

TZ 설정을 사용하면 단일 명령 기간 동안 시간대를 변경할 수 있습니다.

TZ=GMT date +%c

다른 시간대에 대한 날짜 명령 출력

스크립트에서 날짜 사용

Bash 쉘 스크립트를 사용하여 시간과 날짜를 인쇄하는 것은 쉽지 않습니다. 다음 내용이 포함 된 텍스트 파일을 작성하고 다른 이름으로 저장하십시오. gd.sh.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

다음 명령을 입력하여 실행 권한을 설정하고 스크립트를 실행 가능하게하십시오.

chmod +x gd.sh

이 명령으로 스크립트를 실행하십시오.

./gd.sh

gd.sh 스크립트의 출력

date 명령을 사용하여 타임 스탬프를 제공 할 수 있습니다. 표시된 스크립트는 이름이 타임 스탬프 인 디렉토리를 만듭니다. 그런 다음 현재 폴더의 모든 텍스트 파일을 해당 폴더로 복사합니다. 이 스크립트를 주기적으로 실행하면 텍스트 파일의 스냅 샷을 만들 수 있습니다. 시간이 지남에 따라 다양한 버전의 텍스트 파일이 포함 된 일련의 폴더가 만들어집니다.

이는 강력한 백업 시스템이 아니며 단지 설명을위한 것입니다.

다음 내용이 포함 된 텍스트 파일을 작성하고 다른 이름으로 저장하십시오. snapshot.sh.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +"%F-%H-%M-%S")

# make a directory with that name
mkdir "$date_stamp"

# copy the files from the current folder into it
cp *.txt "$date_stamp"

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

다음 명령을 입력하여 실행 권한을 설정하고 스크립트를 실행 가능하게하십시오.

chmod +x snapshot.sh

이 명령으로 스크립트를 실행하십시오.

./snapshot.sh

snapshot.sh 스크립트 실행의 효과

디렉토리가 생성되었음을 알 수 있습니다. 이름은 스크립트가 실행 된 날짜와 시간입니다. 해당 디렉토리 안에는 텍스트 파일의 사본이 있습니다.

약간의 생각과 창의력, 겸손한 것까지 date 명령을 생산적으로 사용할 수 있습니다.