آموزشچگونه

آموزش خط فرمان: قسمت بیست و دوم، استفاده از تاریخچه (History)

Print Friendly, PDF & Email

همانطوری که در درس‌های ابتدایی یاد گرفتیم، بش (Bash) تاریخچه‌ای از فرمان‌هایی است که وارد کرده‌ایم را حفظ و نگهداری می‌کند. این لیست فرمان‌های در داخل پوشه home در داخل فایلی با نام bash_history نگهداری می‌شوند.

تسهیلات تاریخچه منبعی مفید است که به شما کمک می‌کند تا کمتر تایپ کنید. به‌ویژه زمانی که با ویرایش فرمان ترکیب شوند شما می‌توانید فرمان قبلی تایپ شده را با تغییرات جزیی به فرمانی جدید تبدیل نمایید.

جستجو در تاریخچه (History) خط فرمان

هر زمانی، ما می‌توانیم محتوای لیست تاریخچه فرمان‌ها را مشاهده کنیم:

به‌طور پیش‌فرض، بش (Bash) آخرین ۵۰۰ فرمان وارد شده توسط شما را در حافظه خود ذخیره می‌کند. در آینده خواهیم آموخت که چگونه این مقدار را تغییر دهیم. به‌عنوان مثال می‌خواهیم فرمان‌هایی که برای لیست کردن /usr/bin استفاده شده‌اند را پیدا کنیم. این یک راه برای رسیدن به این هدف است:

حال در بین فرمان‌های خود به یک فرمان جذاب مثل این رسیدیم:

عدد ۸۸ شماره خطی است که فرمان در لیست تاریخچه فرمان‌ها به خود اختصاص داده است. یک نوع دیگر بسط وجود دارد به نام بسط تاریخچه (History Expansion). برای استفاده از فرمان خط ۸۸ از علامت تعجب (!) قبل از شماره خط استفاده می‌کنیم، به‌صورت زیر:

علاوه بر این بش (Bash) توانایی جستجوی فزاینده در تاریخچه فرمان را برای ما فراهم آورده است. به این معنا که می‌توانیم به بش (Bash) بگوییم تاریخچه فرمان را زمانی که کاراکتری را وارد می‌کنیم به‌صورت فزاینده جستجو کن که در این صورت هر کاراکتری که اضافه می‌کنیم جستجوی ما را پالایش و تصحیح می‌کند.

برای شروع یک جستجوی فزایند، Ctrl+R را فشار دهید و در دنباله آن متن مورد نظر را وارد نمایید. وقتی که فرمان را پیدا کردید می‌توانید Enter را فشار دهید تا فرمان اجرا شود یا Ctrl+J را بفشارید تا فرمان از خط تاریخچه به فرمان اخیر خط فرمان کپی شود.

برای یافتن پیدایش متن بعدی (حرکت به بالا در لیست تاریخچه)، کلید Ctrl+R را دوباره فشار دهید و برای خروج از حالت جستجو نیز می‌توانید Ctrl+G و یا Ctrl+C را فشار دهید. ابتدا Ctrl+R را فشار دهید:

مشاهده می‌شود که وضعیت خط فرمان تغییر کرده تا نشان دهد که ما در حال انجام یک جستجوی فزاینده برعکس هستیم. چرا برعکس؟ زیرا ما داریم از زمان حال (اکنون) به فرمان‌های گذشته جستجو می‌کنیم. سپس شروع به نوشتن متن جستجو می‌کنیم. (به‌عنوان مثال /usr/bin)

بلافاصله جستجو نتیجه را به ما برمی‌گرداند. اکنون می‌توانیم فرمان را با فشردن کلید Enter اجرا کنیم و یا با استفاده از Ctrl+J آن را به داخل فرمان‌های اخیر کپی کنیم. حال Ctrl+J را فشار می‌دهیم:

شل (Shell) برمی‌گردد و خط فرمان برای اجرا آماده می‌شود.

جدول زیر لیست برخی از کلمات کلیدی به‌منظور دستکاری لیست تاریخچه را نشان می‌دهد:

بسط تاریخچه (History Expansion)

شل (Shell) نوع ویژه‌ای از بسط برای آیتم‌هایی که در لیست تاریخچه استفاده می‌شوند را با استفاده از کاراکتر علامت تعجب (!) عرضه می‌کند.

همانطور که دیدیم علامت تعجب سبب شد تا شماره خط فرمان ذخیره شده در لیست تاریخچه را پیدا کنیم. ویژگی‌های دیگری از نوع بسط در جدول زیر وجود دارد:

توجه: از بسط تاریخچه استفاده نکنید مگر آن که کاملاً از محتوای فرمان در تاریخچه مطمئن باشید.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

Related Articles

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Close