در حالی که ترمینال لینوکس هنوز بخشی از سیستمعامل لینوکس است، اگر مراقب نباشید ممکن است سیستم خود را خراب کنید. در اینجا روشهایی را که برای ایمن ماندن در ترمینال توضیح میدهم و همچنین نشان میدهم اگر اشتباهی کردید چگونه میتوانید مشکلات را برطرف کنید.
چرا باید در لینوکس مراقب باشید؟
لینوکس بخش زیادی از فلسفه طراحی خود را از یونیکس به ارث برده است؛ یونیکسی که در اواخر دهه ۱۹۶۰ در آزمایشگاههای بل توسعه یافت. در آن زمان کامپیوترهای شخصی وجود نداشتند و محاسبات روی کامپیوترهای بزرگ مینفریم یا مینیکامپیوترها انجام میشد. سیستمعاملها برای کاربران حرفهای و باتجربه طراحی شده بودند. بهخصوص یونیکس بهعنوان سیستمی «برای برنامهنویسان، توسط برنامهنویسان» شناخته میشد.
اگرچه تلاشهای زیادی شده تا با رابطهای کاربری دوستانهتر، دسترسی به سیستمهای شبیه یونیکس را آسانتر کنند، ترمینال لینوکس هنوز ریشههای فنی خود را حفظ کرده است. برخلاف محیطهای گرافیکی مدرن، شِل لینوکس از شما در برابر خودتان محافظت نمیکند. اگر بخواهید فایلی را حذف یا تغییر دهید، حتی اگر فایل مهمی باشد و دسترسی لازم را داشته باشید، اجازه میدهد این کار را انجام دهید حتی اگر سیستم آسیب ببیند.
وقتی فایلی را در ترمینال حذف میکنید، دیگر نمیتوانید آن را بازیابی کنید. فایل برای همیشه از بین میرود مگر اینکه نسخه پشتیبان داشته باشید.
همچنین ممکن است طوری تنظیم کنید که نتوانید وارد سیستم شوید، ترمینال را باز کنید یا حتی کامپیوتر را بوت کنید اگر مراقب نباشید. ممکن است بتوانید سیستم را از طریق نسخههای پشتیبان بازیابی کنید یا با بوت کردن از طریق فلش USB آن را تعمیر کنید. در بدترین حالت ممکن است مجبور شوید سیستمعامل را دوباره نصب کنید. در لینوکس بسیاری از مشکلات قابل حل هستند، اما بهتر است وقت خود را صرف کارهای مفید کنید تا رفع مشکلات دستگاه.
چه دستورات خطرناکی وجود دارند؟
باید مراقب دستوراتی باشید که ممکن است منجر به از دست رفتن دادهها شوند.
مهمترین دستوری که باید مراقب آن باشید، دستور rm
است که فایلها را در ترمینال حذف میکند. همانطور که قبلاً گفتم، وقتی با rm
فایلی را حذف میکنید، آن فایل برای همیشه از بین میرود. در لینوکس سطل زباله یا بازیابی فایل وجود ندارد و نمیتوانید فایل حذف شده را برگردانید، حتی اگر اشتباه تایپی کرده باشید.
استفاده از دستور rm
روی فایلهای مهم مانند /etc/very_important_file.conf
میتواند سیستم شما را بهشدت آسیبپذیر کند.
بدتر از آن، سیستمعامل میتواند مکان فیزیکی فایل را روی درایو بازنویسی کند که باعث میشود بازیابی آن غیرممکن شود. میتوانید از خدمات بازیابی داده کمک بگیرید یا خودتان تلاش کنید، اما معمولاً این فرآیند هزینهبر و زمانبر است و برای فایلهای کوچک صرفه اقتصادی ندارد، بنابراین بهتر است تا حد امکان از روشهای دیگر استفاده کنید.
دستور خطرناک دیگر: dd
دستور dd
که برای کپی بیتها از یک فایل به فایل دیگر استفاده میشود، به «ویرانگر دیسک» معروف است. یکی از مشکلات رایج اشتباه گرفتن مبدا و مقصد است. اگر این دو را اشتباه بگیرید، هر چیزی که روی آن دستگاه بوده است ممکن است به طور کامل پاک شود.
بدتر از همه این است که سیستمعامل میتواند مکان فیزیکی فایل را روی دیسک بازنویسی کند و این کار بازیابی فایل را غیرممکن میسازد. ممکن است بخواهید برای بازیابی دادهها از خدمات تخصصی استفاده کنید یا خودتان اقدام کنید، اما این فرایند معمولاً زمانبر و هزینهبر است و برای یک فایل کوچک ارزشش را ندارد، بنابراین بهتر است هر زمان ممکن است از روشهای ایمنتر استفاده کنید.
دستور دیگری که میتواند باعث از دست رفتن عمده دادهها شود، دستور dd
است. این دستور بیتها را از یک فایل به فایل دیگر کپی میکند، اما به دلیل قدرت و خطرش به «ویرانگر دیسک» معروف شده است. یکی از اشتباهات رایج کاربران، جابجایی محل مبدأ و مقصد است؛ اگر این دو را اشتباه بگیرید، ممکن است همه دادههای روی آن دستگاه را برای همیشه از دست بدهید.
باید مراقب تغییر دادن فایلهای سیستمی هم باشید. لینوکس برای بسیاری از کارها مثل اتصال به اینترنت و بوت شدن سیستم به این فایلها وابسته است. اگر بدون دانش کافی چیزی را تغییر دهید یا حتی اشتباهی تایپی کنید، ممکن است سیستم را ناامن کنید یا بدتر از آن، سیستمتان دیگر بوت نشود.
فایلهای راهاندازی شِل (Shell startup files) هم اگر خراب شوند ممکن است باعث شوند که نتوانید شِل را باز کنید. این نکتهای است که من سخت تجربهاش کردم.
اگر ندانید چه کار میکنید، ممکن است سیستمتان را به شدت خراب کنید.
تا جای ممکن بهعنوان کاربر عادی کار کنید
اولین خط دفاعی در مقابل دستورات یا تغییرات اشتباه، کار کردن بهعنوان کاربر عادی است. بیشتر مواقع فقط با دسترسی کاربر عادی کار کنید. تنها زمانی که نیاز به تغییرات سراسری سیستم دارید، مثلاً نصب نرمافزار جدید یا تغییر فایلهای تنظیمات، از دستورهای sudo
یا su
استفاده کنید، بسته به نوع سیستم.
محافظتهای مربوط به فایلها و کاربران باعث جلوگیری از تغییرات ناخواسته میشود. به علاوه، وقتی باید sudo
تایپ کنید، مجبور میشوید فکر کنید دارید چه کاری انجام میدهید. سعی کنید وقتی خسته یا عجول هستید تغییرات بزرگ انجام ندهید.
عملیات پرخطر را دوباره و دوباره بررسی کنید
وقتی میدانید کاری که میخواهید انجام دهید ممکن است پرخطر باشد، با دقت و آرامش انجامش دهید و کاملاً به آن فکر کنید. اگر میخواهید فایلی را حذف کنید، قبل از اجرای دستور مطمئن میشوید که دستور درست است. اگر دارید فایلهای سیستمی را ویرایش میکنید، قبل از ذخیره و ریبوت، دوباره همه چیز را برای اشتباهات بررسی کنید.
سعی کنید تا وقتی واقعاً نیاز نباشد تغییرات بزرگ روی سیستم انجام ندهید. میدانم وقتی تازهکار هستید ممکن است وسوسه شوید همه چیز را تغییر دهید، اما بسیاری از کاربران تا وقتی مشکلی پیش نیاید دست به تغییر نمیزنند و وقتی مشکل پیش آمد دنبال راهحل در فرومها میگردند.
همیشه یک ترمینال پشتیبان آماده داشته باشید
وقتی تغییراتی در فایلهای راهاندازی شِل مثل .bashrc
برای Bash یا معمولتر .zshrc
برای Zsh ایجاد میکنید، یک ترمینال دیگر آماده داشته باشید. ابتدا تغییرات را در یک ترمینال با دستور زیر بارگذاری کنید:
source .zshrc
سپس آن ترمینال را برای هرگونه پیام خطا یا مشکلی که باعث شود ترمینال کار نکند، زیر نظر بگیرید. ترمینال دیگر را به عنوان یک محیط «سالم و مطمئن» نگه دارید که اگر لازم شد، بتوانید تغییرات را در آن بازگردانید. این کار باعث آرامش خیال میشود اگر خیلی زیاد از ترمینال استفاده میکنید.
از فایلهای مهم نسخه پشتیبان بگیرید
یک کار ضروری این است که از فایلهای مهم خود، چه در هر سیستمی که هستید، نسخه پشتیبان تهیه کنید.
وقتی تغییری در فایلهای سیستمی میدهید،یک نسخه سریع محلی از وضعیت سالم فعلی با پسوند .bak
بسازید:
cp example.conf example.conf.bak
اگر اشتباهی کردید و سیستم هنوز بوت میشود، به راحتی میتوانید نسخه پشتیبان را دوباره جایگزین فایل تغییر یافته کنید:
cp example.conf.bak example.conf
این کار فایل تغییر یافته را با نسخه اصلی بازنویسی میکند.
پشتیبان گرفتن از هر چیزی که نمیخواهید از دست بدهید، بهویژه روی حافظههای خارجی یا درایوهای شبکهای هم ایده خوبی است.
نجات سیستم خراب
اگر اشتباهی انجام دادید، همه چیز از دست نرفته است. کارهایی هست که میتوانید انجام دهید. اگر نسخه پشتیبان داشته باشید، میتوانید به سادگی آنها را بازیابی کنید و اشتباه پیش آمده یا فایلهایی که به اشتباه حذف شدهاند را برگردانید. تنها مشکل این است که باید متعهد به گرفتن نسخه پشتیبان باشید.
همچنین بهتر است یک رسانه بوتابل مانند یک فلش USB که حاوی سیستم نصب لینوکس است را آماده داشته باشید. بسیاری از این رسانهها ابزارهایی برای تشخیص سختافزار دارند. اغلب اوقات میتوانید درایو هارد یا SSD لینوکس خود را سوار (mount) کنید و از طریق این رسانه بوت به تغییرات لازم بپردازید تا سیستم را به حالت کاری بازگردانید.
اگر واقعاً سیستمتان خراب شده باشد، در آخرین راهکار میتوانید آن را پاک کنید و لینوکس را دوباره نصب کنید. در تصویر بالا منوی بازیابی دبیان در برنامه نصب نشان داده شده است.
اگرچه این روشها درمانهای خوبی هستند، اما من دریافتهام که پیشگیری بسیار بهتر است. اینها مانند برنامهریزی برای مواقع بحراناند؛ شما ترجیح میدهید هیچگاه مجبور به استفاده از آنها نشوید، ولی خوشحال میشوید که چنین گزینههایی دارید.
بهترین پیشگیری برای من پیغامی است که وقتی برای اولین بار دستور sudo
را اجرا میکنید دریافت میکنید. یکی از تذکرات آن این است که «قبل از تایپ فکر کنید.» این درس مهمی است که هنگام کار با خط فرمان لینوکس باید به خاطر بسپارید.
اگر تازهکار هستید و با ترمینال لینوکس آشنا نیستید، بهتر است در اجرای دستورات مراقب باشید. با کمی دقت و آیندهنگری میتوانید از فاجعههایی جلوگیری کنید که ممکن است مجبور شوید سیستم عامل خود را دوباره نصب کنید.