টার্মিনালে লাইন র‌্যাপ কীভাবে অক্ষম করবেন?


55

ব্যাশ শেল ব্যবহার করে আমার বড় লগ ফাইলগুলি দেখতে হবে। আমি lessফাইলগুলি খোলার জন্য ব্যবহার করছিলাম তবে লাইনগুলি দীর্ঘায়িত হওয়ায় লাইন / শব্দ মোড়ানোর কোনও প্রকার চলছে।

যেহেতু ফাইলগুলি লগ 4 জ লগস এবং প্রতিটি লাইনের শুরুতে একটি প্যাটার্ন রয়েছে, লাইনগুলি আবৃত করা আউটপুট বিশ্লেষণ করা কঠিন করে তোলে, তাই আমি less -Sকোন চপগুলি দীর্ঘ লাইনগুলি ব্যবহার করতে শুরু করেছি ।

তবে এখন আমার ব্যবহার করা দরকার tail -f, এবং এটি আউটপুটকেও আবৃত করে। সমস্ত কমান্ডের জন্য ব্যাশ শেলের লাইনের মোড়কে অক্ষম করা কি সম্ভব?

দ্রষ্টব্য: একটি পৃথক প্রশ্নের উত্তর রয়েছে যাতে পালাবার ক্রমটি উল্লেখ করা হয়েছে echo -ne '\e[?7l'তবে মনে হয় এটি ব্যাশটিতে কাজ করবে না।


4
মনে রাখবেন যে এটি আপনার শেলের (বাশ) পছন্দের সাথে সম্পর্কিত নয়, তবে এটি আপনার পছন্দটি টার্মিনালের উপর নির্ভর করতে পারে (এক্সটার্ম, টার্মিনাল, জিনোম-টার্মিনাল, কনসোল,…)। দেখুন 'টার্মিনাল', 'শেল', 'টিটি' এবং 'কনসোল' এর মধ্যে ঠিক পার্থক্য কী?
গিলস 'অশুভ হওয়া বন্ধ করুন'

4
গিলস যেমন উল্লেখ করেছেন, এটি টার্মিনাল এমুলেটরের বিষয়। উদাহরণস্বরূপ, screenএখানে একটি "মোড়ানো" কমান্ড রয়েছে। ইন xterm, -awস্বয়ংক্রিয় লাইন মোড়ানো প্রতিরোধ করার জন্য একটি বিকল্প আছে। সম্ভবত অন্যান্য টার্মিনাল এমুলেটরগুলির জন্য কিছু এক্স সংস্থান রয়েছে। আপনি কোন এমুলেটর ব্যবহার করছেন?
আর্জেজ

আমি ব্যবহার করছি gnome-terminal
নুনাক্সে

1
@ আর্জেজ: আসলে, এটি এর +awজন্য xterm:) তবে, এটি আউটপুট (যেমন, ls -lটিপিবি-র দীর্ঘ উইন্ডোজ-ইশ নামগুলির একটি গুচ্ছ সহ, এটি ভাল কাজ করে) সমাধান করে, ইনপুট জন্য , কমান্ড প্রবেশ করার সময়, আপনি সম্ভবত এখনও মোড়ানো চান (বা, কমপক্ষে আপনি এখন এটি যেভাবে চান তা চান না +aw: "কলামের সীমানা" ছাড়িয়ে লেখার চেষ্টা করুন এবং তারপরে বিশাল জিএফএক্স বাগের জন্য ব্যাকট্র্যাক করুন)।
ইমানুয়েল বার্গ

যাইহোক, এটি লাইনের মোড়কে অক্ষম করতে পারে না urxvtবা rxvtঅক্ষম করতে পারে না ।
ইমানুয়েল বার্গ

উত্তর:


7

আপনার আসলে কি দরকার tail -fবা কিছু করতে চান less +F? যেহেতু মনে হচ্ছে আপনি এখনও একটি ইন্টারেক্টিভ পেজার চান, তাই মনে হয় lessনিজেকে রিম্প্লেমেন্ট করার চেয়ে এটিকে আটকে রাখা আরও সহজ হবে ।

একটি চূড়ান্ত নোট: আপনি বিবেচনা করেছেন tail -f file | less?


আমি কিছু অভিজ্ঞতা করেছি screenএবং xtermযেমন অনুকরণকারীদের লাইন মোড়ানো প্রতিরোধের বিকল্প রয়েছে। তবে রেখাটি কেটে ফেলার এবং লাইনের লেজটি গোপন করার মধ্যে একটি বড় পার্থক্য রয়েছে যাতে আমরা চাইলে এটি দেখতে পারি। tail -f file | less -Sএটি অক্ষম বলে মনে হচ্ছে ব্যবহার করা নিখুঁত নয় -fতবে এটি আমার কাছে পাওয়া সেরা সমাধান।
নুনাক্সে

@ বরিস মার্কোসের উত্তর সম্ভবত আরও ভাল। এটি lessসরাসরি ব্যবহার করে।
অ্যান্থনিডি 973

51

চেষ্টা করুন:

less -S +F filename

  • Ctrlcটেলিং বন্ধ করতে টিপুন এবং এখন আপনি কার্সার কী ব্যবহার করে বাম এবং ডানদিকে যেতে পারেন।
  • Shiftfটেলিং পুনরায় শুরু করতে টিপুন
  • প্রেস Ctrlc, qপ্রস্থান করার জন্য

এটা অসাধারণ! আমার টার্মিনালটিতে দুটি পর্দা বিস্তৃত ছিল, তবে আমি গতকাল এটি পড়ার পরে আমি কেবল প্রশস্ত আউটপুটটি পাইপ করব less -S। এছাড়াও ল্যাপটপে খুব দরকারী।
জোনাটান Öström


15

মনে করুন আপনার COLUMNSভেরিয়েবল সংজ্ঞায়িত হয়েছে, আপনি কার্যকর করতে পারেন

tail -f your-app.log | cut -c -$COLUMNS

অন্যথায় $COLUMNSটার্মিনালের কলামগুলির প্রস্থের পরিবর্তে বিকল্প হিসাবে প্রাপ্ত stty -a


2
আরেকটি বিকল্প $COLUMNS(অবিলম্বে উপর আপডেট করা হয় না SIGWINCH, শুধুমাত্র পরবর্তী প্রম্পট) এবং stty -a(কঠিন স্ক্রিপ্ট ব্যবহার করার জন্য) হল tput cols
manatwork

ধন্যবাদ এনজোটিব এটি কাজ করে তবে এটি লাইনটি ছাঁটাই করে দেয় এবং আমরা দীর্ঘ লাইনের শেষ দেখতে পাই না to লম্বা লাইনটি যেখানে বার্ফার হয়েছে সেখানে এমন cutআচরণ করা কি সম্ভব less -Sএবং আমরা দিকনির্দেশক কীগুলি ব্যবহার করে সম্পূর্ণ রেখাটি দেখতে সক্ষম হয়েছি?
নুনাক্সে

আহ, এতো সহজ নয়। আমি তারযুক্ত সমাধানগুলি বিবেচনা করছি যেমন দুটি পৃথক screenউইন্ডোজ একটি tail -f | cutবা কোনও স্ক্রিপ্টের সাথে কোনওভাবে lessআচরণ অনুকরণ করে। তবে এই মুহুর্তে কোনও সমাধান নেই।
enzotib

1
পার্শ্ব-নোট: কাটা কেবল বাইট গণনা; বিপরীতভাবে less -S, এটি রঙিন পাঠ্যের উপর স্ক্রু করতে চলেছে, বা এএনএসআই সহ যে কোনও কিছু পালিয়ে যায়। ইউনিকোডও স্ক্রু আপ করতে পারে।
এলিওটিটিসিবল

হ্যাঁ, less -Sরঙিন পাঠ্যের সাথে আরও কার্যকর। আপনি less -S -Eঅবিলম্বে প্রস্থান করতে ব্যবহার করতে পারেন - colored COLUMNS এ রঙিন আউটপুট কাটার জন্য দরকারী।
নীল রঙের

4

আপনার জন্য পংক্তি মোড়ানো নিষ্ক্রিয় করতে পারেন less, tailএবং লিনাক্স সূর্যের নীচে প্রত্যেক অন্যান্য কমান্ড প্রয়োগ করুন:

tput rmam

লাইন মোড়কের ব্যবহার পুনরুদ্ধার করতে:

tput smam

3

টার্মিনেটর (http://software.jessies.org/terminator/) টার্মিনাল এমুলেটর দীর্ঘ লাইন মোড়তে না দেয় এবং অনুভূমিক স্ক্রোলিং থাকে (তবে জাভাতে লেখা হয়)।


আমি কীভাবে এটি সক্ষম করব? এটি ডিফল্টরূপে কাজ করছে বলে মনে হচ্ছে না।
ডিফল্ট

এই লেখার হিসাবে, অনুভূমিক স্ক্রোলটি ডিফল্ট হিসাবে চালু আছে। দুর্দান্ত, ক্রস প্ল্যাটফর্মের সুপারিশ। ধন্যবাদ!
ব্যবহারকারী 7089

কীভাবে কেউ এই বৈশিষ্ট্যটি সক্ষম করে তা দেখিয়ে এই উত্তরটিকে আরও ভাল করুন make আমি পছন্দগুলি অনুসন্ধান করেছি এবং এই বিকল্পটি সনাক্ত করতে পারে বলে মনে হচ্ছে না। এফডাব্লুআইডাব্লু, আমি দৌড়াচ্ছি terminator v1.91
অ্যান্থোনিকে

2
@AnthonyK দুটি সম্পর্কহীন টার্মিনাল নাম ভাগ emulators হয় terminator, এই এক যা gentledevil উল্লেখ করা হয় এবং যে এক যা আপনি ব্যবহার করছেন।
jlliagre

3

দুটি ভাল উত্তর / উদাহরণ এখানে

http://www.commandlinefu.com/commands/view/1710/tail-a-log-file-with-long-lines-truncated

tail -f logfile.log | cut -b 1-80

tail -f logfile.log | cut -b -$(tput cols)

একটি সতর্কতামূলক: কমপক্ষে আমার ম্যাক কাটের অন্তর্নির্মিত টার্মিনালে ট্যাব অক্ষরগুলি খুব ভালভাবে পরিচালনা করবে বলে মনে হয় না। দেখে মনে হচ্ছে এটি তাদের 8 টি স্পেস দিয়ে প্রদর্শন করে তবে তাদের 4 স্পেস প্রশস্ত বা এর মতো কিছু হিসাবে গণনা করে। অন্য কথায়, যদি আপনার টার্মিনালটি 80 টি অক্ষর প্রস্থ হয় এবং আপনার আউটপুটটিতে প্রতি লাইন বিভিন্ন ট্যাব থাকে তবে আপনাকে প্রস্থটি 60 বা সম্ভবত এর মতো সেট করতে হবে। YMMV।


2

সাথে নীচের বিকল্পগুলি ব্যবহার করুন less। এটি শব্দের মোড়কে অক্ষম করবে এবং নির্দিষ্ট করা থাকলে পাঠ্যের রং সংরক্ষণ করবে।

less -SR +F filename


2

এই পৃষ্ঠায় পাইফিং লেজের জন্য কয়েকটি উদাহরণ রয়েছে - আমার পরীক্ষাগুলি থেকে এটি সঠিকভাবে কাজ করে না, যদি আপনার সত্যিই পাইপিংয়ের প্রয়োজন হয় (যেমন, যদি আপনাকে আরও কিছু পাইপ লাগাতে হয়, গ্রেপের মতো) আপনি এর মতো কিছু ব্যবহার করতে পারেন :

watch -n 1 'tail -n $(($LINES-3)) file.log | cut -c -$COLUMNS'

পারফরম্যান্সের জন্য সম্ভবত সেরা নয় তবে কাজ করে ... অন্যথায় যদি অতিরিক্ত পাইপিং না লাগে তবে আপনি অন্যরকম কিছু ব্যবহার করতে পারেন:

less -S +F file.log

2

প্রশ্ন থেকে বিপথগামী অনেক মন্তব্য আছে। ওপির প্রশ্ন ছিল

তবে এখন আমার ব্যবহার করা দরকার tail -f, এবং এটি আউটপুটকেও আবৃত করে। সমস্ত কমান্ডের জন্য ব্যাশ শেলের লাইনের মোড়কে অক্ষম করা কি সম্ভব?

অটোওর্যাপ বৈশিষ্ট্য সম্পর্কে কিছু মন্তব্য করা হয়েছিল, উল্লেখ করে যে সমস্ত টার্মিনালগুলির এটি নেই। সম্ভবত। তবে ( টার্মিনেটর বাদে , যার বিকাশকারীরা কোনও টার্মিনালের বিবরণ দেয় না ) প্রদত্ত সমস্ত উদাহরণ হ'ল এক্সটার্ম, আরএক্সভিটি এবং কিছু চেহারা-অনুরূপ বা বংশধর। এগুলি সব সম্পর্কিত।

+awবিকল্প xtermসাথে সঙ্গতিপূর্ণ autoWrapসম্পদ। ম্যানুয়ালটির সাথে পরামর্শ করে বলা হয়েছে

   autoWrap (class AutoWrap)
           Specifies  whether  or  not  auto-wraparound should be enabled.
           This is the same as the VT102 DECAWM.  The default is "true".

এবং এক্সটার্ম কন্ট্রোল সিকোয়েন্সে এটি বলে

CSI ? Pm h
          ...
          DEC Private Mode Set (DECSET).
            Ps = 7  -> Wraparound Mode (DECAWM).

যা অবশ্যই "আপনার পছন্দের টার্মিনালের উপর নির্ভর করে না", যেহেতু ভিটি 100-সামঞ্জস্য সহ কোনও টার্মিনাল বৈশিষ্ট্যটিকে সমর্থন করে। xterm এবং rxvt উদাহরণস্বরূপ এটি করে। অন্যরাও তাই করে।

বৈশিষ্ট্যটি ওপিতে কার্যকর হবে কিনা তা বিতর্কযোগ্য। লাইন-মোড়কে দমন করা সমস্যার একমাত্র দিক:

  • শেলটি টার্মিনালের প্রস্থটি জানে — তবে এটি COLUMNS"বড়" মান নির্ধারণ করে ওভাররাইড করা যেতে পারে ।
  • অবশ্যই এর অর্থ হ'ল অ্যাপ্লিকেশনগুলি ডান-মার্জিনে লেখার জন্য অনেক সময় ব্যয় করবে (এবং কিছু এটি ভুল হয়ে যাওয়ার পরেও একটি নতুন লাইন শুরু করবে)।
  • ওপি সম্ভবত ধরে নিয়েছে যে প্রশস্ত টার্মিনালটি ব্যবহারযোগ্য করে তুলতে অ্যাপ্লিকেশনটি বাম / ডানদিকে স্ক্রোল করবে। (টার্মিনেটর এটি করে - আংশিকভাবে - তবে এর অন্যান্য অসুবিধাগুলি এটি বাতিল করে দেয়, যারা কেবল cat'স্ক্রিনে লগ-ফাইলে প্রবেশের জন্য টার্মিনাল ব্যবহার করেন )।
  • ওপি আসলে যা খুঁজছে তা হ'ল সরঞ্জামগুলির একটি সেট যা লাইন-র‌্যাপটি অক্ষম করতে বলা যেতে পারে, বিশেষত লগ-ফাইলগুলি দেখার জন্য। যদি টার্মিনালটি সাধারণ ব্যবহারের জন্য যথেষ্ট পরিমাণে কাজ করে তবে এটি টার্মিনালের মধ্যে ব্যবহার করা সরঞ্জামগুলির পছন্দের সাথে অপ্রাসঙ্গিক।

পেজারগুলি রয়েছে যা যা প্রয়োজন তা করতে পারে, যেমন, মাল্টিটেল যা এর বৈশিষ্ট্যগুলিতে তালিকাভুক্ত করে

লাইন মোড়ক বন্ধ করা যেতে পারে, তার পরে কার্সার কীগুলির সাহায্যে বাম / ডানদিকে স্ক্রোল করা যায়

ক্রম-ভিত্তিক হওয়ায় এটি উদ্ধৃত টার্মিনালের যে কোনওটিতে কাজ করা উচিত।


1

ষষ্ঠ

ভিতরে vi টাইপ

:set nowrap

আমি সহ্য করি vi এর জন্য একটি প্লাগইন রয়েছে যা আপনাকে আচরণের মতো লেজ দেবে।


-1

আপনি যদি সত্যিই সম্পূর্ণ লাইনগুলি দেখতে চান তবে আপনি পাঠ্যটিকে এটম বা নোটপ্যাড ++ এর মতো কোনও পাঠ্য সম্পাদককে অনুলিপি করে আটকে দিতে পারেন এবং সেখানে লাইন মোড়কে অক্ষম করতে পারেন।

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