Како приказати датум и време на Линук терминалу (и користити га у Басх скриптама)

Команда датума се налази у Басх љусци, која је подразумевана љуска у већини Линук дистрибуција, па чак и у мацОС-у. Овај водич вам показује како да савладате датум на командној линији и како га можете користити у схелл скриптама да урадите више од једноставног штампања времена.

Покрените команду дате да бисте видели ове информације. Штампа тренутни датум и време за вашу временску зону:

date

Подразумевано форматирање изгледа мало глупо. Зашто година није одштампана иза месеца и дана, уместо да буде означена на крају, иза временске зоне? Не плашите се: ако је то контрола над форматом излаза који желите, датум га испоручује у пику. Постоји више од 40 опција које можете проследити до данас да бисте га упутили да форматира свој излаз тачно онако како желите.

Да бисте користили било коју од опција, унесите датум, размак, знак плус + и опцију која укључује водећи знак процента. Опција %ц (подаци и време у формату локализације) узрокује штампање датума и времена у нормализованом формату повезаном са вашим језиком. Локалитет је постављен на основу географских и културних информација које сте дали када сте инсталирали оперативни систем. Локалитет регулише ствари као што су симбол валуте, величине папира, временска зона и друге културне норме.

date +%c

Година се сада појављује у природнијој позицији у производњи.

Можете пренети неколико опција до данас одједном. Низ опција назива се низ формата. Да бисте видели назив дана (%А), дан у месецу (%д) и назив месеца (%Б), користите ову команду:

date +%A%d%B

То је успело, али је ружно. Нема проблема, можемо укључити размаке све док цео низ формата умотамо у наводнике. Имајте на уму да + излази ван наводника.

date +"%A %d %B"

Можете додати текст у низ формата, овако:

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

Померање горе-доле кроз датум ман страница тражење опције коју желите ускоро постаје заморно. Поделили смо опције у групе како бисмо вам помогли да се лакше снађете око њих.

Опције за приказ датума и времена

%ц: Штампа датум и време у формату за ваш локал, укључујући временску зону.

  4 најбоље апликације за читање РСС канала за Линук

Опције за приказ датума

%Д: Штампа датум у мм/дд/ии формату.
%Ф: Штампа датум у формату гггг-мм-дд.
%к: Штампа датум у формату за ваш локал.

Опције за приказ дана

%а: Штампа назив дана, скраћено на пон, уто, сре, итд.
%А: Штампа пуно име дана, понедељак уторак, среда, итд.
%у: Штампа број дана у недељи, где је понедељак=1, уторак=2, среда=3, итд.
%в: Штампа број дана у недељи, где је недеља=0, понедељак=1, уторак=2, итд.
%д: Штампа дан у месецу, са почетном нулом (01, 02 … 09) ако је потребно.
%е: Штампа дан у месецу, са водећим размаком (‘ 1’, ‘ 2’ … ‘ 9’) ако је потребно. Имајте на уму да се апострофи не штампају.
%ј: Штампа дан у години, са највише две водеће нуле, ако је потребно.

Опције за приказ недеље

%У: Штампа број недеље у години, сматрајући недељу првим даном у недељи. На пример, трећа недеља у години, двадесета недеља у години, итд.
%В: Штампа ИСО број недеље у години, сматрајући понедељак као први дан у недељи.
%В: Број недеље у години, сматрајући понедељак као први дан у недељи.

Опције за приказ месеца

%б или %х: Штампа име месеца скраћено на Јан, Феб, Мар, итд.
%Б: штампа пун назив месеца, јануар, фебруар, март, итд.
%м: Штампа број месеца, са почетном нулом ако је потребно 01, 02, 03 … 12.

Опције за приказ године

%Ц: Штампа век без године. У 2019. штампаће 20.
%и: Штампа годину као две цифре. 2019. штампаће 19.
%И: Штампа годину као четири цифре.

  Како користити Унифиед Ремоте за контролу Линук рачунара

Опције за приказ времена

%Т: Штампа време као ХХ:ММ:СС.
%Р: Штампа сате и минуте као ХХ:ММ без секунди, користећи 24-часовни сат.
%р: Штампа време према вашем локалитету, користећи 12-часовни сат и индикатор преподнева или поподне.
%Кс: Штампа време према вашем локалитету, користећи 24-часовни сат. Наводно. Имајте на уму да се током тестирања ова опција понашала тачно као %р, као што је приказано испод. На Линук машини која је конфигурисана за УК и постављена на ГМТ, штампала је време, користећи 24-часовни сат без АМ или ПМ индикатора, како се очекивало.

Опције за приказ сата

%Х: Штампа сат 00, 01, 02…23.
%И: Штампа сат користећи 12-часовни сат, 00, 01, 02 … 12, са почетном нулом ако је потребно.

Опције за приказ минута

%М: штампа минут, 01, 02, 03 … 59, са почетном нулом ако је потребно.

Опције за приказ секунди

%с: Штампа број секунди од 1970-01-01 00:00:00, почетка Уник Епоцх.
%С: Штампа секунде, 01, 02, 03 … 59, са почетном нулом ако је потребно.
%Н: Штампа наносекунде.

Опције за приказ информација о временској зони

%з: Штампа временску разлику између ваше временске зоне и УТЦ.
%:з: Штампа временску разлику између ваше временске зоне и УТЦ, са : између сати и минута. Обратите пажњу на : између знака % и з .
%::з: Штампа временску разлику између ваше временске зоне и УТЦ, са : између сати, минута и секунди. Обратите пажњу на :: између знака % и з.
%З: Штампа абецедно име временске зоне.

Опције везане за форматирање

%п: Штампа индикатор АМ или ПМ великим словима.
%П: Штампа индикатор ам или пм малим словима. Обратите пажњу на необичност са ове две опције. Мало слово п даје излаз великим словима, велико П даје излаз малим словима.
%т: Штампа картицу.
%н: Штампа нови ред.

Опције за измену других опција

Ови модификатори се могу уметнути између % и слова опције других опција да би се променио њихов приказ. На пример, %-С би уклонио водећу нулу за једноцифрене вредности у секундама.

  Како пронаћи вирусе преко командне линије на Линук-у

–: Једна цртица спречава допуну нуле на једноцифреним вредностима.
_: једна доња црта додаје водећи размак за једноцифрене вредности.
0: Обезбеђује водеће нуле за једноцифрене вредности.
^: Користи велика слова, ако је могуће (не поштују све опције овај модификатор).
#: Користите супротно од подразумеваног великог слова за опцију, ако је могуће (не поштују све опције овај модификатор).

Још два згодна трика

Да бисте добили време последње измене датотеке, користите опцију -р (референца). Имајте на уму да се овде користи – (цртица) уместо знака % и не захтева знак +. Испробајте ову команду у свом кућном фолдеру:

date -r .bashrc

Поставка ТЗ вам омогућава да промените временску зону током трајања једне команде.

TZ=GMT date +%c

Коришћење датума у ​​скриптама

Омогућавање Басх схелл скрипте за штампање времена и датума је тривијално. Направите текстуалну датотеку са следећим садржајем и сачувајте је као гд.сх.

#!/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

Можемо користити команду дате да обезбедимо временску ознаку. Приказана скрипта ће креирати директоријум са временском ознаком као именом. Затим ће у њега копирати све текстуалне датотеке из тренутне фасцикле. Повременом покретањем ове скрипте можемо направити снимак наших текстуалних датотека. Временом ћемо направити низ фасцикли са различитим верзијама наших текстуалних датотека у њима.

Имајте на уму да ово није робустан систем резервних копија, већ само у илустративне сврхе.

Направите текстуалну датотеку са следећим садржајем и сачувајте је као снапсхот.сх.

#!/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

Видећете да је директоријум креиран. Његово име је датум и време када је скрипта извршена. Унутар тог директоријума налазе се копије текстуалних датотека.

Уз мало размишљања и креативности, чак и скромна команда датума може се продуктивно користити.