だから私は2つの異なるLinuxをインストールしました。そのうちの1つはUbuntuで、2番目は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
両方のシステムのロケール設定は同じです。 Ubuntulocale
設定:
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
2台のコンピュータでコマンド出力が異なるのはなぜですか?
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
)に深く埋め込まれています。ロケールは、曜日が最初に来るのか、用紙サイズ、電話番号の形式、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]
これは新規ログインに適用されます。