دستورات لینوکس Linux – بخش اول

دستورات پایه لینوکس

دستورات متداول و پر کاربرد و پایه ای لینوکسی را با هم مرور کنیم:


دستور  tar
gnu tar  محبوب‌ترین و پر استفاده‌ترین برنامه برای فشرده‌سازی و استخراج بسته‌های مختلف به فرمت‌های گوناگون است. در اینجا چند مثال از این برنامه را خواهید دید:


ساخت یک فایل بایگانی با فرمت  tar.


tar    cvf      directory_name.tar    directory_name_path/

استخراج یک آرشیو با فرمت tar.


tar   xvf      file_name.tar


اما گاهی پیش می‌آید که می‌خواهیم مطلع شویم درون یک فایل فشرده چه فایل‌ها و پوشه‌هایی وجود دارد. ساده‌ترین راه‌حل استخراج این فایل و مشاهده محتویات آن است اما زمانی که حجم فایل سنگین باشد و هارددیسک فضای کافی نداشته باشد؛ این راه‌حل عملی نیست. راه‌حل حرفه‌ای‌تر استفاده از tar به همراه سوئیچ t برای مشاهده محتویات یک فایل فشرده یا tar شده است:

tar     tvf       archive_name.tar


tar در حقیقت برای یک تکه‌کردن فایل‌ها یا پوشه‌ها برای انتقال بهتر به کار می‌رود و در عمل هیچ فشرده‌سازی انجام نمی‌دهد (همانند zip) اما بهتر است بدانید بهترین و جدیدترین متد‌ها و توسعه‌های فشرده‌سازی متن‌باز به‌صورت سوئیچ‌ها و گزینه‌هایی در این برنامه وجود دارند.
سوئیچ z برای فشرده‌سازی یا استخراج فرمت gz (که برنامه gzip نیز آن را فراهم می‌کند)، سوئیچ j  برای استفاده در فرمت bz2 (برنامه bzip2 آن را فراهم می‌کند) و سوئیچ J برای استفاده از فرمت xz به کار می‌رود. برای نمونه، می‌توان مثال‌های زیر را  استفاده کرد:


tar    cvfz      directory_name.tar.gz    directory_name_path/
tar   xvfj      file_name.tar.bz2


اگر بخواهید از متدهای پیشرفته‌تر فشرده‌سازی مانند lzma استفاده کنید می‌توانید از گزینه‌ای به همین عنوان (–lzma) استفاده کنید. Gnu tar گزینه‌ها و سوئیچ‌های فراوان و متنوعی دارد که می‌تواند تمامی نیازهای یک کاربر یا مدیر سیستم حرفه‌ای را تأمین کند. برای دیدن تمامی سوئیچ‌ها و آپشن‌ها می‌توان به راهنمای برنامه یا مستندات آنلاین پروژه گنو مراجعه کرد.


 grep
اگر تا‌کنون نیاز به مشاهده یک دستور یا یک کلمه در خروجی بسیار مفصل ترمینال یا یک فایل متنی بلند بالا داشته باشید، به‌طور حتم، از grep نیز استفاده کرده‌اید.  Grep ورودی را (از ورودی استاندارد ترمینال) می‌گیرد و خطوطی مشخص شده را نمایش می‌دهد. در حقیقت grep نوعی فیلترسازی را انجام می‌دهد.

grep    -i     “the”     demo_file


دستور فوق، خطوط دارای the را در فایل متنی demo_file پیدا کرده و نمایش می‌دهد. سوئیچ i به grep می‌گوید که the را به‌صورت  case in-sensitive (غیر حساس به حروف بزرگ و کوچک) جست‌وجو کند. فرض کنید نیاز دارید تا در یک فایل متنی یک واژه را جست‌وجو کنید اما مطمئن نیستید که این واژه به همان معنی و مفهوم که مورد نظر شما است به کار رفته یا خیر. در این مواقع می‌توان از grep به این صورت استفاده کرد:


grep     -A    ۳    -i      “example”      demo_text


ممکن است بدترین حالت این باشد که به دنبال یک کلمه یا جمله می‌گردید اما مطمئن نیستید این واژه یا رشته در کدام یک از فایل‌ها قرار دارد. سوئیچ r و * دستور grep برای این مواقع هستند:


grep        -r     “word”     *


find
اگر فکر کرده‌اید فقط برنامه‌های جست‌وجوی گرافیکی با آن زرق و برق منوها و نوار ابزارهای شلوغ‌شان هستند که می‌توانند شما را به فایل/پوشه گمشده‌تان برسانند اشتباه کرده‌اید. find دستوری است که با سرعت بسیار بالاتر نسبت به برنامه‌های گرافیکی هارددیسک شما را می‌گردد و با سوئیچ‌ها و گزینه‌های زیاد خود باعث می‌شود زودتر به هدفتان برسید.


find      -iname    “MyCProgram.c”

نکته: اگرچه امکان اجرای تمامی دستورات فوق توسط هر کاربری وجود داشت (و find نیز این‌گونه است) اما از این جهت کاربر root اجازه خواندن تمامی پوشه‌ها و فایل‌ها را دارد، برای جست‌وجوی کامل‌تر بهتر است این دستور را توسط کاربر ریشه اجرا کنید.
دستور فوق باعث جست‌وجو برای  MyCProgram.c در پوشه جاری می‌شود و البته iname به find می‌گوید که به دنبال فایل مورد نظر بدون حساسیت به حروف کوچک و بزرگ آن بگردد. در مثال بعدی، find به دنبال فایل/فایل‌های مورد نظر در مسیر / می‌گردد و البته پس از پیدا کردن آن‌ها، دستور md5sum را روی آن‌ها اجرا کرده و md5 را محاسبه و در خروجی نمایش می‌دهد.


find    /  -iname    “MyCProgram.c”       -exec        md5sum    {}     \;

مثال آخر نیز باعث جست‌وجو برای پیدا کردن تمامی فایل‌های خالی در پوشه خانگی کاربر اجرا کننده دستور می‌شود:


find     ~    -empty

اگر بخواهیم یک سوئیچ پر کاربرد دیگر در find نام ببریم، باید از سوئیچ type- نام ببریم که می‌تواند به دنبال file،directory ،socket و… ( با استفاده از حروف s برای socket، d برای directory و f برای file) بگردد.

ssh
بدون شک ssh شناخته شده‌ترین و پر استفاده‌ترین دستور لینوکسی برای مدیریت راه دور سرورها است. در حالت ساده می‌توان با استفاده از ssh با کاربر مورد نظر به سرور راه دور لاگین کرد:


ssh    -l    root     remotehost.example.com

می‌توان برای مشخص کردن کاربر، از شیوه زیر نیز استفاده کرد:


ssh    root@remotehost.example.com

اما اگر به‌صورت ساده از دستوری مانند ssh  remotehost.example.com استفاده کنید، ssh با کاربر اجرا کننده دستور سعی در ورود به سرور ریموت می‌کند. پر واضح است که به جای نام سرور، می‌توان از آی‌پی آن نیز استفاده کرد. اگر در اتصال به سرور راه دور مشکل دارید، می‌توانید از سوئیچ v- برای اشکال‌زدایی (debug) استفاده کنید. اگر باز هم مشکل پیدا نشد vv- می‌تواند کمک بیشتری کند اما اگر باز هم متوجه خطا یا مشکل پیش‌آمده نشدید، باید آخرین تیر ترکش یعنی سوئیچ vvv- را امتحان کنید. اما اگر سروری دسترسی راه دور با استفاده از رمزعبور را بسته بود باید چه کرد؟
ssh برای این مشکل،  استفاده از key را پیشنهاد می‌دهد. به کمک سوئیچ i- و کلید عمومی سرور می‌توان به راحتی بدون نیاز به رمزعبور به سرور راه دور متصل شد:


ssh      -i   /home/ali/id_dsa   root@1.2.3.4


sed

می‌دانید که امکان ویرایش فایلی که توسط برنامه‌ دیگری در حال ویرایش است توسط ویرایشگرهای متنی متداول وجود ندارد. اما sed (سرنام stream editor) راه‌حل خوبی دارد و بدون نیاز به باز کردن یک فایل متنی می‌تواند تغییرات مورد نیازمان را روی آن فایل انجام و فایل را ذخیره کند.

شاید دیده‌اید که فایل‌های متنی ویندوزی در لینوکس به‌طور کامل در یک خط نمایش داده می‌شوند (با ذخیره فایل در ویندوز با تنظیمات پیش فرض). اگر می‌خواهید خطوط به‌صورت صحیح نمایش داده شود، باید در پایان هر خط ویندوزی یک r\n\ اضافه کنید. Sed این کار را به‌راحتی برای شما انجام می‌دهد:


sed     ‘s/.$//’      filename

به طورحتم، از این مثال هم متوجه شدید که دستور sed، شکل و شمایل یا به‌اصطلاح syntax عجیبی دارد اما کارهای عجیبی نیز انجام می‌دهد. به عنوان مثال دستور زیر، محتویات فایل متنی را از انتها به ابتدا نمایش می‌دهد:


sed     -n     ‘۱!G;h;$p’      theTextFile.txt

فرض کنید مدیر سیستمی هستید که اسکریپتی نوشته‌اید و می‌خواهید به روش غیرمعمول و به قول معروف «لقمه را دور سر گرداندن» ببینید، این اسکریپت چند خط دارد. مثال sed  زیر جلوی هر خط غیر خالی شماره آن را می‌گذارد:


sed      ‘/./=’     theScript.sh |   sed    ‘N; s/\n/ /’


awk
awk نیز یک زبان عجیب و غریب برنامه‌نویسی است که پیاده‌سازی آزاد آن، gawk ( سر حرف GNU awk) است. awk بیشتر برای پردازش و تطبیق متن با الگوی مورد نظر به کار می‌رود. به عنوان مثال دستور زیر، یکی از خطوط برنامه را که چند بار تکرار شده‌اند نگه می‌دارد و بقیه را پاک می‌کند:


awk    ‘!($۰ in array)   { array[$0]; print }’   temp

یا به عنوان یک نمونه دیگر می‌توان دستور زیر را مثال زد که خطوطی از فایل etc/passwd/ را که داری شناسه کاربری (uid) و گروه کاربری (gid) یکسان باشند را نمایش می‌دهد:


awk    -F    ‘:’    ‘$۳==$۴’    passwd.txt

فهم دستور زیر کمی ساده‌تر است؛ نمایش فیلدهای دلخواه یک فایل:


awk    ‘{print $2,$5;}’      employee.txt


vim

vim و  nano از محبوب‌ترین برنامه‌های ویرایشگر متن خط فرمانی هستند. کار با nano نسبت به vim ساده‌تر است اما برای کار با vim باید ترفندهای این برنامه را بلد باشید. هر چند کار با vim به اندازه nano ساده نیست اما سر خوره‌های لینوکسی درد می‌کند برای چنین برنامه‌هایی. در دستور زیر، vim فایل متنی  filename.txt را باز می‌کند و به خط ۱۴۳ آن می‌رود:


vim    +۱۴۳    filename.txt

دستور زیر باعث باز شدن فایل متنی در vim شده و به نخستین واژه جست‌وجو شده پرش می‌کند. برای رفتن به واژه‌های بعدی مطابق با این کلمه باید کلید n  و برای رفتن به واژه‌های قبلی باید N را زد:


vim      +/search-term     filename.txt

مطمئناً تمامی فایل‌های متنی را نمی‌توان در مد خواندن/نوشتن باز کرد و بعضی را باید با احتیاط کامل و فقط به صورت خواندنی باز کرد تا مبادا در اثر اشتباه، فایل تنظیمات یک سرویس خراب شد و آن سرویس از کار بیفتد یا برای دفعات بعدی شروع به کار نکند:


vim    -R    /etc/passwd


diff
همان‌گونه که می‌شود از نام این دستور حدس زد، از این دستور برای مقایسه بین دو فایل استفاده می‌شود. استفاده از diff برای پی بردن به تفاوت‌های بین دو نسخه از یک اسکریپت یا سورس کد یک برنامه بسیار مفید و ساده است.


$diff    -w    name_list.txt       name_list_new.txt

همچنین:  دستورات لینوکس Linux - بخش دوم

۲c2,3
< John Doe — > John M Doe
> Jason Bourne

دستور فوق با حذف فضاهای خالی (space) دو فایل را از نظر تغییرات و تفاوت‌ها مقایسه می‌کند. استفاده از diff نیاز به توضیح و تفسیر بیشتری ندارد.

sort
نام sort نیز به اندازه کافی گویای کاربرد آن است. اما ذکر چند مثال از استفاده‌های این دستور خالی از لطف نیست.


sort   names.txt

استفاده از این دستور به همراه فایل متنی که در آن واژه‌هایی نوشته شده است (به‌صورت هر کلمه در یک خط) باعث نمایش ترتیب این کلمه‌ها به صورت صعودی (به ترتیب حروف الفبا) می‌شود. به کمک سوئیچ r- می‌توان ترتیب نمایش را از صعودی به نزولی تغییر داد:


sort    -r    names.txt

از دیگر سوئیچ‌های این برنامه می‌توان به b- برای حذف فضای سفید ابتدای هر خط، f- برای نادیده گرفتن حروف کوچک و بزرگ و R- برای مرتب سازی اتفاقی اشاره کرد.

export
export برای صدور متغیرهای محیطی خط فرمان به گونه‌ای که توسط سایر برنامه‌ها در آن شل (ترمینال خط فرمان) قابل استفاده باشد به کار می‌رود. استفاده از export بدون هیچ گزینه‌ای باعث نمایش تمامی متغیرهای محیطی می‌شود. دستور زیر برای لیست کردن متغیرهای مرتبط با oracle استفاده شده است:


$ export | grep ORACLE
declare -x ORACLE_BASE=”/u01/app/oracle”
declare -x ORACLE_HOME=”/u01/app/oracle/product/10.2.0″
declare -x ORACLE_SID=”med”
declare -x ORACLE_TERM=”xterm”

 

برای تعریف یک متغیر محیطی به گونه‌ای که در سایر برنامه‌ها نیز قابل استفاده باشد، می‌توان به این صورت از export استفاده کرد.

export ORACLE_HOME=/u01/app/oracle/product/10.2.0

Xargs
پایپ (|) یکی از ابزارهای انتقال خروجی استاندارد (که ممکن است خروجی یک برنامه یا دستور باشد) به ورودی استاندارد یک برنامه دیگر است. اما انتقال موارد لیست شده در چندین خط به ورودی برنامه یا دستورات دیگر کمی کار را مشکل می‌کند. xargs موارد ورودی را از ورودی استاندارد می‌خواهند و دستورات را روی آن‌ها (دستورات به‌صورت پیش‌فرض با bin/echo/ اجرا می‌شوند) با آرگومان‌های داده شده یک یا چند بار تکرار می‌کند. Xargs فضای خالی را به‌عنوان مرز یک گزینه می‌شناسد. مثال‌ زیر بهتر می‌تواند کاربرد xargs را مشخص کند.

ls   *.jpg  |  xargs  -n1  -i  cp  {}   /home/ali/Pictures

با اجرای دستور فوق، هر فایلی با پسوند jpg در پوشه  home/ali/Pictures/ کپی می‌شود. عدد مقابل گزینه n بیشینه آرگومان‌ها در هر خط را مشخص می‌کند و سوئیچ i نیز  دستور جلوی خود (در این مثال دستور cp) را جلوی هر کدام از آیتم‌های ورودی اجرا می‌کند که در‌نهایت باعث کپی شدن هر کدام از فایل‌های jpg نمایش داده شده توسط دستور ls به پوشه مورد نظر می‌شود.

find  /  -name  *.jpg  -type  f  -print  |  xargs  tar  -cvzf  images.tar.gz

در مثال فوق، کلیه تصاویر jpg جست‌وجو شده و سپس با فرمت tar.gz فشرده می‌شوند.

Cat   url-list.txt  |   xargs   wget   –c

کلیه URLهایی را که در یک فایل ذخیره شده‌اند و در هر خط یک url وجود دارد به wget انتقال داده و سپس wget اقدام به دانلود آن‌ها می‌کند. (با گزینه i- در wget می‌توان urlها را از یک فایل خواند و مثال فوق جهت آشنایی با xargs آورده شده است)

  ls
یکی از نخستین دستوراتی که هر کاربر تازه‌کار لینوکسی اجرا می‌کند ls است. اجرای این دستور بدون هیچ گزینه‌ای باعث لیست‌کردن فایل‌ها و پوشه‌ها در مسیر جاری می‌شود اما گزینه‌های متنوعی در این دستور وجود دارند که باعث کاربردی‌تر شدن این دستور می‌شوند.

ls  -lh

همان‌طور که در بالا نیز اشاره شد اجرای دستور ls بدون هیچ گزینه‌ای باعث لیست‌کردن فایل‌ها و پوشه‌های موجود در مسیر جاری می‌شود اما این فهرست فقط شامل نام فایل‌ها و پوشه‌ها می‌شود. گزینه l باعث نمایش ویژگی‌های بیش‌تر و مشروح‌تر این فهرست نظیر سطح دسترسی‌ها، نام و گروه مالک فایل/پوشه، آخرین زمان تغییر و حجم آن می‌شود. علاوه‌بر آن با استفاده از این گزینه، فایل‌ها و پوشه‌های مخفی نیز نمایش داده می‌شوند.
نمایش حجم فایل‌ها و پوشه‌ها در گزینه l بر‌اساس بایت بوده که خواندن آن کمی سخت است. گزینه h باعث خوانایی بیشتر حجم فایل با استفاده از نمایش حجم بر‌اساس KB/MB/GB/TB خواهد شد.

ls   -ltr

اگر می‌خواهید جدیدترین فایل/پوشه‌هایی را که تغییر کرده‌اند فهرست کنید، می‌توانید از گزینه t استفاده کنید اما اگر می‌خواهید ترتیب نمایش بر‌عکس شود از گزینه r نیز باید استفاده کرد.

ls   -F

توزیع‌های کاملی مانند مینت و فدورا در دستور ls از رنگ‌های مختلفی برای تمیز دادن بین پوشه‌ها و فایل‌های از نوع مختلف استفاده می‌کنند اما اگر توزیع شما به‌صورت مینی‌مال نصب شده یا مانیتور شما سیاه و سفید است، می‌توان از گزینه F برای تشخیص بین فایل‌ها، پوشه‌ها، لینک‌های سمبلیک و … استفاده کرد. به‌عنوان نمونه نمایش / در انتهای هر گزینه نشان دهنده این است که آن مورد پوشه است و <= نشان می‌دهد که آن مورد یک لینک سمبلیک به یک فایل یا پوشه دیگر است.

pwd
اگرچه pwd یک دستور بسیار ساده شامل تنها دو گزینه است و شاید نخستین دستوری است که هر تازه وارد به لینوکس آن را اجرا می‌کند، اما یک دستور کاملاً کاربردی و مفید است. تنها گزینه‌های pwd شامل L برای logical و P برای physical می‌باشد. در حالت پیش‌فرض pwd با گزینه L اجرا می‌شود. مثلاً اگر به پوشه شماره ۱ بروید و pwd را اجرا کنید، مسیر همین پوشه نمایش داده می‌شود هر چند اگر این پوشه به پوشه دیگری لینک شده باشد، اجرای pwd با P- باعث نمایش مسیر واقعی پوشه می‌شود.

همچنین:  نصب لینوکس اوبونتو

cd
cd نیز از جمله ابتدایی‌ترین دستورات لینوکسی است. دستور cd بدون هیچ گزینه‌ای باعث انتقال مسیر جاری به پوشه خانگی کاربر اجرا کننده دستور می‌شود.  .. cd باعث رفتن به پوشه سطح بالاتر می‌شود و . cd به پوشه جاری می‌رود (مسیر جاری تغییر نمی‌کند).  اگر اشتباهی به یک مسیر رفته باشید و بخواهید به مسیر قبلی برگردید می‌توان از   –  cd  استفاده کرد. تایپ نام پوشه جلوی cd باعث رفتن به آن پوشه می‌شود اما برای جلوگیری از تایپ اشتباه نام پوشه می‌توان دستور   shopt   -s    cdspell را یک‌بار اجرا کرد تا اشتباهات تایپی نام پوشه در اجرای دستور cd برای ورود به آن پوشه به صورت خودکار اصلاح شود و با زدن کلید tab نام پوشه کامل شود.

gzip
gzip را از نظر گستردگی استفاده در سیستم‌عامل‌های خانواده لینوکس می‌توان با zip در ویندوز مقایسه کرد. البته gzip فشردگی مناسب و کافی روی فایل‌ها و پوشه‌ها نیز اعمال می‌کند.

gzip   test.txt

دستور فوق باعث فشرده شدن فایل test.txt با فرمت gz. می‌شود.

gzip   -d   test.txt.gz

برای استخراج یک فایل gz. باید از گزینه d استفاده کرد.

gzip    -l   wordpress-3.1.3.tar.gz
compressed        uncompressed  ratio uncompressed_name
۲۷۶۴۱۶۷             ۹۳۳۸۸۸۰  ۷۰٫۴% wordpress-3.1.3.tar

گزینه l برای لیست‌کردن و مقایسه حجم فایل اصلی با فایل فشرده شده و نمایش درصد فشرده‌سازی است.

bzip2
از نظر درصد فشرده‌سازی، bzip2 نسبت به gzip دارای میزان فشرده‌سازی بیشتری است و به‌همین دلیل در سیستم‌های جدید از این گزینه بیشتر استفاده می‌شود.

bzip2   test.txt

همانند  gzip، استفاده از bzip بدون هیچ آرگومانی باعث فشرده سازی فایل ورودی می‌شود.

bzip2   -d  test.txt.bz2

و برای استخراج نیز می‌توان همانند gzip از گزینه d  استفاده کرد.

gunzip
اگرچه معادل آزاد zip در لینوکس، tar است اما گاهی پیش می‌آید که بخواهیم فایل‌هایی را که در ویندوز zip شده‌اند extract کنیم.

unzip   test.zip

استفاده از unzip بدون هیچ آرگومانی باعث استخراج فایلی می‌شود که به‌عنوان آرگومان به آن داده شده است.

unzip      -l      Documents/articles/Shabakeh/1392/mysql-tips-tricks.zip
Archive:  Documents/articles/Shabakeh/1392/mysql-tips-tricks.zip
Length      Date    Time    Name
———  ———- —–   —-
۰  ۰۴-۱۶-۲۰۱۳ ۰۹:۲۹   mysql-tips-tricks/
۲۵۱۷۹  ۰۴-۱۶-۲۰۱۳ ۰۹:۲۹   mysql-tips-tricks/mysql-tips.jpg
۲۴۶۵۱  ۰۴-۱۶-۲۰۱۳ ۰۰:۰۶   mysql-tips-tricks/mysql-tips-tricks-PART1.odt
۲۳۲۵۳  ۰۴-۱۴-۲۰۱۳ ۱۵:۳۴   mysql-tips-tricks/mysql-tips-tricks-PART1 (copy).odt
———                     ——-
۷۳۰۸۳                     ۴ files

shutdown
برای خاموش یا راه‌اندازی دوباره سیستم دستورات زیادی وجود دارد اما shutdown جزء دستورات کامل و انعطاف‌پذیر است. لازم به ذکر است که دستور shutdown را فقط کاربر ریشه یا کاربرانی که به آن‌ها دسترسی لازم داده شده است می‌توانند اجرا کنند.

Shutdown   -h   now

اجرای دستور بالا باعث خاموش شدن بی‌درنگ سیستم می‌شود. Shutdown گزینه‌های مختلفی دارد بنابراین، با گزینه h به آن می‌گوییم که منظور از اجرای دستور، خاموش کردن سیستم است.
اگر می‌خواهید خاموش کردن سیستم را به دقایقی دیگر موکول کنید، می‌توانید مانند الگوی زیر از shutdown استفاده کنید.

shutdown  -h  +۱۰

برای راه‌اندازی دوباره سیستم  باید به این صورت از shutdown استفاده کرد:

shutdown -r now

برای بررسی کردن فایل سیستم پیش از راه‌اندازی دوباره سیستم می‌توان از گزینه F استفاده کرد:

shutdown -Fr now

اگر می‌خواهید اجرای shutdown را که به دقایق بعدی موکول شده است، متوقف کنید می‌توانید از سوئیچ c استفاده کنید.

ftp
ftp  یکی از قدیمی‌ترین پروتکل‌ها برای انتقال فایل است و sftp یا secure ftp برای رمزنگاری و جلوگیری از شنود به کار می‌رود. Ftp و sftp دارای گزینه‌های مشابه هستند.

ftp   IP/hostname
ftp>  mget *.html

برای لیست گرفتن فایل‌ها پیش از دانلود آن‌ها می‌توان مانند مثال زیر عمل کرد:

ftp>   mls *.html –
/ftptest/features.html
/ftptest/index.html
/ftptest/othertools.html
/ftptest/samplereport.html
/ftptest/usage.html

crontab
مدیران سیستم از crontab برای اجرای هر دستور در زمان معینی از روز، ماه یا سال استفاده می‌کنند. Crontab  مدیران سیستم را بی نیاز از نگه‌داری و اجرای دستورات تکراری روزانه می‌کند.

crontab   -u    ali    -l

دستور فوق موجب لیست‌کردن دستوراتی را که کاربر ali برای اجرا توسط crontab تعیین کرده است می‌شود.

*/۱۰   *   *   *   *   /home/ali/check-disk-space

الگوی فوق باعث اجرای دستور بررسی کردن فضای دیسک در هر ۱۰ دقیقه می‌شود.
وضعیت زمان‌دهی و نحو دستورات به این صورت است (از چپ به راست):

روز هفته     کاربر اجرا کننده دستور    دستور
روز ماه (۱تا ۳۱)        ماه (۱ تا ۱۲ یا jan ،feb و …)
دقیقه (۰ تا ۵۹)    ساعت (۰ تا۲۳)

البته، فرمتی که در بالا گفته شد فرمتی است که می‌توان در فایل etc/fstab/ وارد کرد (توسط کاربر ریشه) تا هر دستور توسط کاربر مورد نظر اجرا شود اما از آنجا که هر کاربر سیستم‌های لینوکسی می‌تواند crontab مخصوص به خود را داشته باشد و در مثال فوق از crontab کاربر ali استفاده شده است بنابراین، نیازی به وارد کردن فیلد کاربر اجرا کننده دستور نیست.



 service
اسکریپت‌های آغازین System V در مسیر etc/init.d/ (در توزیع‌های دبیان بیس) و etc/rc.d/init.d/ (در توزیع‌های ردهت بیس) قرار دارند. برای اجرای هر اسکریپت موجود در این مسیر باید ابتدا آن اسکریپت را با اجرای مسیر کامل فراخوانی و سپس از سوئیچ‌های  start ،stop،reload،restart و… استفاده کرد. در دستور service می‌توان نام اسکریپت و سپس سوئیچ مورد نظر را وارد کرد و نیازی به تایپ مسیر کامل نیست. همچنین service تعدادی ویژگی مفید دیگر هم دارد.

service  sshd  status

این دستور وضعیت سرویس ssh را نشان می‌دهد.

 

Service   –status-all

این دستور وضعیت سرویس‌های مختلف را نشان می‌دهد.

ps
از ps برای نمایش اطلاعات در مورد پروسه‌های در حال اجرای سیستم استفاده می‌شود. آرگومان‌های زیادی برای ps وجود دارد که در اینجا به چند مورد از آن‌ها اشاره می‌شود.

ps   -ef   |  more

از دستور قبلی می‌توان برای مشاهده تمام پروسه‌های سیستم استفاده کرد. سوئیچ e برای مشاهده کلیه پروسه‌ها و گزینه f برای نمایش به‌صورت full format استفاده می‌شود. از آنجا که به‌احتمال تعداد پروسه‌های در حال اجرای سیستم زیاد است، خروجی به more پایپ شده است تا بتوان به‌صورت صفحه‌ای پروسه‌ها را مرور کرد.

Ps    -efH   |   more

اگر می‌خواهید پروسه‌ها را به‌صورت نمودار درختی مشاهده کنید تا ببینید هر پروسه زیر پروسه کدام پروسه دیگر است می‌توان از گزینه H استفاده کرد.

free
یکی از نخستین مواردی که در کند شدن  و خواندن/نوشتن‌های پیاپی روی هارددیسک سیستم مورد بررسی قرار می‌گیرد میزان فضای خالی و مورد استفاده RAM است. دستور free میزان فضای خالی، فضای استفاده شده و مقدار حافظه cache شده RAM و حافظه swap را نشان می‌دهد. آن‌چه که free  به‌عنوان خروجی می‌دهد به این صورت است:

[ali@localhost ~]$  free
total       used       free     shared    buffers     cached
Mem:       ۳۹۱۹۸۰۸    ۳۶۲۴۲۲۰     ۲۹۵۵۸۸         ۰     ۲۳۳۰۶۸    ۱۷۶۶۹۱۶
-/+ buffers/cache:    ۱۶۲۴۲۳۶    ۲۲۹۵۵۷۲
Swap:      ۲۰۴۷۹۹۶      ۲۰۶۴۸    ۲۰۲۷۳۴۸

اما خروجی نشان داده شد بر حسب بایت است و خواندن را دچار مشکل می‌کند.
اگر می‌خواهید به سرعت دریابید که چند گیگابایت از حافظه اصلی سیستم شما در حال استفاده و چند گیگا‌بایت آزاد است، می‌توانید از گزینه g- استفاده کنید تا خروجی بر حسب گیگابایت نشان داده شود. سوئیچ‌های m- فضا را بر حسب مگا‌بایت و سوئیچ k- میزان فضا را بر حسب کیلوبایت نمایش می‌دهد. b- که گزینه پیش فرض نیز هست مقدار فضای آزاد و استفاده شده را بر حسب بایت نشان می‌دهد. مشاهده مجموع فضای خالی RAM و حافظه SWAP با استفاده از گزینه t- به‌راحتی امکان‌پذیر است.

همچنین:  دستورات لینوکس Linux - بخش دوم

[ali@localhost ~]$ free    -tg
total       used       free     shared    buffers     cached
Mem:             ۳          ۳          ۰          ۰          ۰          ۱
-/+ buffers/cache:          ۱          ۲
Swap:            ۱          ۰          ۱
Total:           ۵          ۳          ۲

top
زمانی که load پردازنده بالا رفته و به کندی به درخواست‌ها جواب می‌دهد، نخستین دستوری که برای بررسی‌کردن بار پردازنده اجرا می‌شود دستور top است. Top به‌صورت پیش فرض تمامی پروسه‌ها را بر‌اساس باری که روی پردازنده می‌گذارند لیست می‌کند.

پس از باز شدن top در ترمینال، cursor مخصوص برنامه در بالای پروسه‌ها آماده دریافت دستورات دستورات شما است. دستورات در top به کمک کلید‌های ترکیبی یا استفاده از حروف وارد می‌شوند.
به‌عنوان مثال، با وارد کردن حرف h یا علامت ؟، منوی help برنامه نمایش داده می‌شود. Z برای تغییر رنگ top و B برای Bold/Unbold کردن پروسه‌ها به کار می‌رود. با زدن کلید n می‌توان تعداد پروسه‌های نمایش داده شده را تعیین کرد. به عنوان مثال، می‌توان ۵ پروسه‌ای را که بیشترین‌بار را روی پردازنده می‌گذارند، به کمک n تعیین کرد.  از k هم می‌توان برای kill کردن یک پروسه استفاده کرد. از u هم می‌توان برای فیلتر کردن کاربر اجرا کننده پروسه استفاده کرد. معادل استفاده از سوئیچ u را می‌توان در هنگام اجرای دستور top مانند الگوی زیر استفاده کرد.

top    -u    ali

top علاوه‌بر نمایش بار روی پردازنده، میزان فضای حافظه‌ای که پروسه استفاده کرده، دستوری که پروسه را اجرا کرده، pid پروسه و اطلاعات بسیار دیگری را نمایش می‌دهد.

 df
df ( سر حرف disk free) است و برای مشاهده میزان فضای خالی و استفاده شده هر پارتیشن استفاده می‌شود. اجرای دستور df بدون هیچ گزینه‌ای میزان فضا را بر حسب بایت نمایش می‌دهد اما برای خواناتر شدن می‌توان از سوئیچ h- استفاده کرد. Df به صورت پیش فرض نوع فایل سیستم پارتیشن‌ها را نمایش نمی‌دهد و در صورتی‌که بخواهیم فایل سیستم نیز در خروجی دستور نمایش داده شود باید از سوئیچ T استفاده کرد.

df -hT
Filesystem     Type        Size      Used     Avail   Use%   Mounted on
devtmpfs       devtmpfs  ۱٫۹G     ۰           ۱٫۹G   ۰%       /dev
tmpfs             tmpfs        ۱٫۹G     ۶٫۶M    ۱٫۹G   ۱%       /dev/shm
tmpfs             tmpfs        ۱٫۹G     ۱۹۴M   ۱٫۷G   ۱۱%     /run
tmpfs             tmpfs        ۱٫۹G     ۰           ۱٫۹G   ۰%      /sys/fs/cgroup
/dev/sda5      ext4           ۱۶G      ۹٫۱G     ۵٫۶G   ۶۳%    /
tmpfs             tmpfs        ۱٫۹G     ۹۶K      ۱٫۹G   ۱%      /tmp
/dev/sda8       ext4          ۳۱۴G    ۲۸۱G    ۱۸G   ۹۵%     /home

kill
از kill برای خاتمه دادن به یک پروسه استفاده می‌شود. زمانی که پروسه‌ای به صورت زامبی درآید یا بار زیادی را روی سیستم تحمیل کند، به‌طوری که در کار سایر پروسه‌ها و برنامه‌ها اختلال ایجاد کند، باید به اجبار متوسل شد و از kill برای خاتمه دادن به آن پروسه استفاده کرد.

ps   aux   |  grep  libreoffice
ali    ۲۴۳۳  ۰٫۰  ۰٫۰ ۲۳۰۷۸۸  ۲۷۸۸ ?      Sl   Jul09   ۰:۰۱ /usr/lib64/libreoffice/program/oosplash –writer
ali     ۲۴۴۹  ۰٫۱  ۳٫۵ ۱۳۱۳۲۷۲ ۱۳۷۶۲۰ ?    Sl   Jul09   ۲:۵۶ /usr/lib64/libreoffice/program/soffice.bin –writer –splash-pipe=6
ali    ۲۲۲۶۵  ۰٫۰  ۰٫۰ ۱۰۹۱۸۰   ۸۴۸ pts/0   S+   ۱۰:۴۶   ۰:۰۰ grep –color=auto libreoffice

گزینه a برای نمایش پروسه‌هایی که تمامی کاربران روی سیستم اجرا کرده‌اند، x برای نمایش پروسه‌هایی که چه از طریق ترمینال و چه از غیر آن اجرا شده باشند، استفاده می‌شود و u هم برای نمایش کاربر اجرا‌کننده پروسه استفاده می‌شود. برای نابودی یک پروسه هم می‌توان از دستور kill به همراه pid آن پروسه استفاده کرد. اما اگر یک پروسه زیر پروسه‌هایی نیز داشته باشد باید از kill  -۹  استفاده کرد تا آن پروسه به همراه تمامی زیر پروسه‌هایش kill شوند. اگر می‌خواهید وضعیت زیر پروسه‌ها و این‌که هر پروسه چه پروسه‌های دیگری را اجرا کرده است، می‌توان از گزینه f در دستور ps استفاده کرد.

rm
rm هم از ابتدایی‌ترین دستوراتی است که هر کاربر یونیکسی/لینوکسی اجرا می‌کند. اگرچه این دستور ساده است اما در عین سادگی می‌تواند بسیار خطرناک هم باشد. برای به حداقل رساندن این خطر و جلوگیری از پاک شدن اشتباهی فایل‌ها می‌توان از گزینه i به همراه این دستور استفاده کرد:

rm  -i  vz.pdf
rm: remove regular file ‘vz.pdf’?

 

استفاده از گزینه i نیاز به تأیید در‌مورد پاک کردن فایل یا پوشه را موجب می‌شود که میزان خطر پاک‌کردن یک فایل دیگر به حداقل می‌رسد. همچنین اگر بخواهید چند فایل از بین چندین فایل را پاک کنید می‌توان از i برای نمایش نام فایل‌ها و انتخاب گزینه‌های موردنظر برای پاک شدن یا باقی ماندن استفاده کرد.

rm  -i   Screenshot*
rm: remove regular file ‘Screenshot from 2012-12-28 18:06:39.png’? y
rm: remove regular file ‘Screenshot from 2013-05-25 05:52:39.png’? y
rm: remove regular file ‘Screenshot from 2013-05-25 23:36:19.png’? n
rm: remove regular file ‘Screenshot from 2013-05-27 20:04:09.png’? Y

نخستین مشکلی که در rm با آن برخورد می‌شود، هنگام پاک‌کردن پوشه‌ای است که درون آن چندین فایل یا پوشه دیگر وجود دارد که rm خطای خالی نبودن پوشه را بر‌می‌گرداند. اگر از پاک کردن پوشه مورد نظر مطمئن هستید، می‌توان از گزینه r  برای پاک کردن پوشه به همراه تمامی محتویات آن استفاده کرد.

cp
کپی کردن نیز جزء نخستین و ساده‌ترین دستورات است اما می‌توان از گزینه‌های حیاتی و مفید این برنامه نیز استفاده کرد. اجرای دستور cp بدون هیچ گزینه‌ای، آرگومان دوم دستور را به‌عنوان یک کپی از آرگومان اول دستور می‌سازد.
با اجرای دستور cp، مالکیت فایل‌ها/پوشه‌ها منتقل نمی‌شود و مالک فایل یا پوشه ایجاد شده، کاربر اجرا کننده دستور خواهد شد. در صورتی‌که مایل هستید تا مالکیت هم منتقل شود، باید از گزینه p استفاده کرد. برای کپی‌کردن بازگشتی از پوشه‌هایی که خود دارای فایل یا زیر پوشه‌های دیگر هستند، باید از گزینه r استفاده کرد.
اجرای cp در صورتی‌که فایل یا پوشه‌ای هم اکنون در آن مسیر وجود داشته باشد باعث overwrite شدن روی مورد قبلی می‌شود. برای جلوگیری از این موضوع و این‌که آیا از قبل فایل/پوشه‌ای با این نام وجود دارد یا خیر می‌توان از گزینه i استفاده کرد.

mv
از mv هم می‌توان برای تغییر نام و هم برای جابه‌جایی استفاده کرد.

mv -i 25.png 26.png
mv: overwrite ‘۲۶٫png’?

همانند سوئیچ i در دستور cp، در دستور mv نیز می‌توان از این گزینه برای درخواست تأیید و اجتناب از overwrite شدن یک فایل روی فایل دیگر استفاده کرد. سوئیچ f دقیقا عکس i است و برای اجبار به overwrite کردن استفاده می‌شود. در صورتی‌که مایل هستید تا یک خروجی مشروح از تغییر نام یا انتقال داشته باشید، می‌توانید از گزینه v استفاده کنید.

cat
اگر چه ویرایشگرهای فوق‌العاده‌ای در لینوکس برای استفاده در محیط ترمینال وجود دارند اما بعضی اوقات نیاز نیست تا یک فایل را در یک ویرایشگر باز کرد. بلکه فقط می‌خواهیم محتویات یک فایل متنی را مشاهده کنیم. البته به کمک cat می‌توان چندین فایل را نیز مشاهده کرد:

cat   file1   file2

اگر بخواهیم شماره خطوط نیز در خروجی نمایش داده شوند می‌توان از گزینه n استفاده کرد:

[ali@localhost ~]$  cat  -n  cross.repo
۱    [cross]
۲    name=cross
۳    mirrorlist=http://mirrorlist.fedora-arm.wantstofly.org/?repo=cross&arch=$basearch
۴    gpgcheck=0

 

اشتراک گذاری این صفحه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.