আমি যখন কিছু থামানোর চেষ্টা করি তখন আমি ^C
এবং কখনও কখনও ^D
টার্মিনালে ব্যবহার করি ।
দুজনের মধ্যে পার্থক্য কী? কিছু প্রোগ্রাম কেন সাড়া দেয় না ^C
, তবে ^D
। টার্মিনাল.এপ যখন আমি ব্যবহার করি তখন কেন সরে যায় ^D
?
আমি যখন কিছু থামানোর চেষ্টা করি তখন আমি ^C
এবং কখনও কখনও ^D
টার্মিনালে ব্যবহার করি ।
দুজনের মধ্যে পার্থক্য কী? কিছু প্রোগ্রাম কেন সাড়া দেয় না ^C
, তবে ^D
। টার্মিনাল.এপ যখন আমি ব্যবহার করি তখন কেন সরে যায় ^D
?
উত্তর:
CtrlCটার্মিনালটিকে SIGINT
বর্তমানের অগ্রভাগের প্রক্রিয়াতে একটি পাঠাতে বলে , যা ডিফল্টরূপে অ্যাপ্লিকেশনটি সমাপ্তিতে অনুবাদ করে। CtrlDটার্মিনালটিকে বলে যে এটি স্ট্যান্ডার্ড ইনপুটটিতে একটি EOF নিবন্ধিত করা উচিত, যা ব্যাশটি প্রস্থান করার ইচ্ছা হিসাবে ব্যাখ্যা করে।
Ctrl+ D( ^D
) অর্থ ফাইলের সমাপ্তি । এটি কেবলমাত্র একটি লাইনের শুরুতে কাজ করে (আমি কিছুটা সরলীকরণ করছি), এবং প্রোগ্রামটি টার্মিনাল থেকে ইনপুট না পড়লে কোনও প্রভাব ফেলবে না। আপনার পরীক্ষায়, ^D
শেলকে বলেছিলেন যে আপনি আর কোনও কমান্ড টাইপ করতে যাচ্ছেন না, তাই এটি উপস্থিত হয়েছে; তারপরে টার্মিনালটি প্রস্থান করা হয়েছে কারণ এর উপ-প্রকল্পটি বন্ধ হয়ে গেছে।
Ctrl+ C( ^C
) এর অর্থ "বাধা", অর্থাত্ আপনি যা করছেন তা বন্ধ করুন। প্রযুক্তিগতভাবে টিপলে আইএনটি সিগন্যাল^C
প্রেরণ করা হয় , এটি ডিফল্টরূপে একটি অ্যাপ্লিকেশন বন্ধ করে দেয় তবে অনেক প্রোগ্রামের অর্থ শীর্ষ স্তরে ফিরে যান (যেমন শেলের মধ্যে একটি কমান্ড লাইন টাইপ করা বন্ধ করুন এবং প্রিন্টিন প্রম্পটে ফিরে যান)।
যদি কোনও প্রোগ্রাম সাড়া না দেয় তবে আপনি + ( ) ^C
চেষ্টা করতে পারেন । এটি কুইট সিগন্যাল প্রেরণ করে , যা ডিফল্টরূপে একটি অ্যাপ্লিকেশনকে সমাপ্ত করে, এবং যা এতগুলি প্রোগ্রাম বাধা দেয় না।Ctrl\^\
আরও একটি কী যা সিগন্যাল প্রেরণ করে তা হ'ল Ctrl+ Z( ^Z
)। এটি টিএসটিপি সিগন্যাল প্রেরণ করে , যা প্রোগ্রামের অগ্রভাগে চলতে বিরতি দেয়। (TSTP "টার্মিনাল স্টপ" এর জন্য ছোট এটা অনুরূপ STOP কিন্তু যেহেতু বন্ধ করতে পারবেন না TSTP উপেক্ষা করা যাবে।) শেল থেকে, আপনি যে প্রোগ্রামের এক্সিকিউশন পুনরায় শুরু করতে পারেন fg
কমান্ড (পুরোভূমিতে সারসংকলন) অথবা bg
কমান্ড (মধ্যে সারসংকলন পটভূমি)।
stty
কমান্ডের সাহায্যে এই কীগুলির সমস্ত পরিবর্তন করা যেতে পারে । কিছু প্রোগ্রাম, বিশেষত পূর্ণ-স্ক্রিন প্রোগ্রামগুলির কী বাইন্ডিং থাকে, সেগুলি অক্ষম করে।
KeyboardInterrupt
? এটি সিআরটিএল + ডি (যদি কোনও লাইনের শুরুতে হয়) এবং সিআরটিএল + with দিয়ে প্রস্থান করে \
উপরে 2 টি সত্যিই ভাল উত্তর যুক্ত করা, এখানে একটি উদাহরণ:
আপনি যদি python
শেলটি টাইপ করেন তবে এটি আপনাকে অজগর >>> প্রম্পটে নিয়ে যাবে।
এখন, আপনি যদি আঘাত করেন তবে Ctrl+C
এটি বলবে KeyboardInterrupt
এবং >>> এ থাকবে।
আপনি যদি লুপের জন্য প্রবেশ করেন, উদাহরণস্বরূপ for x in (text):
এটি টাইপ করে আপনি ... প্রম্পট দেখিয়ে আরও টাইপ করার জন্য অপেক্ষা করেন, আপনি যদি Ctrl+C
এখন আঘাত করেন তবে এটি স্টেটমেন্ট থেকে বেরিয়ে এসে >>> প্রম্পটে ফিরে আসবে
যদি আপনি আঘাত করেন Ctrl+D
যে কোনও মুহুর্তে, >>> বা ... তা অজগর প্রম্পট থেকে বেরিয়ে আসল শেলটিতে ফিরে আসবে।
একইভাবে, যদি অন্য মেশিনে প্রবেশ করা হয় তবে একটি Ctrl+C
বিদ্যমান কমান্ডগুলি সমাপ্ত Ctrl+D
করবে , তা করবে এবং মেশিন থেকে প্রস্থান করবে। (এছাড়াও, Delete
কীটি একইভাবে করা Ctrl+D
)