GNU स्क्रीन स्क्रॉलबैक बफर को एक फ़ाइल में कॉपी करना (हार्डकॉपी बढ़ाना)


187

मैं आसानी से किसी फाइल में जीएनयू स्क्रीन स्क्रॉलबैक बफर की प्रतिलिपि कैसे बना सकता हूं? यानी, 'हार्डकॉपी' कमांड का अधिक शक्तिशाली संस्करण?

जीएनयू स्क्रीन में, मैं स्क्रॉलबैक बफर में प्रवेश करने के लिए " Ctrl+ A Esc" का उपयोग कर सकता हूं । मैं तब पूरे बफर को चिह्नित कर सकता हूं और " Ctrl+ A Ctrl+ ]" का उपयोग करके इसे Emacs बफर में पेस्ट कर सकता हूं , इस प्रकार इसे एक फाइल में सेव कर सकता हूं ।

हालाँकि, यह थकाऊ है। क्या कोई स्क्रीन कमांड है जो स्क्रोलबैक बफर को एक फाइल में कॉपी करेगा, जैसे स्क्रीन के दृश्य भाग के लिए 'हार्डकॉपी' करता है?

जवाबों:


283

स्क्रॉलबैक बफ़र की संपूर्ण सामग्री को फ़ाइल में लिखने के लिए, टाइप करें

Ctrl+ Aऔर : फिर कमांड मोड में लाने के लिए

hardcopy -h <filename>

के पुराने संस्करणों में screen, यदि आप बस करते हैं hardcopy -h, तो यह सिर्फ फाइल पर लिखता है -h। यह संस्करण 4.2.0 में तय किया गया था, इसलिए hardcopy -hलिखते हैं कि वर्तमान विंडो नंबर hardcopy.Nकहां Nहै।


1
ध्यान दें कि फ़ाइल होम डायरेक्टरी में सेव हो जाती है - कम से कम यह मेरे लिए थी। उत्तर के लिए धन्यवाद, btw!
रितेश

2
@allrite: यह $ PWD में सेव हो जाता है (यदि आप फुलपैथ नहीं देते हैं), कोई विशेष व्यवहार नहीं है।
पुष्पेंद्र्रे

9
हां, लेकिन यह $ PWD में बच जाता है, जहां आपने स्क्रीन शुरू की थीनहीं स्क्रीन सत्र के $ लोक निर्माण विभाग में।
सितंबर

7
ध्यान दें कि यदि आपके पास एक लंबी स्क्रॉलबैक बफर है और इसमें बहुत अधिक नहीं है, तो सहेजी गई फ़ाइल खाली दिखाई दे सकती है क्योंकि पहले दसियों या सैकड़ों लाइनें रिक्त हैं और सामग्री अंत में है।
टेरी ब्राउन

3
उस स्थान के बारे में एक और ध्यान दें जहां हार्डकॉपी बच जाती है: यदि आप किसी निर्देशिका में सीडी का उपयोग करते हैं और फिर screen -rकिसी मौजूदा सत्र के लिए फिर से कनेक्ट करने के लिए उपयोग करते हैं , तो हार्डकॉपी स्क्रीन के अंदर सक्रिय निर्देशिका या आपके द्वारा उपयोग किए जाने से पहले नहीं बचती है screen -r। मुझे लगता है कि जब आप पहली बार स्क्रीन सेशन शुरू करते हैं तो यह उस डायरेक्टरी में सेव हो जाता है। आप इसे हार्डकॉपीयर कमांड के साथ बदल सकते हैं ।
मथायस फ्रायप

25

प्रेस Ctrl+ A : बफरफाइल / टैम्प ENTER / एसोमेफाइल.टेक्स्ट , और फिर Ctrl+A >

यह बफर की वर्तमान सामग्री को नामित फ़ाइल में लिख देगा।


मैंने यह कोशिश की, और "ctrl-a>" कहता है "कुछ नहीं हुआ"। पहला कदम यह कहा था कि "बफ़रफाइल अब '/tmp/foo.txt' है, लेकिन वह फ़ाइल भी नहीं बनाता है।

1
क्या आप वाकई Ctrl + A [का उपयोग करके स्क्रीन बफर में कुछ कॉपी कर चुके हैं? ऐसा लगता है कि आपका बफ़र खाली हो सकता है - यह संपूर्ण स्क्रॉलबैक बफ़र की प्रतिलिपि नहीं करेगा, बस आपके द्वारा चुने गए भाग का उपयोग Ctrl + A [
रोशन

2
आह, मैं ctrl-a [

12

टी एल; डॉ: ^A:writebuf <filename>

ओपी एक ए [ए] करते समय आपके द्वारा प्राप्त बफर के चयनित भाग का उपयोग करने का एक तरीका चाहता है, प्रारंभ और समापन के रूप में अंतरिक्ष का उपयोग करके पाठ का चयन करना, और उसके बाद ^ ए] का उपयोग करने के बजाय पेस्ट करने के लिए, चुने हुए भाग को सहेजें एक फ़ाइल के लिए बफर के।

यह काम किया:

^A:writebuf <filename>

नोट: राइटबफ में एक 'एफ'


1
नहीं नहीं। ओपी एनटीआईआरई बफर को बचाना चाहता है, न कि केवल चयनित भाग को। - ओपी

2
सत्यानाश! इसे इस तरह याद किया
केविन मुलेट ने

4
यह पोस्ट अभी भी उपयोगी है। बहुत बढ़िया।
जस्टिन ई

1
मैंने पाया कि स्क्रीन के MacOSX संस्करण पर इस काम को करने के लिए मुझे एक एब्सोल्यूट पथ (यानी: /User/user1/path/to/file.txt) का उपयोग करना होगा
jhrf

6

hardcopy -hपूरे बफ़र को शामिल करने का प्रयास करें ।


2
यह सिर्फ फ़ाइल में एक हार्डकॉपी बनाता है ~ / -h

2
@barrycarter: यह हाल के संस्करणों में बदल गया है। स्क्रीन 4.03.01 के अनुसार, hardcopy -hलिखता है कि वर्तमान विंडो नंबर hardcopy.Nकहां Nहै।
कीथ थॉम्पसन

4

यह मेरे लिए काम किया:

संपादन मोड दर्ज करें ( ~) और टाइप करें:

:hardcopy -h buff_file

इसने एक बहुत बड़ी फ़ाइल बनाई, जिसमें से 98% खाली थी, लेकिन मेरे लॉग शेष 2% में पूरी तरह से मौजूद थे।


-2

Ctrl+ A, :और कमांड 'लॉग ऑन' जारी करें।

या इसे अपनी .screenrc फ़ाइल में डिफ़ॉल्ट के रूप में 'डिफॉग ऑन' के रूप में सेट करें ।


2
मुझे लगता है कि यह बस उस कमांड को चलाने के बाद सब कुछ लॉग करना शुरू कर देता है। मैं सब कुछ (बहुत क्रिया) लॉग इन नहीं करना चाहता। मैं सिर्फ स्क्रॉलबैक बफर को एक फ़ाइल के रूप में कैप्चर करना चाहता हूं।

-3

Do Ctrl+ A, H

यही कारण है कि एक हार्ड कॉपी फ़ाइल में वर्तमान स्क्रीन की बचत होती है, जैसे, स्क्रीन 0. के लिए hardcopy.0 यह जा रहा से एक तेज तरीका हो रहा है Ctrl+ A, :और टाइपिंग हार्डकॉपी आदेश।


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