एक टर्मिनल में कमांड लिखें, दूसरे पर परिणाम देखें


35

मैं एक टर्मिनल पर एक कमांड फू चलाना चाहता हूं और परिणाम को दूसरे टर्मिनल पर भेजना चाहता हूं । क्या इसे करना संभव है ?


4
इसके अलावा tmux और स्क्रीन पर देखें , दोनों आपको ओवर, मिरर या अन्य सत्रों पर कमांड निष्पादित करने की अनुमति देते हैं।
केविन

जवाबों:


46

हाँ यही है। एक हजार शब्दों की एक तस्वीर:

राडू का टर्मिनल

इसलिए, आपको >ऑपरेटर का उपयोग करके अपनी कमांड के आउटपुट को पुनर्निर्देशित करना होगा /dev/pts/#। आप #का उपयोग कर whoया wआदेश पा सकते हैं । यदि आप त्रुटियों को पुनर्निर्देशित करना चाहते हैं, तो उपयोग करें:

<command> >& /dev/pts/#

धन्यवाद। लेकिन अगर दूसरा टर्मिनल मौजूद नहीं है। हमें क्या करना चाहिए? या यह कहना बेहतर है कि इसे नए सिरे से पास करें?
मोहम्मद रजा रेजवानी

5
आपको संभवतः ऐसा करने के लिए एक स्क्रिप्ट की आवश्यकता होगी: स्क्रिप्ट आपके आदेश को तर्क के रूप में लेगी फिर एक नया खोलना चाहिए gnome-terminalऔर नए टर्मिनल के ट्टी ( ttyकमांड का उपयोग करके ) का पता लगाना चाहिए और अंत में इसे आउटपुट भेजना चाहिए।
रादु राईडेनू

8

आपके लिए कुछ इस तरह $HOME/.bashrc:

ng() { gnome-terminal -x sh -c "$*; bash"; }

यह एक कमांड चलाएगा और नई टर्मिनल विंडो पर परिणाम दिखाता है।

उदाहरण:

ng ls -l
ng echo foo

संपादित करें: इसके $HOME/.bashrcबजाय उपयोग से उपनाम पर विचार करने के लिए:

ng() { gnome-terminal -x bash -ic "$*; bash"; }

तब का आउटपुट lsरंगीन होना चाहिए (इस संकेत के लिए रादु रयाडेनू का धन्यवाद )।


यह सीधे नए टर्मिनल में कमांड चलाएगा।
रादु राईडेनू

हां लेकिन पुराने टर्मिनल में इसे चलाने का क्या फायदा है?
तुकसन

कोई फायदा नहीं ... लेकिन वास्तव में इस टिप्पणी का जवाब ।
रादु राईडेनु

4
आप समझेंगे कि क्या आप चलाएंगे type lsऔर फिर ng type ls:)
रादु रयाडेनू

1
यदि bashrc में एक पंक्ति में फ़ंक्शन लिखते हैं, तो शायद इसे समाप्त करने के लिए अर्धविराम की आवश्यकता है, या आप "फ़ाइल के अनपेक्षित अंत" त्रुटि को पूरा करेंगे। इसलिए ng() { gnome-terminal -x sh -c "$*; bash" ;}बेहतर होना चाहिए। और यदि आप xfce (xfce4-टर्मिनल को डिफ़ॉल्ट एमुलेटर के रूप में) का उपयोग कर रहे हैं: ng() { xfce4-terminal -x sh -c "$*; bash" ;}या आप किसी भी डिफ़ॉल्ट एमुलेटर द्वारा चला सकते हैंng() { x-terminal-emulator -x sh -c "$*; bash";}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.