2009-05-09 28 views
16

मैं ऐसी जगह पर काम करता हूं जिसमें उपकरणों के गैज़िलियन हैं जिन्हें कई विकल्पों की आवश्यकता होती है, इसलिए मैं अपने खोल के इतिहास पर काफी निर्भर करता हूं। मैं इसे अब भी वापस लेता हूं और फिर यह सुनिश्चित करने के लिए कि मैं उपयोगी, लंबा आदेश खोना नहीं चाहता हूं।मैं अपने इतिहास फ़ाइल में वर्तमान खोल के इतिहास को लिखने के लिए ज़श कैसे कहूं?

मैंने अभी इन आदेशों में से एक टाइप किया है और मैं यह सुनिश्चित करना चाहता हूं कि यह इतिहास फ़ाइल में फंस गया हो, लेकिन मेरे पास पृष्ठभूमि में एक लंबी दौड़ वाली नौकरी है और मैं exec zsh टाइप नहीं कर सकता। क्या इस स्थिति में मैं कुछ और कर सकता हूं?

(बेशक, मैं नकल कर सकता है और यह एक फ़ाइल में पेस्ट, लेकिन यह अधिक तार्किक एक flush-history आदेश अस्तित्व के लिए वहाँ के लिए किया जाएगा।)

उत्तर

25

इतिहास फ़ाइल के लिए खोल इतिहास लिखने के लिए,

करना
fc -W 

fc में कुछ उपयोगी झंडे हैं, उन्हें man zshbuiltins में देखें।

setopt -o sharehistory कहकर आप प्रत्येक आदेश के बाद इतिहास फ़ाइल को पढ़ने और लिखने को पूरी तरह से स्वचालित कर सकते हैं (इस प्रकार प्रत्येक चलने वाले zsh के साथ स्वचालित रूप से अपनी इतिहास फ़ाइल साझा कर सकते हैं)। man zshoptions में इतिहास से संबंधित विकल्पों को और पढ़ें।

+1

गीज़ के मान बदलकर वृद्धि की बचत होगी करने के लिए लगता है कि मैं एक आदमी पृष्ठ नहीं पढ़ सकता। धन्यवाद! –

+0

प्रलेखन: http://zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html#Shell-Builtin-Commands –

13

मैं भी सिर्फ पाया:

setopt INC_APPEND_HISTORY 

से man zshoptions:

INC_APPEND_HISTORY 
    This options works like APPEND_HISTORY except that new history 
    lines are added to the $HISTFILE incrementally (as soon as they 
    are entered), rather than waiting until the shell exits. The 
    file will still be periodically re-written to trim it when the 
    number of lines grows 20% beyond the value specified by $SAVE- 
    HIST (see also the HIST_SAVE_BY_COPY option). 
11

और

fc -R 

का उपयोग इतिहास में पढ़ने के लिए एक मौजूदा zsh खोल में (इसे लिखने के बाद) ।

0

, रेखा से नीचे Appen ~/.zshrc, यह 1000 प्रविष्टि हम HISTSIZE और SAVEHIST

HISTSIZE=1000 
if ((! EUID)); then 
    HISTFILE=~/.zsh_history_root 
else 
    HISTFILE=~/.zsh_history 
fi 
SAVEHIST=1000 
संबंधित मुद्दे