मैं कैसे पता लगा सकता हूं कि किसी विशेष कमांड को किसने चलाया और इसे चलाने के लिए किस टर्मिनल का उपयोग किया गया।
मूल :
मैं कैसे जान सकता हूं कि विशेष cmd को किसके द्वारा निष्पादित किया गया है और मेरे टर्मिनल के बारे में जानना है
मैं कैसे पता लगा सकता हूं कि किसी विशेष कमांड को किसने चलाया और इसे चलाने के लिए किस टर्मिनल का उपयोग किया गया।
मूल :
मैं कैसे जान सकता हूं कि विशेष cmd को किसके द्वारा निष्पादित किया गया है और मेरे टर्मिनल के बारे में जानना है
जवाबों:
यह देखने के लिए कि किन कमांड्स को निष्पादित किया जा रहा है, आप "ps -ef" का उपयोग करें। यह आपको बताएगा कि हर कोई क्या कर रहा है, हालांकि आमतौर पर बहुत अधिक जानकारी है।
यह पता लगाने के लिए कि कौन विशेष कमांड चला रहा है, इसे संकीर्ण करने के लिए आप "grep" फ़िल्टर को इस तरह जोड़ सकते हैं:
ps -ef | grep scp
यह सभी scp कमांड को लौटाएगा, लेकिन यह grep कमांड को scp की तलाश में लौटा सकता है और grep के स्ट्रिंग से मेल खाने के बाद से उन में लिखे गए अक्षर scp के साथ कोई अन्य कमांड। इसलिए आपको grep को दिए गए अभिव्यक्ति के साथ चतुर होने की आवश्यकता हो सकती है (बहुत बार आपको बस इसे उद्धृत करने और एक स्थान जोड़ने की आवश्यकता है:
ps -ef | grep "scp "
या इससे भी बेहतर नियमित अभिव्यक्ति का लाभ उठाने और:
ps -ef | grep "[s]cp "
यदि आप उपयोगकर्ता को जानते हैं और केवल यह जानना चाहते हैं कि वे क्या चला रहे हैं तो "ps -fu" आपका मित्र है। उदाहरण के लिए
ps -fu tom
जो निश्चित रूप से, टॉम की scp प्रक्रियाओं को प्राप्त करने के लिए grep के साथ जोड़ा जा सकता है:
ps -fu tom | grep "[s]cp "
कॉलम 6 ट्टी है।
आप tty
मानक इनपुट से जुड़े टर्मिनल के फ़ाइल नाम का पता लगाने के लिए उपयोग कर सकते हैं ।
आपके प्रश्न के उत्तरार्द्ध के लिए, sudo
या su
फिर grep -c 'command' /home/username/.bash_history
।