क्या निष्पादित करने वाले आदेश को संशोधित करने का कोई तरीका है? मैं आउटपुट को एक फ़ाइल में रीडायरेक्ट करना चाहता हूं, साथ ही इसे टर्मिनल पर प्रिंट करना चाहता हूं। मैंने पाया कि ls > file.txt | cat
नौकरी करता है, इसलिए मैं निष्पादित करने वाले किसी भी आदेश में > file.txt | cat
जोड़ना चाहता हूं।
क्या फ़ाइल पर रीडायरेक्ट करने और टर्मिनल पर प्रिंट करने का कोई बेहतर तरीका है? मैं एक लॉगर बनाने की कोशिश कर रहा हूँ।zsh preexec कमांड संशोधन
उत्तर
वहाँ ऐसा करने के कई तरीके, है इस ब्लॉक मैं यहां पाया http://git.grml.org/?p=grml-etc-core.git;a=blob_plain;f=etc/zsh/zshrc;hb=HEAD
abk=(
'...' '../..'
'....' '../../..'
'BG' '& exit'
'C' '| wc -l'
'G' '|& grep '${grep_options:+"${grep_options[*]}"}
'H' '| head'
'Hl' ' --help |& less -r' #d (Display help in pager)
'L' '| less'
'LL' '|& less -r'
'M' '| most'
'N' '&>/dev/null' #d (No Output)
'R' '| tr A-z N-za-m' #d (ROT13)
'SL' '| sort | less'
'S' '| sort -u'
'T' '| tail'
'V' '|& vim -'
'co' './configure && make && sudo make install'
'fc' '> file.txt | cat'
)
zleiab() {
emulate -L zsh
setopt extendedglob
local MATCH
if ((NOABBREVIATION > 0)) ; then
LBUFFER="${LBUFFER},."
return 0
fi
matched_chars='[.-|_a-zA-Z0-9]#'
LBUFFER=${LBUFFER%%(#m)[.-|_a-zA-Z0-9]#}
LBUFFER+=${abk[$MATCH]:-$MATCH}
}
zle -N zleiab && bindkey ",." zleiab
भी ध्यान दें कि मैं सूची में 'fc' '> file.txt | cat'
जोड़ा हैं 1 मुझे सबसे ज्यादा पसंद abk
क्या इस में करता है कि आप आदेश के बाद fc
टाइप करें और फिर आप पर क्लिक करें। (अल्पविराम और अवधि) तेजी से उत्तराधिकार और zsh में के लिए > file.txt | cat
fc
का स्थान ले लेगा आप कार्रवाई है कि जब आप आदेश निष्पादित किया जाएगा बदलने के लिए एक लाइन पर अमल किया जाता है बदल सकते हैं। यह एक फ़ंक्शन को परिभाषित करके किया जा सकता है जिसे आप फिर एंटर कुंजी से जोड़ते हैं।
पहले एक फ़ंक्शन को परिभाषित करने दें जो '> file.txt | बिल्ली 'किसी भी आदेश को समाप्त होने वाले:
function log_and_accept {
BUFFER="$BUFFER > file.txt | cat"
zle accept-line
}
अगले भाग वास्तव में डिफ़ॉल्ट अपना नया समारोह के साथ कुंजी व्यवहार में प्रवेश को बदलने के लिए है। डिफ़ॉल्ट व्यवहार जिसे हम प्रतिस्थापित कर रहे हैं वह स्वीकृति-रेखा फ़ंक्शन है, और यदि हम zle documentation देखते हैं, तो आप देखेंगे कि स्वीकृति-रेखा^जे और^एम से जुड़ी है।
उन पत्रों आप पहली बार यह एक विजेट में बदल जाने की जरूरत को यह समारोह के लिए बाध्य करने के लिए:
zle -N log_and_accept_widget log_and_accept
तो फिर तुम यह बाध्य कर सकते हैं, पुराने व्यवहार की जगह:
bindkey '^J' log_and_accept_widget
bindkey '^M' log_and_accept_widget
अब आप हो जाएगा आपके द्वारा किए गए प्रत्येक आदेश के लिए उस आदेश का विस्तार करना। हर सीडी, एलएस, vim आदि आदि जैसे मैं सुझाव है कि आप कुछ और कार्यों कि वास्तव में बारी इस पर और बंद को परिभाषित:
function turn_on_logging {
bindkey '^J' log_and_accept_widget
bindkey '^M' log_and_accept_widget
}
function turn_off_logging {
bindkey '^J' accept-line
bindkey '^M' accept-line
}
zle -N turn_on_logging_widget turn_on_logging
zle -N turn_off_logging_widget turn_off_logging
bindkey '^P' turn_on_logging_widget
bindkey '^O' turn_off_logging_widget
मुझे लगता है कि आप इस के साथ सावधान रहना चाहिए। इसे थोड़ा परीक्षण करने के बाद, मैं जल्दी से इसे नापसंद कर दिया।
- 1. zsh: वर्तमान कमांड लाइन
- 2. कमांड लाइन में टिप्पणियां Zsh
- 3. zsh
- 4. zsh
- 5. zsh: स्क्रिप्ट
- 6. 'Zsh
- 7. Zsh
- 8. zsh
- 9. zsh
- 10. zsh
- 11. zsh
- 12. zsh: वापस पाने के लिए कैसे 'अविस्तारित' कमांड
- 13. zsh इतिहास
- 14. कैसे ZSH
- 15. zsh autocompletion
- 16. zsh/bash
- 17. zsh vi मोड स्थिति लाइन
- 18. संशोधन
- 19. zsh परिवर्तन प्रॉम्प्ट इनपुट रंग
- 20. वर्तमान सबवर्जन संशोधन आदेश
- 21. ALT + LeftArrowKey zsh
- 22. zsh git autocomplete
- 23. ZSH Bindkey रिवर्स देखने
- 24. zsh compinit: असुरक्षित निर्देशिका
- 25. छनन ZSH इतिहास आदेश
- 26. अजीब चरित्र zsh
- 27. zsh प्रॉम्प्ट में निरंतर अद्यतन घड़ी?
- 28. क्या किसी निश्चित कमांड के निष्पादन से बचना संभव है?
- 29. कमांड लाइन
- 30. zsh शीघ्र - जाँच अगर कोई पृष्ठभूमि नौकरियों
टीई यहां उपयोग करने का आदेश है,> फ़ाइल | बिल्ली काफी उलझन में है –