در مقالۀ آموزشی قبلی دستورات سرور لینوکس قسمت اول آن را کامل برای شما توضیح دادم. لازم به تذکر دوباره است که اگر مقالۀ دستورات لینوکس چطور کار می کنند را نخوانده باشید، ممکن است در درک این مقالات آموزشی دچار مشکل شوید. پس سعی کنید زمانی را برای مطالعۀ آن نوشته در نظر بگیرید تا به راحتی بتوانید دیگر مراحل مدیریت سرور لینوکس را دنبال کنید. پس با دستورات سرور لینوکس قسمت دوم که دستورات متوسطۀ سرور لینوکس را به شما معرفی میکنم هم همراه باشید.
اگر دستورات آموزش قبلی را به خوبی درک کرده باشید، حالا زمان آن است که ادامۀ این دستورات را هم دنبال کنید. نتیجۀ کافی زمانی حاصل میشود که شما دست به شوید و کدها را روی محیط آزمایشی که طریقۀ نصب آن را آموزش دادم، امتحان کنید و خودتان نتیجۀ کار را ببینید.
توجه: در این متن ممکن است جای خط تیره (-) و حروف انگلیسی جابهجا شده باشد که این به دلیل ماهیت نگارش فارسی در کنار انگلیسی در فضای وب است. به این نکته توجه نمایید.
۲۱- دستور Find : یافتن پرونده
از این دستور برای یافتن یک فایل درون چندین پوشه و زیر پوشه مورد استفاده قرار میگیرد. فرض کنید قرار است که به دنبال یک پرونده بگردید. اگر خواسته باشید این کار را به صورت دستی و با زیر و رو کردن یکی یکیِ پوشهها انجام دهید، چقدر از شما زمان سلب خواهد کرد؟! استفاده ازاین دستور هم بسیار ساده است. کافی است عبارت find را نوشته و با تعیین کردن یک یا چند مشخصه و در انتها با وارد کردن نام و یا ساختار پروندهای که به دنبال آن میگردید، Enter را زده تا سیستم جستجوی خود را شروع کند. در تصویر زیر جستجویی برای برای یافتن فایلهای sh که به عبارتی شل هستند انجام دادیم.
اگر از مشخصۀ -name در دستور استفاده کنید، جستجویی که انجام میشود به بزرگی و کوچکی حروف حساس است. ولی اگر به مانند دستور بالا از مشخصۀ -iname استفاده کنید، سیستم جستجو را بدون در نظر گرفتن بزرگی را کوچکی حروف انگلیسی انجام میدهد. این کار را شما برای هر نوع پروندهای میتوانید انجام دهید. ما در بالا به دنبال فایلهای sh بودیم. حالا شما میتوانید فایلهای tar.gz را جستجو کنید. در وارد کردن این دستور به مسیر فعلی خود دقت کنید.
۲۲- دستور grep : جستجوی رشته درون پرونده
این دستور هم کار جستجو را انجام میدهد. اما جستجوی یک عبارت یا رشته درون یک فایل. مثلاً در دستور زیر ما به دنبال عبارت jamal در پروندۀ /etc/passwd هستیم.
اگر در دستور بالا از مشخصۀ -i استفاده کنیم، جستجو بدون در نظر گرفتن کوچکی و بزرگی حروف مورد جستجو انجام میشود. یک مشخصۀ دیگری هم این دستور دارد که -r میباشد و اگر از آن استفاده کنید، به صورت برگشتی تمامی زیرپوشهها را جستجو میکند و به دنبال رشتۀ ما میگردد. فراموش کنید رشتههایی به صورت چند تکهای هستند را درون علامت نقل قول ” ” قرار دهید. نتیجۀ دستور زیر را ببینید:
در دستور grep اگر از مشخصۀ -c استفاده کنید، تعداد رشتههای پیدا شده در مسیر پروندۀ مورد نظر را به شما بر میگرداند.
۲۳- دستور man : راهنمای دستورات لینوکس
یکی از دستورات مهمی است که هم استفاده از آن بسیار ساده است. هم اینکه به شدت به کارتان خواهد آمد. به این دلیل که این دستور یک راهنمای جامع و کاربردی در هر زمان راجع به دیگر دستورات لینوکس است. هر بستۀ نرم افزاری هم که نصب میکنید، یک دسته راهنما به این دستور اضافه میکند که شما میتوانید تمامی دستورات آن را یاد بگیرید.
به طور معمول اگر نسخۀ خلاصۀ شدۀ لینوکس را نصب کرده باشید، میبینید که این مستندات برای شما وجود نخواهند داشت که باید توسط دستور yum install man اقدام به نصب دستور man کنید. حالا از این به بعد با زدن دستور man در خط فرمان و همچنین به دنبال آن دستوری که قصد خواندن توضیحات آن را دارید، نتیجهای به مانند تصویر زیر را شاهد خواهید بود.
این دستور راهنمای خود دستور man را به من بر میگرداند. این دستور ادامه هم دارد و شما با زدن کلید Space از صفحه کلید میتوانید ادامۀ این صفحه را بخوانید. همانطور که حتماً میدانید و در آموزشهای قبلی گفته شد، تمامی دستورها دارای جزئیات بیشتری هستند که ما به آنها مشخصه میگوییم. در صفحۀ راهنمای هر دستور نحوۀ استفاده از آن، به علاوه تمامی مشخصههای آن دستور را به همراه توضیحات هر کدام میتوانید ببینید و اطلاعات خود را افزایش دهید. پس دیدید که نیازی به حفظ کردن تمامی جزئیات هر دستور نیست. راهنمای دستورات لینوکس به کمک ما خواهد آمد.
البته استفاده از همین راهنما هم خود نیاز به دانش دارد؛ دانش تفسیر راهنمای دستورات. اما چیز سختی نیست. مثلاً اگر میخواهید راجع به دستور ls بیشتر بدانید، از دستور man ls استفاده کرده و توضیحات مختصر را در ابتدای صفحه و سپس مشخصههای آن را در ادامه ببینید. برای خارج شدن از محیط راهنمای دستورات لینوکس هم کلید q صفحه کلید را بزنید.
۲۴- دستور ps : نمایش فرآیندهای در حال اجرا
از این دستور برای دریافت فرآیندهای در حال اجرا یا Process مورد استفاده قرار میگیرد. به صورت خلاصه نتیجۀ این دستور چیزی به غیر از نتیجۀ زیر نیست.
اما اگر با مشخصۀ -A (به بزرگی و کوچکی حروف دقت داشته باشید) استفاده کنید، یک فهرست بلندوالایی از تمامی فرآیندهایی که همینک روی سرور یا رایانۀ لینوکسی شما در حال اجرا میباشد را همراه با شناسه یا همان PID بر میگرداند.
این دستور در مواقعی که میخواهید ببینید فرآیند مد نظر شما در حال اجرا است یا نه، خیلی میتواند مفید باشد. پس از آن که PID آن را به دست آوردید، حال میتوانید آن فرآیند را خاموش (kill) کنید. از این دستور به صورت ترکیبی با دستور grep هم میتوانید استفاده کنید که نتایجی که به شما بر میگرداند خاصتر و محدودتر باشد، که دقیقاً همان چیزی که شما به دنبال آن هستید نمایش داده شود. در زیر ما فقط به دنبال فرآیندهایی میگردیم که مربوط به سرویس ssh هستند.
کاراکتر | که در بالا بین دو دستور آمده، نتیجۀ دستور اولی را به دستور دومی میدهد. این کاراکتر برای بیشتر دستوراتی که به نوعی خروجی دارند و ما میخواهیم خروجی آن را به یک دستور دیگر بدهیم، استفاده میشود.
۲۵- دستور kill : خاموش کردن فرآیند
این دستور برای اعلام ختم یک فرآیند به کار خواهد آمد. فرض میکنیم فرآیندهایی وجود دارند که نامرتبط هستند یا پاسخی نمیدهند. به اصطلاح هنگ کردند. در این حالت اگر یک رایانۀ ویندوز باشد شاید حتی نیاز به راه اندازی مجدد رایانه هم باشد. اما در لینوکس به واسطۀ همین دستور بسیار کاربردی و جالب، میتواند فقط همان فرآیند را ختم کرده و حتی مجدد آن را راه اندازی کرد.
برای ختم یک فرآیند شما نیاز به شمارۀ شناسه یا همان PID فرآیند دارید. که از روش استفاده از دستور ps میتوانید به آن برسید. فرض میکنیم شما روی سرور لینوکس CentOS فرآیند httpd از کار افتاده و پاسخی نمیدهد. در اولین گام باید با استفاده از دستور ps -A | grep -i httpd به راحتی شناسۀ فرآیند را به دست آورده و سپس با استفاده از دستور kill PID میتوانید آن فرآیند را خاموش کنید. به جای PID شماره شناسه را باید بگذارید.
یک جایگزین بسیار خوبی هم برای دستور kill با عنوان pkill وجود دارد که به جای شماره فرآیند (PID) نام خود سرویس را میگیرد. به این دستور جایگزین دستور بالا دقت کنید.
pkill httpd
۲۶- دستور whereis : جستجوی منبع دستورات
این دستور هم برای جستجو است. جستجوی باینری، کد منبع و همچنین صفحات راهنمای یک دستور روی سیستم. به عنوان مثال اگر خواسته باشیم منبع و باینری و همچنین صفحات راهنمای دستور ls را روی سیستم جستجو کنیم، باید از دستور whereis ls استفاده کنیم. در خیلی از مواقع آگاه بودن راجع به محل نصب کدهای باینری یک دستور میتواند به ما کمک کند.
۲۷- دستور service : مدیریت سرویسها
این دستور برای توقف، شروع و راه اندازی مجدد یک سرویس مورد استفاده قرار میگیرد. سرویسها به مانند نرم افزارهایی که هستند که هر کدام کاری را برای ما انجام میدهند. مثلاً سرویس Apache کارش این است که کاری کند که سایتهای ما برای دیگران روی اینترنت قابل مشاهده باشند. بدین ترتیب دستور service بدون اینکه نیاز باشد کل سیستم را راه اندازی مجدد کنیم، برای اعمال تغییرات روی یک سرویس خاص این اجازه را به ما میدهد که فقط همان یک سرویس را راه اندازی مجدد کنیم.
دستورات زیر به ترتیب کار متوقف کردن، راه انداختن و همچنین راه اندازی مجدد سرویس httpd یا همان apache روی سرور CentOS را انجام میدهند. در سرورهای بر پایۀ Debian مثل Ubuntu، شما باید نام سرویس را apache2 بگذارید.
دستور آخر با عنوان service httpd status وضعیت اجرایی سرویس httpd (آپاچی) را نشان میدهد که همینک httpd در حال اجرا است و شناسۀ فرآیند اصلی آن هم ۱۹۲۳ است. در مورد شناسۀ فرآیندها هم این را بگویم که این شمارهها با هر بار راه اندازی مجدد رایانه یا فقط همان سرویس تغییر میکنند.
برای هر نوع سرویس دیگری مثل سرویس DNS، FTP، Sendmail و … شما میتوانید از این دستور استفاده کنید. فقط باید به جای httpd نام همان سرویس را بگذارید. پس اگر درآینده گفتم ببینید که آیا مثلاً سرویس Postfix فعال است یا نه، باید از این دستور استفاده کنید.
۲۸- دستور alias : تعیین جایگزین برای دستورات بلند لینوکس
این دستور یک راهکار ساده برای خلاصی از دستورات بلند لینوکس است. در اصل همانطور که از اسم این دستور میتوان فهمید، یک نام مستعار برای دستورات بلند میتوانیم بسازیم و از این به بعد با استفاده از آن نام مستعار دستورات بلند را فراخوانی کنیم. این کار با استفاده از دستور alias انجام شدنی است.
پس اگر از دستور ls -la برای فهرست کردن محتوای یک پوشه زیاد استفاده میکنید، با اجرا کردن دستور زیر در پایانۀ لینوکس، از این به بعد از l به جای آن دستور تقریباً بلند استفاده میکنیم. در ادامه هم امتحان کرد که ببینیم آیا دستور l برای من کار خواهد کرد یا خیر، که میبینید به زیبایی کار میکند.
برای لغو نام مستعار یا جایگزین خلاصه شدۀ یک دستور هم از دستور زیر استفاده خواهیم کرد.
unalias l
حتی با این روش قادرید برای یک دستور معروف لینوکس، کارکرد دیگری را تعریف کنید. در این صورت اگر شخص دیگری پشت رایانۀ لینوکسی شما بنشیند، طبیعتاً نخواهد توانست مثل شما با آن کار کند. مگر این که از دستور unalias استفاده کرده و همۀ دستورات را به حالت اولیۀ خود برگرداند.
۲۹- دستور df : تعیین میزان مصرف حافظۀ سخت
این دستور به سادگی به شما خواهد گفت که از سیستم فایل سرور خود چه مقدار استفاده کردید. به اصطلاح چه مقدار از حافظۀ سخت پُر شده است. برای استفاده از این دستور فقط کافی است عبارت df را در خط فرمان بنویسید و Enter را بزنید. نتیجه را ببینید. حتی میزان حافظۀ سخت سرور شما به درصد مشخص است. اگر میخواهید اعدادی که به شما نشان داده میشود به واحد مگابایت باشد عوض کیلوبایت، میتوانید از مشخصۀ -h استفاده کنید.
۳۰- دستور du : تخمین حجم پوشه یا پرونده
این دستور برای تخمین میزان حجم یک پرونده یا پوشه استفاده میشود که دستور بسیار مفیدی است. مسیر شما که هر چه باشد با زدن این دستور حجم تمامی فایلها و پروندههای پوشههای زیرین را به شما نشان خواهد داد. اگر خواسته باشید حجم فقط یک پرونده یا پوشه را به دست آورید، باید نام آن را در جلوی عبارت du بنویسید. به همین راحتی!
این دستور اختلافاتی را با دستور df دارد که فکر کنم تا اینجا متوجه این اختلاف شده باشید.
۳۱- دستور rm : حذف کردن پوشه یا پرونده
از این دستور برای حذف کردن یک پوشه یا پرونده استفاده میشود. شما باید درون مسیری باشید که قصد حذف کردن چیزی از آنجا را دارید. سپس از rm به همراه یک فاصله و نام پوشه یا پرونده برای حذف کردن آن استفاده کنید. برای حذف کردن یک پرونده مشکلی وجود ندارد. ولی اگر خواسته باشید یک پوشه را بدین روش حذف کنید، به شما اخطار خواهد داد. برای حذف پوشه باید از مشخصۀ -rf استفاده نمایید. در ضمن به طور همزمان حتی چندین پرونده را میتوانید حذف کنید.
استفاده از دستور بدون مشخصۀ -rf از شما تایید خواهد گرفت که باید y را ارسال کنید. در غیر این صورت اگر از مشخصۀ -rf استفاده کنید، بدون هیچ گونه تاییدی اقدام به حذف پوشه یا پرونده میکند. پس در زدن این دستور نهایت دقت را داشته باشید. چرا که ممکن به صورت تخریبی موردی را حذف کنید که نباید این کار را انجام دهید.
۳۲- دستور echo : چاپ متن روی خروجی
این دستور متنی را روی صفحۀ خط فرمان چاپ میکند. نه کاری با پوستۀ خط فرمان دارد و نه نتایج این دستور توسط خط فرمان خوانده میشود. کاربرد اصلی این دستور در اسکریپتهای فعل و انفعالی است. مثلاً اسکریپت نصب یک نرم افزار که در مراحلی از کار از کاربر سوالاتی را میپرسد و نتایجی را به وی نشان میدهد.
۳۳- دستور passwd : تغییر رمز عبور
این دستور برای تغییر رمز عبور ورود به سیستم برای تک تک کاربران سرور کاربرد دارد. کاربر ریشه یا root میتواند رمز تمامی کاربران را تغییر دهد. دیگر کاربران هم میتوانند رمز عبور خودشان را عوض کنند. برای این منظور به سادگی میتوانید دستور passwd را زده و در مراحل بعدی دوبار رمز عبور را بنویسید. حتی رمز عبور را در محیط نرم افزار Putty میتوانید با یک بار راست کلیک بچسبانید (Paste) اگر از قبل رمز را کپی کرده باشید.
۳۴- دستور lpr : چاپ سند با چاپگر
از این دستور برای چاپ یک سند با استفاده از چاپگر متصل به رایانه مورد استفاده قرار میگیرد. شاید برای سرور زیاد استفاده نشود. اما کارکرد آن به صورت زیر است که اول باید پروندۀ شما آماده بوده و نامگذاری شده باشد. در ثانی خود چاپگر هم در سیستم نامگذاری شده باشد.
این دستور ممکن است کار نکند. به دلیل اینکه نیاز به بستههای نرم افزاری خاصی برای اجرا شدن دارد.
۳۵- دستور cmp : مقایسه بین پروندهها
دستوری بسیار کارآمد برای انجام مقایسه بین دو تا پروندۀ متنی. برای این کار باید مسیر دو تا پرونده را اول مشخص کنید و با شیوۀ زیر از این دستور استفاده کنید.
دقت کنید که در دستور بالا اول با دستور cat محتویات دو تا پرونده نمایش داده شده، سپس از دستور cmp به همراه نام دو تا پرونده استفاده شده است. نتیجه را به این صورت به ما بر میگرداند که در خط ۱ و بایت ۹ اختلافی مشاهده شده است.
۳۶- دستور wget : دانلود پرونده
یک ابزار و دستور بسیار ساده برای دریافت فایل یا همان دانلود از شبکه میباشد. پروتکلهایی که پشتیبانی میکند از قبیل HTTP، HTTPS، پروتکلهای FTP و پروکسیهای HTTP میباشد. به سادگی میتوانید با زدن دستور wget و به دنبال آن نشانی اینترنتی آن سند، آن را روی رایانۀ خود دانلود کنید. اگر این دستور را زدید و خطایی به شما برگردانده شده که چنین دستوری وجود ندارد، باید اول wget را با استفاده از دستور yum install wget نصب کنید. در توزیع Ubuntu به جای yum از apt-get استفاده کنید.
۳۷- دستور mount : بار کردن سیستم فایل
اگر حافظۀ جانبی را به رایانۀ لینوکسی متصل کنید، باید با استفاده از این دستور اقدام به بار کردن (mount) آن حافظه روی سیستم کنید تا بتوانید از اطلاعات موجود روی آن استفاده کرده و روی آن چیزی بنویسید.
برای استفاده از این دستور اول باید از دستور lsblk استفاده کرده تا ببینیم نام این وسیلهای که همینک به دستگاه متصل شده چیست و چه مقدار حافظه دارد.
حالا باید دسترسی ریشه داشته باشید تا مسیر آن را به /dev تغییر داده، جایی که همۀ سیستم فایل آنجا بار میشوند. پس اگر دسترسی ریشه ندارید با زدن دستور su و سپس وارد کردن رمز عبور حساب ریشه وارد حساب ریشه شوید. حالا با دستور زیر به مسیر /dev بروید.
cd /dev
یک پوشه بسازید که فرقی نمیکند نامش چه باشد. باید باید مرتبط با همان حافظهای باشد که به دستگاه متصل کردید.
mkdir usb
حالا با دستور mount سیستم فایل sdb1 را درون پوشۀ usb بار کنید. بدین صورت:
mount /dev/sdb1 /dev/usb
حالا میتوانید به مسیر /dev/usb رفته و با آن درایو به مانند یک پوشه عمل کنید؛ پروندههای آن را بخوانید و به داخل آن محتوا بریزید. به همین قشنگی!
۳۸- دستور gcc : مفسر برنامههای نوشته شده با زبان C
gcc نام مفسر یا کامپایلر زبان برنامه نویسی C در محیط لینوکس است. برای اینکه بیشتر با این دستور آشنا شوید، یک مثال عملی را با هم کار میکنیم. یک برنامۀ ساده که کد آن را در زیر میبینید درون یک پروندۀ خالی با پسوند .c بسازید.
#include <stdio.h> int main() { printf("Hello world\n"); return 0; }
حالا آن را با دستور زیر کامپایل کنید:
gcc Hello.c
حال آن را اجرا کنید:
./a.out
در هنگام کامپایل کردن کد برنامهای که با زبان C نوشته شده است، یک پرونده با نام a.out به صورت خودکار ساخته خواهد شد که خروجی کار ماست. هر زمان که مجدد همان برنامه را کامپایل کنید، همان پروندۀ خروجی قبلی تصحیح خواهد شد. پس اگر میخواهید پروندۀ کامپایل شدۀ قبلی را هم داشته باشید، یادتان باشد که از آن در جایی دیگر با نامی دیگر پشتیبان بگیرید؛ با دستوری مثل دستور زیر:
gcc -o Hello Hello.c
اینجا مشخصۀ -o نام فایل خروجی را تعیین میکند که میتوانید یک نام اختیاری اما مرتبط با پروژۀ خود بگذارید.
۳۹- دستور g++ : مفسر برنامههای نوشته شده با زبان c++
g++ نام مفسر درونی برنامههای نوشته شده توسط زبان برنامه نویسی c++ است. در اینجا هم به صورت عملی یک برنامۀ ساده خواهیم نوشت و آن را اجرا خواهیم کرد. کدهای زیر را درون یک پرونده با نام Add.cpp کپی کنید. به پسوند پرونده دقت کنید.
#include <iostream> using namespace std; int main() { int a; int b; cout<<"Enter first number:\n"; cin >> a; cout <<"Enter the second number:\n"; cin>> b; cin.ignore(); int result = a + b; cout<<"Result is"<<" "<<result<<endl; cin.get(); return 0; }
حالا آن را کامپایل میکنیم:
g++ Add.cpp
حال زمان اجرا فرا رسیده است:
./a.out
نکتهای که برای دستور قبلی گفتیم هم باید برای استفاده از این دستور هم رعایت کنید. از همان مشخصۀ -o جهت تغییر نام پروندۀ خروجی و نهایی استفاده نمایید.
۴۰- دستور java : اجرا کنندۀ برنامههای نوشته شده با جاوا
جاوا یکی از پر استفادهترین زبانهای برنامهنویسی دنیا است. بیشتر توزیعهای لینوکس هم مفسر یا همان کامپایلر این زبان برنامه نویسی را درون خود دارند. مجدد یک فایل بسازید و نام آن را webnology.java بگذارید، کدهای زیر را درون آن قرار داده و در مکانی ذخیرهاش کنید.
class tecmint { public static void main(String[] arguments) { System.out.println("Tecmint "); } }
آن را کامپایل کنید:
javac webnology.java
آن را اجرا کنید:
java webnology
توجه داشته باشید که اگر در برخی از مواقع مفسر هر کدام از این زبانهای برنامه نویسی روی سیستم شما وجود نداشت، میتوانید رو به سوی yum یا apt بیاورید و آنها به سادگی نصب کنید. که توضیحات این دستورات قبلاً داده شده است.
این بود از قست دوم دستورات سرور لینوکس که اندکی نسبت به دستورات قسمت اول، سختتر شده بود و جا دارد از سایت tecmint.com برای نوشتن چنین مقالهای که بنده بتوانم آن را برای شما ترجمه کنم تشکر کنم. قسمت سوم دستورات لینوکس را هم خدمت شما تقدیم خواهم کرد که اگر یک کاربر سیستم لینوکس بتواند دستورات این ۳ بخش را به طور کامل یاد بگیرد، تقریباً هر نوع رایانۀ لینوکسی را جلوی او بگذارند، به راحتی میتواند با آن کار کند و مقاصد خود را عملیاتی کند. گرچه این صفحه خیلی طولانی شد، اما سعی شد تمامی نقاط گنگ توضیح داده شوند. همچنان با وبنولوژی همراه باشید.
۰ دیدگاه