ব্যাশ ইতিহাস কমান্ড এবং সম্প্রসারণ

Byasa Itihasa Kamanda Ebam Samprasarana



এই গাইডে, আমরা ব্যাশ ইতিহাস কমান্ডের সাথে কীভাবে কাজ করতে হয় তা প্রদর্শন করব।

পূর্বশর্ত:

এই টিউটোরিয়ালে প্রদর্শিত পদক্ষেপগুলি সম্পাদন করতে আপনার নিম্নলিখিত উপাদানগুলির প্রয়োজন:

  • একটি সঠিকভাবে কনফিগার করা লিনাক্স সিস্টেম। চেক আউট ভার্চুয়ালবক্সে একটি উবুন্টু ভিএম কীভাবে সেটআপ করবেন .
  • কমান্ড-লাইন ইন্টারফেসের সাথে প্রাথমিক পরিচিতি।

ব্যাশ ইতিহাস

বেশিরভাগ আধুনিক লিনাক্স সিস্টেমে ব্যাশ হল ডিফল্ট শেল। মূল ইউনিক্স শেল “sh”-এর উত্তরসূরি হিসাবে, এটি অনেক বৈশিষ্ট্য এবং উন্নতির সাথে আসে যেমন ডিরেক্টরি ম্যানিপুলেশন, কাজের নিয়ন্ত্রণ, উপনাম, কমান্ড ইতিহাস এবং আরও অনেক কিছু।







Bash পূর্বে টার্মিনাল থেকে সম্পাদিত সমস্ত কমান্ডের ট্র্যাক রাখে। এটি ডিবাগিংয়ের মতো অসংখ্য পরিস্থিতিতে অবিশ্বাস্যভাবে কার্যকর হতে পারে। এটি একই/অনুরূপ কমান্ড বারবার টাইপ করার প্রয়োজনীয়তাও কমাতে পারে।



ইতিহাস পরিচালনার জন্য, ব্যাশ দুটি অন্তর্নির্মিত কমান্ডের সাথে আসে:



$ প্রকার ইতিহাস





$ প্রকার fc

ইতিহাস সংরক্ষণ করতে, ব্যাশ দুটি ভিন্ন কৌশল ব্যবহার করে:



  • যখনই শেল সেশনের সাথে কাজ করা হয়, তার ইতিহাস মেমরিতে সংরক্ষণ করা হয়।
  • বন্ধ হয়ে গেলে, স্মৃতিতে সংরক্ষিত ইতিহাস একটি ইতিহাস ফাইলে ডাম্প করা হয়।

ব্যাশ ব্যবহার করে ডিফল্ট ইতিহাস ফাইল এখানে অবস্থিত:

$ বিড়াল ~ / .bash_history

এছাড়াও কিছু সংখ্যক এনভায়রনমেন্ট ভেরিয়েবল এবং কীবোর্ড শর্টকাট রয়েছে যা Bash কীভাবে ইতিহাস পরিচালনা করে তা পরিবর্তন করে।

ব্যাশ ইতিহাসের সাথে কাজ করা

মৌলিক ব্যবহার

সম্প্রতি চালানো কমান্ডের তালিকা পেতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:

$ ইতিহাস

এখানে, বাফারে সংরক্ষিত সমস্ত কমান্ড তালিকাভুক্ত করা হয়েছে। প্রতিটি কমান্ডের সংখ্যাসূচক মান নির্ধারণ করা হয়েছে। প্রাচীনতম কমান্ড 1 দিয়ে বরাদ্দ করা হয়।

আমরা নিম্নলিখিত কমান্ড ব্যবহার করে প্রিন্ট করার জন্য কমান্ডের সংখ্যা সীমিত করতে পারি:

$ ইতিহাস এন

এখানে, N হল একটি পূর্ণসংখ্যা যেখানে N >= 0। আউটপুটে ইতিহাসের শেষ N কমান্ড রয়েছে।

আমরা ফিল্টারিংয়ের জন্য গ্রেপের সাথে আউটপুটটিও ব্যবহার করতে পারি:

$ ইতিহাস | গ্রিপ < স্ট্রিং >

একটি দীর্ঘ ইতিহাস ব্রাউজ করতে, আমরা 'কম' কমান্ডটি ব্যবহার করতে পারি:

$ ইতিহাস | কম

ইতিহাস থেকে কমান্ড মুছে ফেলা হচ্ছে

আপনি যদি ইতিহাস থেকে একটি নির্দিষ্ট কমান্ড অপসারণ করতে চান তবে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

$ ইতিহাস

$ ইতিহাস -d < কমান্ড_সংখ্যা >

$ ইতিহাস

একইভাবে, ইতিহাস থেকে M থেকে N পর্যন্ত কমান্ডগুলি সরাতে, আমরা নিম্নলিখিত কমান্ডগুলি ব্যবহার করতে পারি:

$ ইতিহাস

$ ইতিহাস -d এম-এন

$ ইতিহাস

বর্তমান টার্মিনাল সেশনের জন্য RAM বাফার থেকে ইতিহাস সাফ করতে, পরিবর্তে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

$ ইতিহাস -গ

$ ইতিহাস

ডিস্কে সংরক্ষিত ইতিহাস ফাইল থেকে ইতিহাস সাফ করতে, আমরা NULL দিয়ে এটি সম্পূর্ণরূপে ওভাররাইট করতে পারি:

$ বিড়াল / দেব / খালি > $HISTFILE

ব্যাশ ইতিহাস সেটিংস

ব্যাশ কীভাবে ইতিহাস পরিচালনা করে তা টুইক করার একাধিক উপায় রয়েছে। এই বিকল্পগুলির অনেকগুলি পরিবেশের ভেরিয়েবল দ্বারা পরিচালিত হয়।

তাদের মান পরিবর্তন করতে, আমরা 'bashrc' ফাইলটি সম্পাদনা করি:

$ ন্যানো ~ / .bashrc

সম্পাদনা করার পরে, ফাইলটি সংরক্ষণ করুন এবং এটি Bash এ পুনরায় লোড করুন।

$ উৎস ~ / .bashrc

সিস্টেম জুড়ে পরিবর্তন করতে, 'bashrc' সম্পাদনা করুন যা নিম্নলিখিত অবস্থানে অবস্থিত:

$ ন্যানো / ইত্যাদি / bash.bashrc

$ ন্যানো / ইত্যাদি / bashrc

বাফারের আকার

আগেই উল্লেখ করা হয়েছে, Bash RAM এ (বর্তমান সেশনের জন্য) এবং একটি ডিস্ক ফাইলে (পূর্ববর্তী সমস্ত সেশনের জন্য) কমান্ড ইতিহাস সংরক্ষণ করতে দুটি বাফার ব্যবহার করে।

এই বাফারগুলির আকার দুটি পরিবেশের ভেরিয়েবল দ্বারা নিয়ন্ত্রিত হয়:

  • হিস্টিসাইজ : এটি RAM বাফারে সংরক্ষণ করার জন্য এন্ট্রির সংখ্যা নির্ধারণ করে।
  • হিস্টফাইলাইজ করুন : এটি ডিস্ক ফাইলে সংরক্ষণ করার জন্য এন্ট্রির সংখ্যা নির্ধারণ করে।

আমরা আমাদের প্রয়োজনের সাথে মানানসই করতে 'bashrc' এ তাদের মান পরিবর্তন করতে পারি:

$ ন্যানো ~ / .bashrc

উদাহরণস্বরূপ, উভয় বাফারে 5000টি এন্ট্রি সংরক্ষণ করতে, নিম্নলিখিত কোড সহ 'bashrc' আপডেট করুন:

$ হিস্টিসাইজ = 5000

$ হিস্টফাইলাইজ করুন = 5000

কমান্ড বর্জন

ডিফল্টরূপে, Bash ইতিহাসের বাফারগুলিতে চালানো প্রতিটি একক কমান্ড সংরক্ষণ করে। যাইহোক, আমরা এটি কনফিগার করতে পারি যাতে ব্যাশ নির্দিষ্ট কমান্ডগুলিকে উপেক্ষা করে। এটি এমন পরিস্থিতিতে কার্যকর হতে পারে যেখানে আপনাকে একই কমান্ডগুলি বহুবার চালাতে হবে, বাফারটি স্প্যাম দিয়ে পূরণ করতে হবে।

  • হিস্টকন্ট্রোল

নিম্নলিখিত কমান্ড উদাহরণ দিয়ে শুরু করা যাক:

$ প্রতিধ্বনি 'সন্ন্যাসী' && ইতিহাস 5

$ প্রতিধ্বনি 'বঙ্ক' && ইতিহাস 5

হিস্ট্রি কমান্ডের আউটপুট দেখায়, শুধুমাত্র প্রথম ইকো কমান্ড নিবন্ধিত হয় কিন্তু দ্বিতীয়টি নয়।

এটি HISTIGNORE পরিবেশ পরিবর্তনশীলের কাজ। এটি ব্যাশকে নির্দিষ্ট প্যাটার্নের উপর ভিত্তি করে ইতিহাস বাফারে কমান্ডগুলি লগ না করতে বলে। নিম্নলিখিত মান উপলব্ধ:

  • উপেক্ষা করা : কোনো কমান্ড পূর্ববর্তী ইতিহাস এন্ট্রির সাথে মেলে তা লগ করা হয় না।
  • উপেক্ষা : শুরুতে একটি স্পেস দিয়ে একটি কমান্ড শুরু হলে এটি লগ করা হবে না।
  • উভয় উপেক্ষা : এটি উপেক্ষা এবং উপেক্ষা উভয়ের নিয়ম প্রযোজ্য।
  • মুছে ফেলা : বর্তমান কমান্ডের সাথে মেলে সমস্ত পূর্ববর্তী লাইন ইতিহাস থেকে মুছে ফেলা হবে।

প্রথম উদাহরণে, আমরা উপেক্ষা করা স্থানের ব্যবহার প্রদর্শন করেছি। যাইহোক, সমস্ত ডিস্ট্রো এই কনফিগারেশনের সাথে ব্যাশ পাঠাতে পারে না। সর্বদা হিসাবে, আমরা তাদের 'bashrc' এ যোগ করতে পারি:

$ হিস্টকন্ট্রোল = উভয়কেই উপেক্ষা করুন

নিম্নলিখিত কমান্ড ব্যবহার করে একাধিক বিকল্প সক্ষম করাও সম্ভব:

$ হিস্টকন্ট্রোল =ignoredups:ignorespace

এখানে, ignoredups:ignorespace হল ignoreboth-এর সমতুল্য।

  • হিস্টিগনোর

এই পরিবেশ পরিবর্তনশীল এক বা একাধিক নিদর্শন থাকতে পারে. HISTIGNORE দ্বারা বর্ণিত যে কোনও প্যাটার্নের সাথে মেলে এমন কোনও কমান্ড ইতিহাস বাফারে নিবন্ধিত হবে না। নিদর্শন নিয়মিত অভিব্যক্তি ব্যবহার করে সংজ্ঞায়িত করা হয়.

গঠন নিম্নরূপ:

$ হিস্টিগনোর = '' : '' : ''

উদাহরণস্বরূপ, ব্যাশ ইতিহাস থেকে ইতিহাস এবং ইকো কমান্ডগুলি বাদ দিতে, HISTIGNORE কে নিম্নরূপ আপডেট করুন:

$ হিস্টিগনোর = 'ইতিহাস' : 'প্রতিধ্বনি *'

আমরা এটি পরীক্ষা করার জন্য নিম্নলিখিত কমান্ডের চেইন ব্যবহার করতে পারি:

$ ls -l / ছিল / লব &> / দেব / খালি

$ ইতিহাস

$ প্রতিধ্বনি ওহে বিশ্ব

$ ইতিহাস

সময়ের মুদ্রাঙ্কন

একটি কমান্ড চালানোর সময় লগ করার জন্যও Bash কনফিগার করা যেতে পারে। এটি ডিবাগিংয়ের মতো বিভিন্ন পরিস্থিতিতে কার্যকর হতে পারে।

ব্যাশ ইতিহাসে টাইমস্ট্যাম্প সক্ষম করতে, HISTTIMEFORMAT-এর মান আপডেট করুন:

$ হিস্ট টাইম ফরম্যাট = ''

সমস্ত উপলব্ধ সময় বিন্যাস নিয়ন্ত্রণ অক্ষর তারিখ কমান্ডের ম্যান পৃষ্ঠায় উপলব্ধ।

$ মানুষ তারিখ

নিম্নলিখিত তালিকায় কিছু সহজ অন্তর্ভুক্ত রয়েছে:

  • % টি: সময়
  • %d: দিন
  • %m: মাস
  • %y:বছর
$ হিস্ট টাইম ফরম্যাট = '%T %d: '

ইতিহাসের অধ্যবসায়

CLI এর সাথে কাজ করার সময়, অনেক ক্ষেত্রে, আপনি নিজেকে একাধিক টার্মিনালের সাথে কাজ করতে দেখতে পাবেন। এখানেই ব্যাশের ইতিহাস ব্যবস্থাপনা ব্যথার উৎস হয়ে উঠতে পারে।

ডিফল্টরূপে, সেশন বন্ধ হয়ে গেলে ইতিহাস ফাইল আপডেট করা হয়। যদিও এটি একটি একক সেশনের জন্য ঠিক আছে, এটি একাধিক একযোগে সেশনের জন্য পর্যাপ্ত নয়। প্রতিবার কমান্ড চালানোর সময় ইতিহাস ফাইল আপডেট করতে ব্যাশকে বাধ্য করে আমরা এই সমস্যাটি সমাধান করতে পারি।

এটি করতে, PROMPT_COMMAND এর মান আপডেট করুন:

$ PROMPT_COMMAND = 'ইতিহাস-ক'

এখানে, PROMPT_COMMAND ভেরিয়েবলে বৈধ কমান্ড থাকতে পারে। ব্যাশ ব্যবহারকারীর ইনপুট নেওয়া শুরু করার আগে PROMPT_COMMAND-এর বিষয়বস্তু চালানো হয়। 'ইতিহাস -a' কমান্ড ইতিহাসকে ইতিহাস ফাইলে বিষয়বস্তু যুক্ত করতে বাধ্য করে।

ইতিহাস সম্প্রসারণ এবং ডিজাইনার

Bash এর ইতিহাস বৈশিষ্ট্যের সুবিধা নিতে কয়েকটি অন্তর্নির্মিত শর্টকাট নিয়ে আসে। এখানে মনোনীতদের তালিকা রয়েছে:

  • !! : ইতিহাস থেকে শেষ কমান্ড চালায়।
  • এন : ইতিহাস থেকে Nth কমান্ড চালায়।
  • !-এন : ইতিহাস থেকে সাম্প্রতিক কমান্ডের আগে Nth কমান্ড চালায়।
  • ! : সাম্প্রতিকতম কমান্ড চালায়।

নিম্নলিখিত কমান্ডের চেইন তাদের ব্যবহার প্রদর্শন করে:

$ প্রতিধ্বনি 1

$ প্রতিধ্বনি 2

$ প্রতিধ্বনি 3

$ ইতিহাস

$ ! প্রতিধ্বনি

$ ! - 3

$ ! 1

$ !!

কিছু মনোনীতকারী ইতিহাস থেকে কমান্ড আর্গুমেন্ট নিয়েও কাজ করে:

  • !:* : সাম্প্রতিক কমান্ডের সমস্ত আর্গুমেন্ট ব্যবহার করুন।
  • !:^ : সাম্প্রতিক কমান্ডের প্রথম আর্গুমেন্ট ব্যবহার করুন।
  • !:এন : সাম্প্রতিক কমান্ডের Nth আর্গুমেন্ট ব্যবহার করুন।
  • !:এম-এন : সাম্প্রতিক কমান্ডের M থেকে N পর্যন্ত আর্গুমেন্ট ব্যবহার করুন।
  • !:$ : সাম্প্রতিক কমান্ডের শেষ আর্গুমেন্ট ব্যবহার করুন।

নিম্নলিখিত কমান্ডের চেইন তাদের ব্যবহার প্রদর্শন করে:

$ প্রতিধ্বনি 1 2 3 4 5 6 7

$ প্রতিধ্বনি ! : *

$ প্রতিধ্বনি 1 2 3 4 5 6 7

$ প্রতিধ্বনি ! :^

$ প্রতিধ্বনি 1 2 3 4 5 6 7

$ প্রতিধ্বনি ! : 5

$ প্রতিধ্বনি 1 2 3 4 5 6 7

$ প্রতিধ্বনি ! : 1 - 5

$ প্রতিধ্বনি 1 2 3 4 5 6 7

$ প্রতিধ্বনি ! :$

আপনি যদি একটি ভিন্ন কমান্ডের পরামিতিগুলির সাথে কাজ করতে চান, তাহলে মনোনীতরা এইরকম দেখায়:

  • !^ : কমান্ডের প্রথম আর্গুমেন্ট ব্যবহার করে।
  • !$ : কমান্ডের শেষ আর্গুমেন্ট ব্যবহার করে।

নিম্নলিখিত কমান্ড চেইন তাদের ব্যবহার প্রদর্শন করে:

$ ls -এলএইচ / ছিল / লগ &> / দেব / খালি

$ স্পর্শ 1 .txt 2 .txt 3 .txt 4 .txt 5 .txt

$ প্রতিধ্বনি ! স্পর্শ ^

$ প্রতিধ্বনি ! স্পর্শ $

ইতিহাস কীবোর্ড শর্টকাট

সমস্ত কমান্ড এবং এনভায়রনমেন্ট ভেরিয়েবল ছাড়াও, ব্যাশ সহজ ইতিহাস নেভিগেশনের জন্য মুষ্টিমেয় কীবোর্ড শর্টকাট সমর্থন করে:

  • উপরে তীর কী: পিছনে স্ক্রোল করুন
  • নিচে তীর কী: সামনে স্ক্রোল করুন

একটি ইন্টারেক্টিভ ইতিহাস অনুসন্ধানের জন্য উপলব্ধ কীবোর্ড শর্টকাটগুলিও রয়েছে:

  • Ctrl + R : ইতিহাসে কমান্ড অনুসন্ধান করুন।
  • Ctrl + O : নির্বাচিত কমান্ডটি চালান।
  • Ctrl + G : ইন্টারেক্টিভ অনুসন্ধান থেকে প্রস্থান করুন।

উপসংহার

আমরা বাশ ইতিহাস সম্পর্কে বিস্তারিত আলোচনা করেছি। আমরা শিখেছি কিভাবে Bash কমান্ড ইতিহাস সংরক্ষণ করে এবং কিভাবে বিভিন্ন উপায়ে এর সুবিধা নিতে হয়। আমরা বিভিন্ন উদাহরণ ব্যবহার করে ব্যাশ ইতিহাসের সাথে কীভাবে কাজ করতে হয় তা প্রদর্শন করেছি।

বাশ সম্পর্কে আরও জানতে আগ্রহী? দ্য ব্যাশ প্রোগ্রামিং উপ-শ্রেণী ব্যাশের বিভিন্ন বৈশিষ্ট্যের শত শত গাইড রয়েছে।

শুভ কম্পিউটিং!