Я предпочитаю использовать терминал и проводить большую часть времени, используя его. Я ищу способ увидеть время в терминале, пока я использую его параллельно. Время изменится автоматически, когда оно пройдет. Было бы здорово, если бы он отображал слева от моей командной строки.
Если это моя командная строка в терминале:
saurav@saurav-P4I45Gx-PE:~$
Тогда я хотел бы видеть часы (время) как:
saurav@saurav-P4I45Gx-PE[06:27:01]:~$
или
saurav@(06:27:01):~$
или любой другой формат. где 06:27:01
время То, что я хочу, это просто показать время, которое меняется, когда проходят секунды.
Так есть ли способ добиться этого?
command-line
gnome-terminal
Саурав Кумар
источник
источник
$PS1
переменную (prompt), чтобы иметь время, но я не уверен, что изменения.\@
, но время будет пересчитываться только каждый раз, когда отображается подсказка, а не текущее время.Ответы:
Я не уверен, что так просто добиться этого, используя оболочку bash по умолчанию (но я не говорю, что это невозможно). Вероятно, вам понадобится команда / функция, которая может обновлять командную строку каждую секунду, не мешая тому, что вы вводите в командной строке.
Z оболочки (ЗШ) имеет встроенную команду, под названием
zle
, которое, когда используется сreset-prompt
аргументом, силы приглашение быть повторно расширена, а затем повторно отображает буфер редактирования.Если вы хотите попробовать это, используйте следующие шаги:
Установите Z shell с помощью этой команды:
Когда ты бежишь
zsh
в первый раз, выберите,0
когда вас спросят.Изменить
~/.zshrc
файл и добавьте следующие строки:Сохраните файл и закройте его.
В вашем терминале, когда вы все еще используете zsh, запустите
source ~/.zshrc
или простоzsh
сбросьте приглашение. Теперь ваша подсказка должна выглядеть так:с некоторыми цветами.
Если вам это нравится, запустите,
chsh -s /bin/zsh
чтобы изменить текущую оболочку на/bin/zsh
(требуется повторный вход в систему, чтобы это изменение вступило в силу).Бег
exit
если вы хотите выйти из оболочки zsh.Вот 15-секундный скринкаст из моего терминала:
источник
chsh
чтобы изменить оболочку по умолчанию с/bin/bash
на/bin/zsh
. Вы должны выйти и войти снова.zsh
команду, чтобы войти в этот режим часов ..Если вы хотите отобразить время работы вашего терминала, вы можете использовать эту команду. Время будет отображаться в верхней правой части вашего терминала.
Но учтите, что отображение времени с помощью этой команды иногда может перекрывать текст, присутствующий в терминале. Так что используйте эту команду с небольшой осторожностью.
Другим способом может быть использование управляющего символа в PS1
Но в этом методе ваше время будет обновляться только после нажатия Enter.
Если вы хотите использовать постоянный метод выше, добавьте вышеуказанную команду (ту, которая вам нравится, или обе) в ваш
~.bashrc
файл.источник
Если все, что вы хотите сделать, это показать часы, просто используйте
date
:Это будет показывать время каждую секунду, пока вы не остановите его CtrlC. Если вы хотите, чтобы он был на одной строке (выше будет печатать новую строку каждую секунду), сделайте это вместо этого:
источник
Этот вопрос беспокоил меня в течение нескольких дней, и вот мое отредактированное сообщение со всем материалом, который я изучил. В частности, моей целью было добиться показа часов рядом с подсказкой в BASH. Точно так же, как Раду Радеану упомянул в своем ответе, ключ в том, чтобы найти функцию или переменную, которая способна постоянно обновлять командную строку или перерисовывать экран, не мешая вашему экрану или тому, что вы печатаете. В то время как этого можно добиться с помощью цикла while, как показывает G_P, постоянное перерисовывание экрана с помощью функции tput портится с любым текстом на моем экране в момент его обновления. Я довольно близко подошел к достижению того, что попросил ОП, немного изменив код, опубликованный G_P, но все же я считаю, что ответ Раду наиболее близок к тому, что хочет ОП. Без дальнейших церемоний, вот некоторые из вещей, которые я
# 1, Мое предпочтительное решение: терминальный мультиплексор
Терминальный мультиплексор - это программное обеспечение, которое позволяет разделить экран терминала на два или более экрана. В частности, хочу обратить внимание на терминал Бёбу. Этот эмулятор терминала на основе ncurses позволяет отображать время, процент процессора, память и целый ряд других индикаторов. На скриншоте с моего терминала byobu вы можете видеть температуру процессора, процент батареи, качество интернет-соединения, частоту процессора, оперативную память, дату и, конечно же, время. Если вы в основном заинтересованы в постоянном наблюдении за этими вещами, находясь в терминале, Byobu - это то, что вам нужно. На самом деле, мне так понравилось, что я настроил автоматическую загрузку при входе в tty. Единственная странность в том, что в tty вы фактически не можете объединить отдельные окна - переключайтесь между вкладками только с помощью клавиш F3 и F4.
Альтернативное решение, включающее мультиплексирование окон, - использование
splitvt
, которое разделяет экран на две части. Вы можете запустить часы терминала, напримерtty-clock
, использовать команду watch с датой, или вы можете сами написать код с помощью скрипта. Подробнее об этом позже. На скриншоте вы можете увидеть одну часть разделения с обычной подсказкой bash сверху, а на нижней вы видите запущенный скрипт, который просто постоянно обновляет выводdate
команды с помощьюclear
команды.# 2, Пока Do Loop и tput Это, вероятно, близко к тому, что человек, который задал вопрос, хотел реализовать с помощью bash.
G_p опубликовал большое решение , вовлекающее
while do
иtput
команду. Однако в коде G_P были две вещи, которые мне не нравились. Во-первых, часы были справа от приглашения, а во-вторых, поскольку цикл ожидания равен 1 секунде (обратитесь к исходному коду, в котором написано «спать»), экран перерисовывается каждую секунду, и это портит мой вывод. Что я сделал, так это отредактировал мое приглашение bash на одну строку ниже с помощью оператора \ n и изменил код G_P так, чтобы оператор tput располагал часы прямо над приглашением и обновлялся каждые 60 секунд; это позволяет мне видеть часы и минуты (и мне совершенно безразличны минуты), в то время как цикл часов не портит мой экран. Во-первых, вот моя подсказка:А вот модифицированный код G_P:
enter code here
Небольшое редактирование : я заметил, что этот код выше иногда не запускает часы сразу. Вот лучшая версия:
while true; do tput sc;tput cup 0 0;date +%R;tput rc; sleep 60; done &
эти часы сначала помещают часы на экран, а затем сообщают, что bash проходит цикл сна продолжительностью 60 секунд.Обратите внимание, что tput cup 0 0 помещает часы в верхний правый угол экрана, прямо над моей подсказкой, и режим сна 60 меняет цикл сна на 60 секунд, потому что таким образом я могу отслеживать только часы и минуты, а не каждую секунду. Таким образом, какой бы текст на экране ни отображался, по большей части это не влияет (только когда я запускаю команду, обновляются часы).
Линия PS1 уже есть в вашем профиле .bashrc, так что вам просто нужно немного ее настроить. Цикл while do должен быть добавлен где-то в тот же файл, желательно в конце с комментарием #, что это то, что вы добавили изначально. И не забывайте всегда делать резервные копии любого файла на тот случай, если вы создадите bubu и вам нужно вернуться к тому, что было.
№ 3, Сценарии и другое
Эта часть только для тех, кто хочет видеть время. Для тех, кто хочет постоянно следить за ним, # 1 и # 2 являются предпочтительными вариантами.
Итак, как мы уже видели, цикл while do довольно полезен. Вот как вы можете создать часы с помощью команд while, loop, date и sleep.
Нажмите return / enter, и вы в основном будете видеть вывод команды date, отображаемой на очищенном экране каждую секунду. Если вы не хотите вводить все это каждый раз, включите все это в скрипт:
Теперь вы можете запустить этот скрипт с splitvt в одном экземпляре bash, а работать в другом.
Другим решением является
watch -n1 date
команда, которая будет непрерывно выполнять команду даты с периодом 1 секунда.В заключение: я узнал некоторые вещи, пытаясь найти ответ на этот вопрос, и я надеюсь, что мои выводы каким-то образом помогли вам, и я надеюсь, что смог внести свой вклад в этот вопрос. Терминал Бёбу ИМХО - лучшее решение, но решите сами, проведите исследование и выберите тот способ, который вам больше подходит.
Некоторые из вещей, которые я нашел во время исследования:
Мой оригинальный пост, минималистичное решение: отредактируйте файл ~ / .bashrc. Я предпочитаю редактировать его с помощью nano, поэтому
Вот часть моего собственного отредактированного файла:
После оператора else первая строка закомментирована с # (это мое старое приглашение), теперь вторая строка - это та, которую вы хотите, и, в частности,
\t
оператор. Это показывает время работы в 24-часовом формате. Для получения дополнительной информации проверьте это . Также небольшая заметка, я использую материал за другим, потому что я не использую цветную подсказку.PS: Пожалуйста, дайте мне знать, если я добавлю что-нибудь к своему ответу или отредактирую его каким-либо образом, но по большей части я считаю, что это самый убедительный ответ, который я мог бы придумать, и, по крайней мере, я лично не буду ничего добавлять новичок в этом.
источник
так как я предпочитаю отображать как мало вводной информации , как это возможно на терминале я вообще настроить каждую сессию в виде
#
,$
и т.д. (если вы хотите , чтобы изменить его навсегда, решение minerz029 совершенна)Чтобы изменить его, чтобы показать текущий, я мог бы пойти на
за время в 12 часовом формате. Вы можете просмотреть документацию bash для других опций.
источник
Это время изменится только при выполнении нового приглашения
Вы можете добавить следующее к вашему
.bashrc
:Который будет производить:
Более подробная информация здесь: http://www.thegeekstuff.com/2008/09/bash-shell-ps1-10-examples-to-make-your-linux-prompt-like-angelina-jolie/#8
Найдите «8. Создайте свой собственный запрос, используя доступные коды для переменной PS1» на этой странице выше.
источник
$PROMPT_COMMAND
, сработает, если вы сможете найти команду, которая отображает время тика.Мне очень нравится функция часов ncmpcpp , запускаемая клавишей0 -key (см. Скриншот). Подробнее о процедуре установки см. В этом посте .
источник
watch -t -n1 "date +%T|figlet"
было бы простым способом.Под влиянием g_p и Serg я попытался создать функцию в bash. Это работает, но я не уверен, что это хорошая идея проверять команду ps каждую секунду, чтобы увидеть, является ли bash процессом fg или нет
источник
Если вам никогда не понадобится использовать
debian_chroot
это удобное место, чтобы указать время отображения командной строки с помощью:Введите это в свой терминал и посмотрите, как меняется ваша командная строка со временем:
После того, как время установлено один раз, чтобы получить часы, которые обновляются каждую секунду использования:
Это
.gif
показывает команды в действии:источник