বাশের একটি সমৃদ্ধ ইতিহাস রয়েছে। অর্থাৎ, এটি একটি পুরানো শেল যার আরও পুরানো পূর্বপুরুষ (বোর্ন শেল), কিন্তু এটির একটি দুর্দান্ত history
ও রয়েছে কমান্ড যা এর বৈশিষ্ট্যের সংখ্যার উপর ভিত্তি করে অন্যান্য সমস্ত শেল ইতিহাস ইন্টারফেসকে ছাড়িয়ে যায়। history
এর ব্যাশ সংস্করণ বিপরীত অনুসন্ধান, দ্রুত স্মরণ, ইতিহাস পুনঃলিখন এবং আরও অনেক কিছুর জন্য অনুমতি দেয়৷
history
কমান্ড অন্য অনেক কমান্ডের মত নয়। আপনি হয়তো /usr/bin
-এর মতো সাধারণ সিস্টেম-স্তরের লোকেশনে স্থাপন করা এক্সিকিউটেবল ফাইলের কমান্ডে অভ্যস্ত হতে পারেন। , /usr/local/bin
, অথবা ~/bin
. অন্তর্নির্মিত history
কমান্ড আপনার PATH
এ নেই এবং কোন শারীরিক অবস্থান নেই:
$ কোন ইতিহাসএ কোন ইতিহাস নেই
কোনটি:[PATH]
পরিবর্তে, history
শেল নিজেই একটি অন্তর্নির্মিত ফাংশন:
$ প্রকার ইতিহাস
ইতিহাস হল একটি শেল বিল্টইন
$ সাহায্যের ইতিহাস
ইতিহাস:ইতিহাস [-c] [-d অফসেট] [n] অথবা
history -anrw [ ফাইলের নাম] অথবা
history -ps arg [arg...]
ইতিহাসের তালিকা প্রদর্শন বা ম্যানিপুলেট করুন।
[...]
সেই কারণে, প্রতিটি শেলের ইতিহাস ফাংশনটি অনন্য, তাই আপনি ব্যাশে যা ব্যবহার করেন তা Tcsh বা মাছ বা ড্যাশে কাজ নাও করতে পারে এবং আপনি যা ব্যবহার করেন তা ব্যাশে কাজ নাও করতে পারে। কিছু ক্ষেত্রে, ব্যাশ কী করতে পারে তা জানা অন্য শেল ব্যবহারকারীদের ব্যাশ আচরণ ক্লোন করার জন্য আকর্ষণীয় হ্যাক তৈরি করতে অনুপ্রাণিত করতে পারে এবং এটি ব্যাশ বৈশিষ্ট্যগুলি আনলক করতে পারে যা আপনি জানেন না যে বিদ্যমান ছিল।
আপনার ব্যাশ ইতিহাস দেখুন
history
এর সবচেয়ে মৌলিক এবং ঘন ঘন ব্যবহার কমান্ড হল আপনার শেল সেশনের ইতিহাস দেখতে:
$ echo "hello"
hello
$ echo "world"
world
$ history
1 echo "hello"
2 echo "world "
3 ইতিহাস
ইভেন্ট ডিজাইনার
ইভেন্ট ডিজাইনাররা ইভেন্ট দ্বারা আপনার ইতিহাস অনুসন্ধান করে। একটি ইভেন্ট এই প্রসঙ্গে আপনার ইতিহাসে লগ করা একটি কমান্ড, একটি নতুন লাইন অক্ষর দ্বারা চিত্রিত। অন্য কথায়, এটি একটি লাইন, রেফারেন্সের জন্য একটি সূচক নম্বর দ্বারা চিহ্নিত৷
৷
ইভেন্ট ডিজাইনাররা বেশিরভাগই একটি বিস্ময়বোধক বিন্দু দিয়ে শুরু করে, কখনও কখনও এটিকে bangও বলা হয় (!
)।
আপনার ইতিহাস থেকে একটি কমান্ড পুনরায় চালানোর জন্য, আপনি যে কমান্ডটি চান তার সূচক নম্বর দ্বারা অবিলম্বে অনুসরণ করা বিস্ময়বোধক বিন্দুটি ব্যবহার করুন (কোনও স্পেস নেই)। উদাহরণস্বরূপ, ধরুন লাইন 1-এ echo "hello"
কমান্ড রয়েছে , এবং আপনি এটি আবার চালাতে চান:
$ !1
ইকো "হ্যালো"
হ্যালো
আপনি ইতিহাসে আপনার বর্তমান অবস্থান থেকে একটি নেতিবাচক সংখ্যক লাইন প্রদান করে আপেক্ষিক অবস্থান ব্যবহার করতে পারেন। উদাহরণস্বরূপ, ইতিহাসের তিনটি এন্ট্রিতে ফিরে যেতে:
$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo
আপনি যদি শুধু এক লাইনে ফিরে যান, আপনি শর্টহ্যান্ড !!
ব্যবহার করতে পারেন !-1
এর পরিবর্তে . এটি একটি সম্পূর্ণ কীস্ট্রোকের একটি সঞ্চয়!
$ echo "foo"
$ !!
echo "foo"
foo
স্ট্রিং অনুসন্ধান
আপনি এন্ট্রিগুলির মাধ্যমে একটি নির্দিষ্ট স্ট্রিং অনুসন্ধান করতে পারেন, বিপরীতভাবে, একটি কমান্ড চালানোর জন্য। একটি কমান্ড অনুসন্ধান করতে শুরু হচ্ছে একটি নির্দিষ্ট স্ট্রিংয়ের সাথে, আপনি যে স্ট্রিংটি অনুসন্ধান করতে চান তার সাথে সাথেই (কোন স্থান নেই) অনুসরণ করে একটি বিস্ময়বোধক বিন্দু ব্যবহার করুন:
$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo
আপনি যে কোনও অবস্থানে একটি স্ট্রিং ধারণকারী একটি কমান্ড অনুসন্ধান করতে পারেন (শুধু শুরুতে নয়)। এটি করতে, !
ব্যবহার করুন প্লাস আপনি যে স্ট্রিংটি খুঁজছেন তা যথারীতি, কিন্তু উভয় প্রান্তে প্রশ্ন চিহ্ন দিয়ে স্ট্রিংটিকে ঘিরে দিন। আপনি ট্রেলিং প্রশ্ন চিহ্নটি বাদ দিতে পারেন যদি আপনি জানেন যে স্ট্রিংটি অবিলম্বে একটি নতুন লাইন অক্ষর দ্বারা অনুসরণ করা হয়েছে (অর্থাৎ আপনি রিটার্ন চাপার আগে এটিই শেষ টাইপ করেছেন ):
$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo
স্ট্রিং প্রতিস্থাপন
একটি লাইনের শুরুতে স্ট্রিং অনুসন্ধান করার মতো, আপনি একটি স্ট্রিং অনুসন্ধান করতে পারেন এবং কমান্ড পরিবর্তন করে একটি নতুন স্ট্রিং দিয়ে এটি প্রতিস্থাপন করতে পারেন:
$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
fooপ্রে>ইতিহাসকে উপযোগী করুন
বাশে, ইতিহাস কমান্ড এখানে যা কভার করা হয়েছে তার চেয়ে অনেক বেশি করতে সক্ষম, তবে এটি ব্যবহার করতে অভ্যস্ত হওয়ার জন্য একটি ভাল শুরু। আপনার ইতিহাসকে শুধুমাত্র একটি রেফারেন্স হিসাবে বিবেচনা করার পরিবর্তে।
history
ব্যবহার করুন প্রায়শই কমান্ড দিন, এবং কমান্ড টাইপ না করে আপনি কতটা করতে পারেন তা দেখুন। আপনি নিজেই অবাক হতে পারেন!