क्या मैं केवल कीबोर्ड का उपयोग करके पिछले टर्मिनल कमांड से आउटपुट बचा सकता हूं?


12

मैंने बस जीयूआई के बिना एक लाइव सीडी से एक ddकमांड चलाने में पिछले दो घंटे बिताए (या किसी भी समान "फिर से करना मुश्किल" परिदृश्य) तस्वीर ; मेरे पास मेरा भरोसेमंद "मल्टी-विंडो" ( CTRL+ALT+F#) बैश टर्मिनल है।

काश, कमांड के दौरान ddकई गंदे त्रुटि संदेश और कुछ और जानकारी जो मैं रखना चाहूंगा। मेरे पास एक USB ड्राइव है, जिसमें मैं डेटा लिख ​​सकता हूं, लेकिन कमांड को पहले ही चलाने के बाद मुझे टेक्स्ट आउटपुट के रूप में पिछला आउटपुट कैसे प्राप्त होगा?

यदि यह एक अच्छा GUI के अंदर एक टर्मिनल एमुलेटर होता, तो मैं बस अपने माउस का उपयोग पाठ का चयन करने, उसे कॉपी करने और एक दस्तावेज़ में पेस्ट करने के लिए करता। और मुझे पता था कि कमांड ने त्रुटियों का उत्पादन किया होगा, मैंने इसे शुरू करने के लिए एक फ़ाइल पर पाइप किया होगा, लेकिन अफसोस, अतिरिक्त आउटपुट एक आश्चर्य के रूप में आया।

कमांड को फिर से चलाने के बिना मैं अपने पिछले कमांड से टेक्स्ट आउटपुट को फाइल में कैसे सेव करूं? क्या यह भी संभव है?


मैं स्क्रीन पर पाठ का चयन करने के तरीकों की खोज कर रहा हूं, लेकिन अभी तक मैं केवल उस पाठ का उपयोग करने के तरीके खोज रहा हूं जो आपने शीघ्र में दर्ज किया है।
IQAndreas

क्या आपने आउटपुट पुनर्निर्देशन का उपयोग करने की कोशिश की है ??
eyoung100

2
@ eyoung100 "पाइपिंग" के लिए एक और शब्द है? के रूप में dd if=/dev/sda of=/backups/sda.img > result.txt। यदि हां, तो समस्या यह है कि मैं पहले से ही ddकमांड चला रहा हूं । हर कीमत पर, मैं फिर से कमांड चलाने से बचना चाहता हूं, जो कुछ स्थितियों में असंभव है।
IQAndreas

2
यह मानते हुए कि लिनक्स है: gpm स्थापित करें । (यदि आवश्यक हो, तो इसे शुरू करें service start gpm)। बाईं माउस बटन को दबाए रखते हुए एक क्षेत्र को स्वीप करें। टाइप करें cat > outputfileऔर इस क्षेत्र तुम सिर्फ चयनित चिपकाने के लिए सही माउस बटन पर क्लिक करें।
मार्क प्लॉटनिक

1
यदि उद्देश्य पूरी तरह से "रखने के लिए ... [] जानकारी], एक अंतिम उपाय एक कैमरा हड़पने और स्क्रीन की एक तस्वीर लेने के लिए है। (और, सैद्धांतिक रूप से, आप उस पर ओसीआर चला सकते थे।)
स्कॉट

जवाबों:


15

एक Linux कर्नेल को आपके vts के लिए ऑन-स्क्रीन लॉग को संबंधित /dev/vcsa*[ttynum]डिवाइस में संग्रहीत करना चाहिए ।

यही कारण है कि निम्नलिखित काम करता है:

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcs2

... जो प्रिंट करता है ...

hey       

संबंधित /dev/vcsa[ttynum]डिवाइस ऑन-स्क्रीन पर स्वरूपित पाठ का एक एन्कोडेड संस्करण संग्रहीत करेगा, जबकि /dev/vcs[ttynum]एक सादे डंप होगा। vcsa[ttynum]उपकरणों बाइट्स जो प्रत्येक के लिए स्क्रीन पर चार और उसके गुण, साथ ही प्रत्येक तार्किक पेज संदर्भित tty के इंगित करता है के सिर पर एक स्ट्रिंग का वर्णन की एक जोड़ी सांकेतिक शब्दों में बदलना होगा लाइनों, स्तंभों गिनती।

जैसा कि @kasperd बताते हैं, मुझे यह गलत लगा कि पहले \aबीईएल को हर चरित्र के बीच एन्कोड किया गया था, जब वास्तव में: डिफ़ॉल्ट रंग संयोजन बेल चरित्र के साथ मेल खाता है।

अपने उद्देश्यों के लिए उपयोग करना /dev/vcs[ttynum]संभवतः सबसे आसान है। यहाँ lमतभेद पर एक ook है:

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcs2 |
sed -n l

... प्रिंट ...

hey       $

...तथा...

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcsa2 |
sed -n l

... प्रिंट ...

0\200\000\004h\ae\ay\a$

1
vcsaसभी वर्णों के बीच समान वर्ण नहीं रखता है। यह आपको बाइट्स के जोड़े देता है जो आपको बताता है कि स्क्रीन पर कौन सा वर्ण है और किस रंग का है। डिफ़ॉल्ट रंग संयोजन घंटी चरित्र के साथ मेल खाता है।
कास्परड

@kasperd - धन्यवाद। क्या यह बेहतर है?
माइकर्स

वह बेहतर है। 👍
kasperd

2

किसी अन्य टर्मिनल पर जाएं (/ लॉग ऑन करें) और sudo screendump N > screenoutput.txtजहां Nआप चाहते हैं उस टर्मिनल की संख्या है।

कोई बैकलॉग नहीं, मुझे डर है। यदि वे वर्चुअल कंसोल एक रखते हैं, तो मैंने इसे कभी नहीं देखा। लेकिन यह आप सभी को मिलता है जो आप उस टर्मिनल पर देख सकते हैं।


अगर यह काम करता है, तो शायद यह है क्योंकि यह इसे पकड़ लेता है /dev/vcsa*[1-9]*- (जो मुझे लगता है कि सुपरसुअर अनुमतियाँ हैं) । लाइनक्स कंसोल ने अधिकांश 3. * श्रृंखला के लिए एक बैकलॉग का समर्थन किया है, मुझे लगता है। मुझे यकीन नहीं है कि कोई इसे कैसे पकड़ सकता है ( /dev/vcsa*[1-9]*उपकरणों का उपयोग करने का विरोध ) लेकिन शायद एक तरीका है।
मिकसेर

एक अलग कंसोल पर स्विच न करना बेहतर है, क्योंकि स्विचिंग बैकलॉग मिटा देता है, केवल वही बरकरार रखता है जो वर्तमान में स्क्रीन पर दिखाई देता है।
गिल्स एसओ- बुराई को रोकना '

@ बाइक चलाने वाले हाँ। वैसे, मैन पेज ऐसा लगता है कि यह दोनों का उपयोग करता है /dev/vcs$iऔर /dev/vcsa$i। यह हालांकि एक पठनीय परिणाम देता है। ;-)
सीधीक

@ गिल्स आह, तो एक बैकलॉग है? लेकिन screendumpयह नहीं मिलता है, भले ही मैं एक ही कंसोल में रहूं।
दी सिधेकिन

1
आप Shift-PageUp को एक या अधिक बार टाइप करके स्क्रॉलबैक देख सकते हैं। मुझे जीपीएम के माध्यम से माउस का उपयोग करने के अलावा स्क्रॉलबैक में पाठ को सूँघने का एक तरीका नहीं पता है।
मार्क प्लॉटनिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.