কোন টার্মিনাল সংজ্ঞা উপলব্ধ তা আমি কীভাবে পরীক্ষা করতে পারি?


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

এটি দুর্দান্ত, তবে এটির সাথে আমার একটি ছোট সমস্যা রয়েছে - ম্যান আউটপুট গ্রেপ না করে আমি কীভাবে পথটি খুঁজে পাব? এটা করার কোন উপায় আছে?

আমি উত্তরটি সংশোধন করেছি।
কার্লসন

10

"যে কোনও" সিস্টেম সমর্থনকারী টার্মিনফোতে ইনফোকম্প প্রোগ্রামটি বর্তমান টার্মিনালের জন্য যেখানে টার্মিনালের বিবরণটি খুঁজে পায় সেই পথটির নামটি দেখাতে ঘটে। উদাহরণস্বরূপ (এই ক্ষেত্রে 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

আমার ফ্রিবিএসডি 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। এটি তাদের সংকলিত টার্মিনফো অনুসন্ধানের পাথগুলি তালিকাভুক্ত করবে। অভিশাপ দ্বারা অনুসন্ধান করা একই পাথগুলি।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.