मैं क्लिपबोर्ड पर टर्मिनल मानक आउटपुट (स्टडआउट) कैसे पाइप करूं?


106

उदाहरण के लिए,

कहो कि मैं एक फ़ोल्डर की सामग्री को सूचीबद्ध करना चाहता हूं और सीधे दोस्त के लिए चैट विंडो में उन्हें देखना चाहता हूं।

मुझे लगता है कि मैं ls > filename.txtउन सामग्रियों के साथ एक फ़ाइल (फ़ाइलनाम। Txt) बनाने के लिए कर सकता था ; फिर मुझे फ़ाइल खोलनी या प्रिंट करनी होगी और मैन्युअल रूप से टेक्स्ट ब्लॉक ( जो कष्टप्रद / थकाऊ हो सकता है) का चयन करें और कॉपी करें। मैं स्पष्ट रूप lsसे टर्मिनल विंडो के भीतर से सीधे आउटपुट भी चुन और कॉपी कर सकता था ।

यह क्लिपबोर्ड पर मानक मानक आउटपुट करने के लिए बहुत तेज़ / आसान होगा

क्या टर्मिनल कमांड मुझे ऐसा करने की अनुमति देता है?


जवाबों:


122

यह या तो xsel या xclip कमांड लाइन उपयोगिताओं के साथ किया जा सकता है । चूंकि न तो प्रोग्राम डिफ़ॉल्ट रूप से उबंटू के साथ आता है, इसलिए आपको पहले उन्हें उबंटू सॉफ्टवेयर या टर्मिनल के माध्यम से इंस्टॉल करना होगा। यहाँ टर्मिनल में कैसे है (लेकिन याद रखें कि आपको इन दोनों में से किसी एक की आवश्यकता है।)

sudo apt install xsel
sudo apt install xclip

अब कुछ उदाहरण। यदि आप lsक्लिपबोर्ड के आउटपुट को यहां कॉपी करना चाहते हैं तो आप क्या करेंगे:

Xsel के साथ:

ls | xsel -ib

Xclip के साथ:

ls | xclip -sel clip

यह निश्चित रूप से अन्य टर्मिनल कमांड के लिए भी उपयोग किया जा सकता है । मान लीजिए कि आप अपने नेटवर्क की जानकारी को सहायता फ़ोरम में पेस्ट करना चाहते हैं।

Xsel के साथ:

sudo lshw -C network | xsel -ib

Xclip के साथ:

sudo lshw -C network | xclip -sel clip

नए बैश उर्फ ​​के साथ इसे और भी आसान बनाएं!

अपनी ~/.bash_aliasesफ़ाइल संपादित करें (यदि यह मौजूद नहीं है तो इसे पहले बनाएं touch ~/.bash_aliases)

फिर निम्नलिखित में से एक को जोड़ें (किस कार्यक्रम के साथ जाने का फैसला किया है):

alias copy='xclip -sel clip'

या

alias copy='xsel -ib'

फिर सहेजें और बंद करें।

अब (अपने टर्मिनल को फिर से शुरू करने के बाद) आप क्लिपबोर्ड पर मानक आउटपुट भेज सकते हैं इसे 'कॉपी' (या जो भी आप अपने नए उपनाम का नाम देने के लिए तय करते हैं)

उदाहरण के लिए:

ls | copy

1
नए उबंटू संस्करणों के साथ, आपको उपयोग करना चाहिए apt। तो sudo apt install xselया sudo apt install xclip
बुद्धिमानबीच

1
उत्तर के लिए धन्यवाद, लेकिन क्या आप लिनक्स टर्मिनल के लिए कुछ भी जानते हैं?
मोहमद

1
@jpaugh। 16.04 बनाम 14.04 के लिए Ubuntu पैकेज प्रबंधन प्रलेखन की तुलना करें । 16.04 में, यह केवल उल्लेख करता है aptऔर नहीं apt-get। आप अभी भी उपयोग कर सकते हैं apt-get, लेकिन वे लोगों को उपयोग करने के लिए प्रोत्साहित करने की कोशिश कर रहे हैं apt
वारबकी

2
आपको टर्मिनल को पुनरारंभ करने की आवश्यकता नहीं है; आप बसsource ~/.bash_aliases
रोब के

1
@Mohamad ये एक X सर्वर के अंदर चलने के लिए हैं (क्योंकि यह क्लिपबोर्ड कार्यक्षमता प्रदान करता है)। यदि आपके पास ऐसा नहीं है, तो आपको इसे अपने टर्मिनल एमुलेटर में करने की आवश्यकता है। ऐसा कैसे करें, उस वास्तविक सॉफ़्टवेयर पर निर्भर करता है जिसका आप उपयोग कर रहे हैं, क्योंकि उसके लिए कोई वास्तविक मानक नहीं है।
थोरबजोर्न रेवन एंडरसन

2

यदि आप लिनक्स (डब्लूएसएल) के लिए विंडोज सबसिस्टम में उबंटू का उपयोग करके क्लिपबोर्ड पर कॉपी करने का प्रयास कर रहे हैं तो xsel या xclip तब तक काम नहीं करेगा जब तक आप एक्स विंडोज का उपयोग नहीं कर रहे हैं क्योंकि क्लिपबोर्ड केवल ग्रैफिकल के लिए है। हालांकि, WSL उबंटू में क्लिपबोर्ड पर टर्मिनल मानक आउटपुट को पाइप करने के लिए आप उपयोग कर सकते हैं clip.exe। तब आप मानक पेस्ट कमांड के साथ WSL Ubuntu टर्मिनल में पेस्ट कर सकते हैं और कॉपी किया हुआ पाठ विंडोज में भी उपलब्ध होगा। उदाहरण के लिए,

pwd | clip.exe 

(Windows) क्लिपबोर्ड पर वर्तमान कार्य निर्देशिका की प्रतिलिपि बनाएगा।

डब्ल्यूएसएल में पाठ को कॉपी / पेस्ट करने के तरीकों की तलाश करते समय यह खोज परिणाम सबसे ऊपर दिखाई देता है, इसलिए मुझे लगता है कि यह उल्लेख करना सार्थक है ताकि पाठकों को उबंटू में xsel या xclip स्थापित करने की आवश्यकता न हो और इसके बजाय उपयोग करें clip.exe

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