آموزش دستورات لینوکس
در این مقاله به آموزش دستورات لینوکس میپردازیم , کارکردن با لینوکس که امروزه رشد بسیار زیادی داشته و در اکثر موارد میزبانی و .. نیز وجود دارد جزء ملزمات یک مدیر سرور میباشد.
آموزش دستورات لینوکس
آموزش دستورات لینوکس را پایه ترین و اصلی ترین ابزار قدرت یک مدیر سرور و حتی کاربر یا مدیر سایت باید دانست چرا که سیستم عامل لینوکس تفاوتهای زیادی با سیستم عامل ویندوز دارد.
لینوکس یکی از قدرتمند ترین سیستم عامل های رایگان و opensurce است که توسط توسعه دهندگان زیادی تغیر یافته و محیط کار شگفت انگیزی دارد زیرا دستورات زیادی را شامل میشود که براحتی هرچه تمام و با اندک سرچ میتوان از جزیات آن پی برد در صورتی که ویندوز چنین نیست و مدیریت از راح دور بدون رابط کاربری GUI تقریبا غیر ممکن و یا خیلی سخت میباشد.
زمان شروع به فعالیتم در زمینه آیتی و سایت و سرور هیچ یک از دستورات را بلد نبودم بجز دستورات مبتدی مثل نمایش دایرکتوری و ورژن و …. دقیقا مشابه زمانی که فارق التحصیل شدم و آخر دوره دانشگاهیم متوجه شدم بجز نوشتند چندین ماشین حساب و بازی با ریشه دستورات ویندوز مثل قرمز کردن رنگ و تغییر دایرکتوری و ریشه اصلی و دستور اسکن ریشه درختی tree هیچ نمیدانم.
اینترنت خیلی ارزشمند است مخصوصا اینکه شما آموزه هایی رو یاد میگیرید که با پول و وقت و صرف جوانی و… ممکن است یاد نگیرید یا دلسرد شوید مانند آموزش برنامه نویسی که هیچ وقت در هیچ دانشگاهی تدریس نمیشود مگر دانشجو خلاق باشد.
دستورات پر کاربرد لینوکس
در لینوکس نیز همینگونه است دوره های زیادی وجود دارد و حتی تدریس آکادمیک هم میشود و جدیدا به دروس رشته های دبیرستانی نیز اضافه گردیده ولی نسخه سرور متفاوت است.
شما ویندوزی دارید و با محیط گرافیکی آشنایی دارید که همین موضوع را من درک کردم که هیچ یک از ما ۱۰۰ درصد ویندوز را نمیشناسیم و فقط در حد نیازهایمان فرا میگیریم,دقیقا لینوکس نیز همین موارد را شامل میشود ولی درصد خیلی کمی را زیرا در عین سادگی قدرتی شگرف دارد و نسخه سرور و کلاینت آن تفاوت جزء دارد .
آموزش دستورات لینوکس برابر هستند و دسته بندیهای زیادی دارند که تقسیم به ۲ شاخه اصلی میشوند:
- لینوکس
- یونیکس
تفاوت آنچنانی در دستورات ندارند ولی ریشه های بازخوانی و فراخوانی متفاوت است.
سعی بر این داریم مختصر و مفید و پرکاربردترین ها را آموزش بدهیم و پست را آپدیت کنیم لذا شما فقط به این مقاله اکتفا نکنید.
لیست دستورات لینوکس در این مقاله
در جدول زیر به پر استفاده ترین دستورات لینوکس میپردازیم و توضیح مختصری درباره کارایی آن عنوان میکنیم.
دستور | کاربرد |
دستور cat | برسی محتویات درون فایل |
دستور date | مشاهده تاریخ و زمان |
دستور lspci | نمایش تمامی اسلات های متصل شده |
دستور man | راهنمای دستور |
دستور init | اغییر مد کارکرد سرور |
دستور logout | logout از سیستم |
دستور reboot | راه اندازی مجدد |
دستور shutdown | خاموش کردن |
دستور cd | رفتن به دایرکتوری |
دستور df | نمایش فضای هارد دارای آلیاژ مثل df -h |
دستور passwd | تغییر کلمه عبور |
دستور useradd | افزودن کاربر |
دستور whoami | دستور من کیستم |
دستور wget | دانلود |
دستور htop | مدیریت منابع |
دستور bpytop | مانیتور منابع |
دستور exit | خروج |
دستور sed | replace حرف یا رشته |
دستور chmod | امور مربوط به دسترسی کاهش یا افزایش دسترسی |
آموزش دستورات لینوکس
در لینوکس همهچیز به یک سری فایل و دایرکتوری تقسیمبندی میشود ساختار دایرکتوریها (همان فولدرها در ویندوز) در لینوکس همانطور که در عکس زیر مشاهده میکنید به صورت یک درخت وارونه میباشد.
هر دایرکتوری، خود شامل یک سری دایرکتوری و فایلهای مهم سیستمی دیگر میباشد که وظیفههای اساسی و مهم لینوکس را انجام میدهند.
شما با دانستن دستورات لینوکس به طور کامل خواهید توانست عملیات مدیریتی خود را بر روی این بخشها به طور تخصصی انجام داده و یا سرویسهای خاصی را بر روی لینوکس نصب و راهاندازی کنید.
دستور cat
یکی از کارهایی که ابتدا باید در لینوکس با آن آشنا شوید نحوهی باز کردن فایلها میباشد، شما در ویندوز با رفتن روی آیتم موردنظر خود و دابل کلیک کردن، فایل مربوطه را باز میکردید، در لینوکس این عمل با دستور cat قابل انجام میباشد بدین شکل که ابتدا دستور cat را نوشته و سپس به دنبال آن مسیر فایل مربوطه را وارد میکنیم.
cat /etc/passwd cat /proc/meminfo
چنانچه بخواهید اطلاعات سرور لینوکسی خود را به صورت دقیق به دست آورید برای شروع کار و با دانستن همین دستور فایلهای زیر را بررسی کنید.
cat /proc/cpuinfo cat /proc/meminfo cat /proc/swaps
دستور اول اطلاعات سی پیو، تعداد هستهها – دستور دوم اطلاعات رم و دستور سوم اطلاعاتی در رابطه با مقادیر swap فایل به شما نمایش خواهد داد.
دستور date
چنانچه بخواهید تاریخ و زمان تنظیم شده بر روی سرور خود را مشاهده کنید با دستور date خروجی تاریخ و زمان قابل دریافت میباشد.
date
دستور lspci
برای نمایش تمامی اسلات های متصل شده به سیستم هم دستور زیر را میتوانید استفاده کنید (صرفاً جهت یادآوری: اسلات ها همانند سختافزارهای نصب شونده به صورت کارت هستند که در جایگاههای خاصی بر روی سرور تعبیه میشوند مثل کارت گرافیک در کیس سیستمهای شخصی)
lspci
دستور lsusb
دستور زیر هم برای نمایش تعداد سختافزارهای نوع usb متصل شده به لینوکس کاربرد دارد، مانند زمانی که شما در my computer سیستمعامل ویندوزی تعداد usb ها متصل شده به سیستم را بررسی میکنید.
lsusb
دستور uname
چنانچه بخواهید اطلاعاتی راجب نوع توزیع و ورژن و اطلاعات کرنل یا هسته لینوکس دریافت کنید میتوانید از دستور زیر استفاده کنید.
uname –a
دستور clock
برای تنظیم ساعت بر روی بایوس سرور هم از دستور زیر میتوانید استفاده کنید.
clock –w
دستور man
در لینوکس برای آشنایی بیشتر با هر دستور و همچنین نحوه استفاده از سوییچها از کامند man قبل از دستور استفاده کنید و راهنمای استفاده را دقیقاً مطالعه کنید تا اطلاعات بسیار کاملی را در رابطه با دستور کسب کنید.
برای مثال ما میخواهیم راهنمای دستور cat را دریافت کنیم به صورت زیر در محیط command line دستور را وارد میکنیم fvhd
man cat
نمایش ورژن سیستم عامل
برای نمایش ورژن سیستم عامل لینوکس و یا دستور نمایش سیستم عامل لینوکس دستور زیر را وارد کنید:
cat /etc/issue
دستور init
دستور init که توسط آن میتوانید مد کارکرد سرور رو تغییر بدید، ۶ مد برای این دستور تعریف شده که ۰ برای بردن سیستم به حالت shutdown مد ۱ حالت single user هستش که معمولاً برای ریکاوری استفاده میشه.
مد ۲ حالت multi user مد ۳ حالت multi user with networking مد ۴ بلا استفاده و تعریف نشده، مد ۵ حالت گرافیکی سیستم که لینوکس معمولاً در این حالت کار میکنه و با GUI بالا میاد و مد ۶ هم بردن لینوکس به حالت ریبوت هستش مانند زمانی که شما دستور reboot رو وارد میکنید.
init 0 init 1 init 2 init 3 init 5 init 6
دستور logout
دستور بعدی logout هستش که توسط این دستور مانند زمانی که به صورت گرافیکی از ویندوز logout میکنید عمل میکنه
logout
دستور reboot
دستور reboot هم که معلومه دقیقاً مانند ریستارت کردن در ویندوز عمل می کنه
reboot
دستور shutdown
دستور shutdown هم که سیستم رو خاموش میکنه ولی اگر با سوییچهای دیگه به کار بره میتونه عملکرد متفاوتی داشته باشه برای مثال دستور زیر سیستم رو ریبوت میکنه
shutdown -r now
دستور cd
دستور اول که یکی از مهمترین دستورات و بسیار هم پرکاربرد هستش دستور cd هستش این دستور مخفف کلمات change directory هستش به این معنی که شما زمانی بخواهید تو لینوکس از یک مسیر به یک دایرکتوری دیگه برید از این دستور باید استفاده کنید.
در دستور زیر ما هر کجای لینوکس که باشیم با این دستور وارد دایرکتوری خانه میشیم شاید براتون سؤال باشه که این دایرکتوری چی هست خدمتتون باید بگم که این دایرکتوری اطلاعات مربوط به هر یوزر رو نگهداری میکند.
cd /home
دستور cd ..
در لینوکس برای رفتن به یک شاخه قبلتر مانند زدن دکمه back در ویندوز جلوی دستور cd ما .. میزاریم تا یک دایرکتوری به عقبتر برگردیم.آموزش دستورات لینوکس
cd ..
با زدن دستور زیر در محیط command line لینوکس نیز وارد home یوزر خودتان میشوید، چون دستورات رو به عنوان یوزر root وارد میکنید دایرکتوری home شما root/ خواهد بود.
cd ~
دستور cp (کپی دایرکتوری و فایل)
با دستور cp هم در لینوکس میتوانید فایل یا دایرکتوری رو کپی کنید، مانند راست کلیک و copy کردن یک آیتم و سپس paste در ویندوز عمل میکند.
cp 1.txt /home/1.txt
دستور بالا که کاملاً مشخصه توسط دستور زیر هم یک دایرکتوری رو عیناً با محتویات داخلش کپی میکنیم یک جای دیگه
cp /music /music2
دستور ls
توسط دستور ls میتوانید یک خروجی از دایرکتوری که در حال حاضر در آن هستید بگیرید و هر فایل و دایرکتوری موجود در این دایرکتوری را مشاهده کنید.
به دلیل اینکه در لینوکس سرور، مانند ویندوز گرافیک معنا ندارد و همه کارها به صورت دستوری است. تا دستور ls وارد نشود هیچ خروجی شما نخواهید داشت و نمیدانید در یک دایرکتوری چه محتویاتی وجود دارد.
دستور ls دارای سوییچهای گوناگونی است که با زدن دستور man همانطور که توضیح دادم میتوانید از آنها استفاده کنید ولی دستور ls با سوییچهای زیر به طور کامل جواب تمامی نیازهای شما را خواهد داد
ls –lha ls –lthra
دستور mkdir ( ایجاد دایرکتوری)
اگر بخواهید در لینوکس یک دایرکتوری بسازید باید چیکار کنید؟ باید از دستور mkdir مخفف make directory استفاده کنید و سپس نام دایرکتوری را بدید در مثال زیر ما یک دایرکتوری با نام famaserver میسازیم.
mkdir famaserver
دستور mv ( جابجایی و rename)
اگر بخواهید یک فایل یا یک دایرکتوری را کلاً در لینوکس جابهجا کنید مانند move در ویندوز از دستور mv استفاده میکنیم در مثال زیر من دایرکتوری famaserver رو منتقل میکنم به home به طور کامل
mv famaserver /home
دستور pwd
اگر در لینوکس بخواهید ببینید در حال حاضر در چه دایرکتوری هستید از دستور pwd استفاده میکنیم با زدن این دستور لینوکس به شما دایرکتوری فعلی که در آن هستید رو به صورت absolute path نمایش خواهد داد.
pwd
دستور rm ( حذف فایل)
توسط دستور rm میتوانید فایل و دایرکتوری را از روی سرور حذف کنید، در استفاده از این دستور به شدت مراقب باشید چون در صورت اشتباه فایلهای سیستمی لینوکس رو پاک کنید دیگه هیچ کار نمیشه کرد و کلیهی اطلاعات شما از بین خواهد رفت در دوره لینوکس برای مدیران سرور اشاره کردیم که چگونه از این دستور به صورت امن استفاده کنید.
rm famaserver
زمانی که دستور بالا را وارد کنید از شما سؤال خواهد شد که آیا مطمئن به حذف فایل هستید یا خیر و بعد تأیید این عمل انجام میشود ولی اگر بخواهید به صورت کامل و بدون هیچ سؤالی یک دایرکتوری را با محتویات داخل آن پاک کنید از سوییچهای این دستور به شکل زیر استفاده کنید.
rm –rf famaserver
دستور touch
اگر بخواهید در لینوکس یک فایل خالی با هر پسوندی بسازید هم از دستور touch میتوانید استفاده کنید البته در جلوتر خواهم گفت که با کمک ادیتورها هم میتوانید این کار رو انجام بدید.
touch test.txt
دستور tree
هرگاه بخواهید در لینوکس یک خروجی به شکل درختی از دایرکتوریها بگیرید دستور زیر یک نمای کلی از تمامی دایرکتوریها و زیر دایرکتوریهای آن به شما خواهد داد،
این دستور کاربرد مدیریتی چندانی ندارد ولی برای کامل کردن آموزش دستورات لینوکس و جامع شدن این بخش باید تمامی دستورها رو بگیم خدمتتون
tree
دستور find
برای سرچ در لینوکس هم دستورات قدرتمندی وجود دارد که شما توسط آنها میتوانید آیتمهای متنوع از جمله فایل، یوزر، دایرکتوری و… را جستجو کنید. قدرتمندترین دستور موجود find میباشد که در ادامه به نحوه کاربرد آن خواهیم پرداخت.
برای پیدا کردن یک فایل در لینوکس از دستور find به همراه سوییچ name- به شکل زیر استفاده میکنیم.
find / -name filename
به جای filename نام فایل موردنظر خود را وارد کنید.
اگر به دنبال فایلهایی با پسوند خاصی میباشید میتوانید به صورت زیر از دستور find استفاده کنید. توسط دستور زیر تمامی فایلهایی که پسوند آنها txt. میباشد برای شما نمایش داده خواهند شد.
find / -name *.txt
البته اینو هم مدنظر داشته باشید اگر مسیر خاصی به غیر از شاخه / را بخواهید جستجو کنید میتوانید مسیر خود را جایگزین آن کنید.
و یا اگر به دنبال فایلی میگردید که آخرین بار ۳۰ روز قبل استفاده شده و تا زمان کنونی به آن دسترسی گرفته نشده باشد از دستور زیر میتوانید استفاده کنید
find / -type f –atime 30
در دستور بالا با سوییچ type- فقط به دنبال فایلها هستیم و یک جور فیلتر ایجاد کردیم و توسط atime- نیز تمامی فایلهای مسیر / که آخرین بار ۳۰ روز گذشته به آنها دسترسی گرفته شده در خروجی نمایش داده خواهند شد.
دستور locate
دستور بعدی که از آن نیز برای جستجو استفاده میکنیم دستور locate هستش مزیت این دستور نسبت به find سرعت بیشتر آن در پیدا سرچ هستش ولی حتماً باید قبل استفاده دستور updated را بزنید تا دیتابیسی که از آن برای جستجو استفاده میکند آپدیت شود.
locate *.txt
دستور whereis
برای نمایش مسیر یک فایل باینری در لینوکس نیز میتوانید از دستور زیر استفاده کنید.
whereis ls
توسط این دستور ما در واقع به دنبال مسیر فایل باینری ls هستیم که اگر یادتون باشه ls خودش دستور لینوکسی هستش
دستور نهایی هم which هستش که کاربردی مانند whereis دارد
which ls
دستور mount
دستور mount نیز برای مستقر کردن یک دایرکتوری و یا هارد دیسک به مسیر دیگری در لینوکس مورد استفاده میباشد. برای مثال شما زمانی که یک usb را به لینوکس خود متصل میکنید این سختافزار به صورت یک پارتیشن توسط سیستم شناسایی خواهد شد .
شما برای آنکه بتوانید از اطلاعات درون این دیسک در یک دایرکتوری مشخص شده توسط خودتان استفاده کنید میتوانید یک دایرکتوری ابتدا ایجاد کرده و سپس usb را به آن mount کنید.
mount /dev/usb /root/myusb
برای خارج کردن پارتیشن از حالت استقرار هم از دستور زیر استفاده میکنیم.
umount /dev/usb
دستور df
شما به عنوان مدیر سرور نیاز دارید تا مرتباً مقدار فضای استفاده شده و یا فضای خالی هارد سرور را بررسی کنید و در صورت لزوم مناسبترین تمهیدات رو بی اندیشید توسط دستور df میتوانید تمامی پارتیشنهای مانت شده را به همراه مقدار فضای خالی آنها مشاهده نمایید.
df –h
دستور du
چنانچه بخواهید مقدار فضای استفاده شده توسط یک دایرکتوری خاص را بررسی کنید میتوانید از دستور زیر استفاده کنید.
du –sh dirname
جای dirname نام دایرکتوری موردنظر خودتان را وارد نمایید.
دستور chage
در این بخش میرسیم به دستورات مدیریت کاربران که تماماً توسط ادمین سرور و با دسترسی root انجام میشه، مدیر میتونه توسط این دستورها در سرورهای لینوکسی یوزری ایجاد کرده، حذف و یا دسترسیهای آنها را محدود نماید.
توسط دستور زیر بر روی یک یوزر محدودیت زمانی اعمال میشود
chage -E 2005-12-31 user
به جای user نام کاربری موردنظر خود را وارد نمایید و طبق همیشه برای بررسی سوییچها میتوانید از دستور man در ابتدای دستور استفاده کنید.
در بسیاری از مواقع شما باید یک گروه برای دستهای کاربران خاص ایجاد کرده و به این گروه دسترسیهای مشخصی را اعمال کنید و چنانچه در آینده بخواهید یوزر جدیدی با دسترسیهای مشابه ایجاد کنید کافی است یوزر را به این گروه الحاق نمایید و کار شما بسیار راحتتر خواهد شد.
با دستور groupadd groupname میتوانید این کار را انجام دهید فقط کافی است نام گروه کاربری موردنظر خود را جایگزین groupname کنید.
در هر زمان اگر بخواهید یک گروه را حذف نمایید دستور مشخصی بدین منظور در لینوکس برای آن در نظر گرفته شده است. توسط دستور groupdel به راحتی میتوانید اقدام به این کار کنید.
groupdel groupname
گاهی مواقع هم نیاز هستش تا اطلاعات یک گروه کاربری مانند نام آن را تغییر دهید برای این منظور دستور groupmod تعیین شده است که با فرمت زیر میتوانید از آن بهرهمند شوید.
groupmod -n plan1 famaserver
در دستور بالا ما نام گروه را از plan 1 به famaserver تغییر دادیم.
دستور passwd
دستور پرکاربرد بعدی دستور passwd میباشد که توسط آن میتوانید پسورد هر یوزر را تغییر بدید اگر با دسترسی روت وارد ناحیه ssh سرور شده باشید و این دستور را تنها وارد کنید در واقع دارید پسورد یوزر root رو تغییر میدید ولی چنانچه جلوی دستور نام کاربری را وارد کنید پسورد مشخصاً یوزر مربوطه تغییر خواهد کرد.
passwd root passwd admin passwd username
دستور useradd
دستور اضافه کردن یوزر به سرور هستش که من کاملترین سوییچهای انو هم استفاده کرده که در ادامه براتون هرکدومو شرح میدم
useradd -c “comment here” -g adm -d /home/user -s /bin/bash user
توسط سوییچ c برای یوزر یک کامنت تعریف میکنیم که البته وجود اون ضروری نیستش، توسط سوییچ g یوزر رو به گروه مربوطه مرتبط میکنیم و با d خانه یوزر و محل قرارگیری فایلهای هر یوزر رو مشخص میکنیم و توسط d نیز دسترسی کاربر به شل رو معلوم میکنیم.
دستور chgrp
حالا میخواهیم در این بخش به دستورات مدیریت فایلها بپردازیم، برای تغییر گروه یک فایل از دستور زیر میتوانیم استفاده کنیم.
chgrp adm file
توسط دستور بالا file را به گروه کاربری adm تغییر میدهیم.
دستور chmod (مدیریت دسترسیها)
دستور بسیار مهم و کاربردی بعدی دستور chmod میباشد توسط این دستور میتوان پرمیژن هر فایل و یا دایرکتوری را تغییر داد. سه سمبلی که برای این دستور حتماً باید آنها را یادبگیرید r به معنی read و عدد ۴، w به معنی write و عدد ۲ و x به معنی execute و عدد ۱ میباشد.
معمولاً دستورهای chmod برپایه اینهاست:
- r (read)
- w (write)
- x (execute)
زمانی که بخواهید به یک فایل فقط دسترسی خواندن داشته باشید با توجه به ترکیب بالا خروجی دستور می شود –r و عدد مربوطه ۴۰۰ خواهد شد یعنی chmod 400 file و بدین شکل میتوانید ترکیبهای دیگری برای این دستور نیز بسازید.
chmod -r filenemaor dir chmod 777 filename or dir
دستور chown
دستور بعدی chown میباشد مخفف change owner یا تغییر مالک، هر فایل و یا دایرکتوری به یک مالک و یک گروه اختصاص دارد شما توسط دستور مربوطه میتوانید با فرمت زیر این دو مورد رو تغییر بدید
chown root:root file
دستورات استخراج فایل فشرده
چنانچه بخواهید به صورت تو در تو تمامی فایلها و یا دایرکتوریهای موجود در دایرکتوری موردنظر خود را تغییر مالک دهید از سوییچ R- به صورت زیر استفاده کنید.
فشردهسازی و خارج کردن فایلها از حالت فشرده :
برای اکسترکت فایلهای فشرده شده با پسوند bz2. از دستور bunzip2 به شکل زیر میتوانید استفاده کنید.
bunzip2 file.bz2
برای فشرده کردن یک فایل با پسوند bzip2 از دستور زیر میتوانید استفاده کنید.
bzip2 file
برای خارج کردن فایل از حالت فشرده با پسوند gz. از دستور زیر میتوانید استفاده کنید
gunzip file.gz
برای فشرده کردن فایل با پسوند gz از دستور زیر استفاده میشود.
gzip file
برای فشرده کردن یک فایل با حداکثر میزان فشردگی میتوانید از دستور زیر استفاده کنید.
gzip -9 file
برای فشرده کردن یک فایل با پسوند rar نیز میتوانید به فرمت زیر دستور را وارد کنید.
rar a file.rar file
برای خارج کردن یک فایل از حالت فشرده نیز میتوانید به شکل زیر دستور را وارد نمایید.
rar x file.rar
ایجاد یک فایل با فرمت tar به صورت غیر فشرده
tar -cvf archive.tar file
برای خارج کردن یک فایل از حالت فشرده tar.gz. میتوانید از دستور زیر استفاده کنید.
tar -xvfz archive.tar.gz
برای خارج کردن یک فایل از حالت فشرده با پسوند zip از دستور زیر میتوانید استفاده کنید.
unzip file.zip
دستور rpm
در لینوکسهای مبتنی بر توزیع ردهت بیس برای نصب بستههای نرمافزاری از پکیجهای RPM استفاده میشود. بدین صورت که ابتدا شما باید فایل مربوط به نرمافزار خود را از اینترنت دانلود کرده و سپس توسط دستور زیر اقدام به نصب آن کنید.
rpm -ivh package
به جای package نام نرمافزار خود را به صورت کامل وارد کنید.
چنانچه بخواهید یک پکیج را بدون در نظر گرفتن پیشنیازهای آن نصب کنید میتوانید از دستور RPM به صورت زیر استفاده کنید.
rpm -ivh -nodeeps package
اگر بر روی لینوکس خود یک پکیج را از قبل نصب دارید و میخواهید آن را آپدیت کنید از دستور زیر میتوانید استفاده کنید.
rpm -U package
برای حذف یک بسته میتوانید از دستور زیر استفاده کنید.
rpm -e package
از دستور زیر نیز میتوانید برای نمایش تمامی پکیجهای نصب شده بر روی سیستم استفاده کنید.
rpm –qa
حال اگر بخواهیم یک بسته را درون تمامی پکیجهای نصب شده بر روی سیستم جستجو کنیم میتوانیم از دستور زیر استفاده کنیم.
rpm -qa | grep httpd
من در این مثال به دنبال پکیج httpd بودم
توسط دستور زیر میتوانیم صحت سالم بودن تمامی بستههای نصب شده بر روی سیستم خود را بررسی کنیم.
rpm -qa gpg-pubkey
با دستور زیر هم میتوانیم یک پکیج را از حالت فشرده خارج کنید.
rpm2cpio package | cpio -id
ابزار yum و نحوه استفاده
در این جلسه از آموزش دستورات لینوکس به نحوه بررسی و نصب دقیق پکیجها بر روی توزیعهای مبتنی بر ردهت خواهیم پرداخت، این جلسه یکی از پرکاربردترین بخشهای دستورات لینوکس centos محسوب میشود.
در توزیعهای ردهت بیس همانند centos یک دستور قدرتمند برای نصب و مدیریت پکیجها با نام yum وجود دارد این ابزار همانند apt در توزیعهای دبیان بیس عمل میکند شما توسط این دستور میتوانید یک پکیج را جستجو، نصب و حتی حذف کنید.
توسط دستور زیر از سری دستورات لینوکس centos میتوانید یک پکیج را به صورت اتوماتیک نصب نمایید این دستور بدین شکل عمل میکند که ابتدا به مخازن centos رجوع کرده و در صورت وجود نام پکیج در مخزن آن را بر روی لینوکس شما نصب و راهاندازی میکند.
yum -y install packagename
اگر پکیج در مخزن اصلی وجود نداشته باشد یا باید به صورت دستی آن را نصب کنید و یا در صورت وجود مخزن حاوی پکیج آن را بر روی لینوکس خود فعال کنید. برای مثال بسیاری از پکیجهای مهم توسط مخزن epel بر روی لینوکس قابل نصب هستند که شما میتوانید آن را با دستور زیر ابتدا بر روی لینوکس خود فعال کنید و بعد توسط دستور بالا آن را نصب کنید.
yum install epel-release
توسط دستور زیر تمامی پکیجهایی که بر روی لینوکس شما نصب هستند به آخرین ورژن آپدیت میشوند، استفاده از دستور زیر برای یک مدیر سرور به صورت دورهای جز واجبات کار محسوب میشود.
yum -y update
سوییچ y- باعث میشود بعد از بررسی پکیجها هنگام آپدیت جهت نصب از شما دوباره اجازه بازنویسی پرسیده نشود و تمامی کارها اتوماتیک و بدون وقفه انجام شوند.
برای حذف یک پکیج بعد از اینکه نام آن را یافتید باید توسط دستور زیر آن را حذف کنید. البته باید این را مدنظر داشته باشید فقط پکیجهایی توسط این دستور حذف میشوند که توسط دستور yum قبلاً نصب شده باشند.
yum remove packagename
اگر به دنبال نصب یک پکیج خاص هستید ولی نام دقیق آن را نمیدانید و هنگام استفاده از دستور نصب با ارور مواجه میشوید کافی است بعد از دستور yum search بخشی از نام پکیج را وارد کنید تا اسم دقیق آن برای شما در خروجی نمایش داده شود.
اگر در گذشته هنگام نصب یک پکیج با ارور مواجه شده باشید محتمل است در آینده هنگام نصب پکیجهای جدید همان ارور قبلی برای شما رخ دهید در این مواقع باید توسط دستور yum clean all تمامی cache موجود بر روی لینوکس خود را پاک کرده و دوباره برای نصب اقدام کنید.
مدیریت نصب پکیجها در توزیعهای دبیان بیس
توسط دستور dpkg میتوان در توزیعهای دبیان بیس مانند دبیان و اوبونتو به مدیریت بستههای نصبی پرداخت، توسط دستور زیر میتوان یک پکیج را بر روی سیستم نصب و یا آپدیت نمود.
dpkg –i package.deb
مشخصاً باید به جای package.deb نام پکیجی که قصد نصب و یا آپدیت آن را دارید باید قرار دهید.
با استفاده از همین دستور و تنها با تغییر سوییچ به r- میتوان یک پکیج را از روی سیستم حذف نمود، فرمت استفاده از این دستور به شکل زیر میباشد.
dpkg –r package
با استفاده از سوییچ l- میتوان لیستی از تمام پکیجهای نصب شده بر روی سیستم را در خروجی نمایش داد.
dpkg –l
چنانچه بخواهید یک پکیج نصب شده بر روی سیستم را درون این لیست جستجو کنید کافی است از دستور زیر استفاده کنید.
dpkg -l | grep httpd
توسط دستور بالا خروجی لیست شده را به ورودی دستور grep داده و میتوانیم هر پکیجی را جستجو کنیم که در این مثال ما به دنبال وب سرور apache بودیم.
اگر بر روی سرور به یک فایلی برخورد کردید و خواستید که بدانید این فایل دقیقاً مربوط به کدام پکیج نصبی بوده است میتوانید از دستور زیر استفاده کنید.
dpkg -S /bin/ping
مشاهده محتویات فایل در لینوکس
در لینوکس شما همواره به عنوان مدیر سرور نیاز خواهید داشت تا محتویات درون فایلها را بررسی کنید و آن را بخوانید و یا ادیت کنید لینوکس انعطافپذیری بسیار زیادی برای خواندن فایلها با دستورات متنوع دارد یکی از مشهورترین آنها دستور cat میباشد.
cat یکی از دستورات لینوکس centos است که توسط دستور cat شما همواره هر فایلی را با هر پسوندی میتوانید باز کرده و محتویات آن را بخوانید و کاربرد دیگر دستور cat ادغام محتویات چند فایل به صورت همزمان باهم و نمایش خروجی آن هاست.
cat file
توسط دستور بالا تمامی محتویات داخل file در خروجی نمایش داده خواهد شد.
دستور head
دستور بعدی head میباشد همانطور که از معنی آن هم مشخص است این دستور برای نماش بخش ابتدای یک فایل به کار میرود، برای مثال توسط دستور زیر ما فقط دو خط ابتدایی فایل را در خروجی نمایش میدهیم.
head -2 file
دستور tail
حالا اگر بخواهیم چند خط انتهایی فایل را نمایش دهیم باید از دستور tail استفاده کنید، قرینه دستور بالا را با less اجرا میکنیم و دو خط انتهایی فایل را مشاهده میکنیم.
tail -2 file
دستور less و more نیز قابلیت خواندن یک فایل را فراهم کرده با این تفاوت که more به صورت درصدی و جلو رونده بوده و less قابلیت رو به عقب و خواندن خط به خط را فراهم میکند و نسبت به more پرکاربردتر است.
ویرایش و کار با فایل متنی در لینوکس
اگر بخواهیم یک ستون خاصی از خروجی را جدا کنیم باید از دستور awk استفاده کنید، این دستور به شدت پرکاربرد بوده و برای شخصی سازی خروجی مورد استفاده میباشد.
echo hello world | awk '{print $1}'
توسط دستور بالا ما خروجی حاصل از دستور echo را به صورت شخصی سازی شده درآورده و فقط ستور اول آن را جدا میکنیم، یعنی کلمه hello فقط در خروجی نمایش داده خواهد شد.
دستور diff
اگر بخواهیم دو فایل را با هم مقایسه کنیم دستوری منحصراً برای این کار در لینوکس تعبیه شده است که میتوان از آن استفاده کرد توسط دستور زیر ما دو فایل test1 و test2 را با هم مقایسه میکنیم.
diff test1 test2
دستور sed
دستور بعدی sed هستش که به کمک آن میتوانید یک حرف و یا رشته خاصی را با عبارات دلخواه خود جایگزین کنید، این دستور زمانی بسیار مهم جلوه میکند که شما قصد دارید تعداد بسیار زیادی از یک حرف و یا جمله را درون یک و یا چندین فایل به سرعت و فقط با یک دستور تغییر دهید.
sed 's/string1/string2/g' example.txt
توسط دستور بالا ما عبارت string1 را به string2 درون فایل example.txt تبدیل کردیم
دستور sort
دستور آخر نیز sort بوده که به وسیله آن میتوان خروجی چند فایل را به صورت مرتب شده بر اساس فاکتور دلخواه شما درآورد.
sort file1 file2 | uniq
با استفاده از دستور بالا دو فایل file1 و file2 با هم ترکیب شده و خروجی آنها به صورت sort شده و البته با حذف خطوط تکراری نمایش داده میشود.
آنالیز و تعمیر فایل سیستم
در مواردی در لینوکس، فایل سیستم شما ممکن است دچار مشکل شود و شما به عنوان مدیر سیستم باید در سریعترین زمان مشکلات موجود را رفع نمایید، یکی از دستوراتی که در اینگونه موارد به کمک شما میآید دستور fsck میباشد که وظیفه چک و رفع مشکلات فایل سیستم را بر عهده دارد.
fsck /dev/sda1
توسط این دستور پارتیشن اول هارد اول سیستم را جهت بررسی مشکلات موجود آنالیز میکنیم.
دستور fsck خود یک دستور font-end برای دستور fsck.ext2,fsck.ext3,fsck.vfat و … میباشد که با توجه به نوع پارتیشن فرمت هارد شما آن را به صورت اتوماتیک شناسایی و اجرا میکند.
توسط دستور زیر هم اگر بلاکهای معیوبی بر روی سیستم موجود باشد بررسی و برطرف خواهد شد.
badblocks -v /dev/hda1
دستور mkfs
یکی دیگر از دستورات مدیریتی در لینوکس دستور mkfs میباشد که وظیفه پارتیشنبندی هارد را بر عهده دارد، استفاده از این دستور بدون سوییچ به شکل زیر بر روی hda1 پارتیشن فرمت ext2 را اجرا میکند.
mkfs /dev/hda1
استفاده از سوییچهای این دستور به شما قابلیت پارتیشنبندی هارد با انواع رایج فرمتها را فراهم میسازد، برای مثال توسط دستور زیر فرمت FAT32 رو بر روی هارد اجرا میکنیم.
mkfs -t vfat 32 -F /dev/hda1
دستور mkswap
دستور mkswap میباشد یک دستور کم کاربرد ولی ضروری برای مدیران سیستم، این دستور به شما امکان پارتیشنبندی یک هارد را به منظور اختصاص دهی برای عملیات swap فراهم میکند، swap یک فضایی بر روی هارد است که اصولاً مقدار آن دو برابر رم سیستم است و نهایتاً ۸ گیگ بوده و در مواقعی که رم موجود بر روی لینوکس قادر به پاسخگویی به درخواستها نباشد با نوشتن اطلاعات قبلی روی رم روی فضای swap رم را برای پاسخگویی به درخواستهای جدید خالی میکند که البته کند میباشد ولی برای استفادههای سروری ضروری است.
mkswap /dev/hda3
توسط دستور بالا پارتیشن سوم هارد اول را به swap اختصاص دادیم البته بحث مدیریت swap تخصصی بوده که سعی کردیم در دوره ۰ تا ۱۰۰ لینوکس برای مدیران سرور آن را آموزش دهیم.
بعد از پارتیشنبندی هارد مربوط به swap باید آن را در فایل fstab تعریف کنید و توسط دستور swapon آن را به فضای موجود اختصاص دهید.
swapon /dev/hda3
بکاپ گیری و دستورات شبکه
در لینوکس دستورات متنوعی برای گرفتن بکاپ وجود دارد که هر کدام کارایی متفاوتی را ایجاد میکنند، دستور زیر که یک دستور ترکیبی است ابتدا تمامی فایلهای log را بر روی سیستم پیدا کرده و سپس از تمامی آنها یک فایل فشرده درست میکند.
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2
در واقع شما با زدن یک دستور توانستید مجموعهای از فایلهای پراکنده log را به صورت یک فایل فشرده در سریعترین زمان ممکن در اختیار بگیرید که اگر این کار را دستی قصد داشتید انجام بدید زمان بسیار زیادی را فقط باید صرف پیدا کردن فایلها میکردید.
توسط دستور زیر هم از طریق ssh یک سرور ثانویه، از هارد سرور هدف یک بکاپ تهیه میکنیم
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'
توسط دستور زیر هم می توانیم بکاپ موجود از دایرکتوری home/ را بازگردانی کنیم
restore -if /tmp/home0.bak
با دستور tar هم به شکل زیر میتوان از یک دایرکتوری به طور کامل نسخه پشتیبان تهیه کرد.
tar -cvf backup.tar /home/user
در بررسی آموزش دستورات لینوکس به بخش شیرین دستورات شبکه میرسیم که میتوانیم به واسطه آنها رو شبکه کنترل دقیقی داشته باشیم
دستور اول وظیفه بردن کارت شبکه روی مد dhcp را بر عهده دارد
البته نام کارت شبکه را توسط دستور ifconfig پیدا میکنیم و توسط دستور بالا مد آن را تغییر میدهیم.
حال میتوانیم توسط دستور ifconfig eth0 تنظیمات کارت شبکه خودمان را مشاهده کنیم و مقادیر ip و gateway و netmask را بررسی و حتی تغییر دهیم.
اگر بخواهیم کارت شبکه را از شبکه خارج کنیم میتوانیم توسط دستور زیر موقتاً آن را غیرفعال کنیم.
ifdown eth0
حالا اگر بخواهیم کارت شبکه را به حالت اول برگردانیم و وارد شبکه کنیم میتوانیم از دستور مخالف یعنی ifup eth0 استفاده کنیم.
دستور netstat
دستور مهم و پرکاربرد بعدی netstat هستش که به واسطه آن میتوان اتصالات شبکه را به طور دقیق ردیابی کرد این دستور به همراه سوییچهای آن قدرتمند و با ارزش است پس لزوماً باید با استفاده از man به کاربرد تمامی سوییچهای آن مسلط شوید.
netstat –tup
این دستور تمامی اتصالات شبکه و PID مربوط به هرکدام را نمایش میدهد.
در مبحث روتینگ و تنظیم gateway نیز از دستور route استفاده خواهیم کرد. استفاده از این دستور به همراه سوییچ n- تمامی اطلاعات مربوط به جداول روتینگ را نمایش میدهد.
route –n
حالا اگر بخواهیم آدرس gateway مربوط به یک کارت شبکه را تغییر دهیم میتوانیم از دستور زیر استفاده کنیم.
route add -net 0/0 gw IP_Gateway
بدیهی است باید به جای gw IP_Gateway آدرس Ip مربوط به gateway دریافتی از سمت دیتاسنتر را وارد نمایید.
در لینوکس و در لابهلای آموزش دستورات لینوکس به یک دستور مهم و البته کاربردی در مواقع خاص میرسیم، توسط دستور زیر شما سرور و یا سیستم خودتان را به حالت مد routing میبرید یعنی لینوکس شما همانند یک روتر قابلیت روت کردن پکتها را خواهد داشت.
echo "1" > /proc/sys/net/ipv4/ip_forward
دستور tcpdump
دستور بعدی که مدیران شبکه و سیستم از آن بسیار زیاد استفاده میکنند دستور tcpdump میباشد توسط این دستور میتوان پکتهای شبکه را خروجی گرفت و دیتاهای رد و بدل شده را آنالیز کرد.
tcpdump tcp port 80
توسط دستور بالا تمامی پکتهای مربوط به وب سرور بر بستر پروتکل tcp در خروجی نمایش داده خواهند شد.
دستور alias
دستور alias برای نمایش گروهی از دستورها و گزینهها و نمایش فهرستی از تمام نامهایی است که در سرور تعریف شده است. پسازآن، aliasهای تعریفشده بهواسطه کاربر را به فایل bashrc./~ میتوانید اضافه کنید. بهعنوان مثال، بهمنظور تنظیم ls برای داشتن رنگ، بدون تایپکردن آن میتوانید از این دستور استفاده کنید:
alias ls="ls --color=auto"
اگر میخواهید امکان مشاهده تمام دستورات aliases ممکن شود، میتوانید دستور آن را بدون آرگومان اجرا کنید.
alias
دستور unalias
این دستور برای حذف نام مستعاری است که از قبل تعریف شده است. برای حذف نام مستعار، میتوانید از دستور زیر بهره ببرید:
unalias ls
برای حذف آن میتوانید LS را در انتها قرار دهید.
دستور exit (خروج از ترمینال)
همانطور که از نامش پیداست این دستور زمانی استفاده میشود که قصد دارید یک پوشه یا مسیر را به اتمام برسانید و یا اگر در محیط خالی لینوکس این دستور را تایپ کنید از محیط خط فرمان خارج میشوید.
exit
دستور htop (مدیریت منابع)
با استفاده از این دستور میتوانید بصورت گرافیکی منابع سرور و مقصد استفاده کننده از منابع را مانیتور کنید و همانگونه که در تصویر مشاهده میکنید این ابزار بصورت پیشفرض در لینوکس فعال نمیباشد و بسته به توزیع لینوکس باید آن را نصب نمایید.
htop
دستور bpytop ( مانیتور منابع)
ابزار bpytop نسخه ارتقا یافته و کاملتر از htop میباشد که نیازمند نصب است . بصورت پیشفرض دستور top در لینوکس پیشفرض فعال است و برای htop و bpytop باید بسته های آن که شامل پایتون هم میشود نصب کنید و نمای کامل از هسته ها و ترافیک و … را برای شما مانیتور میکند.
bpytop
دستور ps
(نمایش پردازشهای پسزمینه)
با استفاده از این دستور پرکاربرد لینوکس، میتوانید بهراحتی پردازشهایی را مشاهده کنید که در هسته و لینوکس در حال انجام است. این دستور شناسه فرایند و زمان و نام فرمان را بهنمایش میگذارد و یکی از گزینههای کاربردی برای کسانی است که مدام نگران منابع مصرفی سرور یا سختافزار خود هستند:
ps
دستور kill ( پایان فرایند)
اگر بخواهیم این دستور را بهصورت ویندوزی به شما توضیح دهیم، درواقع همان کار End Task را در منو نرمافزارهای در حال اجرا در سیستمعامل ویندوز میکند. زمانی که نرمافزاری به هر دلیل از کار میافتد یا در پسزمینه سعی میکند که اجرا شود؛ اما موفق نمیشود یا وقت شما را تلف میکند، از دستور کشتن (kill) میتوانید استفاده کنید. برای مثال، نیاز است که ID پردازش یا نام برنامه را وارد کنید:
kill 690230 kill chrom
دستور ping
دستور پینگ نیز یکی از پر استفاده ترین دستورات در لینوکس هست و سینتکس اجرای آن مانند ویندوز است و با استفاده از آن میتوانید از آیپی وبسایت ها و یا آنلاین بودن مقصد و … بهره مند شد.
ping famaserver.com ping 8.8.8.8 ping 4.2.2.4
دستور wget
با استفاده از دستور wget میتوانید یک فایل را از محیط های محلی و یا اینترنت فراخانی کنید یا دانلود کنید. برای مثال در دایرکتوری / نیاز دارید تا یک بسته یا فایل را دانلود کنید.
wget https://dl.famaserver.com/index.html
دستور wc
این دستور نشاندهنده تعداد کلمات یک فایل متنی است. برای نمونه، اگر فایل وردی دارید و میخواهید تعداد واژههای آن را بررسی کنید یا دوست دارید بدانید که فایل txt شما از چند واژه تشکیل شده است، این دستور به شما اجازه این کار را میدهد.
wc filename.txt
دستور whoami
این دستور به معنای من کیستم است و در صورت استفاده از آن در محیط لینوکسی به شما نام کاربری که در حال حاضر با آن وارد شده اید را نمایش میدهد.
whoami
این مقاله بصورت فصلی آپدیت میشود.
فایل آپدیت را براتون قرار میدیم تا آموزش دستورات لینوکس را کامل و دوباره و در ادامه همین مقاله اضافه میکنیم که مرجع باشه و نیازی به موارد دیگه نداشته باشید
آموزش دستورات لینوکس
امکان استفاده از دستورات centos در اوبونتو وجود دارد؟
برخی از دستورات مصب دستورات نصب در توزیع های مختلف متفاوت هستند مانند yum در centos و apt در اوبونتو ولی بیشتر دستورات بصورت ریشه ای در لینوکس یکسان هستند.
برخی از دستورات اجرا نمیشوند دلیل چیست؟
بسته به پکیج ها و نوع سیستم عامل ( لایو و …) ممکن است برای برخی از دستورات نیاز به نصب آن بسته را داشته باشید مثل htop و bpytop و nano و.. که بصورت پیشفرض در لینوکس فعال نیستند.
دستورات ویرایش فایل و ... با هم تفاوت دارند؟
بصورت کلی خیر ولی برخی ویرایشگر ها کارایی متفاوتی دارند مانند nano و vim که طریقه استفاده از آن ها متفاوت هستند ولی کارایی هر 2 برای ادیت و ویرایش است.
فاما سرور
سلام
من یک سرور دارم که نیاز دارم از یک دایرکتوری آن با فرایند کرون جاب داده ها را بصورت زمانبندی به سرور دیگری ارسال کنم.
چون اسکریپت دست نویس هست پروسه بک آپ روی سرور مجازی لینوکس درست کار نمیکند
با چه دستوری میتونم آرسینک رو فعال کنم؟
سلام
پیشنهاد میشود ابتدا مقاله rsync را مطالعه کنید.
با دستور زیر میشود به یک سرور دیگر فایل یا دایرکتوری را ارسال کرد.
rsync -avzhe ssh /home/user/public_html/foldername root@192.168.0.100:/home/backup
بجای 192.168.0.100 آدرس آیپی یا هاست نیم سرور را ارسال کنید که از طریق آرسینک این جابجایی انجوام میشود.
در نظر داشته باشید که آرسینک باید روی هر 2 سرور نصب باشد.