हंडाइट में कमांड निष्पादन समय का पता लगाना


22

मैंने बस बैश प्रॉम्प्ट से एक लंबी चलने वाली प्रक्रिया को निष्पादित किया है। दृष्टिहीनता में, काश मैं timeउस पर दौड़ता , या उस समय को नोट करता, जिस पर मैंने उसे किक मारी थी।

क्या यह जानकारी पूर्वव्यापी रूप से प्राप्त करने का कोई तरीका है? .bash_historyTimestamps शामिल करने के लिए प्रतीत नहीं होता।

मेरे विशेष मामले में यह मैक ओएस एक्स है, लेकिन मुझे सामान्य यूनिक्स / लिनक्स समाधानों में दिलचस्पी है।

स्पष्ट करने के लिए, प्रक्रिया अब पूरी हो गई है, और मैं इसे फिर से नहीं चलाना पसंद करूंगा जब तक कि बिल्कुल आवश्यक न हो!


मैं हमेशा यह भी भूल गया, और मैंने समय प्रदर्शित करने के लिए अपना संकेत कॉन्फ़िगर किया है।
गणित

जवाबों:


23

bash वास्तव में उस समय को याद करते हैं जब तक आप खोल को बंद नहीं करते।

इसलिए दौड़ने का प्रयास करें

HISTTIMEFORMAT='%x %X ' history

अगर आप भी डालते हैं

HISTTIMEFORMAT=<some format>

आप में ~/.bashrc, यह भी ~/.bash_historyबाहर निकलने के लिए लिखा जाएगा , तो आप पिछले शेल सत्रों में भी क्या हुआ है, इसकी जांच कर सकते हैं।


बहुत बढ़िया माइक, यह भी संभव नहीं था।
टिम

9

मिकेल का जवाब अच्छा है, सिवाय इसके कि अगर आप कार्यक्रम चलाते हैं और थोड़ी देर के लिए चले जाते हैं, तो प्रक्रिया समाप्त होने पर आप वास्तव में सुनिश्चित नहीं हो सकते। इसलिए भले ही आपके पास कार्यक्रम शुरू करने का समय हो, लेकिन आपको नहीं पता कि इसमें कितना समय लगा।

मेरे पास उस मामले के लिए कोई समाधान नहीं है जब आपको बिना तैयारी के पता लगाना होगा। हालाँकि अगर आप ऐसा करने जा रहे हैं, तो आप मेरी तरह कर सकते हैं: शेल प्रॉम्प्ट के साथ वर्तमान समय को प्रिंट करें। इस तरह, यदि आपके पास अभी भी टर्मिनल खुला है, तो आप उस समय को देख सकते हैं जब आपने प्रोग्राम शुरू किया था, और वह समय जब अगला प्रॉम्प्ट प्रिंट होता है। थोड़ा सा गणित आपको निष्पादन समय मिलेगा।

ऐसा करने के लिए bash, इसे अपने में रखें .bashrc:

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

इसमें zsh, इसे अपने में डालें .zshrc:

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

उपरोक्त आपके शेल को शीघ्र स्वरूप प्रदान करेगा <time> <username>@<hostname> <current dir> <$ or % or #>। विभिन्न गोले और पागल फैंसी संकेतों के लिए, अपने खोल के मैन पेज को पढ़ें।

नोट: यह संभवतः उच्च सटीकता की आवश्यकता होने पर मदद नहीं करेगा, या यदि प्रोग्राम इतना अधिक उत्पादन करता है कि आप पिछले संकेत नहीं देख सकते हैं।


2
मैं इस कारण से अपने शेल प्रॉम्प्ट में टाइमस्टैम्प को शामिल करता हूं, लेकिन सावधान रहें कि प्रॉम्प्ट में दिखाया गया समय वह है जब प्रॉम्प्ट प्रिंट किया गया था, जो उस समय से काफी भिन्न हो सकता है जब आप वास्तव में टाइप करना समाप्त कर चुके हैं और कमांड शुरू करने के लिए एंट्री मारते हैं। दूसरे शब्दों में, "शीघ्र निष्क्रिय समय" में कारक को याद रखें।
jw013

5

यदि प्रक्रिया अभी भी चल रही है, तो आप psइसे शुरू करने के लिए समय और कितना सीपीयू समय का उपयोग कर सकते हैं।

उदाहरण के लिए, सभी प्रक्रियाओं के लिए:

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

एक विशेष पिड (12345) के लिए:

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

धन्यवाद, लेकिन प्रक्रिया पहले ही पूरी हो चुकी है। अगर मैं इसे फिर से चलाऊंगा तो इसे ध्यान में रखूंगा।
ग्राहम बोरलैंड

मैं pslinux में GNU का उपयोग कर रहा हूँ , psMacOSX में BSD हो सकता है और मैं तर्कों के बारे में निश्चित नहीं हूँ।
jsbillings

इसके अलावा, ध्यान रखें कि सीपीयू समय "वास्तविक समय" नहीं है
जुआन

4

lastcomm (यदि BSD प्रक्रिया लेखांकन सक्षम है) आपको निष्पादन अवधि देगा (कुछ सीमित अर्थों में जो पर्याप्त हो सकती है या नहीं भी हो सकती है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.