گاهی اوقات ممکن است بخواهیم دستوراتی رو داخل ترمینال لینوکس اجرا کنیم و دوست نداشته باشیم تا در history ذخیره بشن. مثل وقتی که با استفاده از مرورگر خود به صورت ناشناس به وب گردی میپردازیم، در خط فرمان لینوکس هم میتونیم به صورت ناشناس دستوراتی رو اجرا کنیم، به طوری که اثری از ما باقی نمونه و دستورات در جایی ذخیره نشن. روشهای زیادی برای انجام این کار وجود دارد که در ادامه اون ها را بررسی میکنیم.
قرار دادن space قبل از دستور
با قرار دادن یک فاصله در ابتدای دستور، شِل اون دستور رو نادیده میگیره و در تاریخچه ذخیره نمیکنه. برای انجام این کار باید مقدار متغیر HISTCONTROL برابر “ignorespace” و یا “ignoreboth” تنظیم شده باشه. (که البته بر روی اکثر سیستمها به صورت پیش فرض اعمال شده). برای مشاهدهی مقدار این متغیر دستور زیر رو وارد کرده و خروجی رو مشاهده میکنیم:
echo $HISTCONTROL #output ignoreboth
در صورتی که خروجی دریافت شده غیر از این مقدار بود، میتونیم مقدار تون رو به صورت زیر تغییر بدیم:
export HISTCONTROL = ignorespace
حالا میتونیم با قرار دادن یک فاصله در ابتدای دستور، کاریم کنیم که دستور وارد شده در history ذخیره نشه:
[space]echo "incognito"
- [space] به معنای قرار دادن یک فاصله در ابتدای دستور است.
echo "first command" echo "second command" echo "third command with space" history 3 ۱ echo "first command" ۲ echo "second command" ۳ history 3
همونطوری که میبینید دستور سوم در history ذخیره نشده است.
غیر فعال کردن history
در صورتی که بخواهیم history را غیر فعال کنیم، میتونیم مقدار متغیر HISTSIZE را به صفر تغییر بدیم. برای این کار دستور زیر رو وارد میکنیم:
export HISTSIZE = 0
مقدار متغیر HISTSIZE تعیین میکنه که چه تعداد دستور میتونه در لیست تاریخچهی خط فرمان ذخیره بشه. به طور پیش فرض مقدار این متغیر برابر ۵۰۰ یا ۱۰۰۰ هست. بدین ترتیب تا زمانی که ترمینال باز است، دیگر دستوری در history ذخیره نمیشه.
پاک کردن history پس از اتمام کار
این روش هم مثل روش قبل هست. با این تفاوت که از این دستور پس از اتمام کارمون استفاده میکنیم و لیست تاریخچه دستورات رو پاک میکنیم.
history -cw
غیر فعال کردن history به صورت موقت
برخلاف دو روش قبل که تمام لیست history را در آن نشست برای ما پاک میشه، در این روش میتونیم بدون این که نیاز باشه یک ترمینال جدید باز کنیم، به صورت موقت history رو غیرفعال کنیم. برای این کار میتونیم دستور زیر رو وارد کنیم:
set +o history
- توجه کنید که در ابتدای این دستور یک space قرار گرفته که مانع از ثبت اون در history میشه.
حالا هر دستوری که از این پس اجرا کنید، در لیست تاریخچهی دستورات ذخیره نمیشه. برای فعالسازی مجدد history دستور زیر رو وارد میکنیم:
set -o history
از این پس شرایط به حالت عادی برگشته و دستوراتی که وارد کنید در history ثبت میشن.
پاک کردن یک دستور از history
فرض کنید درون history دستوراتی قرار دارن که شما نمیخواستید ثبت بشن. در این حالت اول باید شمارهی دستوری که میخواهید حذف کنید رو به صورت زیر بدست بیارین:
history | grep "part of your command"
بدین ترتیب دستور مورد نظر شما به همراه شمارهی اون نمایش داده میشه. حالا میتونید اون رو به راحتی حذف کنید:
history -d [num]
- [num] همان شمارهی دستور شما است.
همچنین میتونید با استفاده نشانگر بالا بر روی کیبورد خود لیست دستورات قبلی خودتون رو مشاهده کنید و برای حذف هرکدوم از کلید ترکیبی “Ctrl+U” استفاده کنید.
1 دیدگاه On در ترمینال لینوکس مخفی بمونید
خیلی جالب بود
مرسی 🙂