ব্যাশ চলমান একটি লিনাক্স টার্মিনালের একটি অন্তর্নির্মিত ইতিহাস রয়েছে যা আপনি সম্প্রতি যা করছেন তা ট্র্যাক করতে ব্যবহার করতে পারেন। আপনার ব্যাশ সেশনের ইতিহাস দেখতে, বিল্ট-ইন কমান্ড 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
-এ এই ভেরিয়েবল সেট করতে পারেন ফাইল নিম্নলিখিতটি আপনার ইতিহাসকে 3,000 লাইনে সেট করে, তারপরে তালিকার নীচে রাখা নতুন কমান্ডের জন্য জায়গা তৈরি করতে সবচেয়ে পুরনো লাইনটি সরিয়ে দেওয়া হয়:
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
রাখতে পারেন কমান্ডের আগে, যতক্ষণ আপনার ignorespace
থাকে আপনার HISTCONTROL
-এ পরিবেশ পরিবর্তনশীল:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
আপনি -c
দিয়ে আপনার পুরো সেশন ইতিহাস সাফ করতে পারেন বিকল্প:
$ history -c
$ history
$
ইতিহাসের পাঠ
ইতিহাস ম্যানিপুলেট করা সাধারণত এটি শোনার চেয়ে কম বিপজ্জনক, বিশেষ করে যখন আপনি এটিকে একটি উদ্দেশ্য মাথায় রেখে কিউরেট করছেন। উদাহরণস্বরূপ, যদি আপনি একটি জটিল সমস্যা নথিভুক্ত করছেন, আপনার কমান্ডগুলি রেকর্ড করতে আপনার সেশন ইতিহাস ব্যবহার করা প্রায়শই ভাল কারণ, সেগুলিকে আপনার ইতিহাসে স্লট করে, আপনি সেগুলি চালাচ্ছেন এবং এর ফলে প্রক্রিয়াটি পরীক্ষা করছেন৷ প্রায়শই, ডকুমেন্টিং না করেই ছোট ছোট পদক্ষেপগুলি উপেক্ষা করা বা ছোটখাটো বিবরণ ভুল লেখার দিকে পরিচালিত করে৷
প্রয়োজন অনুযায়ী আপনার ইতিহাস সেশন ব্যবহার করুন, এবং বিজ্ঞতার সাথে ইতিহাসের উপর আপনার ক্ষমতা প্রয়োগ করুন। শুভ ইতিহাস হ্যাকিং!