2008-11-23 10 views
25

मैं किसी अन्य xterm में कमांड लाइन से चलाए गए कमांड के आउटपुट का हिस्सा या किसी अन्य कमांड के हिस्से के रूप में उपयोग करना चाहता हूं।मैं माउस के बिना अपने xterm से टेक्स्ट कैसे कॉपी करूं?

> grep error error.log 
error: can't find file ~/<some very long path>/thisfile 

और मैं ऐसा करना चाहते हैं: उदाहरण के लिए माउस के साथ
1. प्रतिलिपि ~/<some very long path>/:

>ls ~/<some very long path>/ 

मैं दो तरीकों से यह करने के लिए पता है।
2. उपयोग head/tail/awk/sed/perl/cut/आदि के कुछ संयोजन ... केवल निकालने के लिए मैं क्या उत्पादन से की जरूरत है और फिर कि अंदर बैकटिक का उपयोग करें।

क्या माउस का उपयोग किए बिना टेक्स्ट कॉपी करने का कोई तरीका है? उदाहरण जो दिमाग में आता है वह वीआईएम के अंदर दृश्य मोड है, लेकिन मुझे नहीं पता कि xterm के अंदर ऐसा कैसे करें।

+0

संबंधित/इंडेंटिकल प्रश्न कहीं और: http://superuser.com/q/555886/128768; http://stackoverflow.com/q/1536757/1172302; http://superuser.com/q/228236/128768 –

उत्तर

37

आप जीएनयू स्क्रीन की प्रतिलिपि और पेस्ट आदेशों का उपयोग कर सकते हैं।

त्वरित ट्यूटोरियल:

  1. ओपन स्क्रीन: screen (या screen myprog my args here)
  2. अपने कार्यक्रम चलाने के लिए, उत्पादन उत्पादन आप कॉपी किए गए चाहते
  3. प्रतिलिपि मोड दर्ज करें:^एक [
  4. करने के लिए अपने कर्सर ले जाएँ प्रारंभ बिंदु
  5. दर्ज करें अपने कर्सर को अंतिम बिंदु
  6. पर ले जाएं
  7. हिट दर्ज
  8. पेस्ट:^एक]

स्क्रीन है कि से अधिक शक्तिशाली है (मैं एक विशेष टर्मिनल एमुलेटर की आवश्यकता के बिना कई आभासी टर्मिनल टैब के लिए इसका इस्तेमाल, और यह भी इतना है कि मैं डॉन ' जब एक्स क्रैश या कुछ होता है तो मेरे सत्रों को खोला नहीं जाता है)। स्क्रीन से बाहर निकलने के लिए, बस अपना खोल सत्र समाप्त करें, या^ए^टाइप करें।

+2

टर्मिनल के बाहर अन्य स्थानों में पेस्ट करने का कोई तरीका है? –

2

ओपी ने कहा कि वह ऐसा नहीं करना चाहता था, लेकिन यहां एक यूनिक्स यूटिल्स वंशावली के लिए ऐसा करने का तरीका है। यदि आप इन छोटी यूनिक्स उपयोगिताओं को सीखते हैं तो वे काफी शक्तिशाली हो सकते हैं।

ls $ (dirname $ (ग्रेप त्रुटि error.log | सिर -1 | -d कट "" 5- -f))

ध्यान दें: स्मृति से वाक्य रचना

11

मुझे लगता है XSel इसी तरह की स्थितियों में उपयोगी है। यह एक उपकरण है जो एक्स चयन में हेरफेर करता है। उदाहरण के लिए, इस क्लिपबोर्ड अपने आदेश के उत्पादन में स्टोर करेगा:

grep error error.log | xsel -bi 
1

आप टर्म डिवाइस का उपयोग कर चिंतित टर्म के लिए सीधे उत्पादन भेज सकते हैं। आदेश यहाँ है।

xyz$ls /home/ankit/documents/etc/x/y/z > /dev/pts/0 

यह & आशा है कि यह आपकी समस्या का समाधान हो सकता है की कोशिश करो (या watever डिवाइस का नाम है, आप इसे खोला टर्म के लिए 'w' आदेश का उपयोग कर प्राप्त कर सकते हैं)।

+3

यह पुन: उपयोग के लिए आउटपुट उपलब्ध नहीं कराता है। –

5

आप tmux का भी उपयोग कर सकते हैं जिसमें similar capabilities से screen है। एक बार जब आप tmux में रहे हैं और आप उत्पादन की प्रतिलिपि बनाना चाहते है, तो आप कॉपी और फिर इसे पेस्ट करने के लिए निम्न कर सकते हैं:

  1. साथ प्रतिलिपि मोड दर्ज Ctrl + B, [
  2. कर्सर तीर कुंजियों के साथ अंतरिक्ष की प्रतिलिपि बनाने के पाठ/क्षेत्र का चयन करने और फिर साथ Alt + W कॉपी (यह तुरंत प्रतिलिपि मोड से आप बाहर निकल जाएगा)
  3. ले जाएँ कर्सर ले जाएँ और फिर साथ Ctrl + चयन शुरू
  4. अब आप Ctrl + B का उपयोग कर (tmux भीतर केवल) पेस्ट कर सकते हैं ]

ये instructiuons Emacs कुंजी बाइंडिंग सक्षम हैं, मान लेते हैं। vi बाइंडिंग्स के लिए यह comparison देखें या बस this चरण-दर-चरण मार्गदर्शिका का पालन करें।

संबंधित मुद्दे