Назад | Перейти на главную страницу

Удобное взаимодействие с консолью с указанием даты и времени, например используя псевдонимы оболочки?

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

Это заставило меня задуматься - можно ли исказить псевдоним оболочки так, чтобы по умолчанию «дата» вызывалась до и после каждой записи в командной строке? Было бы очень полезно иногда прокручивать назад в терминале и ощущать, сколько времени занимает работа.

Есть ли у других умные способы решить эту проблему - я уверен, что это достаточно распространенный сценарий.

Что касается решений с этим подходом, я предполагаю, что это немного связано с этим Q. Запустите интерактивную подоболочку bash с начальными командами, не возвращаясь сразу в ("супер") оболочку

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

Мысли?

Вы можете просто изменить приглашение оболочки PS1 переменная для отображения текущей отметки времени. Можно использовать одно из следующих:

\t     the current time in 24-hour HH:MM:SS format
\T     the current time in 12-hour HH:MM:SS format
\@     the current time in 12-hour am/pm format
\A     the current time in 24-hour HH:MM format

Вы можете найти их с другими вариантами в man bash. Отредактируйте свой .bashrc файл для изменения PS1 по желанию.

Затем вы можете определить, когда выполняется какая-либо команда. Конечно, если вы будете бездействовать в течение долгого времени, прежде чем нажать Enter, вы не сможете получить точное время.

Редактировать: Другая возможность - использовать ts утилита, чтобы показать, как продвигается ваш скрипт. Выполните свой сценарий как:

$ /path/to/script | ts

Каждый оператор эха будет отображаться с отметкой времени.

НОТА: это не прямой ответ на вопрос OP, но, возможно, он может быть полезен для решения этой проблемы.

Для уже запущенных процессов вы можете получить дату / время начала, выполнив простой ps ax -F. Он покажет результат, подобный следующему:

apache    1733  1678  0 83467  7752   0 10:07 ?        S      0:00 /usr/sbin/httpd
apache    1734  1678  0 83467  7752   0 10:07 ?        S      0:00 /usr/sbin/httpd
apache    1735  1678  0 83467  7752   0 10:07 ?        S      0:00 /usr/sbin/httpd
apache    1736  1678  0 83467  7768   0 10:07 ?        S      0:00 /usr/sbin/httpd
apache    1737  1678  0 83467  7752   0 10:07 ?        S      0:00 /usr/sbin/httpd
apache    1738  1678  0 83467  7752   0 10:07 ?        S      0:00 /usr/sbin/httpd

Как видите, 8-й столбец показывает дату / время начала.