`ওয়াচ` এর কোনও পেজিং সংস্করণ আছে?


24

ইউনিক্স শেলের অধীনে, watchকমান্ডের সাথে কীভাবে আমি একইরকম প্রভাব পেতে পারি , তবে পেজিংয়ের সাথে যাতে আমি যদি একাধিক স্ক্রিন গ্রহণ করি তবে আমি আউটপুটটিতে প্রায় স্ক্রোল করতে পারি?

অন্য কথায়, আমি এমন একটি প্রোগ্রাম চাই watchযা lessযা করা উচিত cat

উদাহরণ হিসাবে, ধরা যাক qstatআমি ব্যবহার করতে পারি এর আউটপুট দেখতে চেয়েছিলাম

watch qstat

Qstat এর আউটপুট দেখতে, কিন্তু এটি কেবল প্রথম স্ক্রিনফুল প্রদর্শন করতে পারে।

একটি পেজিং সংস্করণের সাথে watch, আমি আউটপুটে প্রায় সরাতে হিসাবে এটি এখনও ক্রমাগত দ্বারা আপডেট করা হয় সক্ষম হবে watch। বিদ্যমান ইউটিলিটিগুলি সহ এই মুহূর্তে এটি করার কোনও উপায় আছে কি?


এটি সম্ভবত সুপার ইউজার বা সার্ভারফল্টের অন্তর্গত।

আপনি সম্ভবত ঠিক আছেন, আমি কীভাবে এটি সরিয়ে নিতে পারি?
ডেভিড ডিন

তিন জন এ পর্যন্ত এটিকে সরানোর পক্ষে ভোট দিয়েছেন; যদি আরও দু'জন লোক (বা একজন মডারেটর) এটিকে সরানোর জন্য ভোট দেয় তবে তা স্বয়ংক্রিয়ভাবে ঘটবে।
গ্রেগ হিউগিল

কেন কেবল একটি বড় উইন্ডো খুলুন এবং পুরোপুরি পেজিং দিয়ে চলে যাবেন না?
মার্সিন

1
আমার পর্দা ইতিমধ্যে পূর্ণ কারণ? lessআপনি কেবল যখন ব্যবহার করতে পারেন catএবং একটি বড় উইন্ডো কেন ব্যবহার করবেন ?
ডেভিড ডিন

উত্তর:


18

'ওয়াচ' কমান্ডটি পরিবর্তনের পরিবর্তে স্ক্রিন ব্যবহার করুন!

উদাহরণস্বরূপ, আসুন আমরা বলি যে আপনার উচ্চতা 300 লাইন এবং প্রস্থের 100 টি অক্ষর এবং তার চারপাশে সরানো দরকার। স্ক্রিন শুরু করার পরে, আকারটি এভাবে জোর করুন:

C-a :height -w 300
C-a :width -w 100

এখন আপনার ওয়াচ কমান্ড শুরু করুন। তারপরে C-a <ESC>আপনি পৃষ্ঠার চারপাশে প্রদর্শন করতে পারেন ।

দুর্ভাগ্যক্রমে, অনুলিপি মোডে থাকাকালীন ডিসপ্লেটি রিফ্রেশ হয় না। আপনি যদি উইন্ডোর যে বিভাগটি দেখছেন তার কোনও বিভাগটি সামঞ্জস্য করতে চান, তবে সবচেয়ে সহজ উপায় হ'ল উচ্চতা / প্রস্থ কমান্ডগুলি পুনরায় চালু করা যেতে পারে ডিফল্ট হিসাবে আপনার টার্মিনালটি ভার্চুয়াল উইন্ডোর নীচের ডানদিকে দেখায়।


একমাত্র বিষয় হ'ল কীভাবে ক্রমাগত কমান্ডটি পুনরাবৃত্তি করা যায়, যখন প্রতিটি গোষ্ঠীর মধ্যে পর্দা ফাঁকা রাখুন
ডেভিড ডিন

ওফস, আমি পর্দার ভিতরে ওয়াচ কমান্ডটি বোঝাতে চাইছি। সংশোধন করা হয়েছে।
মাইকিবি

ইয়ার্টলস - স্ক্রিনটি ভালবাসার আরও একটি কারণ :)
ওয়ারেন

দয়া করে মনে রাখবেন C-ওরফে হয়ctrl-
হেনরি

5

আপনি এটি চেষ্টা করতে পারেন:

যখন ভিএমস্ট্যাট; ঘুমাও 1; সম্পন্ন | কম

vmstat কে কিস্ত্যাট দিয়ে প্রতিস্থাপন করুন এবং আপনার প্রয়োজনের সাথে ঘুম সামঞ্জস্য করুন


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

হ্যাঁ, তবে আপনি আবার স্ক্রোল করতে পারেন। আপনার দু'জন একসাথে থাকতে পারে না শিফট এফ টিপুন, এটি মূলধন 'এফ' লেজের মতো কাজ করবে।
স্পেসেন জ্যাসেট


2

ঠিক আছে, আমি একটি watchlessঅনুষ্ঠানে কিছুটা যেতে পেরেছি । এটি কিছুটা রুক্ষ, এবং এটি এখনও সম্পূর্ণরূপে কাজ করে না বলে মনে হয়, তবে এখানে যায়:

#!/bin/bash -u
out=$(mktemp)
(while [ 1 ]; do
    "$@" > $out;
    sleep 2;
done) &
less $out
kill $!

Rডিসপ্লেটি আপডেট করার জন্য আপনাকে নিজের হাতে স্বল্প কী ব্যবহার করতে হবে।

এটি কাজ করে watchless dateতবে এটির জন্য নয় watchless qstatবা watchless pstreeউভয়ই ফাঁকা দেখায়। কোন ধারনা?


কমান্ডের পরবর্তী রানের আউটপুট লেখার জন্য আপনার দ্বিতীয় ফাইলটি ব্যবহার করা উচিত এবং তারপরে mvএটি দ্বিতীয় ফাইলটি যেমন পারমাণবিক lessহিসাবে পড়া ফাইলটিতে লেখা হয় mv। নাহলে lessভাবতে পারে যে ফাইলটি একই সাথে রিফ্রেশ করার অনুরোধ করা থাকলে ফাইলটি লেখা হচ্ছে "$@" > $out। লুপটি শুরু করার আগে আপনার একবার আউটপুট ফাইলেও লিখতে হবে।
অরুলিয়ান ওমস

0

আমি দেখতে পাচ্ছি না কীভাবে এটি সারি সামগ্রীর পরিবর্তনের হিসাবে প্রয়োগ করা যেতে পারে এবং watchআপনি যদি নীচে স্ক্রোল করতে পারেন তবে প্রতি 2 সেকেন্ডে প্রথম লাইনে পুনরায় সেট হবে।

কিছু কর্মক্ষেত্র হ'ল:

watch 'qstat | tail -n40' নীচে থেকে 40 তম লাইন থেকে শুরু qstat এর আউটপুট প্রদর্শন করতে

watch 'qstat | grep jsmith' আউটপুট গ্রেপ করতে যাতে আপনার আগ্রহী রেখাগুলি সর্বদা প্রথম স্ক্রিনে থাকে।

নোট করুন যে আপনাকে পাইপগুলির চারপাশে একক উদ্ধৃতিতে কমান্ডগুলি লাগাতে হবে - অন্যথায় আপনি আউটপুট watchনয়, আউটপুটটি পাইপিং করবেন qstat


0

এনকারদের উত্তর অবিরত রাখতে,

ঘড়ি 'qstat | মাথা -300 | লেজ -15 '

আপনাকে কুইস্ট্যাট আউটপুটটিতে স্বেচ্ছাসেবী পৃষ্ঠাগুলি পাবেন।


0

এখানে একটি বরং অপরিশোধিত স্ক্রিপ্ট যা বেশ কয়েকটি কমান্ডের জন্য কাজ করেছে যা আমি এটি ফেলে দিয়েছি

#!/bin/bash
# ---- mywatch.sh ----

if [ $# -lt 1 && $# -gt 2 ]; then
    echo "Usage: $0 <command> <delay>" 
    exit 1
fi

CMD=$1
if [ $# -eq 2 ]; then
  DELAY=$2
else
  DELAY=2 # default
fi

while : ; do
  ( (echo -e "Every ${DELAY}s: $CMD\n"; $CMD) | less )&
  PID=$!
  sleep $DELAY
  kill -9 $PID &> /dev/null
  clear
done

যেমন ব্যবহার করা হয়:

alias mywatch="~/bin/mywatch.sh"

mywatch vmstat
mywatch "ps aux" # commands in options need to be quoted
mywaych pstree 10 # change delays

বরং পেডেন্টিক হওয়ায়, রিফ্রেশগুলির মধ্যে রূপান্তরটি যেমনটি হতে চাই তেমন মসৃণ নয়। স্বাভাবিকভাবেই, একটি সরল স্ক্রিপ্ট হওয়ায় এটি বিভিন্ন (হাই-ডি) এর হাইলাইট সমর্থন করে না। এছাড়াও, ইনপুট আর্গুমেন্টগুলির বিশ্লেষণ আরও ভালভাবে করা যায়।



0

"ওয়াচচল" নামে এই অনুরোধটি পূরণ করতে আমি একটি সাধারণ অজগর স্ক্রিপ্ট প্রয়োগ করি

এটি দিয়ে পান: পাইপ ইনস্টল ওয়াচচল

ঘড়ির সাথে ওয়াচ প্রতিস্থাপন করুন এবং স্ক্রোলযোগ্য স্ক্রিন উপভোগ করুন। এখন এটি কেবল -n এবং -d পতাকা সমর্থন করে।


-1

আপনি চেষ্টা করতে পারেন:

watch command > file

তারপরে আপনার ফাইলে আপনাকে অ্যাপেন্ডেন্ড আউটপুটটি দেখতে হবে (এটি পরীক্ষা করার জন্য আমার কাছে এখন কোনও লিনাক্স বাক্স শক্ত নেই)


1
এটি আপনি যা করতে চান তা করতে যাচ্ছে না, সত্যই, এটি কেবল fileএকই বারে বার বার পূরণ করবে । এটি অবশ্যই মূল প্রশ্নের সমাধান করে না।
গ্রেগ হিউগিল

তারপরে আমি

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