تقریبا تمام سیستم عامل ها خصوصا لینوکس ها داری یک history برای خط فرمان خود هستند.
در سیستم عامل لینوکس این مقادیر (دستورات وارد شده در خط فرمان حالا مستقیم یا از طریق ssh) ابتدا در حافظه (Ram) ذخیره می شوند. سپس قبل از ریبوت کردن سرور روی فایی ذخیره میشوند تا در نوبت بعدی بودت دستورات این سشن نیز در کنار دستورات سشن های قبلی در دسترس قرار بگیرد. به همین دلیل هم هست که دستورات سشن حاضر سریعتر از دستورات سشن های قبل تر لود می شود.
این فایل که مخفی هم می باشد " bash_history " نام دارد. مسیر آن به صورت پیش فرض به این صورت است:
نخست اینجا این احتمال است که دوست شما از اینجا می رود و سوابق دستورات خودش را حذف می کند. فایل فوق را ویرایش میکند.
البته روش های حرفه ای ترین برای خاموش کردن موفت ثبت سوابق فرامین وجود دارد که احتیاج نیست اینجا مطرح شود. ر:
اما در خصوص این که جلوی این کار را بخواهید بگیرید چند روش دارید. نخست تغییر مسیر این فایل، اگر احتمالا آموزش بنده را اینجا ببیند میتواند برود و مسیر فایل جدید را مشاهده کند و ادیت کند. اما بنده این را آموزش می دم صرفا جهت دوستانی که بخواهند بدانند.
این مسیر (فایل سوابق فرامین خط فرمان) جزوی از اسکلتشن کاربر است. بنابراین با ویرایش پروفایل هر کاربر می توان مسیری برای این فایل (خاص اون کاربر) تعریف کرد. کافیست به مسیر زیر برید:
کد:
/etc/skel/.bash_profile
سپس مقدار دلخواه رو براش تعریف کنید:
کد:
export HISTFILE=/home/anywhere/$USER/.bash_history
به این ترتیب سوابق فرامین وارد شده توسط اون کاربر در مسیر مربوط ذخیره خواهد شد.
اما روش کاربردی تر یا حرفه ای تر چیست؟
یک چشم پنهان روی سشن دوست خود داشته باشید که حالا چه مسیر عوض کند چه از متدهای مختلف فرامینش را از سوابق پنهان نگهدارد، شما بتوانید عملکرد وی را مشاهده کنید. در این زمینه روش های مختلفی وجود دارد.
یک روش با استفاده از strace نسبتا ساده:
https://jvns.ca/blog/2014/02/17/spyi...sh-with-strace
اگر با کنسول کار میکند از conspy میتونید کمک بگیرید:
https://linux.die.net/man/1/conspy
از screen و یا دیگر متدها مثل ssc یا ... هم میتونید بهره بگیرد.
تا همینجا هم پر حرفی شد، با کمی جستجو و دقت نباید مشکل داشته باشید.
