আপনি ^Cযখন শেলটিতে CTRL+ টিপেন তখন কীভাবে অপসারণের কোনও উপায় আছে Cযা রেড হ্যাট এন্টারপ্রাইজ লিনাক্স 6 ("সান্টিয়াগো") এর সাথে অন্তর্ভুক্ত? আমার নিজের সম্পাদনা করার অনুমতি আছে .bash_profile।
আপনি ^Cযখন শেলটিতে CTRL+ টিপেন তখন কীভাবে অপসারণের কোনও উপায় আছে Cযা রেড হ্যাট এন্টারপ্রাইজ লিনাক্স 6 ("সান্টিয়াগো") এর সাথে অন্তর্ভুক্ত? আমার নিজের সম্পাদনা করার অনুমতি আছে .bash_profile।
উত্তর:
আপনার ~/.inputrcফাইল সম্পাদনা করুন (বা তৈরি করুন) । একটি লাইন যুক্ত করুন
set echo-control-characters Off
এটি GNU রিডলাইন লাইব্রেরি (যা বাশ ব্যবহার করে) কে স্ক্রিনে কোনও নিয়ন্ত্রণ অক্ষর আউটপুট (প্রতিধ্বনি) না করার নির্দেশ দেয়। তারপরে সেটিংসটি সমস্ত নতুন বাশ সেশনে সক্রিয় থাকবে (এবং অন্য যে কোনও ইউটিলিটি যা রিডলাইন গ্রন্থাগার ব্যবহার করে)।
লক্ষ্য করুন যে যদি আপনার ইউনিক্স সিস্টেমটি রিডলাইন লাইব্রেরির জন্য (সাধারণত /etc/inputrc) সিস্টেম-বিস্তৃত কনফিগারেশন ফাইল নিয়ে আসে , তবে আপনার ব্যক্তিগত কনফিগারেশন ফাইলটিতে সেই ফাইলটি অন্তর্ভুক্ত করা দরকার:
$include /etc/inputrc
set echo-control-characters Off
আরেকটি বিকল্প হ'ল সিস্টেম-ব্যাপী কনফিগারেশন ফাইলটির ব্যক্তিগত অনুলিপি তৈরি করা এবং তারপরে এটি পরিবর্তন করুন।
sleep 180এবং CTRL + C টিপুন
~/.inputrcইতিমধ্যে উপস্থিত না থাকে তবে কেবল ফাইল তৈরি করা কিছু বিদ্যমান সেটিংস হারাতে পারে। আমার ক্ষেত্রে আমি প্রথম লক্ষ্য করেছি যে সিটিআরএল + বাম এবং সিআরটিএল + ডান কাজ করা বন্ধ করে দিয়েছে। ফিক্সটি ~/.inputrcএই লাইন দিয়ে আমার শুরু করার ছিল $include /etc/inputrc। cp /etc/inputrc .inputrcপছন্দসই হিসাবে ন্যায়বিচার এবং সম্পাদনা করাও সম্ভব ।
নিম্নলিখিত চেষ্টা করুন:
stty -echoctl
ব্যাখ্যার জন্য স্টাফেন চেজেলাসের এই দুর্দান্ত এবং বিস্তারিত পোস্টটি দেখুন যা কিছু অন্যান্য বৈশিষ্ট্যও ব্যাখ্যা করেstty ।
যদি আপনি এই পরিবর্তনটি স্থায়ী করতে চান (এবং আপনি bashআপনার প্রশ্নে অন্তর্নিহিত হিসাবে ব্যবহার করছেন ) তবে আপনার মন্তব্যগুলিতে জেএমএমজি.bashrc দ্বারা উল্লিখিত হিসাবে রাখা ভাল (তাই এটি সমস্ত ইন্টারেক্টিভ শেলের ক্ষেত্রে প্রযোজ্য)।
.bash_profileযে ফাইলটি কেবল লগইন শেল দ্বারা পার্স করা হলে এটি সমস্ত টার্মিনালগুলিতে কাজ করবে না । এটি .bashrcপরিবর্তে রাখা উচিত , সুতরাং এটি সমস্ত ইন্টারেক্টিভ আমন্ত্রণগুলি দ্বারা পঠিত।
^[[A
stty -echoহবে। অবশ্যই এটি অন্য সমস্ত কিছু প্রতিধ্বনি রোধ করতে চলেছে, যা সম্ভবত এই উত্তরটিকে কোনও উত্তর দেয় না যদি আপনি যা চান তা এসকে গোপন করে ^Cরাখত।
^Cসর্বদা শেষ পর্যন্ত থাকে তবে আমি আপনার সাথে একমত হতে পারি। তবে ^Cকার্সারটি যেখানে ছিল সেখানে উইলটি মুদ্রিত হবে যা কমান্ডের যে কোনও জায়গায় অক্ষরগুলির জুড়ি ওভাররাইট করতে পারে। এর অর্থ যদি আপনাকে সেই কমান্ডের কিছু অংশ অনুলিপি করতে হয় তবে আপনি ম্যাংলেড কিছু দিয়ে শেষ করতে পারেন। এবং ^Cটার্মিনালটি দেখার সময় এটি এত সহজে স্বীকৃত নয় যে কমান্ডের শেষে থাকলে এটি হত।
আপনি যদি এমন একটি কনফিগারেশন সন্ধান করার চেষ্টা করছেন যা সাধারণ প্রতিধ্বনি (সহ echoctl) এবং কেবল সংকেত উত্পন্ন চরিত্রগুলির প্রতিধ্বনিকে নিঃশব্দ করে দেবে, এবং আপনি নিশ্চিত যে এটি সম্ভব হবে কারণ আপনি আগে সেভাবে এটি কাজ করেছেন ...
আপনি সম্ভবত এটি সেভাবে দেখেছেন। কিন্তু এটি আর সম্ভব নয়, এই প্রতিশ্রুতিবদ্ধতার কারণে :
প্রতিশ্রুতিবদ্ধ ec5b1157f8e819c72fc93aa6d2d5117c08cdc961
এনটিটিটিওয়াইন লাইন শৃঙ্খলে প্রতিধ্বনিত INTR / QUIT / SUSP চালু করুন (উদাহরণস্বরূপ, যদি stty echoctl সেট করা থাকে এবং ctrl-C INTR হিসাবে সেট করা থাকে তবে ctrl-C "" ^ C "হিসাবে উপস্থিত হবে)।
লিনাক্সকে একমাত্র ইউনিক্স-এর মতো ওএস বলে মনে হচ্ছে (সম্প্রতি আমি এটি সোলারিস, বিএসডি, এবং ম্যাক ওএস এক্সে যাচাই করেছি) যা এইভাবে আচরণ করে না এবং আমি কোনও প্রোগ্রামের বিঘ্নের একটি ভাল ভিজ্যুয়াল নিশ্চিতকরণ হিসাবে এটিকে মিস করি really কনসোল বা এক্সটার্মে আমি এটি অনেক ইউনিক্সের কাছ থেকে স্মরণ করি যা আমি বছরের পর বছর ধরে ব্যবহার করেছি। এটি লিনাক্সে আনার পক্ষে এটি স্ট্যান্ডার্ড ইউনিক্সের মতো আচরণের সাথে আরও আরও উপযুক্ত করার মতো ভাল উপায় বলে মনে হয়।
আপনি যদি মনে রাখবেন যে লিনাক্স কীভাবে এটি প্রতিধ্বনি করে না^C , তবে পুরানো আচরণটি ফিরে পাওয়ার একমাত্র উপায় আপনার কার্নেলটি প্যাচ করা। সাম্প্রতিক সংস্করণগুলিতে, সিগন্যাল উত্পন্ন অক্ষরের প্রতিধ্বনন ড্রাইভার / টিটি / এন_ট্টি.সি এর 1215-1218 লাইনে রয়েছে ।
set echo-control-characters off