मैं कैसे जाँच सकता हूँ कि कौन सी टर्मिनल परिभाषाएँ उपलब्ध हैं?


16

प्रश्न का बड़ा हिस्सा शीर्षक में है, लेकिन थोड़ा विस्तार करने के लिए:

अधिकांश लिनक्स पर मैं कर सकता हूँ find /usr/share/terminfo -type f। लेकिन सोलारिस मशीन मेरे पास है - यह निर्देशिका भी मौजूद नहीं है।

मैं टर्मिनलों की सूची पर पुनरावृति कर सकता हूं, और कुछ ऐसा कर सकता हूं:

for TERM in xterm xtermc xterm-color xterm-256color screen rxvt
do
    tput cols >/dev/null 2>/dev/null && echo "$TERM available"
done

लेकिन यह धीमा है। tputटर्मिनल परिभाषाओं द्वारा उपयोग किए जाने वाले मार्ग की खोज करने के लिए कोई विकल्प , और स्वयं "खोज" चलाएं?

जवाबों:


9

सोलारिस 10 पर आप कर सकते हैं:

find /usr/share/lib/terminfo -type f -print

आपको कुछ ऐसा करने में सक्षम होना चाहिए:

find /usr -type d -name terminfo -print

निर्देशिका कहाँ स्थित है खोजने के लिए।

आप सटीक मार्ग खोजने के लिए भी पढ़ सकते हैं:

man terminfo

यह बहुत अच्छा है, लेकिन मुझे इसके साथ एक छोटी सी समस्या है - मैं कैसे कर सकता हूं कि बिना आउटपुट के आदमी का उत्पादन कैसे हो? इसे करने का कोई तरीका है?

मैंने उत्तर में संशोधन किया है।
कार्लसन 15

10

"किसी भी" सिस्टम का समर्थन करने वाले टर्मो पर infocmp प्रोग्राम पाथनाम को दिखाने के लिए होता है जहां यह वर्तमान टर्मिनल के लिए टर्मिनल विवरण पाता है। उदाहरण के लिए (इस मामले में AIX):

$ infocmp vt100
#       Reconstructed via infocmp from file: /usr/share/lib/terminfo/v/vt100
vt100|vt100-am|Digital VT100,
        am, msgr, xenl, xon,
        cols#80, it#8, lines#24, vt#3,
        ...

Ncurses के लिए, यह अधिक जटिल है, क्योंकि आपके पास कई टर्मोफ़ डेटाबेस हो सकते हैं, और प्रविष्टियों को व्यक्तिगत फ़ाइलों की आवश्यकता नहीं है। यूनिक्स सिस्टम के साथ संगतता के लिए एक एकल डेटाबेस और प्रति प्रविष्टि एक फ़ाइल डिफ़ॉल्ट है

-Dके लिए विकल्प टिक और infocmp (जोड़ा 2011 में देर से ) एक तरह से अतिरिक्त जानकारी दिखाने के लिए है। उदाहरण के लिए, मेरे डेबियन 7 पर, मैं इसे देख सकता हूं:

$ infocmp6 -D
/users/tom/.terminfo
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/lib/terminfo

मेरे FreeBSD 10 मशीन पर, मैं हैशेड डेटाबेस का उपयोग करता हूं:

$ infocmp -D
/usr/local/ncurses/share/terminfo.db
/usr/local/share/misc/terminfo
/etc/termcap

वैकल्पिक रूप से, कोई भी toeप्रोग्राम का उपयोग सभी उपलब्ध टर्मिनल प्रविष्टियों की रिपोर्ट तैयार करने के लिए कर सकता है । -sऔर -aविकल्पों का उपयोग करने से यह चीजों को संयोजित करता है (जैसे conflictकार्यक्रम):

--> /users/tom/.terminfo
----> /usr/local/ncurses/share/terminfo
------> /usr/share/terminfo
--------> /lib/terminfo
--*-+---:       9term           Plan9 terminal emulator for X
--*---*-:       Eterm           Eterm with xterm-style color support (X Window System)
--*-*---:       Eterm-256color  Eterm with xterm 256-colors
--*-*---:       Eterm-88color   Eterm with 88 colors
--*-+---:       MtxOrb          Generic Matrix Orbital LCD display
--*-+---:       MtxOrb162       16x2 Matrix Orbital LCD display
--*-+---:       MtxOrb204       20x4 Matrix Orbital LCD display
--*-+---:       NCR260VT300WPP  NCR 2900_260 vt300 wide mode pc+  kybd
--*-+---:       aaa             ann arbor ambassador/30 lines
--*-+---:       aaa+dec         ann arbor ambassador in dec vt100 mode
--*-+---:       aaa+rv          ann arbor ambassador in reverse video
...

0

लिनक्स पर आप यह straceदेखने के लिए उपयोग कर सकते हैं कि कौन सा सिस्टम प्रोग्राम का उपयोग करता है। निम्नलिखित सभी "ओपन (2)" सिस्टम कॉल को सूचीबद्ध करेगा और उन्हें sedदिखाने के लिए फ़िल्टर करेगा , उम्मीद है कि tputवर्तमान टर्मिनल के लिए टर्मो कैपेसिटी का अनुवाद करने के लिए उपयोग की जाने वाली टर्मफो फाइल ।

TERMINFO_FILE=$(strace -e open tput cud1 2>&1 | sed -n -e 's/^.*\(".*terminfo.*"\).*$/\1/p')
echo ${TERMINFO_FILE}

ध्यान दें कि वह सीड एक्सप्रेशन मानता है कि आपकी टर्मफॉ फाइल्स को एक पथ में रखा गया है, जिसमें पैटर्न "टर्मफो" है। यदि वह आपको चिंतित करता है तो आप एक अलग धारणा का उपयोग कर सकते हैं और अंतिम "ओपन" सिस्टम कॉल चुन सकते हैं।

TERMINFO_FILE=$(strace -e open tput cud1 2>&1 | grep -e "^open" | tail -n 1 | sed -n -e 's/^.*\(".*"\).*$/\1/p')
echo ${TERMINFO_FILE}

अंत में, आप बस का उपयोग करके infocmp -Dया खोज करने वाले टर्मोफ़ खोज मार्गों की सूची को डंप कर सकते हैं tic -D। ये उनके संकलित-इन-टर्म टर्मफ्लो खोज पथों को सूचीबद्ध करेंगे। ये वही रास्ते हैं जो शाप से खोजे गए थे।


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