Добавление меток времени к подсказкам терминала?

Мне было интересно, можно ли добавить временные метки к терминальным приглашениям, и если да, то как мне этого добиться?

53
задан 14 May 2016 в 00:24

11 ответов

Мое решение состояло в том, чтобы использовать http://bashrcgenerator.com/ , чтобы сгенерировать эту строку PS1 для вставки .bashrc:

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

, которая будет выглядеть как

[ 111]

Использование PROMPT_COMMAND портит мне историю. Когда при циклическом перемещении по истории появляется более длинная строка, она обрезает конец приглашения тем же количеством символов, что и отметка времени, добавленная вперед. например

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

И эта строка не может быть отредактирована, потому что она не отображает символы в нужном месте, так как вы не печатаете там, где она выглядит, как будто вы печатаете.

Я предполагаю, что это можно сделать с помощью PROMPT_COMMAND, возможно, используя эту часть [$ (tput sgr0)], но PS1 работает.

0
ответ дан 14 May 2016 в 00:24

Вместо добавления даты к самой подсказке, вы можете добавить дату непосредственно перед вашей подсказкой, поместив следующую строку в вверху вашей .bashrc. Для его работы вам также необходимо установить cowsay. Это забавный способ отображения даты с кратким приглашением :

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

В его нынешнем виде он будет работать в любой системе без изменений, так как читает $USER и date переменная из текущей среды.

enter image description here

0
ответ дан 14 May 2016 в 00:24

Так как у меня недостаточно очков репутации, чтобы добавить комментарий к ответу, чтобы улучшить его. Казалось бы, единственный способ добавить информацию - создать второй ответ. Итак, я повторю то, что было сказано в качестве ответа, и буду опираться на это.

Отредактируйте файл .bashrc для пользователя, для которого вы хотите изменить отметку даты.

Если вы видите «user @ host: ~ $», вы попадаете в домашний каталог текущего пользователя. Файл .bashrc является скрытым файлом, так как перед ним ставится точка «.». Чтобы увидеть его в списке, вам нужно использовать длинный список.

Вы можете использовать «ls -a», после чего вы должны увидеть файл «.bashrc».

Отредактируйте файл в текстовом редакторе. Например, «nano .bashrc», «vim .bashrc», «vi .bashrc», «pico .bashrc» или любой другой редактор, который вы хотите использовать.

Если вы хотите написать сценарий и запланировать добавление его во многие оболочки для многих пользователей, может быть полезно использовать команду «echo» в сочетании с оператором добавления «>>». Например,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc

Если вы используете этот метод, убедитесь, что вы находитесь в текущем рабочем каталоге пользователя, для которого вы хотите изменить его. Чтобы проверить это, вы можете использовать команду «pwd» или print рабочей директории.

Если вам не нравится лишний пробел между конечной скобкой "]" и именем пользователя, просто используйте это очень немного измененное регулярное выражение:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"

Используйте это, если вы непосредственно редактируете файл.

0
ответ дан 14 May 2016 в 00:24
export PROMPT_COMMAND=date

печатает дату перед отправкой каждого приглашения.

0
ответ дан 14 May 2016 в 00:24

Откройте Ваш .bashrc через

vim ~/.bashrc

и затем добавьте в следующем к .bashrc:

#PS1="[\A \u@\h \W\a]$" 

где \A в течение времени (\W только для конца пути удалите, если Вы хотите весь текущий рабочий путь к каталогу). Затем введите

source ~/.bashrc

Вы будете видеть что-то вроде этого:

[16:04 trwood@cobalt04 ~/MCEq_dev]$
1
ответ дан 14 May 2016 в 00:24

Добавьте эту строку в файл ~/.bashrc:

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Таким образом, результат будет примерно таким:

[07:00:31] user@name:~$
0
ответ дан 14 May 2016 в 00:24

Просто добавьте к ответу @ devav2:

Более простая для чтения команда эха для новичков будет:

export PROMPT_COMMAND='echo -n "$(date +%H:%M:%S) "'

Вместо [ 118]

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

Так как команда echo не предназначена для оценки во время экспорта, имеет смысл использовать одинарные кавычки для буквальных кавычек, а не двойные кавычки. Использование одинарных кавычек для цитирования всей команды позволяет затем использовать двойные кавычки для цитирования аргумента команды echo, исключая необходимость экранирования специальных символов, таких как , [ и $

.
0
ответ дан 14 May 2016 в 00:24

Самый легкий синтаксис для показа метки времени в командной строке, вероятно, был бы:

    PS1='\D{%F} \t $...'

где

\D{format} отформатированная дата (см. man bash, Раздел PROMPTING) как

%F полная дата; то же как %Y-% m-% d (см. man date, Раздел FORMAT), и

\t текущее время в 24-часовом формате HH:MM:SS (см. man bash, Раздел PROMPTING)

nano ~/.bashrc

внесите изменения в переменные PS1 как показано выше

source ~/.bashrc
0
ответ дан 17 October 2019 в 15:47
export PROMPT_COMMAND="echo -n \[\$(date +%F-%T)\]\ "
export HISTTIMEFORMAT="%F-%T "

, по крайней мере, взгляды, удобные для меня.

0
ответ дан 17 October 2019 в 15:47

Мое время подобно эти cowsay ответ выше. Необходимо поместить now Ваш ~/.bashrc, но можно также назвать его от терминала путем ввода now.

Вот снимок экрана:

now.png

код удара отправляется в этом очень подробном ответе:

0
ответ дан 17 October 2019 в 15:47

Я думаю, что корректный способ продолжиться состоит в том, чтобы расположиться в $HOME/.bashrc коды, который устанавливает PS1, прокомментируйте их и добавьте персональные. Это - мой блок, например:

PS1_DATE="\D{%Y-%m-%d %H:%M:%S}"

if [ "$color_prompt" = yes ]; then
    PS1="[$PS1_DATE \[\e]0; \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\[\033[01;34m\]\w \[\033[00m\]\$] "
    #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='[$PS1_DATE ${debian_chroot:+($debian_chroot)}\w \$] '
    #PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Вывод:

[2019-06-18 15:54:29 ~/Desktop $] echo "It's late!"
0
ответ дан 17 October 2019 в 15:47

Другие вопросы по тегам:

Похожие вопросы: