لینوکس و من

حفظ همه تاریخچه های bash

حتما شده که توی یک پنجره ترمینال چند تا تب مختلف باز کردید. و توی هر کدوم یه کاری رو داشتید انجام میدادید. در تنظیمات فعلی bash فقط هیستوری دستورات آخرین تبی که باز بوده حفظ میشه. با یه کار ساده میشه به bash گفت که همه ی دستورات در همه ی تب ها رو وارد هیستوری بکنه.
این فایل رو با ویرایشگر متن دلخواهتون باز کنید و خط زیر رو به انتهاش اضافه کنید.و بعد یک بار ترمینال رو ببندید و دوباره باز کنید.

 

nano ~/.bashrc

این خط:
export PROMPT_COMMAND='history -a'

 

دسته:

ترفند

کلیدواژه:

ترمینال

نظرات  (۱)

من هم به این مشکل برخورده بودم و یه راه‌حل دیگه پیدا کردم که فکر می‌کنم بهتر باشه:
echo 'shopt -s histappend' >> ~/.bashrc

دو تا نکته در مورد روشی که شما گفتین هست:
۱. مقدار قبلی PROMPT_COMMAND با این کار از بین میره (البته اگر مقدار داشته باشه).
۲. بعد از اجرای هر دستور فایل history به روز میشه، برخلاف حالت پیش‌فرض که این کار رو انتهای session (وقتی تب یا پنجره ترمینال بسته میشه) انجام میده.

اینکه فایل history رو کِی به روز شه هم جای بحث داره.
اگر بعد از اجرای هر دستور این کار انجام شه، بدیش اینه که با هر دستور یک بار نوشتن در فایل انجام میشه، و اینکه کامندهای sessionهای مختلف لابه‌لای هم در history نوشته میشن. یعنی بعدا که سابقه دستورات رو ببینین دستورات یه session پشت هم نیستن، که به نظرم خوب نیست.
ولی خوبیش اینه که اگه session به هر دلیلی درست بسته نشه (kill بشه) دستورات تا اون لحظه ثبت شدن. مثلا این مشکل برای sessionهای remote خیلی پیش میاد، قبل اینکه خودمون session رو ببندیم کانکشن قطع میشه، بعدا که دوباره remote می‌زنیم دستورات session قبلی رو تو history نمی‌بینیم.

پاسخ:
آقا ممنون که توضیح دادی. مرسی