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

42

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

    
задан Jan Gorzny 27.09.2012 в 03:21
источник

7 ответов

50

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

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

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

[07:00:31] [email protected]:~$
    
ответ дан devav2 27.09.2012 в 03:32
источник
19

Мое решение заключалось в использовании Ссылка для создания этой строки PS1 для ввода .bashrc:

export PS1="\t [\[email protected]\h \W]\$ \[$(tput sgr0)\]"

Будет выглядеть как

13:05:54 [[email protected]:~/Downloads]$ ls -al

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

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

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

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

    
ответ дан dogtato 11.05.2016 в 21:12
12

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

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

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

    
ответ дан user76204 27.09.2012 в 21:44
5

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

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

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

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

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

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

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

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

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

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

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

    
ответ дан Avlaxis 08.01.2015 в 20:57
2
export PROMPT_COMMAND=date

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

    
ответ дан wojox 27.09.2012 в 03:31
1

Откройте .bashrc через

vim ~/.bashrc

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

#PS1="[\A \[email protected]\h \W\a]$" 

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

source ~/.bashrc

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

[16:04 [email protected] ~/MCEq_dev]$
    
ответ дан trwood 24.08.2016 в 23:07
0

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

Более легкая для чтения команда эха для новичков будет выглядеть следующим образом:

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

Вместо

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

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

    
ответ дан qwertyzw 22.08.2017 в 18:00