बैश इतिहास के माध्यम से पहुंचने पर स्क्रीन लंबे समय की शुरुआत से कट जाती है


9

मैं ओएस एक्स शेर में बैश और स्क्रीन के डिफ़ॉल्ट संस्करणों का उपयोग कर रहा हूं।

जब मैं एक स्क्रीन सत्र में होता हूं और मैं बैश इतिहास के माध्यम से वापस स्क्रॉल करता हूं और मैं एक कमांड पर आता हूं जो रैप करने के लिए पर्याप्त है।

मैं पहले कुछ कमांड टाइप कर सकता हूं:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

जैसा कि ऊपर लिखा है ठीक से लपेटता है, लेकिन अगर मैं इसे बैश के इतिहास के माध्यम से एक्सेस करने के लिए दबाता हूं, तो कंसोल केवल प्रदर्शित करता है:

83279836214c0.144847759343/

तो कमांड की प्रॉम्प्ट और पूरी पहली पंक्ति गायब है, जिसे संपादित करना मुश्किल है; यदि मैं पहली पंक्ति पर वापस स्क्रॉल करता हूं, तो यह प्रकट होता है, लेकिन यह आउटपुट की अंतिम पंक्ति को अधिलेखित करता है। जब मैं कमांड निष्पादित करता हूं, तो शेष पहली पंक्ति प्रदर्शित होती है और सब कुछ अपेक्षित रूप से दिखता है:

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

क्या अधिक उत्सुक है, यह है कि यदि इतिहास का उपयोग लंबे आदेश तक पहुंचने के लिए किया जाता है, लेकिन मैं इसे अभी तक निष्पादित नहीं करता हूं, तो किसी भी C-aस्क्रीन कमांड का उपयोग करें , जैसे कि दूसरी विंडो पर स्विच करना और फिर वापस, या यदि मैं अपनी वर्तमान टर्मिनल विंडो से बाहर क्लिक करता हूं इसमें वापस, इतिहास कमांड अब फिर से ठीक से प्रदर्शित किया गया है।

मेरा PS1='\u@\h:\w$ 'तो वहां कुछ भी अजीब नहीं चल रहा है।

क्या इतिहास का उपयोग करते समय पूरे कमांड को सही ढंग से दिखाने का एक तरीका है? मैंने स्क्रीन रैप सेटिंग्स के साथ खेलने की कोशिश की है, लेकिन वे केवल चीजों को बदतर बनाते हैं।

stty -a दिखाता है:

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

क्या आप स्क्रीन के अंदर $ TERM इको कर सकते हैं और आउटपुट प्रदान कर सकते हैं? इसके अलावा, अगर आप tput हूँ; गूंज $?, क्या मिलता है?
पैट्रिक

TERMहै xterm-256colorऔर tput am; echo $?अभी मुझे 0.
selassid

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

का आउटपुट क्या है stty -a?
एंडी स्मिथ

मैंने इसे पोस्ट के नीचे जोड़ा है। स्क्रीन से न चलने पर यह आउटपुट से मेल खाता है।
सेलासिड

जवाबों:


1

ऊपर दिए गए कमेंट के जवाब के आधार पर, ऐसा प्रतीत होता है कि आपकी एक स्टार्टअप स्क्रिप्ट में आपका TERM ओवरराइड कर रहा है। स्क्रीन के अंदर रहते हुए, आपका TERM 'स्क्रीन' पर सेट होना चाहिए, 'xterm-256color' पर नहीं।

मैं आपके शेल स्टार्टअप स्क्रिप्ट के माध्यम से देखूंगा। ~ / .bashrc, / etc / bash / bashrc, और संभवतः अन्य जैसे ~ / .bash_profile और / etc / प्रोफ़ाइल पर निर्भर करता है कि आपने सब कुछ कैसे सेट किया है। यदि आपको कोई TERM = "..." सेटिंग्स दिखाई देती है, तो आपको उन्हें हटाने की आवश्यकता है।


यह सच था, लेकिन उन लोगों को हटाने के बाद भी, और यह जांचना कि TERM स्क्रीन के अंदर "स्क्रीन" है फिर भी समस्या को ठीक नहीं करता है।
22

क्या आपके पास एक ~ / .inputrc या / etc / inputrc है? यदि ऐसा है, तो सुनिश्चित करें कि क्षैतिज-स्क्रॉल-मोड isnt सेट, या कि इसका सेट बंद।
पैट्रिक

मेरे पास एक ~ / .inputrc है, लेकिन क्षैतिज-स्क्रॉल-मोड सेट नहीं है और इसे बंद करने से व्यवहार नहीं बदलता है। मेरे पास इनपुट-मेटा और आउटपुट-मेटा ऑन और कन्वर्ट-मेटा ऑफ़ है, लेकिन उन सेटिंग्स को हटाने से व्यवहार नहीं बदलता है।
सेलासिड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.