কমান্ড লাইনে ফিরতে CTRL + C ব্যবহার করা কি ভুল?


27

আমি যখন ব্যবহার করছি tail -fএবং আমি শেলের কাছে ফিরে যেতে চাই, আমি সর্বদা ব্যবহার করি CTRL+C। বা যখন আমি কোনও কমান্ড টাইপ করছি এবং এটিকে বাতিল এবং আবার শুরু করার মতো মনে করি তখন CTRL+Cখালি কমান্ড লাইন প্রম্পটে ফিরে আসার জন্য। এটি কি খারাপ অভ্যাস হিসাবে বিবেচিত? আমি মাঝে মাঝে অনুভব করি যে কোনও কিছু থেকে দূরে যাওয়ার আরও ভাল উপায় হতে পারে, তবে আসলেই কোনও ধারণা নেই।


6
আংশিকভাবে প্রবেশ করা শেল কমান্ডটি বাতিল করতে, আপনি কন্ট্রোল-ইউ বা মুছুন (আপনার টিটি সেটিংস এবং কী বাইন্ডিংগুলির উপর নির্ভর করে) ব্যবহার করতে পারেন, তবে কন্ট্রোল-সি ব্যবহারে কোনও ভুল নেই।
কিথ থম্পসন

@ কিথথম্পস সিটিআরএল + ইউ এর জন্য ধন্যবাদ, আমি সে সম্পর্কে অবগত ছিলাম না :-)
প্যাট্রিক

রেকর্ডের জন্য, কিউ আসলে প্রবেশ করা কমান্ডটি বাতিল করে না , এটি এটিকে পেস্ট বাফারে নিয়ে যায় (কিছু প্রোগ্রামের "কাট" কার্যকারিতার অনুরূপ)।
ক্রিস ডাউন

উত্তর:


36

Ctrl+ Cপ্রোগ্রামটিতে একটি সাইন ইন প্রেরণ করে। এটি প্রোগ্রামটিকে বলছে যে আপনি এর প্রক্রিয়াটিতে বাধা দিতে (এবং শেষ করতে) চান। বেশিরভাগ প্রোগ্রাম সঠিকভাবে এটি ধরেন এবং পরিষ্কারভাবে প্রস্থান করুন। সুতরাং, হ্যাঁ, বেশিরভাগ প্রোগ্রাম শেষ করার এটি একটি "সঠিক" উপায়।

প্রোগ্রামগুলিতে অন্যান্য সংকেত প্রেরণের জন্য অন্যান্য কীবোর্ড শর্টকাট রয়েছে তবে এটি সবচেয়ে সাধারণ।


9
ব্যবহারকারীদের থেকে ইনপুট পড়ছে এমন প্রোগ্রামগুলির জন্য Ctrl + D রয়েছে। Ctrl + D প্রোগ্রামটিতে STDIN বন্ধ করে দেয়। শেলকে নিখুঁতভাবে প্রস্থান করার জন্য এটি উপলব্ধ (টাইপিং প্রস্থান হিসাবে ঠিক একই)।
প্যাট্রিক

2
@ পেট্রিক সিটিআরএল + ডি প্রকৃতপক্ষে প্রবাহে ফাইল সূচকের শেষ প্রেরণ করে। যথাযথভাবে সাড়া দেওয়ার জন্য প্রোগ্রামটি আপ (সাধারণত ফাইল স্ট্রিমটি বন্ধ করে দেওয়া)।
ক্রিস এস

STDIN কী বন্ধ করে তা স্থির করে। আপনি পাইপ / স্ট্রিম বন্ধ না হয়ে ইওএফ পেতে পারবেন না।
প্যাট্রিক

9
প্যাট্রিক তিনটি গণনায় ভুল। প্রথম: পাইপগুলির জন্য কন্ট্রোল + ডি এর কোনও অর্থ নেই। দ্বিতীয়: ইওএফ বিশেষ চরিত্র কিছুই বন্ধ করে না। এটি বর্তমান সিস্টেম কল থেকে শূন্য বাইটের (লাইন বাফার খালি রয়েছে বলে ধরে নেওয়া) এক সময়ের রিটার্ন ঘটায় read()। পরবর্তী read()গুলি প্রভাবিত হয় না। তৃতীয়: এর কোনটিই সেই প্রোগ্রামগুলিতে প্রযোজ্য না যা লাইন শৃঙ্খলাটিকে নন-ক্যানোনিকাল মোডে রাখে, যেমন বিগত কয়েক দশকের বেশিরভাগ শেল প্রোগ্রাম এবং প্রকৃতপক্ষে জিএনইউয়ের মতো একটি লাইব্রেরি ব্যবহার করে এমন কোনও প্রোগ্রাম readline
JdeBP


11

টাইপ করার সময় একটি দীর্ঘ কমান্ড বাতিল করতে, আমি কখনও কখনও লাইনের শুরুতে লাফিয়ে যাই এবং এন্টার টিপানোর আগে একটি মন্তব্য চিহ্ন সন্নিবেশ করি:

Home#Enter

Pos1#Return

এটি দরকারী, যদি আমি একটি দীর্ঘ পথের সাথে একটি অনুলিপি কমান্ড টাইপ করি, উদাহরণস্বরূপ, এবং ইতিমধ্যে পর্যবেক্ষণ করি যে আমার প্রথমে ডিরেক্টরি তৈরি করতে হবে তবে পরে আদেশটি পুনরাবৃত্তি করতে চাই। তারপরে আমাকে কেবল ইতিহাস থেকে নেওয়া উচিত, হ্যাশটি মুছতে হবে এবং এটি প্রবেশ করতে হবে।

বাশে, আপনি শর্টকাট ব্যবহার করতে পারেন

Alt+ +#

আপনার আদেশটি মন্তব্য করার জন্য, মতামতগুলিতে উল্লেখ করা হয়েছে (ধন্যবাদ, জোরাওয়ার))


6
আপনি Ctrl-Aনিজের আঙ্গুলগুলি হোম সারি থেকে না নিয়েও ব্যবহার করতে পারেন ।
ডায়েটরিচ এপ্পে

1
এবং Ctrl-Eশেষ পর্যন্ত, যাই হোক না কেন।
ডেভ

@ ডেভ: ঠিক আছে, তবে আপনার কমান্ডটি নিশ্চিত করতে আপনাকে এন্টার চাপতে শেষের দিকে যেতে হবে না। কমান্ডলাইন কোনও সম্পাদক নয়, যেখানে এটি একটি নতুন লাইন mightোকাতে পারে।
ব্যবহারকারী অজানা

2
ব্যাশে আপনি কেবল চাপ দিয়ে একই জিনিসটি অর্জন করতে পারবেন Alt-#: এটি মন্তব্যটি লিখবে এবং কমান্ডটি চালাবে (সুতরাং এটি আপনার ইতিহাসে রাখবেন)।
জোড়োয়ার

8

সাধারণভাবে বলতে গেলে, Ctrl+ ব্যবহার Cকরা ঠিক থাকে যখন প্রোগ্রামটি আপনাকে শেষ করার কোনও ইন্টারেক্টিভ উপায় দেয় না (হয় নকশা দ্বারা, বা, প্রায়শই ঘন ঘন, কারণ এটি হিমায়িত হয়েছে বা অকেজো হয়ে পড়েছে)। কেবল মনে রাখবেন যে, ইন্টারেক্টিভ মোডে আসলে আপনি যে কী কম্বোটি চান তা হতে পারে Ctrl+ D, যা একটি EOFইনপুটটির শেষের ইঙ্গিত দেয় send


1

ব্যাশ ব্যবহার করা হলে, একটিও ব্যবহার করতে পারে Ctrl- Zএবং bg"বর্তমান কাজটিকে পটভূমিতে রাখার জন্য" টাইপ করতে পারে।


0

@ পেট্রিক যেমন গৃহীত উত্তরের মন্তব্যে বলেছিলেন,

এছাড়াও আছে Ctrl+Dপ্রোগ্রাম ব্যবহারকারীর কাছ থেকে ইনপুট পড়ছেন জন্য। Ctrl+Dপ্রোগ্রামে STDIN বন্ধ করে দেয়।

Ctrl+Cকমান্ড লাইনটি ব্যবহারের পরে ফিরে পাওয়ার জন্য যখন কাজ না করে তখন এটি আমাকে সাহায্য করেছিল>>

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