ব্যাশ চালিত একটি লিনাক্স টার্মিনালের একটি বিল্ট-ইন ইতিহাস থাকে যা আপনি ব্যবহার করতে পারেন আপনি সম্প্রতি কী করছেন সেটি ট্র্যাক করতে। আপনার ব্যাশ সেশনের ইতিহাস দেখতে, বিল্ট-ইন কমান্ড history ব্যবহার করুন:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
history কমান্ড অধিকাংশ কমান্ডের মতো আপনার ফাইলসিস্টেমে একটি এক্সিকিউটেবল ফাইল নয়, বরং এটি ব্যাশের একটি ফাংশন। আপনি type কমান্ড ব্যবহার করে এটি যাচাই করতে পারেন:
$ type history
history is a shell builtin
ইতিহাস নিয়ন্ত্রণ
আপনার শেল ইতিহাসের লাইনের উপরের সীমা HISTSIZE ভেরিয়েবল দ্বারা ডিফাইন করা হয়। আপনি এই ভেরিয়েবলটি আপনার .bashrc ফাইলে সেট করতে পারেন। নিচেরটি আপনার ইতিহাসকে ৩,০০০ লাইনে সেট করে, যার পর পুরনো লাইনটি সরিয়ে দিয়ে নতুন কমান্ডের জন্য জায়গা করে যা তালিকার নিচে রাখা হয়:
export HISTSIZE=3000
অন্যান্য ইতিহাস-সম্পর্কিত ভেরিয়েবলও আছে। HISTCONTROL ভেরিয়েবল কন্ট্রোল করে কোন ইতিহাস সংরক্ষণ হবে। আপনি ব্যাশকে খালি স্পেস দিয়ে শুরু হওয়া কমান্ডগুলো বাদ দিতে বাধ্য করতে পারেন আপনার .bashrc ফাইলে এটি রাখতে:
export HISTCONTROL=$HISTCONTROL:ignorespace
এখন, আপনি যদি একটি স্পেস দিয়ে শুরু হওয়া কমান্ড টাইপ করেন, সেই কমান্ড ইতিহাসে রেকর্ড হবে না:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
আপনি ডুপ্লিকেট এন্ট্রিও এড়াতে পারেন:
export HISTCONTROL=$HISTCONTROL:ignoredups
এখন, আপনি যদি একের পর এক দুটি কমান্ড টাইপ করেন, শুধু একটি ইতিহাসে দেখাবে:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
আপনি যদি এই দুটি ইগনোর পছন্দ করেন, আপনি শুধু ignoreboth ব্যবহার করতে পারেন:
export HISTCONTROL=$HISTCONTROL:ignoreboth
ইতিহাস থেকে একটি কমান্ড সরান
কখনো কখনো আপনি ভুল করেন এবং আপনার শেলে কিছু সেনসিটিভ জিনিস টাইপ করেন, অথবা হয়তো আপনি আপনার ইতিহাস পরিষ্কার করতে চান যাতে এটি আরও সঠিকভাবে রিপ্রেজেন্ট করে আপনি যা ধাপগুলো নিয়েছেন কোনো জিনিস কাজ করার জন্য। আপনি যদি আপনার ইতিহাস থেকে একটি কমান্ড ডিলিট করতে চান ব্যাশে, -d অপশন ব্যবহার করুন আপনি যে আইটেমটি সরাতে চান তার লাইন নম্বর দিয়ে:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
history এন্ট্রি যোগ বন্ধ করতে, আপনি কমান্ডের আগে একটি space রাখতে পারেন, যতক্ষণ না আপনার HISTCONTROL এনভায়রনমেন্ট ভেরিয়েবলে ignorespace থাকে:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
আপনি আপনার পুরো সেশন ইতিহাস -c অপশন দিয়ে ক্লিয়ার করতে পারেন:
$ history -c
$ history
$
ইতিহাসের পাঠ
ইতিহাস ম্যানিপুলেট করা সাধারণত ততটুকু খাতরনাক নয় যতটুকু শোনা যায়, বিশেষ করে যখন আপনি একটি উদ্দেশ্যে এটি কিউরেট করছেন। উদাহরণস্বরূপ, আপনি যদি একটি জটিল সমস্যা ডকুমেন্ট করছেন, সেটি প্রয়োজনীয় হলো আপনার সেশন ইতিহাস ব্যবহার করে আপনার কমান্ডগুলো রেকর্ড করা কারণ, সেগুলো আপনার ইতিহাসে স্লট করে, আপনি সেগুলো রান করছেন এবং بتلكে প্রসেসটি টেস্ট করছেন। অনেক সময়, করা ছাড়া ডকুমেন্ট করা ছোট ধাপগুলো অনুপস্থিত করাতে বা মাইনর ডিটেইলগুলো ভুল লিখতে পারে।
আপনার ইতিহাস সেশনগুলো প্রয়োজন অনুযায়ী ব্যবহার করুন, এবং ইতিহাসের উপর আপনার ক্ষমতা বুদ্ধিমত্তা সহ ব্যবহার করুন। হ্যাপি হিস্ট্রি হ্যাকিং!