मैं यूनिक्स में उपयोगकर्ता कमांड इतिहास कैसे देख सकता हूं?


13

मुझे पता है कि 'इतिहास' कमांड मुझे उन कमांडों की एक सूची देता है जिन्हें मैंने यूनिक्स टर्मिनल में टाइप किया है।

मैं वर्तमान में सिस्टम पर लॉग इन सभी उपयोगकर्ताओं के लिए कमांड इतिहास कैसे देख सकता हूँ?


प्रोग्रामिंग से संबंधित नहीं। मेरा सुझाव है कि आप superuser.com पर पूछें ।

जानकारी प्राप्त करने के लिए कोई मानक-उपकरण नहीं है, इसलिए मुझे लगता है कि यह प्रोग्रामिंग है (कम से कम 'स्क्रिप्टिंग' के अर्थ में) - संबंधित।
IANH

जवाबों:


11

आप वर्तमान में /var/run/utmp(देखें man 5 utmp) में लॉग इन उपयोगकर्ताओं की एक सूची प्राप्त करते हैं । इतिहास ~ / .history में संग्रहीत है या ~ / .bash_history में bash उपयोगकर्ता के लिए। अन्य गोले अन्य इतिहास फ़ाइलों का उपयोग कर सकते हैं, इसलिए वास्तव में सभी जानकारी प्राप्त करना इतना आसान नहीं है।

इसके अलावा, यदि कोई उपयोगकर्ता कई बार लॉग इन होता है, तो .bash_history फ़ाइल हमेशा विश्वसनीय नहीं होती है।

utmpफ़ाइल को पढ़ने के लिए "फ्रंटएंड" कहा जाता है who, इसलिए आप वर्तमान में लॉग इन उपयोगकर्ताओं पर पुनरावृति करने के लिए शेल-स्क्रिप्ट भी लिख सकते हैं।


2
वर्तमान इतिहास को स्मृति में रखा गया है। इतिहास फ़ाइल केवल वही दिखाती है जो history -aकिसी उपयोगकर्ता द्वारा शेल से बाहर निकलने पर या उसके समान उपयोग करके लिखी गई थी ।
अगली सूचना तक रोक दिया गया।

2
ध्यान दें कि इस उत्तर में दिए गए फ़ाइल नाम केवल डिफॉल्ट हैं। प्रत्येक उपयोगकर्ता अपना स्थान निर्धारित कर सकता है (जोय का उत्तर देखें)। यदि कोई उपयोगकर्ता अलग-अलग गोले का उपयोग कर रहा है, तो वे अलग-अलग, गैर-डिफ़ॉल्ट स्थानों (जैसे ~ / mybashhist, ~ / histories / ksh या somesuch) में अपने इतिहास को स्टोर कर सकते हैं। इसके अलावा, ध्यान रखें कि उपयोगकर्ता डेटा को इस तरह से देखना कानूनी निहितार्थ हो सकता है।
DevSolar

3
echo $HISTFILE

फिर उस फाइल को देखें।


1
यह केवल तभी काम करता है जब आपने पहले उस उपयोगकर्ता के वातावरण (जैसे वह HISTFILEकिसी और चीज़ के लिए सेट हो सकता है ) को खट्टा कर दिया है।
DevSolar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.