Я только что выполнил длительный процесс из командной строки bash. Оглядываясь назад, я хотел бы поработать time
над этим или записать время, когда я его начал.
Есть ли способ получить эту информацию ретроспективно? .bash_history
, Кажется, не включают в себя временные метки.
В моем конкретном случае это Mac OS X, но меня интересуют общие решения Unix / Linux.
Чтобы уточнить, процесс теперь завершен, и я бы предпочел не запускать его снова, если в этом нет крайней необходимости!
bash
osx
command-history
timestamps
audit
Грэм Борланд
источник
источник
Ответы:
bash
на самом деле помнит время, пока вы не закроете оболочку.Так что попробуйте запустить
Если вы также положили
в вашем
~/.bashrc
, он также будет записан~/.bash_history
при выходе, так что вы также можете проверить, что происходило в предыдущих сеансах оболочки.источник
Микель ответит хорошо, за исключением того, что если вы запустите программу и уйдете на некоторое время, вы не сможете точно знать, когда процесс завершится. Поэтому, даже если у вас есть время, когда вы запустили программу, вы не знаете, сколько на это ушло времени.
У меня нет решения для случая, когда нужно выяснить без подготовки. Однако, если вы собираетесь сделать это снова, вы можете сделать как я: вывести текущее время вместе с приглашением оболочки. Таким образом, если у вас все еще открыт терминал, вы можете увидеть время, когда вы запустили программу, и время, когда будет напечатано следующее приглашение. Небольшая математика даст вам время выполнения.
Чтобы сделать это
bash
, вставьте это в ваш.bashrc
:В
zsh
, это в вашем.zshrc
:Выше приведено приглашение вашей оболочки в формате
<time> <username>@<hostname> <current dir> <$ or % or #>
. О различных оболочках и сумасшедших необычных подсказках читайте в справочной странице вашей оболочки.Примечание: это, вероятно, не поможет, если вам нужна высокая точность, или если программа выдает так много информации, что вы не видите предыдущее приглашение.
источник
Если процесс все еще выполняется, вы можете использовать,
ps
чтобы узнать время его запуска и сколько процессорного времени он использовал.Например, для всех процессов:
Для конкретного pid (12345):
источник
ps
в Linux,ps
в MacOSX может быть BSD, и я не уверен в аргументах.lastcomm (если учет процессов BSD включен) даст вам продолжительность выполнения (в некотором ограниченном смысле, который может быть или не быть адекватным).
источник