इतिहास से अंतिम एन कमांड कैसे प्राप्त करें?


37

मैं देखना चाहता हूं कि मेरे अंतिम एन कमांड क्या हैं history। मैंने सोचा था history | tail -n 5कि इसे बनाऊंगा, लेकिन मैंने देखा कि एक बहुस्तरीय कमांड के पास उतने ही पंक्तियों के लिए मायने रखता है जितना कि यह है।

$ echo "hello
how are you"
$ history | tail -2
how are you"
1051  history | tail -2

तो मेरा सवाल है: क्या मुझे इसे पूरा करने के लिए कमांड के आउटपुट को पार्स करना होगा?


1
//, यही कारण है कि मुझे
स्टैकटेक्चेंज

जवाबों:


46

मुझे यह मिला!

इतिहास [एन]

N का तर्क केवल अंतिम n लाइनों को सूचीबद्ध करता है।

$ echo "hello
how are you"
$ history 2
1060  echo "hello
how are you"
1061  history 2

4
ऐसा लगता है tcsh, yashऔर bash। अन्य गोले की तरह के लिए आप संबंधित जानकारी देने के लिए चाहते हो सकता है zsh, fish, ksh, और POSIX रास्ता।
स्टीफन चेज़लस

1
मुझे अच्छा लगेगा, हालाँकि मेरे कंप्यूटर में इनमें से कोई भी स्थापित नहीं है। क्या आप जानकारी प्राप्त करने के लिए किसी विशेष स्रोत की सलाह देते हैं? Opengroup में मुझे pubs.opengroup.org/onlinepubs/9699919799
फेडोरक्वि

6
fc -l -2भी काम करता है (लेकिन fc -l -2उत्पादन में वर्तमान को नहीं जोड़ता है )
एवगेनी वीरशैगिन


fcवैसे अंतिम n कमांड के साथ दिखाता है -n। दिखाना from n commands until lastकेवल है n(जो बहुत मायने नहीं रखता है क्योंकि आपको कुल संख्या जानने की आवश्यकता है)। जर्मन में हम कहेंगे ein kleiner aber feiner unterschied: एक छोटा लेकिन प्रसन्न अंतर। -l@EvgenyVereshchagin के रूप में उपयोग करने के लिए मत भूलना क्योंकि पहले से ही अन्यथा आप एक संपादक में समाप्त होते हैं जो आप नहीं चाहते हैं।
तिमो

0

OpenBSD 6.3 (PD KSH v5.2.14 99/07 / 13.2) में परीक्षण किया गया।

history [b]

एक संख्या [बी] के साथ एक प्रविष्टि से शुरू होने वाले सभी इतिहास को दर्शाता है

history [b] [e]

[ई] से [ई] तक के इतिहास के अंतराल को दर्शाता है


0

आप नकारात्मक संख्याओं का भी उपयोग कर सकते हैं, जैसे:

history -1

या एक सीमा (अंतिम 10) का उपयोग करें:

history -1 -11 

मेरे साथ bash 5.0.11 के लिए काम नहीं करता है।
joelostblom

0

जब आप इतिहास लागू करते हैं तो यह अंतिम इतिहास कमांड भी दिखाएगा। उस स्थान को रोकने के लिए ऐसे उर्फ ​​का उपयोग किया जा सकता है:

alias hs=' history 16 | head -n 15'

(खुद कमान history 16 | head -n 15)

एक और उपयोगी इतिहास उर्फ:

  alias hsg=' history | grep ' 

(जब ctr + R चुनने के लिए बहुत छोटा हो)

_History के सामने का स्थान इतिहास में नहीं लिखा हुआ कमांड चलाएगा

fc -l # भी 16 अंतिम आदेशों की सूची देगा (और अधिक)


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