Расширение фигурной скобки очень полезно, если у Вас есть имена длинного тракта. Я использую его в качестве быстрого способа скопировать файл:
cp /a/really/long/path/to/some/file.txt{,.bak}
скопирует /a/really/long/path/to/some/file.txt
кому: /a/really/long/path/to/some/file.txt.bak
Можно также использовать его в последовательности. Я однажды сделал так для загрузки большого количества страниц от сети:
wget http://domain.com/book/page{1..5}.html
или
for i in {1..100}
do
#do something 100 times
done
Я не думаю, что возможно получить такую информацию после того, как процесс уже закончился.
Если Вы знаете заранее о необходимости в той информации можно выполнить команду как
time <command>
например.
~> time sleep 1
real 0m1.003s
user 0m0.002s
sys 0m0.001s
Проверьте, поддерживает ли Ваш вариант Unix учет процесса. Например, на Ubuntu (и большинство других дистрибутивов Linux), это обеспечивается acct
пакет Установите acct http://bit.ly/software-small. Если бухгалтерская подсистема в порядке, то lastcomm
информация о шоу о законченных процессах, включая то, сколько процессорного времени они использовали (стена показывают время, не записывает).
При необходимости в синхронизации для определенной программы вызовите ее через time
.
При необходимости в более точной информации используйте более необычный пакет аудита, например, контрольная подсистема в соответствии с Linux.
apt.ubuntu.com
, и затем изображение было удалено из imgur. Я, должно быть, использовал его сотни времен через SE, и я не смакую перспективу редактирования их всех. Я все еще требую SE выполнение автоматизированной замены, которую они не сделают, так как они даже не сделали этого когда вся перемещенная документация Java.
– Gilles 'SO- stop being evil'
08.03.2016, 00:01
Прежде чем я увидел этот вопрос и ответы на него, я написал небольшой сценарий bash. Это по-прежнему полезно, если у вас нет прав root и acct не установлен или вы не вызываете свою команду напрямую (в моем случае: я использую графический интерфейс для настройки фоновых процессов). Вам нужно получить PID перед запуском (кто-нибудь заинтересован в добавлении его в скрипт? :)
#!/bin/bash
echo "Checking run time"
read -p "What is the pid? " PID
while true; do
# sleep needed! used to reduce cpu usage and mass of output
sleep 5
ps -eo uid,pid,etime | egrep '$PID' | egrep '$UID'
done
С его помощью найдите PID PROCESS_NAME
ps aux | awk 'NR == 1 || / PROCESS_NAME / '
На самом деле я пробовал комбинировать USER-ID и PID, чтобы сценарий не был неоднозначным, но это не так просто ...
ps -eo uid, pid, etime | egrep '$ UID [[: space:]] $ PID'
не всегда работает ...