دستورات لینوکس کاربردی از مبتدی تا پیشرفته – ۵۰ دستور مهم
روز به روز به طرفداران سیستم عامل «اُپن سورس» (منبع آزاد) لینوکس افزوده میشود. افراد بسیاری هستند که به طور مرتب از دستورات لینوکس استفاده میکنند و لازم است فهرست، مرجع یا به اصطلاح تقلبنامهای برای دستورات لینوکس که در هر توزیع لینوکس معمولاً یکسان هستند را در اختیار داشته باشند تا در صورت نیاز بتوانند هر زمان که خواستند به آن دسترسی پیدا کنند. به همین منظور در این مطلب بیش از ۵۰ دستور لینوکس لازم و ضروری معرفی و همراه با مثال آموزش داده شدهاند. دستوراتی که در فهرست مطالب این نوشته آمدهاند، از جمله مهمترین و پرکاربردترین دستورات لینوکس هستند. با کلیک کردن روی هر یک از آنها میتوان به بخش مربوطه رفت و آموزش دستور مورد نظر و مثالش را مشاهده کرد.
دستور ls در لینوکس برای فهرست کردن شاخه ها
دستور ls یکی از پر استفادهترین دستورات لینوکس به حساب میآید که از آن برای فهرست کردن فایلها و پوشهها یا «شاخهها» (دایرکتوریها) در «شاخه کاری کنونی» (Current Working Directory) استفاده میشود.
در تصویر زیر، مثالی برای دستور ls در لینوکس ارائه شده است.
همانطور که در تصویر بالا ملاحظه میشود، استفاده از دستور ls در لینوکس به تنهایی و بدون هیچ آرگومانی، در خروجی تمام فایلها و شاخههای موجود در شاخه کاری کنونی را نمایش میدهد. دستور ls در لینوکس در خصوص نمایش دادهها در خروجی قابلیت انعطاف زیادی را در اختیار کاربران قرار میدهد.
دستور pwd برای نمایش شاخه کاری کنونی
دستور pwd به کاربر لینوکس امکان میدهد تا بتواند شاخه کاری کنونی را در ترمینال لینوکس چاپ کند و از این طریق میتوان متوجه شد که در حال حاضر در چه مسیری قرار داریم.
دستور pwd ساده و ابتدایی، اما در حد خودش بسیار کاربردی و مفید است.
user@TEST-PC:~$ pwd
/home/Example
البته معمولاً «علامت اعلان ترمینال» (Terminal Prompt) باید شاخه فعلی را به طور کامل نمایش دهد و در این صورت نیازی به استفاده از دستور pwd نخواهیم داشت. اما در صورتی که این چنین نبود، از دستور pwd در لینوکس میتوان برای مشاهده سریع شاخهای استفاده کرد که در آن لحظه داخل آن قرار داریم. کاربرد دیگر این دستور نیز مربوط به زمانی میشود که داریم اسکریپتهایی میسازیم و در آنها استفاده از این دستور میتواند به ما اجازه دهد شاخهای را پیدا کنیم که اسکریپت مربوطه در آن ذخیره شده است.
دستور cd برای رهیابی و حرکت در شاخه های مختلف
در حین کار با هر ترمینال لینوکسی، حرکت کردن در داخل شاخهها یا همان دایرکتوریهای مختلف به میزان زیادی ضرورت محسوب میشود. دستور cd یکی از دستورات لینوکس بسیار مهم به حساب میآید که باید شناخت کافی در خصوص آن وجود داشته باشد.
دستور cd به کاربران لینوکس کمک میکند در میان شاخههای مختلف حرکت کنند و از این شاخه به آن شاخه بروند. برای استفاده از این دستور تنها کافی است عبارت cd را تایپ کنیم و بعد از یک فاصله، مسیر شاخهای را بنویسیم که میخواهیم در آن قرار بگیریم.
root@ubuntu:~# cd
برای مثال همچنین میتوانیم ابتدا با استفاده از دستور pwd متوجه شویم که چه شاخههایی در شاخه فعلی قرار دارند و سپس با دستور cd به شاخه مورد نظر برویم.
همانطور که در دستور فوق میتوان ملاحظه کرد، به سادگی تنها دستور cd /etc/
تایپ شده است تا وارد شاخه /etc
شویم. در ابتدا هم از دستور pwd استفاده شده است تا شاخه کاری فعلی چاپ شود.
دستور mkdir برای ایجاد دایرکتوری در لینوکس
دستور mkdir به کاربر لینوکس امکان میدهد تا شاخهها یا همان دایرکتوریهایی را از داخل ترمینال ایجاد کند. سینتکس پیشفرض این دستور به این صورت است که ابتدا عبارت «mkdir» را تایپ و بعد از یک فاصله، نام دایرکتوری مورد نظری که میخواهیم بسازیم را وارد میکنیم.
سینتکس mkdir در ادامه آمده است.
root@ubuntu:~# mkdir
همچنین بعد از ایجاد پوشه (شاخه) یا همان دایرکتوری، میتوان با استفاده از دستور ls مشاهده کرد که دایرکتوری مربوطه در شاخه کنونی ایجاد شده است.
همانطور که میتوان در تصویر بالا ملاحظه کرد، شاخه JournalDev
با دستور ساده mkdir ایجاد شده است.
دستورات لینوکس cp و mv برای کپی کردن فایل ها و جابجایی یا تغییر نام آن ها
دستورات لینوکس cp و mv معادل با دستورات «کُپی/پِیست» (Copy/Paste) و «کات/پیست» (Cut/Paste) در ویندوز هستند. اما چون لینوکس واقعاً دستوری برای تغییر نام فایلها ندارد، از دستور mv برای تغییر نام فایلها و فولدرها یا همان پوشهها هم استفاده میشود.
آموزش دستور لینوکس cp با مثال
سینتکس دستور cp به صورت زیر است.
root@ubuntu:~# cp
میتوان ابتدا از دستور ls برای مشاهده پوشه یا فایل مورد نظر در دایرکتوری کنونی استفاده کرد و پس از حصول اطمینان از وجود فایل یا پوشه مربوطه در آن محل، با استفاده از دستور cp فایل مورد نظر را کپی کنیم.
در دستور بالا، یک کپی از فایلی به نام «Sample» گرفته و این کپی با نام «Sample-Copy» در همین دایرکتوری کنونی ذخیره شده است. حال در زیربخش بعدی مشخص میشود اگر از دستور mv به همین شکل استفاده شود، چه اتفاقی رخ خواهد داد.
آموزش دستور لینوکس mv با مثال
سینتکس دستور mv در ادامه آمده است.
root@ubuntu:~# mv
حالا اگر همین دستور را در مثال قبلی به جای دستور cp اجرا کنیم، چه اتفاقی میافتد؟
در تصویر بالا، مشاهده میشود که چون عملیات Move یا همان انتقال فایل «Sample» در داخل همان دایرکتوری انجام شده است، این دستور به عنوان عملیات تغییر نام عمل میکند و نام فایل Sample به Sample-Copy تغییر داده میشود.
دستور rm برای حذف فایل ها یا پوشه ها در لینوکس
در بخش قبلی، فایل «Sample» با استفاده از دستور mv حذف، اما به جای آن فایل «Sample-Copy» ایجاد شد. اما اگر بخواهیم فایل یا پوشهای را به طور کامل حذف کنیم، میتوان از دستور rm استفاده کرد. دستور rm یکی از دستورات مهم لینوکس به حساب میآید و حتماً باید آن را یاد گرفت.
سینتکس مربوطه برای استفاده از دستور rm در ادامه آمده است.
root@ubuntu:~# rm root@ubuntu:~# rm -r
در کدهای فوق، ۲ نوع سینتکس مختلف مشاهده میشود که اولی بدون آرگومان و برای حذف فایلها مورد استفاده قرار میگیرد و دومی به همراه آرگومان -r
و به منظور حذف پوشهها یا همان دایرکتوریها به کار گرفته میشود.
در تصویر فوق هم مشخص است که برای پاک کردن هر دایرکتوری، باید حتماً آرگومان -r
را هم به دستور rm اضافه کنیم. بدون این آرگومان، دستور rm در لینوکس دایرکتوریها را حذف نخواهد کرد.
حذف فایل در لینوکس از طریق ترمینال — راهنمای کاربردی
دستور touch برای ایجاد فایل های خالی
برای ایجاد فایل جدید در لینوکس از دستور touch استفاده میشود. وارد کردن کلمه کلیدی touch به دنبال نام فایل مربوطه، فایلی خام را در دایرکتوری فعلی ایجاد خواهد کرد.
سینتکس این دستور به صورت زیر است.
root@ubuntu:~# touch
دستور ln برای ایجاد پیوندها یا همان میانبُرهای نمادین به فایل های دیگر
برای ایجاد پیوندی (یا همان لینکی) به فایل دیگر، از دستور ln در لینوکس استفاده میشود. این یکی از دستورات مهم لینوکس است که اگر قصد دارید به عنوان مدیر لینوکس یا همان ادمین لینوکس فعالیت کنید، باید آن را به خوبی بشناسید.
سینتکس مربوطه برای استفاده از این دستور در ادامه آمده است.
root@ubuntu:~# ln -s
سینتکس دستور لینوکس ln در خط کد بالا آمده است. حال در تصویر زیر مثالی ارائه شده است تا بتوان درک بهتری نسبت به دستور ln در لینوکس بدست آورد.
سینتکس پایه دستور ln شامل استفاده از پارامتر -s
میشود، تا بتوان پیوندی نمادین یا همان «پیوند نرم» (Soft Link) ایجاد کرد.
دستورات لینوکس echo ،cat و less برای نمایش محتوای فایل، چاپ متن و نمایش خروجی های صفحه بندی شده
وقتی بخواهیم محتوای فایلی را در خروجی چاپ کنیم یا بخواهیم هر آنچه مورد نظر ما است را در خروجی ترمینال نمایش دهیم، از دستورات لینوکس cat یا echo استفاده میکنیم.
در ادامه، نحوه استفاده ابتدایی از هر یک از این ۲ دستور در زیربخشهایی جداگانه آموزش داده شده است.
سینتکس دستور cat در لینوکس
سینتکس دستور cat در ادامه آمده است.
root@ubuntu:~# cat
مثال دستورات لینوکس cat و echo پس از پرداختن به سینتکس دستور echo به همراه یکدیگر ارائه شده است تا بتوان تفاوت هر یک را در کنار هم مشاهده کرد.
سینتکس دستور echo در لینوکس
سینتکس دستور echo نیز به صورت زیر است.
root@ubuntu:~# echo
حال در ادامه مثالی برای هر ۲ دستور ارائه شده است. همچنین پس از آن نیز به آموزش مقدماتی دستور لینوکس less پرداختهایم.
مثال دستورات لینوکس cat و echo
در مثالی که تصویر آن در ادامه آمده، مقداری متن به فایل جدیدی که پیش از این در مثالهای قبلی ساختیم اضافه شده است.
همانطور که در مثال بالا میتوان مشاهده کرد، وقتی از دستور cat برای فایل «New-File» استفاده میشود، محتوای این فایل در ترمینال چاپ خواهد شد. سپس وقتی از دستور echo استفاده میکنیم، این دستور به سادگی تنها هر آنچه را چاپ میکند که بعد از یک فاصله به دنبال این دستور آمده است.
دستور لینوکس less چیست ؟
دستور less در لینوکس زمانی مورد استفاده قرار میگیرد که خروجی چاپ شده با هر دستوری بزرگتر از فضای صفحه نمایش باشد و به اسکرول کردن نیاز داشته باشیم. دستور less به کاربر اجازه میدهد تا خروجی را تجزیه و در طول آن با استفاده از کلیدهای «Enter» یا «Space» پیمایش کنیم.
روش ساده و آسان برای انجام این کار، استفاده از عملگر یا همان اپراتور «میله» (Pipe) یا همان کاراکتر خط عمودی یعنی «|» است. برای یادگیری سینتکس و نحوه استفاده از دستور less به همراه اپراتور میله، مثالی در ادامه آمده است.
root@ubuntu:~# cat /boot/grub/grub.cfg | less
دستور man برای دسترسی به راهنمای تمام دستورات لینوکس چیست ؟
دستور man دستوری بسیار کاربردی است که باید حتماً آن را بشناسیم. وقتی در حال کار با لینوکس هستیم، بستهها یا همان پکیجهایی که دانلود میکنیم معمولاً قابلیتها و امکانات متعددی دارند. دانستن و آشنایی داشتن با همه این امکانات و قابلیتها غیرممکن است. «صفحات راهنما» که میتوانیم به آنها «man page» بگوییم (man مخفف manual به معنی سند راهنما است) راهی بسیار بهینه و مناسب برای شناخت قابلیتهای اکثر بستههایی هستند که میتوان آنها را با استفاده از ابزارهای «مدیریت بسته» یا همان «Package Managerها» دانلود کرد.
سینتکس دستور man در لینوکس در ادامه آمده است.
root@ubuntu:~# man
دستورات uname و whoami در لینوکس برای دریافت اطلاعات سیستم عامل و نام کاربری فعال کنونی
با استفاده از دستورات لینوکس uname و whoami کاربران میتوانند برخی از اطلاعات ابتدایی را بدست آورند که معمولاً هنگام کار روی چند سیستم مورد نیاز خواهند بود. به طور کلی، در صورتی که کاربر تنها با یک کامپیوتر واحد کار کند، به اندازه شخصی که به عنوان ادمین شبکه یا همان مدیر شبکه فعالیت میکند، چندان به این دستورات لینوکس نیاز نخواهد داشت.
حال در ادامه سینتکس، خروجی و نحوه استفاده از یک از این ۲ دستور لینوکس شرح داده شده است.
سینتکس دستور uname در لینوکس
سینتکس دستور uname که برای نمایش اطلاعات پایه سیستم عامل مورد استفاده قرار میگیرد، در ادامه آمده است.
root@ubuntu:~# uname -a
مثال مربوط به این دستور پس از ارائه سینتکس دستور whoami ارائه میشود. حال در ادامه به آموزش سینتکس دستور whoami میپردازیم.
تشخیص حساب کاربری فعال در لینوکس — راهنمای کاربردی
سینتکس دستور whoami در لینوکس
همانطور که پیشتر هم بیان شد، دستور whoami برای چاپ Username کاربر کنونی در خروجی استفاده میشود. سینتکس این دستور بسیار ساده است و برای اجرای آن تنها کلمه «whoami» را در ترمینال وارد میکنیم.
root@ubuntu:~# whoami
مثالی ساده برای دستورات لینوکس uname و whoami
به منظور درک بهتر و آشنایی بیشتر با دستورات لینوکس uname و whoami مثالی ساده در تصویر زیر ارائه شده است.
دستورات لینوکس zip ،tar و unzip برای Extract کردن ، فشرده سازی و Unzip
در این بخش هر یک از دستورات لینوکس zip ،tar و unzip در زیربخشهایی به طور جداگانه شرح داده شدهاند.
دستور tar برای استخراج و فشرده سازی فایل ها در لینوکس
دستور tar در لینوکس برای ایجاد و «استخراج« (Extract) کردن فایلهای «بایگانی» (آرشیو) شده در لینوکس استفاده میشود. میتوان چندین فایل بایگانی را با استفاده از دستور tar استخراج یا Extract کرد. برای ایجاد آرشیو، از پارامتر -c
استفاده میشود و برای Extract کردن یک بایگانی، از پارامتر -x
در لینوکس استفاده میشود.
دستور tar در لینوکس — راهنمای جامع
سینتکس دستور tar در لینوکس
در ادامه، سینتکس مربوط به هر یک از ۲ عملیات «فشردهسازی» (Compress) و «استخراج» (خارج کردن از حالت فشرده) به ترتیب آمده است.
#Compress root@ubuntu:~# tar -cvf #Extract root@ubuntu:~# tar -xvf
مثالی برای دستور tar در لینوکس
در تصویر زیر مثالی برای دستور tar در لینوکس آمده است و توضیحات مربوطه نیز پس از تصویر ارائه میشود.
در خط اول مثال بالا، آرشیوی به نام «Compress.tar» ایجاد شده است و فایلهای «New-File» و «New-File-Link» در آن قرار داده شدهاند. در دستور بعدی، آن فایلها با استفاده از همان دستور یعنی tar استخراج و در واقع از حالت فشرده خارج شدهاند. با دستور ls میتوان این مسئله را بررسی کرد. حال در ادامه به آموزش دستورات لینوکس zip و unzip پرداخته شده است.
زیپ و آنزیپ کردن فایل ها با ترمینال لینوکس — از صفر تا صد
آموزش دستورات لینوکس zip و unzip
هر دوی این دستورات بسیار سر راست و آسان هستند. میتوان از آنها بدون هیچ پارامتری استفاده کرد و مطابق انتظار کار خواهند کرد. در ادامه سینتکس این دو دستور به ترتیب آمده است.
root@ubuntu:~# zip root@ubuntu:~# unzip
مثال دستورات لینوکس zip و unzip
در تصویر زیر، مثالی برای درک بهتر نحوه استفاده مقدماتی از ۲ دستور zip و unzip آمده است.
در مثال بالا واضح است به دلیل اینکه ۲ فایل مربوطه از قبل در آن شاخه وجود داشتهاند، دستور unzip پیش از آنکه این ۲ فایل را بازنویسی کند، از کاربر کسب مجوز میکند.
باز کردن فایل های فشرده tar.gz. یا tar.bz2. روی لینوکس — راهنمای کاربردی
grep در لینوکس به منظور جستجو برای رشته ای در داخل خروجی
در صورتی که کاربر لینوکس قصد داشته باشد رشته خاص موجود در داخل یک خروجی را جستجو کند، میتواند از دستور grep در لینوکس استفاده کند. به وسیله کاراکتر میله «|» دستور grep را روی خروجی مربوطه اجرا و اِعمال میکنیم و در نتیجه رشته مورد نیاز قابل استخراج خواهد بود.
سینتکس دستور لینوکسی grep در ادامه آمده است.
root@ubuntu:~# | grep ""
برای یادگیری بهتر و دقیقتر دستور grep در ادامه مثالی در تصویر زیر ارائه شده است.
همانطور که در مثال بالا ملاحظه میشود، با استفاده از دستور grep تنها خطی از متنهای داخل فایل «New-File» در خروجی چاپ میشود که حاوی کلمه «learn» است. مثال بالا تنها نمونه سادهای از کاربرد دستور grep در لینوکس به حساب میآید، برای یادگیری بیشتر میتوان از دورهها و فیلمهای آموزش لینوکس استفاده کرد.
دستورات head و tail در لینوکس برای نمایش ۱۰ خط اول و آخر
دستورات لینوکسی head و tail معمولاً زمانی مفید و کاربردی هستند که میخواهیم فایلهای بزرگی را در خروجی چاپ کنیم و ببینیم.
برای آموزش دستورات head و tail در لینوکس در این بخش، از فایلی به نام «Words» استفاده شده است که در آن تعداد کلمات زیادی به ترتیب حروف الفبا مرتبسازی شدهاند.
دستور head ده خط ابتدایی را از این فایل خروجی خواهد داد و دستور tail نیز ۱۰ خط آخر این فایل را خروجی خواهد داد. خروجیها در این دو دستور شامل خطوط خالی هم میشوند و اینطور نیست که فقط خطوط حاوی متن چاپ شوند. سینتکس دستورات لینوکس head و tail در ادامه به ترتیب آمده است.
root@ubuntu:~# head root@ubuntu:~# tail
در تصویر زیر، استفاده از دستور head و خروجی آن برای فایل «Words» آمده است.
همانطور که ملاحظه میشود، دستور head در تصویر بالا ۱۰ خط را از بالای فایل «Words» نمایش داده است که ۵ تای آنها خطوط خالی هستند. حال در تصویر بعدی، از دستور tail استفاده شده است.
با استفاده از دستور tail در تصویر بالا نیز ۱۰ خط انتهایی فایل Words در خروجی چاپ شده است.
دستورات لینوکس comm ،diff و cmp برای یافتن تفاوت، ترکیب کردن و بررسی یکسان بودن ۲ فایل
در لینوکس دستورات مختلفی برای مقایسه فایلها ارائه میشود. دستورات comm ،diff و cmp تفاوتها را بررسی میکنند و به عنوان برخی از پرکاربردترین دستورات لینوکس به حساب میآیند و آشنایی با آنها بسیار مفید و ضروری است. در ادامه سینتکس هر یک از این دستورات را ارائه شده و سپس برای هر یک مثالی هم آمده است.
دستور diff در لینوکس
در این بخش ابتدا به سینتکس دستور diff پرداخته و سپس مثالی برای آن ارائه خواهد شد.
سینتکس دستور diff در لینوکس
سینتکس دستور diff به صورت زیر است.
root@ubuntu:~# diff
مثال دستور diff در لینوکس
در تصویر زیر مثالی برای نحوه استفاده از دستور diff در لینوکس ارائه شده است.
همانطور که در تصویر فوق میتوان ملاحظه کرد، پیشتر قطعه متن کوچکی حاوی محتوای «This line is edited» به فایل «New-File-Edited» اضافه شده است. در مثال ارائه شده در تصویر بالا، با استفاده از دستور diff، تفاوت ۲ فایل «New-File» و «New-File-Edited» در خروجی چاپ شده است.
دستور cmp در لینوکس
در این بخش نیز ابتدا به ارائه سینتکس دستور cmp میپردازیم و سپس مثالی برای آن ارائه خواهیم کرد.
سینتکس دستور cmp در لینوکس
سینتکس دستور cmp در ادامه آمده است.
root@ubuntu:~# cmp
مثال دستور cmp در لینوکس
مثال دستور لینوکس cmp در تصویر زیر ارائه شده است.
دستور cmp نه خودِ متن، بلکه تنها شماره خطی را به کاربر نشان میدهد که در آن نسبت به فایل دیگر تفاوت وجود دارد. حال در ادامه به دستور comm پرداخته و نحوه عملکرد آن بررسی شده است.
دستور comm در لینوکس
در این بخش به آموزش مقدماتی دستور comm پرداختهایم. در ادامه سینتکس این دستور ارائه میشود.
سینتکس دستور comm در لینوکس
سینتکس دستور comm نیز درست مثل ۲ دستور diff و cmp است و همانطور که در ادامه آمده است تفاوتی با ۲ مورد قبلی ندارد.
root@ubuntu:~# comm
مثال دستور comm در لینوکس
در صورت اجرای دستور comm روی ۲ فایل استفاده شده در مثالهای قبلی، این بار خروجی به صورت زیر خواهد بود.
در تصویر بالا مشاهده میشود که متن که در منتهیالیه سمت چپ قرار داده شده، تنها در فایل اول وجود داشته است و متنی که در وسط قرار داده شده تنها در فایل دوم موجود است. همچنین، متنی که در سمت راستترین بخش آمده، در هر دو فایل وجود دارد.
این طور به نظر میرسد که وقتی سعی داریم فایلهای بزرگتر را مقایسه کنیم و تمایل داریم همه چیز را به صورت مرتبسازی شده در کنار هم ببینیم، استفاده از دستور comm بیشتر از بقیه منطقی به نظر میرسد.
دستور sort برای مرتب سازی محتوای فایل موقع چاپ در خروجی
دستور sort خروجی مرتبسازی شدهای را از محتوای یک فایل فراهم میسازد.
در ادامه دستور سینتکس دستور sort در لینوکس ارائه شده است.
root@ubuntu:~# sort
مثال دستور sort نیز در ادامه آمده است.
در مثال بالا ملاحظه میشود که سطرهای «New-File» با استفاده از دستور sort به ترتیب حروف الفبا مرتبسازی شدهاند.
دستور export برای استخراج متغیرهای محیطی در لینوکس
دستور export مخصوصاً هنگام استخراج متغیرهای محیطی در «زمان اجرا» (Runtime) مورد استفاده قرار میگیرد.
سینتکس دستور لینوکس export به صورت زیر است.
root@ubuntu:~# export =
برای مثال، اگر میخواستیم اعلان یا همان پرامت Bash را بهروزرسانی کنیم، متغیر محیطی PS1 را بهروزرسانی خواهیم کرد. به این ترتیب، پرامپت Bash با اثرگذاری فوری بهروزرسانی خواهد شد:
اگر به هر دلیلی Bash Prompt بهروزرسانی نشد، تنها کافی است دستور bash را تایپ میکنیم و آنگاه اعلان خط فرمان بهروزرسانی شده باید مشاهده شود.
ssh یا دستور پوسته ایمن در لینوکس
دستور ssh به ما اجازه میدهد تا به ماشینی خارجی در شبکه با استفاده از پروتکل ssh متصل شویم.
سادهترین سینتکس یا قاعده نحوی برای استفاده از دستور ssh، مشابه بسیاری از سایر دستورات لینوکس به صورت زیر است.
root@ubuntu:~ -->> ssh username@hostname
برای کسب اطلاعات بیشتر پیرامون دستور ssh پیشنهاد میشود مطلب زیر را مطالعه کنید.
راه اندازی SSH روی لینوکس — راهنمای جامع
دستور service برای توقف و راه اندازی سرویس های لینوکس
دستور service در لینوکس برای راهاندازی یا شروع سرویسها و همچنین توقف آنها در داخل سیستم عامل مورد استفاده قرار میگیرد.
سینتکس و نحوه استفاده از این دستور در ادامه آمده است.
root@ubuntu:~ -->> service ssh status root@ubuntu:~ -->> service ssh stop root@ubuntu:~ -->> service ssh start
همانطور که در تصویر زیر مشاهده میشود، با استفاده از دستور service ssh status میتوان بررسی کرد که سرور ssh روی سیستم ما در حال اجرا است.
دستورات kill ،ps و killall برای نمایش پردازش های فعال و متوقف کردن پروسه های فعال
حالا که به بحث پردازشها یا همان پروسسها پرداختیم، بهتر است ببینیم چگونه میتوانیم پردازههای فعال را بیابیم و آنها را متوقف کنیم. برای پیدا کردن پردازههای در حال اجرا، به راحتی میتوان دستور ps را در اعلان خط فرمان وارد و فهرستی از پردازههای در حال اجرا را دریافت کرد.
سینتکس نحوه استفاده از هر کدام از دستورات kill ،ps و k در ادامه آمده است.
root@ubuntu:~ -->> ps
root@ubuntu:~ -->> kill
root@ubuntu:~ -->> killall
برای اینکه بتوان نحوه استفاده از دستورات لینوکس kill ،ps و killall را نشان داد، در این بخش «اسکریپت پوسته» (Shell Script) ایجاد شده است که در آن یک حلقه بینهایت وجود دارد و این اسکریپت در پسزمینه اجرا خواهد شد.
دستورهای ابتدایی Shell که هر توسعه دهنده ای باید بداند | راهنمای کاربردی
با استفاده از نماد &، میتوان یک پردازه را به پسزمینه ارجاع داد. به این ترتیب، همانطور که در تصویر زیر مشاهده میشود، یک پروسه Bash جدید با شماره پروسه ۱۴۴۹۰ ایجاد شده است.
حالا برای از بین بردن یک پروسه، میتوان دستور kill را به همراه شماره پردازه یا همان PID مطابق تصویر زیر در ترمینال لینوکس وارد کرد.
اما اگر شماره پردازه را ندانیم، و بخواهیم پردازه را با استفاده از نامش متوقف کنیم، میتوان از دستور killall مطابق تصویر زیر استفاده کرد.
در تصویر بالا ملاحظه میشود که پردازه شماره ۱۴۴۹۰ فعال باقی مانده است. دلیلش این است که هر ۲ بار، پردازه مربوط به «sleep» ابتدا با شماره ۱۴۴۹۱ و بعد با شماره ۱۴۵۰۲ متوقف شده است.
دستورات لینوکس df و mount برای نمایش اطلاعات سیستم فایل دیسک و سوار کردن سیستم فایل ها
هنگام کار با لینوکس، دستورات df و mount ابزارهایی بسیار بهینه و کارآمد برای سوار کردن یا نصب کردن سیستم فایلها و دریافت جزئیات سیستم فایل به حساب میآیند.
وقتی میگوییم «سوار کردن» (Mount)، یعنی ما دستگاه را به یک پوشه متصل خواهیم کرد تا بتوانیم به فایلها در سیستم فایل دسترسی پیدا کنیم. سینتکس پیش فرض برای سوار کردن سیستم فایل در ادامه آمده است.
root@ubuntu:~ -->> mount /dev/cdrom /mnt
root@ubuntu:~ -->> df -h
در نمونه کد بالا، /dev/cdrom
دستگاهی است که باید نصب یا به اصطلاح Mount شود. معمولاً در داخل پوشه /dev
یک دستگاه قابل Mount شدن پیدا میشود. پوشه مقصد برای نصب کردن دستگاه در آن، /mnt
است. میتوان آن را به هر پوشه دیگری که بخواهیم تغییر دهیم، اما اینجا از /mnt استفاده شده است، زیرا تقریباً پوشه پیشفرض سیستم برای سوار کردن دستگاهها به حساب میآید.
برای مشاهده دستگاههای Mount شده و دریافت اطلاعات بیشتر راجع به آنها، از دستور df در لینوکس استفاده میشود. اگر فقط دستور df را تایپ کنیم، دادهها به صورت بایت به کاربر نمایش داده خواهند شد که قابل خواندن نیستند. بنابراین از پارامتر -h
استفاده خواهیم کرد تا دادهها برای انسان قابل خواندن شوند.
دستورات chmod و chown برای تغییر مجوزهای فایل و اعطای مالکیت فایل ها و پوشه ها
دستورات لینوکس chmod و chown به ما قابلیت تغییر مجوزهای فایلها و مالکیت فایلها را میدهند و بنابراین شاید بتوان آنها را مهمترین دستورات لینوکس نامید و توصیه میشود علاقهمندان حتماً به خوبی این ۲ دستور را یاد بگیرند.
تفاوت اصلی میان قابلیتها و نحوه عملکرد این ۲ دستور این است که دستور chmod اجازه تغییر مجوزهای فایل را فراهم میکند، در حالی که، دستور chown به ما امکان میدهد تا مالکان فایل را تغییر دهیم.
سینتکس پیشفرض برای هر دوی این دستورات لینوکس به صورت chmod filename
و chown user:group filename
است. در ادامه مثالی برای دستور chmod ارائه میشود.
root@ubuntu:~ -->> chmod +x loop.sh root@ubuntu:~ -->> chown root:root loop.sh
تصویر مربوط به اولین خط از مثال بالا در ادامه آمده است.
در مثال و تصویر بالا، در واقع داریم به وسیله دستور chmod به فایل «loop.sh» مجوزهای اجرایی میدهیم. علاوه بر آن، با دستور chown این فایل را تنها برای کاربر root در داخل گروه root قابل دسترسی میکنیم. تصویر مربوط به استفاده از دستور chown در ادامه آمده است.
همانطور که ملاحظه میشود، بخش «root root» حالا به «www-data» تبدیل شده است، که همان کاربر جدید است و مالکیت کامل فایل را در اختیار دارد.
دستورات ifconfig و traceroute برای نمایش واسط ها و آی پی ها و ردیابی تمام گام ها تا مقصد
حالا وارد بخش شبکه در لینوکس شدهایم. اولین و مهمترین دستورات لینوکس در این حیطه، دستورات ifconfig و traceroute هستند که به طور رایج برای مدیریت شبکه در لینوکس مورد استفاده قرار میگیرند.
دستور ifconfig در لینوکس
با استفاده از دستور ifconfig میتوان فهرستی از تمام واسطهای شبکه را به همراه آدرسهای IP، مک آدرسها و سایر اطلاعات مربوط به واسطها مشاهده کرد. همانطور که در ادامه ملاحظه میشود، برای استفاده از این دستور در حالت ابتدایی، سینتکس خاصی مورد نیاز نیست و فقط باید عبارت «ifconfig» را تایپ کنیم.
root@ubuntu:~ -->> ifconfig
البته پارامترهای مختلفی برای دستور ifconfig در لینوکس وجود دارند که میتوان از آنها استفاده کرد، اما اینجا تنها از همان دستور اولیه و ابتدایی استفاده میکنیم. نمونهای از خروجی این دستور در تصویر زیر قابل مشاهده است.
دستور traceroute در لینوکس
برای کار با دستور traceroute، به راحتی تنها میتوان آدرس IP، نام میزبان یا نام دامنه نقطه انتهایی را پس از یک فاصله بعد از تایپ کردن عبارت «traceroute» مشخص کرد تا این دستور مسیر رسیدن به مقصد مشخص شده را به ترتیب در خروجی چاپ کند. بنابراین سینتکس لازم برای استفاده از این دستور به صورت زیر است.
root@ubuntu:~ -->> traceroute
در تصویر زیر استفاده از دستور traceroute و خروجی آن نشان داده شده است.
واضح است که localhost تنها یک مورد و گام بیشتر نیست (که همان خودِ واسط شبکه است). میتوان این دستور را با هر نام دامنه دلخواهی (مثلاً google.com) یا هر نشانی IP امتحان کرد تا بتوان تمام روترهایی را مشاهده کرد که در سر راه بستههای داده ما در مسیر رسیدن به مقصد قرار دارند.
دستور wget برای دانلود مستقیم فایل ها از اینترنت در لینوکس
اگر بخواهیم از داخل ترمینال لینوکس فایلهایی را دانلود کنیم، دستور wget یکی از مفیدترین امکانات و ابزارهای خط فرمانی به حساب میآید که برای این منظور در دسترس کاربران لینوکس قرار دارد. دستور wget یکی از دستورات مهم لینوکس محسوب میشود که در خصوص کار با فایلهای منبع بسیار مهم است و باید به خوبی آن را یاد بگیریم.
وقتی پیوند یا همان لینک دانلود را مشخص میکنیم، این لینک باید لینک مستقیم دانلود فایل مربوطه باشد. اگر دستور wget نتواند به فایل مربوطه دسترسی پیدا کند، این دستور به جای فایل مورد نظر، تنها صفحه وب مربوطه را در قالب HTML دانلود خواهد کرد. سینتکس دستور دستور wget به صورت زیر است:
root@ubuntu:~ -->> wget OR root@ubuntu:~ -->> wget -c
آرگومان -c به کاربر امکان میدهد تا یک دانلود قبلاً متوقف شده را از سر بگیرد.
دستورات محیط ترمینال MAC و Linux
دستورات ufw و iptables واسط های فایروال برای فایروال netfilter هسته لینوکس
دستورات ufw و iptables واسطهای فایروال برای فایروال netfilter هسته لینوکس به حساب میآیند. دستور iptables «ضوابط فایروال» (Firewall Rule) را مستقیماً به netfilter انتقال میدهد، در حالی که دستور ufw، ضوابط داخل جداول IP یا همان IPTableها را پیکربندی میکند و سپس آن ضوابط را به netfilter میفرستد.
حالا اینجا این پرسش مطرح میشود که وقتی دستور iptables را در اختیار داریم، چرا به دستور ufw نیاز پیدا کنیم؟ دلیلش این است که استفاده از دستور iptables برای افراد مبتدی بسیار دشوار است. دستور ufw کارها را به میزان زیادی آسان میکند. در ادامه مثالی آمده است که در آن سعی میکنیم با هر ۲ دستور iptables و uwf، مجوز استفاده از پورت ۸۰ را برای وب سرورمان صادر کنیم.
root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
root@ubuntu:~# ufw allow 80
حالا پس از مثال بالا به احتمال قوی کاملاً متوجه شدهاید که چرا دستور uwf ایجاد شده است. در مثال بالا کاملاً مشخص است که با استفاده از دستور uwf چقدر کارها آسانتر شده است. هر دوی این فایروالها بسیار جامع و کامل هستند و میتوانند به کاربران لینوکس امکان دهند تا هر نوع پیکگربندی مورد نیاز را برای شبکه خود فراهم کنند. با توجه به اهمیت این ۲ دستور لینوکس، توصیه میشود حتمآً حداقل در سطح مقدماتی استفاده از آنها را یاد بگیرید.
راه اندازی اولیه سرورهای اوبونتو 18.04 — از صفر تا صد
دستورات مربوط به مدیریت بسته در لینوکس
توزیعهای متفاوت لینوکس از «مدیر بستههای» (Package Manager) متفاوتی استفاده میکنند.
بیشتر کاربران از توزیع «اوبونتو» (Ubuntu) استفاده میکنند که در آن از مدیر بسته apt استفاده میشود. اما برای فردی که با ماشینهای فدورا، Red Hat، آرچ یا CentOS کار میکند، مدیر بسته متفاوت خواهد بود:
- سینتکس مدیریت بسته در دبیان و توزیعهای مبتنی بر دبیان: apt install
- آرچ و توزیعهای مبتنی بر Arch: pacman -S
- رد هت و توزیعهای مبتنی بر Red Hat: yum install
- فدورا و سِنت OS: yum install
ماهر شدن در استفاده از مدیر بسته مخصوص توزیع مورد استفاده خود، در بلند مدت کارها را بسیار سادهتر خواهد کرد. بنابراین حتی اگر ابزار مدیریت بسته گرافیکی یا همان GUI نصب کرده باشیم، بهتر است مدیر بستهها را امتحان کنیم و پیش از رفتن به سراغ ابزارهای گرافیکی از ابزارهای مبتنی بر «CLI» (یعنی واسط خط فرمان) بهره ببریم. بنابراین حتماً دستورات مدیریت بسته در لینوکس را هم به فهرست دستورات مهمی که باید بدانید اضافه کنید.
دستور sudo در لینوکس برای ارتقای حقوق ویژه
در خصوص حقوق ویژه لازم است حتماً این ضربالمثل را در نظر داشته باشیم که «قدرت بیشتر، مسئولیت بیشتری را هم به دنبال دارد» این نقل قولی است که وقتی یک کاربر دارای دسترسی sudo که به اون «sudoer» میگویند برای اولین بار از دستور sudo در لینوکس برای ارتقای حقوق ویژه خود استفاده میکند.
دستور sudo بسته به اینکه چه مجوزهایی را به عنوان sudoer داریم، معادل این است که گویی به عنوان کاربر root وارد شده باشیم. سینتکس مورد نیاز برای استفاده از این دستور در ادامه آمده است.
non-root-user@ubuntu:~# sudoPassword:
همانطور که ملاحظه میشود، تنها کافی است قبل از هر دستوری که میخواهیم با حقوق ویژه و ارتقایافته اجرا کنیم، کلمه sudo را تایپ کنیم. استفاده از این دستور بسیار ساده است، اما اگر کاربری سوء استفادهگر به یک حساب کاربری sudoer دسترسی پیدا کند، میتواند خطرات امنیتی مهمی را به دنبال داشته باشد.
دستور cal در لینوکس برای مشاهده تقویم خط فرمان
آیا تا کنون تصمیم به مشاهده تقویم در ترمینال لینوکس گرفتهاید؟ ممکن است بسیاری از افراد چنین امکانی را متصور نباشند، اما ظاهراً افرادی هستند که میخواستند چنین قابلیتی وجود داشته باشد و بنابراین این امکان در لینوکس فراهم است. با استفاده از دستور cal در لینوکس، تقویمی خوشنما در ترمینال نمایش داده میشود.
برای استفاده از این دستور، خیلی ساده تنها کافی است تا عبارت «cal» را که مخفف کلمه «Calender» به معنی «تقویم» است در ترمینال تایپ کنیم و کلید اینتر را بزنیم.
root@ubuntu:~# cal root@ubuntu:~# cal May 2019
خروجی دستورات لینوکس بالا در تصویر زیر آمده است.
اگرچه ممکن است چندان نیازی به تقویم در ترمینال نداشته باشیم، اما در هر صورت قابلیت جالبی است. قطعاً افرادی هستند که طرفدارهای ترمینال هستند و برای آنها این قابلیت شگفتانگیزی محسوب میشود.
دستور alias به منظور ایجاد میانبُرهای سفارشی برای دستورات پر استفاده
برای اکثر کاربران لینوکس دستوراتی وجود دارند که در حین استفاده از ترمینال به طور مداوم با آنها سر و کار دارند. مثلاً ممکن است دستور rm -r
یا ls -l
را زیاد استفاده میکنیم یا شاید دستور tar -xvzf
خیلی به کارمان میآید. دستور alias یکی از دستورات مهم برای افزایش بهرهوری به حساب میآید و خیلی بهتر است که با آن آشنایی کافی داشته باشیم.
اگر دستوری وجود دارد که اغلب از آن استفاده میکنیم، زمان آن فرا رسیده است تا «نام مستعاری» (alias) برای آن ایجاد کنیم. به بیان ساده، alias در واقع نام دیگری برای یک دستور به حساب میآید که کاربر به دلخواه خود آن را برگزیده است.
root@ubuntu:~# alias lsl="ls -l" OR root@ubuntu:~# alias rmd="rm -r"
در مثال بالا، از این به بعد هر بار که دستورات lsl یا rmd را در ترمینال وارد کنیم، همان خروجی را دریافت خواهیم کرد که در صورت وارد کردن دستورات اصلی که طولانیتر هستند چاپ میشدند.
دستورات اصلی استفاده شده در مثال بالا دستوراتی کوتاه هستند که همچنان میتوانستیم خودشان را هر بار وارد کنیم. اما در برخی از شرایط، وقتی که دستوری تعداد آرگومانهای خیلی زیادی داشته باشد که نیاز به تایپ کردن آنها داشته باشیم، قطعاً خیلی بهتر خواهد بود اگر نسخه میانبُری از آن بسازیم.
دستور dd در لینوکس برای ساخت USB قابل بوت شدن
این دستور برای تبدیل و کپی کردن فایلها از چندین قالب سیستم فایل ساخته شده است. امروزه اما، این دستور تنها به منظور ساخت USB قابل بوت شدن برای لینوکس مورد استفاده قرار میگیرد، البته همچنان موارد مهمی هستند که میتوان با استفاده از این دستور انجام داد.
برای مثال، اگر میخواستیم از کل هارد درایو همانطور که هست در درایو دیگری پشتیبانگیری کنیم، میتوان از دستور dd
استفاده کرد. برای مثال در ادامه نمونهای از طرز استفاده از این دستور آمده است.
root@ubuntu:~# dd if = /dev/sdb of = /dev/sda
آرگومانهای if
و of
مخفف «input file» و «output file» هستند.
دستورات لینوکس whereis و whatis برای مکان یابی صفحات باینری، منبع و دستورالعمل و همچنین یافتن کاربرد یک دستور
نام این ۲ دستور کارایی و کاربرد آنها را آشکار میسازد، اما بهتر است برای شفافیت بیشتر، نحوه استفاده از این دستورات را همراه با مثال در این بخش مورد بررسی قرار دهیم.
دستور whereis برای مکان یابی صفحات باینری، منبع و دستورالعمل
دستور whereis موقعیت و محل دقیق هر دستوری را که بعد از عبارت «whereis» تایپ کنیم به ما ارائه میدهد. برای نمونه در ادامه مثالی آمده است.
root@ubuntu:~# whereis sudo sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz
دستور لینوکس whatis برای مکان یابی صفحات باینری، منبع و دستورالعمل
با استفاده از دستور whatis میتوان توضیحاتی را در خصوص این مسئله دریافت کرد که یک دستور دقیقاً چیست و چه کاری انجام میدهد. مشابه دستور whereis، با استفاده از دستور whatis هم اطلاعات مربوط هر دستوری را دریافت خواهیم کرد که پس از عبارت «whatis» تایپ شده باشد.
root@ubuntu:~# whatis sudo sudo (8) - execute a command as another user
دستور top برای مشاهده پردازش های فعال به صورت زنده به همراه منابع مورد استفاده آن ها
در چند بخش قبلی از این مطلب، راجع به دستور ps بحث شد. مشاهده کردیم که دستور ps در لینوکس پروسههای فعال از جمله خودش را در خروجی نشان میدهد. اما در سطح پیشرفتهتر، دستور top تقریباً مشابه برنامه Task Manager در ویندوز است. با استفاده از این دستور، نمایشی زنده از پردازشها و تمام اطلاعاتی دریافت خواهید کرد که مربوط به آن پروسسها میشوند. از جمله این اطلاعات میتوان به میزان مصرف حافظه، مصرف CPU و سایر موارد اشاره کرد.
برای استفاده از دستور top در لینوکس تنها کافی است کلمه «top» را در ترمینال تایپ کنیم. در تصویر زیر نمونهای از خروجی دریافتی در صورت استفاده از این دستور قابل مشاهده است.
دستورات useradd و usermod برای افزودن کاربر جدید یا تغییر داده های کاربران فعلی
دستورات لینوکس useradd و usermod دقیقاً دستورات یکسانی هستند که adduser تنها پیوندی نمادین به دستور useradd دارد.
این دستور (useradd) به ما اجازه میدهد تا بتوانیم کاربر جدید در لینوکس بسازیم.
root@ubuntu:~# useradd JournalDev -d /home/JD
در مثال بالا، کاربر یا همان یوزر جدیدی با نام JournalDev ساخته شده و شاخه خانه برای این کاربر هم /home/JD
است. از طرف دیگر، دستور usermod برای ویرایش کاربران فعلی (از قبل ایجاد شده) استفاده میشود. میتوان هر مقداری مثل گروهها، دسترسیها و سایر موارد مربوط به هر کاربری را ویرایش کرد. برای مثال، اگر بخواهیم کاربر را در گروههای بیشتری قرار بدهیم، میتوان از دستور زیر استفاده کرد.
دستور passwd به منظور ایجاد یا به روز رسانی رمزهای عبور برای کاربران موجود
حالا با توجه به اینکه تا اینجا یاد گرفتیم چطور کاربر جدید بسازیم، بهتر است همچنین، نحوه تعیین کلمه عبور برای کاربران را هم بیاموزیم. به وسیله دستور passwd این امکان فراهم میشود تا بتوانیم پسوردی را برای اکانت خودمان مشخص کنیم. یا اگر کاربری دسترسی و مجوز لازم را داشته باشد، میتواند برای سایر کاربران هم رمز عبور تعیین کند.
استفاده از دستور passwd بسیار آسان است:
root@ubuntu:~# passwd New password:
اسکرینشات مربوط به استفاده از دستور passwd در ادامه آمده است.
با اضافه کردن نام کاربری سایر کاربران قبل از عبارت passwd، میتوان برای آنها هم کلمه عبور تعیین کرد. لازم است پسورد جدید را ۲ بار وارد کنیم و سپس کار انجام خواهد شد. به این ترتیب، پسورد جدیدی برای کاربر مورد نظر تنظیم و تعیین میشود.
جمعبندی
سیستم عامل لینوکس محصولی اپن سورس با توزیعهای مختلف است که امکانات و قابلیتهای متعددی را در اختیار کاربران قرار میدهد و روز به روز به طرفدارانش اضافه میشود. برای ورود به دنیای لینوکس لازم است حداقل برای شروع با دستورات مهم آن آشنا شویم و در مواقع نیاز منبعی برای یادآوری و بررسی جزئیات این دستورات در اختیار داشته باشیم.
در این مطلب به معرفی و آموزش دستورات لینوکس رایج و پرکاربرد همراه با مثال پرداخته شد. همچنین دورههای آموزشی و سایر مطالب مرتبط نیز در خلال آموزش دستورات لینوکس معرفی و ارائه شدند. ممکن است این مقاله کمی طولانی شده باشد، اما امیدواریم نوشتهای باشد که کاربران لینوکس بتوانند هر وقت نیاز داشتند به آن مراجعه کنند.
سعی بر این است تا به مرور زمان با اضافه شدن مطالب و دورههای آموزشی مرتبط، پیوند دسترسی به آنها را در محل مناسب در این نوشتار اضافه کنیم و بهروزرسانیهای کاربردی را برای این مطلب انجام دهیم.