그래서 저는 2개의 서로 다른 Linux를 설치했습니다. 그 중 하나는 Ubuntu이고 두 번째는 Kali입니다.
date
Ubuntu 설치에서 옵션/인수 없이 명령을 실행 하면 다음 과 같은 결과가 나타납니다.
michal@ubuntu:~$ date
Thu 24 Mar 2022 07:56:23 PM CET
date
Kali 설치에서 옵션/매개변수 없이 명령을 실행 하면 다음과 같은 결과가 나타납니다.
┌──(michal㉿kali)-[~]
└─$ date
Thu Mar 24 07:58:34 PM CET 2022
두 시스템의 로캘 설정은 동일합니다. Ubuntu locale
설정:
michal@ubuntu:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
칼리 locale
설정:
┌──(michal㉿kali)-[~]
└─$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
date
두 컴퓨터에서 명령 출력이 다른 이유는 무엇입니까 ?
Kali 출력을 현재 Ubuntu 출력과 동일하게 영구적으로 변경하고 싶습니다.
michal@ubuntu:~$ date
Thu 24 Mar 2022 07:56:23 PM CET
어떤 파일을 편집해야 합니까? 이 설정은 어디에 있나요?
이 스레드의 단계를 따라해 보았습니다.
기본 날짜 형식을 변경하는 방법(LC_TIME 사용)
그러나 나는 무엇을 이해하지 못합니다: " date
texinfo는 또한 명시적으로 권장합니다.LC_TIME을 C로 설정로케일 독립적인 출력을 생성합니다. "그 의미.
답변1
date
출력 형식을 어떻게 지정해야 하는지 알 수 있습니다 .
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
%b locale's abbreviated month name (e.g., Jan)
%B locale's full month name (e.g., January)
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 20)
%d day of month (e.g., 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; like %+4Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour, space padded ( 0..23); same as %_H
%l hour, space padded ( 1..12); same as %_I
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%q quarter of year (1..4)
%r locale's 12-hour clock time (e.g., 11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since the Epoch (1970-01-01 00:00 UTC)
%S second (00..60)
%t a tab
%T time; same as %H:%M:%S
%u day of week (1..7); 1 is Monday
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
%w day of week (0..6); 0 is Sunday
%W week number of year, with Monday as first day of week (00..53)
%x locale's date representation (e.g., 12/31/99)
%X locale's time representation (e.g., 23:13:48)
%y last two digits of year (00..99)
%Y year
%z +hhmm numeric time zone (e.g., -0400)
%:z +hh:mm numeric time zone (e.g., -04:00)
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z numeric time zone with : to necessary precision (e.g., -04, +05:30)
%Z alphabetic time zone abbreviation (e.g., EDT)
귀하의 경우 명령은 다음과 같습니다.
date +"%a %d %b %Y %r %Z"
별칭을 설정하면 date
명령의 동작을 변경할 수 있습니다.
alias date='date +"%a %d %b %Y %r %Z"'
~/.bashrc
현재 사용자에 대한 변경 사항을 영구적으로 적용하려면 계정에 별칭을 추가할 수 있습니다 .
답변2
명령의 기본 형식은 date(1)
로케일 시스템(특히 date_fmt
의 설정 LC_TIME
)에 깊이 묻혀 있습니다. 로케일(Locale)은 요일이 먼저 오는지, 용지 크기, 전화번호 형식, d/m/y인지 m/d/y인지, 각 자릿수 등 위치와 관련된 사항을 지정하는 시스템입니다. 숫자.
2018년 Ubuntu 18.04LTS 출시 이후 (미국 영어) 사용자의 기본 설정이 date(1)
변경되었습니다. en_US
미국의 date(1)
18.04 이후 Ubuntu 버전에서 이 명령으로 생성된 날짜는 AM 또는 PM을 포함하여 12시간 형식입니다. 다른 배포판이 언제 무엇을 했는지는 모르겠습니다.
C/POSIX 로케일은 절대 변경되지 않는 위치 독립적 로케일입니다. 이것은 Unix 시스템이 로케일 조정을 시작하기 전에 수행하는 작업과 거의 같습니다. 해당 로케일은 C라고 합니다.
상황에 따라 여러 가지 옵션이 있습니다.
이 명령을 사용하여 이전 데이터에 의존하는 소프트웨어 가 없으면
date(1)
계속 사용하는 것을 고려할 수 있습니다. 실제로 미국에서는 12시간제와 AM/PM을 사용합니다.나처럼
date(1)
스크립트를 계속 사용하여 특정 형식으로 날짜를 생성하려면 명령줄에서 형식 지정자를 사용할 수 있습니다.$ date +"%a %b %e %H:%M:%S %Z %Y" Mon Jun 12 15:30:44 EDT 2023
환경 변수와 함께 사용할 로케일을 지정
LANG
하고 C로 설정할 수도 있습니다.$ LANG=C date Mon Jun 12 15:30:44 EDT 2023
특정 쉘에 대해 설정 가능
$ export LANG=C $ date Mon Jun 12 15:30:44 EDT 2023
모든 쉘에서 이를 사용하려면
export LANG=C
해당 행을~/.bash_aliases
.date(1)
다른 사용자가 호출하거나 쉘에서 호출하지 않더라도 인수 없이 지정된 형식을 생성 하려면date(1)
명령에 대한 시스템 기본 형식을 변경해야 합니다. 이것은 조금 더 복잡합니다.# Modify one line in the en_US locale file: cd /usr/share/i18n/locales sed -e '/date_fmt/ s/%r/%H:%M:%S/' en_US > en_US@Cdate # List it as a supported locale: cat >> /etc/locale.gen << EOF [email protected] UTF-8 EOF # compile the locale database locale-gen # select the new locale (modifies /etc/default/locale) update-locale [email protected]
이는 신규 로그인에 적용됩니다.