Gezinti içerisinde komut çalıştırma zamanını bulma


22

Ben sadece bash isteminden uzun süren bir işlem yürüttüm. Gezindeyken, keşke kaçabilseydim, timeya da attığım zamanı not aldım.

Bu bilgiyi geriye dönük olarak almanın bir yolu var mı? .bash_historyDamgalarını da dahil görünmüyor.

Özel durumumda Mac OS X, ancak genel Unix / Linux çözümleriyle ilgileniyorum.

Netleştirmek için, süreç şimdi tamamlandı ve kesinlikle gerekmedikçe tekrar çalıştırmamayı tercih ederim!


Bunu da her zaman unuttum ve zamanı görüntülemek için istemi yapılandırdım.
matematik

Yanıtlar:


23

bash Aslında kabuğu kapatıncaya kadar geçen süreleri hatırlar.

Yani koşmayı dene

HISTTIMEFORMAT='%x %X ' history

Ayrıca koyarsanız

HISTTIMEFORMAT=<some format>

senin içinde ~/.bashrc, ~/.bash_historyçıkışta da yazılacak , böylece önceki kabuk oturumlarında ne olduğunu kontrol edebilirsin.


Müthiş Mike, bunun mümkün olduğunu düşünmedi bile.
Tim

9

Mikel'in cevabı iyidir, ancak programı çalıştırıp bir süre uzaklaşırsanız, işlemin ne zaman biteceğinden emin olamazsınız. Yani programı başlattığınız zamana sahip olsanız bile, ne kadar zaman aldığını bilmiyorsunuzdur.

Hazırlık olmadan öğrenmeniz gerektiğinde bu konuda bir çözümüm yok. Ancak bunu tekrar yapacaksanız, benden hoşlanabilirsiniz: Geçerli saati kabuk istemi ile birlikte yazdırın. Bu şekilde, hala terminalin açık olması durumunda, programı başlattığınız saati ve bir sonraki istemin yazdırıldığı saati görebilirsiniz. Küçük bir matematik size yürütme süresini kazandıracak.

Bunu yapmak için bash, şunu içine koy .bashrc:

export PS1="\A \u@\h \W \$ "

İçinde zsh, bunu içine koy .zshrc:

export PS1="%D{%H:%M} %n@%m %1~ %# "

Yukarıdakiler, kabuğunuza bir format verecek <time> <username>@<hostname> <current dir> <$ or % or #>. Farklı mermiler ve çılgın fantezi istekler için, kabuğunuzun man sayfasını okuyun.

Not: Yüksek hassasiyete ihtiyacınız varsa veya program önceki istemi göremediğiniz kadar çıktı üretiyorsa, bu muhtemelen yardımcı olmaz.


2
Bu nedenle benim kabuk istemime bir zaman damgası ekledim, ancak bilgi isteminde gösterilen sürenin, istemi yazdırıldığında gerçekleştiğini unutmayın; bu, komut yazmak için gerçekte yazmayı tamamladığınız ve girdiğiniz zamandan oldukça farklı olabilir. Başka bir deyişle, "isteme boş zamanını" kendin de hesaba katmayı unutma.
jw013

5

İşlem hala çalışıyorsa, psbaşladığı zamanı ve ne kadar CPU zamanı kullandığını öğrenmek için kullanabilirsiniz .

Örneğin, tüm işlemler için:

ps -eo cputime,start,pid,command,args

Belirli bir ödeme için (12345):

ps -p 12345 -o cputime,start,pid,command,args

Teşekkürler, ancak süreç zaten tamamlandı. Tekrar çalıştırırsam bunu aklımda tutarım.
Graham Borland

Linux'ta GNU kullanıyorum ps, psMacOSX'te BSD olabilir ve bağımsız değişkenlerden emin değilim.
jsbillings

Ayrıca, cpu zamanının "gerçek zamanlı" olmadığını aklınızda bulundurun
Juan 23

4

lastcomm (eğer BSD işlem muhasebesi etkinse) size yürütme süresini verecektir (bazı durumlarda yeterli olabilir veya olmayabilir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.