কীভাবে পলাতক বিড়ালকে মেরে ফেলা যায়?


128

অনেক সময় আমি দুর্ঘটনাক্রমে catকয়েক হাজার লাইনের কন্টেন্ট থাকা ফাইলগুলিতে কমান্ডটি চালাই ।

আমি catকমান্ডটি Ctrl+ Cবা Ctrl+ দিয়ে মেরে ফেলার চেষ্টা করি Z, তবে catটার্মিনালে মোট আউটপুট প্রদর্শিত হওয়ার পরে উভয়ই কার্যকর হয়, সুতরাং catসম্পূর্ণরূপে সম্পাদিত হওয়া পর্যন্ত আমাকে অপেক্ষা করতে হবে ।

এর থেকে আরও ভাল সমাধান কি অপেক্ষা করা এড়ানো যায়? কারণ কখনও কখনও ফাইলগুলি 100 এমবি আকারের হয় এবং এটির জন্য অপেক্ষা করতে বিরক্ত হয়।

আমি ব্যবহার করছি tcsh


14
কম, লেজ, মাথার মতো কম্যান্ড ব্যবহার করা বিড়ালের আকর্ষণীয় বিকল্প হতে পারে। (অবশ্যই এটি কোনও উত্তর নয় ...)
টনিওক

25
এটি আমি পড়েছি সবচেয়ে বড় প্রশ্ন শিরোনাম ছিল। যতক্ষণ না আমি দেখতে পেলাম যে প্রশ্নের লিঙ্কটি উলের জন্য, আমি ভেবেছিলাম আপনার পলাতক কৃপণ হত্যার জন্য সাহায্যের দরকার আছে।
লেনজ

5
অন্য কোনও এসই সাইট থেকে সাইডবার প্রশ্নে ডাবল-নেওয়া কি প্রশ্নটির পাশের "উল" লোগোটি দেখে খুব স্বস্তি পেয়েছে । কিছু মনে নেই, চালিয়ে যাও। (সাধারণত, এটি আর্কেডে প্রাসঙ্গিক প্রশ্নের শিরোনামগুলির মতো দেখায়)
লিন্ডা জিনে

12
আমি curiosityকমান্ডটি চেষ্টা করব ...
শেখেম্টি

4
alias curiosity='sudo killall cat'
কাস

উত্তর:


76

যদি প্রশ্নে থাকা ফাইলগুলিতে সংকেত প্রেরণকারী প্রচুর ডেটা থাকে catতবে এটি শেষ হওয়ার আগে আসলে পাওয়া যেতে পারে । আপনি সত্যই যা পর্যবেক্ষণ করছেন তা হ'ল আপনার টার্মিনালের সীমাবদ্ধ গতি - টার্মিনালে catডেটা প্রেরণ করে এবং টার্মিনালটির সমস্ত প্রদর্শন করতে কিছু সময় লাগে।

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

সুতরাং, আপনি যদি যত তাড়াতাড়ি আউটপুট থেকে মুক্তি পেতে চান তবে টার্মিনাল উইন্ডোটি আড়াল করুন , কারণ সাধারণত কোনও প্রকৃত পুনরায় আঁকানো হয় না। গ্রাফিক্যাল পরিবেশে এর অর্থ উইন্ডো হ্রাস করা বা অন্য কোনও ভার্চুয়াল ডেস্কটপে স্যুইচ করা, লিনাক্স ভার্চুয়াল কনসোলে কেবল অন্য একটি (( Ctrl+) Alt+ ) এ স্যুইচ করা যেতে পারে ।Fx

এছাড়াও খেয়াল করুন যে আপনি যদি ধীর নেটওয়ার্ক লিঙ্কে (উদাহরণস্বরূপ একটি জিএসএম সংযোগের উপর এসএসএইচ) চালিয়ে যান তবে আপনি অবশ্যই catসংকেতটি মেরে ফেলার আগে খুব কম আউটপুট দেখতে পাবেন , কারণ টার্মিনালের গতি আর কোনও বাধা হয়ে দাঁড়াবে না ।


6
যদি আপনি ধীর এসএসএইচ পাইপটি নেমে আসতে ডেটার জন্য অপেক্ষা করে থাকেন তবে সংযোগটি বন্ধ করতে আপনি ওপেনএসএইচ এস্কেপ ক্রমটি ব্যবহার করতে পারেন। একটি নতুন লাইনে, ~?উপলব্ধ বিকল্পগুলি ( টাইপ ~.) দেখতে টাইপ করুন ।
আরজেহান্টার

11
আপনি সিটিআরএল + এস যা প্রেরণ করে তা দিয়ে আউটপুট বন্ধ করার চেষ্টা করুন tty-stop-output। তারপরে আপনি Ctrl + C প্রেরণ করতে পারেন। আউটপুট পুনরায় শুরু করতে, Ctrl + Q টিপুন ...
মার্টিন টর্নিওয়েজ

1
@ কার্পেটসমোকার পরীক্ষা করেছেন যে উবুন্টু ১৪.০৪ + টার্মিনেটর + জেডএস-এ আমার জন্য পাঠ্য প্রবাহকে থামিয়ে দেয় না।
মুড়ু

@ মুরু ধন্যবাদ আমি এটি পরীক্ষা করার চেষ্টা করেছি, তবে সমস্যাটি পুনরুত্পাদন করতে সক্ষম ছিলাম না (আমার সিস্টেমটি খুব দ্রুত, এটি সম্ভবত মনে হবে, বা সম্ভবত আমি যথেষ্ট চেষ্টা করিনি)।
মার্টিন টর্নোইজ

4
@ কারপেটসমোকারকে আমি ভয় করি যে সফ্টওয়্যার প্রবাহ নিয়ন্ত্রণ (যা সিটিআরএল + এস) এ ক্ষেত্রে (দ্রুত টার্মিনাল লিঙ্কের) তেমন সহায়তা করবে না - ডেটা ইতিমধ্যে টার্মিনাল বাফারে রয়েছে এবং এটি টার্মিনালটি প্রক্রিয়া করার জন্য অপেক্ষা করছে। সুতরাং Ctrl + S অ্যাপ্লিকেশনটিকে আরও ডেটা প্রেরণ বন্ধ করতে বলবে , তবে ইতিমধ্যে যা প্রেরণ করা হয়েছে তা এখনও প্রদর্শন করতে হবে।
পিটার্ফ

4

টার্মিনাল সেটআপ

আমি মনে করি যে কোনও বাফারিং ইস্যু না করে টার্মিনালটি যেভাবে সেট আপ করা হয়েছে তার সাথে আরও কাজ করা। এর আউটপুট চেক করুন stty -a | grep intr, / - এ সক্রিয় করা থাকলে intr = ^C;আপনার আউটপুট লাইনে থাকা উচিত । যদি তা না হয় তবে আপনি এটি সক্ষম করতে ব্যবহার করতে পারেন । আপনার বা এটিকে স্থায়ী করতে লাইন যুক্ত করুন (বা প্রথম স্থানটিতে পরিবর্তন হওয়া লাইনটি মুছুন!)।CtrlCttyptystty intr ^C.tcshrc.login

ব্যর্থ Ctrl- C, আপনি এর SIGQUITসাথে প্রেরণ চেষ্টা করতে পারেন Ctrl- \। যদি এটি কাজ না করে, আবার stty -a | grep quitএটি সঠিকভাবে সেট আপ হয়েছে কিনা তা পরীক্ষা করে দেখুন।

টার্মিনাল এমুলেটর সেটআপ

আপনার টার্মিনাল এমুলেটরের জন্য সেটিংসও পরীক্ষা করুন (আপনি যদি এটি ব্যবহার করেন) তবে এটি হতে পারে যে এই স্তরে একটি শর্টকাট সেট আপ করা হতে পারে (সম্ভবত অনুলিপি বা কোনও কিছুর জন্য) এবং Ctrl- স্তরে Cপৌঁছায় না pty। আপনার ডেস্কটপ পরিবেশ বা উইন্ডো সিস্টেমে অন্য কোথাও একটি শর্টকাট সেট আপ করা যেতে পারে।

আপনি যদি টার্মিনাল এমুলেটর ব্যবহার করে থাকেন তবে লিনাক্সে একটি ভাল পরীক্ষা হ'ল লিনাক্স কনসোল ( Ctrl- Alt- F1) এ স্যুইচ করা , সেখানে লগইন করুন এবং দেখুন একই আচরণ ঘটে কিনা। যদি তা না হয় তবে সমস্যাটি আপনার উইন্ডো সিস্টেম বা টার্মিনাল এমুলেটরটির মধ্যে রয়েছে sugges

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

অতিরিক্ত টিপ

যোগ করার মতো আরও কিছু; আমি সাধারণত পলাতক catপরিস্থিতিতে শেষ করি যখন আমি ঘটনাক্রমে catএকটি বাইনারি ফাইল করি। এর অন্য প্রভাবটি হ'ল আপনার টার্মিনাল সেটিংসটিকে স্ক্রু করা (যদি বাইনারি ডেটা বিভিন্ন টার্মিনাল এস্কেপ কোডগুলির সাথে মেলে যা এটি প্রায়শই ঘটে)। যদি tputইনস্টল থাকে (সাধারণত ডিফল্টরূপে থাকে), আপনি নিম্নলিখিত কমান্ডটি দিয়ে পুনরায় আরম্ভ করা এড়াতে পারবেন:

tput reset

3

এটি কি tmuxবিকল্প c0-change-intervalএবং c0-change-triggerজন্য ডিজাইন করা হয়। যাইহোক, পুনরায় শুরুযোগ্য সেশনের জন্য আপনার কোনও স্ক্রিন ম্যানেজার ব্যবহার করা উচিত।


1

Ctrl- Oবিকল্প ইউনিক্স 110 বড দিন থেকে হয়েছে। যখন একটি দীর্ঘ এএসসিআইআই ফাইলটি ধীর আউটপুট ডিভাইসে ফেলে দেওয়া হয় এবং পুরো ফাইলটি ডিভাইস ড্রাইভার আউটপুট বাফারে রাখা হয় তখন পালানো বিড়াল কমান্ডগুলি সর্বদা সমস্যা ছিল। Ctrl- Oবাফারের ফ্লাশ শুরু হবে এবং অনুসরণ করবে Ctrl- Oফ্লাশটি টগল করবে যাতে বিড়ালটিকে স্বাভাবিক গতিতে পড়তে পারে। Ctrl- Oপ্রবেশ করানো হয়েছিল এবং পুরো ফাইলটি ফ্লাশ হয়ে দ্রুত কমান্ড প্রম্পট ফিরিয়ে দেবে।

লিনাক্স ডিভাইস ড্রাইভার কোডাররা এই বৈশিষ্ট্যটি যুক্ত করা চালিয়ে যাওয়ার প্রয়োজনীয়তা অনুভব করেছেন কিনা তা অজানা। এই বৈশিষ্ট্যটি ডিভাইস ড্রাইভার পর্যায়ে যুক্ত করা হয়েছিল যেখানে Ctrl- Sএবং Ctrl- Qকেবল প্রয়োগ করা যেতে পারে। আমি প্রচুর চেক প্রিন্টের সাহায্যে বড় ডিবাগিং রান ছুঁড়ে ফেলার জন্য এটি ব্যবহার করেছিলাম এবং তারপরে আমার দেখার জায়গাটি স্ক্রোল করে নিলাম।


Ctrl-O আধুনিক লিনাক্সগুলিতে প্রয়োগ করা হবে বলে মনে হয় না, অন্তত RHEL বা উবুন্টু সার্ভারে নয়।
dotancohen

-1

বাশ ব্যবহার করার সময়, আপনি Ctrl+ ব্যবহার করে চাকরি স্থগিত করতে পারেন Zএবং তারপরে এটি পিআইডি ব্যবহার করে বা https://stackoverflow.com/questions/1624691/linux-kill-background-task (যেমন কিল -9 %%)


3
তবে আমি ব্যবহার করছি tcshএবং Ctrl + Z কাজ করছে না ... ইতিমধ্যে প্রশ্নের মধ্যে রয়েছে already
জিগারগন্ধি

হ্যাঁ, দুঃখিত, আপনার পোস্টে পড়েনি যে আপনি Ctrl + Z ব্যবহার করেছেন এবং আমি ভুলভাবে ধরে নিয়েছি যে Ctrl + Z অ্যাপ্লিকেশন দ্বারা পরিচালিত Ctrl + C এর বিপরীতে শেল দ্বারা পরিচালিত হয়েছে। সে কারণেই আমি ভেবেছিলাম যে Ctrl + Z তাত্ক্ষণিকভাবে কাজ করেছে যখন Ctrl + C দেয় না।
জান্নিস

-1

একটি নতুন কনসোল খুলুন, উদাহরণস্বরূপ কনসোল আইকনে ক্লিক করে বা Ctrl+ Alt+ টিপুন F2। সেখানে প্রবেশ করুন

killall -9 cat

আপনার যদি বাসি এনএফএস লক না থাকে বা "নিরবচ্ছিন্ন ঘুম" পরিস্থিতি না থাকে (কোনও সময়সীমা সেট না করে খারাপ সেক্টরে পড়ুন) এবং বিড়াল মারা যাবে।


10
সমস্যাটি নয় cat, এটি catমরার আগে টার্মিনালে কী লিখেছিল এবং টার্মিনাল এমুলেটর দ্বারা প্রক্রিয়া করা বা প্রদর্শিত হবে তা পড়তে দেওয়া হয়নি (এবং পিটিটি ড্রাইভারের ভিতরে একটি (লিনাক্সের প্রায় 64৪ কেবি বৃহত)) বাফারে বসে আছে) ।
স্টাফেন চেজেলাস

তারপরে দয়া করে প্রতিধ্বনি 3> / proc / sys / vm / ড্রপ_ক্যাচ চেষ্টা করুন যা প্রচুর পরিমাণে বাফারও বাদ দেবে।
থারস্টেন স্টার্ক

7
না, এটি কেবল ক্যাশেড ডেটা কখনও ছাড়বে না কারণ এর ফলে কার্যকারিতা প্রভাবিত হবে!
স্টাফেন চেজেলাস

4
@ থারসটেন স্টার্ক drop_cachesকার্নেলের দ্বারা ক্যাশে হিসাবে ব্যবহৃত পৃষ্ঠাগুলি নিয়ন্ত্রণ করে (সাধারণত কোনও ফাইল সিস্টেমের জন্য), টার্মিনালগুলির অভ্যন্তরীণ বাফারগুলি না, নেটওয়ার্ক ড্রাইভার এবং এগুলি - যদি এটি করা থাকে তবে স্টাফেন উল্লেখ করেছিলেন (মূলত আপনি ডেটা হারাবেন) এর মারাত্মক পরিণতি হবে would ।
পিটার্ফ

1
killall -9 catএছাড়াও কি অন্য কোনও বিড়ালের উদাহরণগুলি হত্যা করবে না যা এখনও অন্য প্রক্রিয়া থ্রেডে ভাল কাজ করতে পারে?
জো

-7

আপনি এটি দিয়ে চেষ্টা করতে পারেন

প্রদর্শন ব্যবহার পুনরায় সেট করুন -ctrlj

যদি বিড়ালটি এখনও চলমান থাকে তবে একটি নতুন টার্মিনাল খুলুন এবং এটি pkill -9 -f cat"এটি সমস্ত বিড়াল প্রক্রিয়াটিকে হত্যা করবে run " চালান ।


Ctrl + J কাজ করে না
জিগারগন্ধি

26
'-ফ বিড়াল' এর সাথে পিকিলটি বেশ বিপজ্জনক, যেহেতু -f পুরো কমান্ড লাইনে 'বিড়াল' প্যাটার্নটি সন্ধান করবে, যা সম্ভবত হওয়ার সম্ভাবনা রয়েছে এবং অনাকাঙ্ক্ষিত ফলাফলের কারণ হতে পারে ...
টনিওক

2
উদাহরণস্বরূপ, pkill -f catআমার ডেস্কটপে Xfce4 এর টাস্কবারের ট্রে ট্রে অঞ্চলটি মেরে ফেলবে।
চিহ্নিত করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.