আমি কীভাবে খারাপ বাশ কমান্ডটি প্রস্থান করব বা বাতিল করব?


41

আমি এর জন্য কিছু ঝাঁকুনির আশা করব, তবে আমি কোথাও উত্তর খুঁজে পাচ্ছি না। দেখে মনে হচ্ছে এটি এতটা সুস্পষ্ট হওয়া উচিত। কখনও কখনও, যখন আমি ব্যাশ টার্মিনালে একটি খারাপ কমান্ড টাইপ করি, কার্সরটি কেবল কোনও ত্রুটি বা কিছু না করে পরের লাইনে নেমে যায়। আমি কী ভুল করেছি তা বলতে পারছি না। আমি প্রোগ্রামে আটকে যাচ্ছি এমনটাই। পুনরাবৃত্তি:

$ tidy

আমি: "ওফ! আমি টাইপ করার অর্থ এটাই ছিল না ..."

:q

আমি: "এটি কাজ করে না ..."

:exit
:quit
exit
quit
/exit
/quit
-exit
-quit
-wtf???

আমি জানি আমি স্ক্রু পেয়েছি তবে টার্মিনালটি বন্ধ না করে কীভাবে প্রম্পটে ফিরে যাব?



:qআসলে আমার পক্ষে কাজ করেছে; এটা কি ভিম কমান্ড না?
লাল মটর

উত্তর:


53

আপনি সর্বদা স্পষ্ট জিনিস যেমন ^C, ^D(ইওফ), এস্কেপ ইত্যাদির চেষ্টা করতে পারেন তবে সব কিছু যদি ব্যর্থ হয় তবে আমি সাধারণত ^Zকন্ট্রোলটি (কন্ট্রোল-জেড) স্থগিত করে শেষ করি যা আমাকে শেলের মধ্যে ফিরিয়ে দেয়।

আমি তখন একটি psকমান্ড করব এবং কমান্ডের পিআইডি (প্রসেস আইডি) নোট করব এবং তারপরে অ্যাপ্লিকেশনটি বন্ধ করার জন্য একটি kill thePID( kill -9 thePIDযদি প্রাক্তন কাজ না করে) কমান্ড জারি করে।

নোট করুন যে অ্যাপ্লিকেশন / কমান্ডটি সমাপ্ত করার জন্য এটি কোনও পরিপাটি (কোনও শঙ্কিত উদ্দেশ্য নয়) উপায় নয় এবং আপনি সম্ভবত কিছু ডেটা সংরক্ষণ না করার ঝুঁকি চালান etc.

একটি উদাহরণ (আমি ব্যবহার করেছি tidyতবে আমার এটি ইনস্টল করা নেই):

$ gnuplot

    G N U P L O T
    Version 4.2 patchlevel 6 
     ....
    Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>

Terminal type set to 'wxt'
gnuplot> 
gnuplot>               #####  typed ^Z here
[1]+  Stopped                 gnuplot
$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 gnuplot
 1709 pts/1    00:00:00 ps


$ kill 1708            ###### didn't kill the command as ps shows

$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 gnuplot
 1710 pts/1    00:00:00 ps
$ kill -9 1708           ### -9 did the trick
$ 
[1]+  Killed                  gnuplot

$ ps
  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1711 pts/1    00:00:00 ps

8
এটাই!! ^ উদ্ধার করতে জেড। তোমাকে অনেক ধন্যবাদ.
ডেভিড কেনেডি

3
^ c (সিটিআরএল-ব্যাকস্ল্যাশ, সিকুইকিইটি) কিছু জেদী ইউটিলিটিতে কাজ করে যা ^ C তে সাড়া দেয় না।
এমআরবি

2
জানিনা! লোককে ^ about সম্পর্কে বলবেন না বা তারা SIG_IGNএটিও শুরু করতে শুরু করবে, তাহলে আমরা কী করব?
অ্যালান কারি

1
@godlygeek আপনি কি আমাকে বলতে পারবেন যে লিনাক্সের %% এর অর্থ বা এটি কী ধরণের? আমি অনেক খোঁজাখুঁজি করেছি।
নওমেনন

1
@Noumenon, কটাক্ষপাত আছে LESS='+/^JOB CONTROL' man bash%%"বর্তমান কাজ" বোঝায়।
ওয়াইল্ডকার্ড

12

Ctrl- Dবা Ctrl- টিপতে চেষ্টা করুন C। যদি এটি ব্যর্থ হয়, প্রক্রিয়াটি হত্যা করুন।

tidyআপনার উল্লিখিত আদেশটি দিয়ে চেষ্টা করা Ctrl- Dকাজ করে।


CTRL+Cউইন্ডোজ সিএমডি জন্য খুব ভাল।
টুডো

7

আর একটি সমাধান (ইতিমধ্যে উল্লিখিত নয়) হ'ল + SIGQUITব্যবহার করে সিগন্যাল প্রেরণ করাctrl\

এটি একটি + এর চেয়ে শক্তিশালীctrlc


2

CTRL+ +D == exit shell command

এবং

CTRL+ C == terminate the current process, Of course may be the given software handle it and CTRL+D doens't work

অবশ্যই, তারা একটি উত্পাদন করে kernel signalযদি আপনি আরও জানতে চান, পড়ুন:

man 7 signal

3
সিটিআরএল + ডি ফাইলের সমাপ্তি, সরাসরি প্রস্থান নয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.