۱۵ نکته و ترفند خط فرمان لینوکس – راهنمای کاربردی


لینوکس سیستم عاملی است که کل وب از آن نیرو میگیرد. یادگیری لینوکس برای توسعهدهندگان امری ضروری است و باید دست کم ایدهای در مورد طرز کار لینوکس و شیوه استفاده از آن داشته باشند. در این مقاله، با 15 نکته و ترفند خط فرمان لینوکس آشنا خواهیم شد. پیش از ادامه بحث باید اعلام کنیم که در این مقاله فرض شده است شما از bash استفاده میکنید. bash یک مفسر فرمان است که به صورت پیشفرض در همه توزیعهای عمده لینوکس عرضه میشود، بنابراین به جز در مواردی که خودتان به صورت دستی آن را تغییر داده باشید، bash به عنوان مفسر فرمان پیشفرض خواهد بود.
علامت تعجب دوبل (!!)
مسلماً بارها پیش آمده است که پس از نوشتن و اجرای یک فرمان بلند متوجه شدهاید که فراموش کردهاید عبارت sudo را در ابتدای فرمان وارد کنید.
در این موارد میتوانید با وارد کردن عبارت !!sudo در خط فرمان، کاری کنید که به جای !! دستور قبلی واردشده در خط فرمان اجرا شود:
بازگشت به عقب
هر کس میداند که با استفاده از دستور ..cd میتوان به یک دایرکتوری بالاتر رفت؛ اما شاید ندانید که با وارد کردن دستور – cd میتوانید به دایرکتوری قبلی بازگردید:
رفتن به خانه
احتمالاً میدانید که دستور ~ علامت اختصاری پوشه home است. اما ترفندی نیز وجود دارد که افراد کمی میدانند. اگر cd را بدون هیچ چیز اضافی در خط فرمان وارد کنید، به دایرکتوری home خواهید رفت:
جستجو کردن
همگان میدانند که با فشردن کلیدهای جهتی، میتوان در سوابق فرمانهای واردشده در خط فرمان جستجو کرد. اغلب توسعهدهندگان تنبل هستند و گاهی تا 15 بار کلید جهت بالا را میفشارند تا دستور ls را که قبلاً وارد کرده بودند، پیدا کنند. اما به این منظور میتوان مسیر آسانتری نیز انتخاب کرد و آن کارکرد جستجوی معکوس است. با فشردن کلیدهای Ctrl+R و وارد کردن چند کاراکتر اولیه یک فرمان، جستجوی معکوس اقدام به تکمیل کردن فرمان شما میکند و آن را با نمونهای که در تاریخچه خود دارد تطبیق میدهد:
استفاده مجدد از یک آرگومان
ترفند کارآمد دیگری که معرفی میکنیم، میانبر $! است. این میانبر در زمان وارد کردن یک فرمان با آرگومانهای فرمان قبلی جایگزین میشود. این ترفند برای نمونه در مواردی مفید است که میخواهید یک پوشه بسازید و به داخل آن cd کنید:
کپی کردن و چسباندن
احتمالاً متوجه شدهاید که دستورهای Ctrl+C و Ctrl+V به طور معمول در ترمینال لینوکس کار نمیکنند. در اغلب موارد این دستورها با Ctrl+Shift+C و Ctrl+Shift+V جایگزین شدهاند. دلیل این امر آن است که Ctrl+C از قبل برای خاتمه دادن برنامه اجرایی کنونی مورد استفاده قرار میگرفته است.
احراز هویت در SSH بدون رمز عبور
اگر به طور مکرر در یک سرور SSH لاگین میکنید، وارد کردن رمز عبور در هر بار کاری آزاردهنده خواهد بود. اما در صورتی که سیستمهای میزبان و سرور با همدیگر گواهینامه امنیتی مبادله کنند، این مشکل قابل حل است.
ابتدا باید یک گواهینامه امنیتی ایجاد کنیم. به این منظور دستور ssh-keygen را اجرا کنید. این دستور یک جفت کلید خصوصی/عمومی ایجاد کرده و در مسیر ssh/id_rsa./~ ذخیره میکند. اکنون باید کلید عمومی را با دستور زیر به سرور کپی کنیم:
ssh-copy-id [email protected]_host
در این زمان از شما خواسته میشود که رمز عبور سرور را وارد کنید تا کلید عمومی کپی شود. سپس میتوانید به نیاز به وارد کردن رمز عبور از آن سیستم خاص به سرور لاگین کنید.
نکته: این روش به هیچ وجه امنیت کمتری نسبت به روش احراز هویت معمولی ندارد. حتی در صورتی که سیستم لوکال شما امنیت خوبی داشته باشد، این روش بسیار مطمئنتر است. در این حالت، به جز در مواردی که کلید خصوصی شما افشا شود، هیچ روشی برای لاگین به SSH وجود نخواهد داشت.
حفظ حالت اجرایی برنامه در پسزمینه
اگر برنامهای را در ترمینال اجرا کردهاید، به محض این که آن «نشست» (Session) ترمینال خاتمه یابد، برنامه بسته خواهد شد. برای جلوگیری از این وضعیت و حفظ برنامه در حال اجرا باید از دستور nohup استفاده کنید که اختصاری برای عبارت no hang up است.
برای نمونه برای انتقال فایلها از سرور با استفاده از دستور scp، برای این که مطمئن باشیم، این انتقال حتی در صورتی که به صورت تصادفی پنجره ترمینال بسته شد، ادامه خواهد یافت، میتوانیم از دستور زیر استفاده کنیم:
nohup scp very-big-file.mkv [email protected]:~/very-big-file.mkv
دستور nohup یک فایل به نام nohup.out ایجاد میکند که خروجی دستور را ذخیره میکند.
پاسخ مثبت
اگر برخی اسکریپتهای bash برای خودکارسازی کارهای خود مینویسید، ممکن است از وارد کردن عبارت yes برای همه دستورها و اجرا کردن آنها خسته شوید. برای گریز از این پاسخ مثبت به همه دستورها میتوانید از عبارت | yes به صورت زیر استفاده کنید:
yes | apt-get update
اگر میخواهید پاسخ no بدهید، میتوانید از عبارت | yes no استفاده کنید.
لاگین به عنوان root
با این که این رویه مناسبی نیست، اما گاهی چاره دیگری وجود ندارد. با این حال، بهترین گزینه بعدی استفاده از sodu su است. دستور su شما را به عنوان کاربر root وارد سیستم میکند و sudo نیز به عنوان root اجرا خواهد شد. از این رو نیازی به وارد کردن رمز عبور root برای آن نخواهید داشت. به علاوه در برخی توزیعها رمز عبور root غیر فعال شده است و از این رو این تنها گزینه ممکن است:
لاگآوت
سریعترین روش برای خروج از SSH ،SFTP ،root یا هر نشست ترمینال دیگر استفاده از کلیدهای ترکیبی Ctrl+D است. این دستور در مواردی که باید اتصالهای SSH زیادی را مدیریت کنید و امکان وارد کردن دستور exit وجود ندارد، مفید خواهد بود.
فایلهای مشترک
اگر حریم خصوصی برای شما مهم است، این ترفند مناسبِ شما است. دستور rm به طور گسترده برای حذف کردن فایلها استفاده میشود، اما این دستور در عمل فایلها را پاک نمیکند. حتی پس از استفاده از این دستور، امکان استخراج دادهها با استفاده از نرمافزار خاص وجود دارد. برای حذف کامل فایل و پر کردن جای آن با کاراکترهای صفر باید از دستور shred به صورت زیر استفاده کنید:
shred -zvu <filename>
حفاظت از فایلها با رمز عبور در VIM
اگر جزء آن دسته از افراد هستید که از vim استفاده میکنید، باید بدانید که امکان حفاظت از فایلها در این نرمافزار با استفاده از تعیین رمز عبور وجود دارد. به این منظور باید از دستور زیر استفاده کنید:
vim +X filename
همچنین میتوانید داخل vim مستقیماً دستور x: را وارد کنید.
لیست کردن کاربران
اگر دغدغههای حریم خصوصی دارید، ممکن است بخواهید بررسی کنید چه کسی در یک زمان خاص وارد سیستم شده است. به این منظور میتوانید از دستور w برای لیست کردن همه کاربرانی که هم اینک در سیستم وارد شدهاند استفاده کنید. به علاوه امکان نوشتن یک اسکریپت خاص نیز وجود دارد که این دستور را در زمانهای معین اجرا کرده و در صورت وجود مورد مشکوک، نتایج را به یک ایمیل ارسال میکند.
نمایش اطلاعات سیستم
برای نمایش اطلاعات سیستم یک روش زیبا، نصب و استفاده از فرمان screenfetch است:
نکته اضافی
اگر حس تنهایی میکنید، میتوانید با یک گاو جالب صحبت کنید. برای نمونه برای این که عبارت Hello world را بیان کنید، میتوانید از دستور زیر کمک بگیرید:
echo "Hello world" | cowsay
سخن پایانی
از این که این راهنما را تا انتها مطالعه کردید، متشکریم. امیدواریم این مقاله مورد توجه شما قرار گرفته باشد. هر گونه نظر یا پیشنهاد خود را میتوانید در بخش نظرات این نوشته با ما و دیگر خوانندگان مجله فرادرس در میان بگذارید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای لینوکس
- مجموعه آموزشهای برنامهنویسی
- آموزش لینوکس مقدماتی – ساختار داخلی و ترمینال لینوکس
- ترمینال لینوکس و آنچه برای شروع به کار با آن باید بدانید
- آموزش ترمینال لینوکس — راهنمای شروع به کار
==