আমি যখন কোনও এন্ট্রি পুনরায় ব্যবহার এবং সংশোধন করি তখন কীভাবে ইতিহাসের বাশ সম্পাদনা বন্ধ করবেন?


20

বাশের কিছু উদাহরণ কমান্ডের ইতিহাস পরিবর্তন করে যখন আপনি পূর্ববর্তী কমান্ডটি পুনরায় ব্যবহার এবং সম্পাদনা করেন, অন্যরা দৃশ্যত তা করে না don't আমি অনুসন্ধান ও অনুসন্ধান করে চলেছি তবে ইতিহাসের আদেশগুলি পুনরায় ব্যবহার করা এবং সম্পাদনা করা হলে সংশোধন করা থেকে কীভাবে রোধ করা যায় সে সম্পর্কে কোনও কিছুই পাই না।

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

সুতরাং এটি সম্ভবত সেরা প্রশ্ন: আমি কি ইতিহাসকে সংশোধন করার জন্য বাশকে কখনও বলতে পারি না - এবং যদি তাই হয় তবে কীভাবে?


আপনি history -pইতিহাসের ফাইলকে প্রভাবিত না করে ইতিহাস বিস্তৃতি করতে ব্যবহার করতে পারেন । আপনি history -sএকই কাজ করতে এবং মৃত্যুদন্ড কার্যকর না করে ইতিহাসের সাথে সংযোজন করতে পারেন। আপনি HISTIGNORE='start of a command I never want in history.*:command2.*'নির্দিষ্ট আদেশগুলি ইতিহাসের বাইরে রাখতে পারেন do
মাইকজার্ভ

1
set revert-all-at-newline onআপনি যে প্রশ্নটিতে লিঙ্ক করছেন তাতে কি আপনার সমস্যার সমাধান হবে না? আপনি কীভাবে সমস্যাটি পুনরুত্পাদন করতে পারেন? মনে রাখবেন যে আপনি zshযা চান তার সাথে আরও ইনলাইন কোনও আচরণের জন্যও ব্যবহার করতে পারেন।
স্টাফেন চেজেলাস

@ মিমিকার্ভস ম্যান পেজটির দিকে তাকানো, history -pআমি যে প্রতিটি আদেশ পুনরায় ব্যবহার করতে চাই তার জন্য আমাকে কিছু করতে হবে - এটি কি ঠিক? যদি তা হয় তবে, আমি যা খুঁজছি তা পুরোপুরি নয়। যেমনটি আমি উল্লেখ করেছি, আমি ব্যাশের উদাহরণগুলি ব্যবহার করেছি যা কোনও কমান্ড পুনরায় ব্যবহার এবং সম্পাদনা করার সময় ইতিহাসকে কখনই পরিবর্তন করে না।
রিচার্ড ওয়াইজম্যান

@ স্টাফেনচাজেলাস না, আমার মনে revert-all-at-newlineহয় না যা আমার প্রয়োজন is যদি আমি কোনও কমান্ড সম্পাদনা করি এবং এটি বাতিল করার জন্য সিটিআরএল-সি টিপুন তবে আমিও ইতিহাসটিকে প্রভাবিত করতে চাই না। ইতিহাসের সংশোধন না করার জন্য আমি আগে কখনও বাশকে কনফিগার করতে পারি নি , যা আমি মাঝে মাঝে কেন একটি নতুন ইনস্টলটি একভাবে এবং কখনও কখনও অন্যভাবে আচরণ করে তা নিয়ে বিভ্রান্ত হয়ে পড়েছি। উপায় দ্বারা, কমান্ড পুনরায় ব্যবহারের ইতিহাস সম্পাদনা করে না এমন একটি উদাহরণে, একটি bind -V | grep revertইঙ্গিতটি revert-all-at-newline'অফ' সেট করা আছে।
রিচার্ড উইজম্যান

2
আসলে এটির সাথে খুব কম সম্পর্ক রয়েছে bash। এগুলি সবই পঠনরেখার বিষয়। readlineলাইব্রেরির বিভিন্ন বাস্তবায়ন রয়েছে এবং এর নিজস্ব সেটিংসের সেট রয়েছে (সেগুলির মধ্যে অনেকগুলি) এবং এর নিজস্ব কনফিগারেশন ফাইল রয়েছে। আমি নিশ্চিত না হ'ল এটি কোনও সেটিং বা কেবল বাস্তবায়নের পার্থক্য কিনা তবে বাশ নয়, আপনার পঠন-সংক্রান্ত ডকুমেন্টেশনগুলি অনুসন্ধান করা উচিত।
অরিয়ান

উত্তর:


9

দেখা যাচ্ছে revert-all-at-newlineউত্তর। আমাকে set revert-all-at-newline onআমার ~/.inputrcফাইলে অন্তর্ভুক্ত করা দরকার , যেহেতু setব্যাশ প্রম্পটে কমান্ডটি ব্যবহারের কোনও প্রভাব ছিল না। (তারপরে অবশ্যই আমাকে একটি নতুন শেল শুরু করতে হবে))

এছাড়াও, আমি দেখতে পেলাম যে উপস্থিত থাকলে পরিবর্তে~/.inputrc লোড করা হয়েছে /etc/inputrc , যার অর্থ এই যে আপনি যখন তৈরি করবেন তখন পরবর্তী সময়ে সংজ্ঞায়িত কোনও ডিফল্ট আর সক্রিয় থাকবে না ~/.inputrc। এই সমস্যার সমাধান করতে, শুরু ~/.inputrcসঙ্গে $include /etc/inputrc

আমাকে সঠিক দিকে নির্দেশ করার জন্য @ স্টাফেনচাজেলাসকে ধন্যবাদ।


0

~ / .Bashrc এ আপনি যুক্ত করতে পারেন

shopt -s histappend

ধন্যবাদ, তবে আমি যে সমস্যার মুখোমুখি হচ্ছি তার উপর এর কোনও প্রভাব নেই। আমি সন্ধান করেছি এবং histappendচালু আছে কিন্তু আমার ইতিহাস এখনও পূর্ববর্তী কমান্ডগুলিতে সম্পাদনাগুলি দেখায়।
রিচার্ড ওয়াইজম্যান 13

আমি বাশ ম্যান পৃষ্ঠাটি সন্ধান করেছি এবং আমি সম্পাদনার ইতিহাসের নিয়মগুলি পেয়েছি রিডলাইন কমান্ড নামগুলি এটি মোটামুটি বর্ণনামূলক তবে আপনি যা চান তা ছাড়া আমি কোনও বিকল্প দেখতে পাচ্ছি না: রেড্র-বর্তমান লাইনের বর্তমান রিফ্রেশ লাইন।
জেফ কোলম্যান

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