رفتن به مطلب
انجمن توسعه دهندگان موبایل

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


ارسال های توصیه شده

دستور 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    3    -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    [email protected]

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

ssh برای این مشکل، استفاده از key را پیشنهاد می*دهد. به کمک سوئیچ i- و کلید عمومی سرور می*توان به راحتی بدون نیاز به رمزعبور به سرور راه دور متصل شد:

 

 

کد: [انتخاب]

>ssh      -i   /home/ali/id_dsa   [email protected]

 

sed

 

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

 

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

 

 

کد: [انتخاب]

>sed     's/.$//'      filename

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

 

 

کد: [انتخاب]

>sed     -n     '1!G;h;$p'      theTextFile.txt

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

 

 

کد: [انتخاب]

>sed      '/./='     theScript.sh |   sed    'N; s/\n/ /'

 

awk

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

 

 

کد: [انتخاب]

>awk    '!($0 in array)   { array[$0]; print }'   temp

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

 

 

کد: [انتخاب]

>awk    -F    ':'    '$3==$4'    passwd.txt

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

 

 

کد: [انتخاب]

>awk    '{print $2,$5;}'      employee.txt

 

vim

 

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

 

 

کد: [انتخاب]

>vim    +143    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
2c2,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

سه چیز رو هیچ وقت یادت نره

 

1- به همه نمی تونی کمک کنی

 

2- همه چیز رو نمی تونی عوض کنی

 

3-همه تو رو دوست نخواهند داشت

 

اسماعیل عطایی کچویی

چهارشنبه - ۲ اردیبهشت ۱۳۹۴

الأربعاء - ٣ رجب ١٤٣٦

Wednesday - 2015 22 April

لینک ارسال

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
           2764167             9338880  70.4% 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
---------  ---------- -----   ----
       0  04-16-2013 09:29   mysql-tips-tricks/
   25179  04-16-2013 09:29   mysql-tips-tricks/mysql-tips.jpg
   24651  04-16-2013 00:06   mysql-tips-tricks/mysql-tips-tricks-PART1.odt
   23253  04-14-2013 15:34   mysql-tips-tricks/mysql-tips-tricks-PART1 (copy).odt
---------                     -------
   73083                     4 files

 

shutdown

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

 

 

کد: [انتخاب]

>Shutdown   -h   now

 

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

اگر می*خواهید خاموش کردن سیستم را به دقایقی دیگر موکول کنید، می*توانید مانند الگوی زیر از shutdown استفاده کنید.

 

 

کد: [انتخاب]

>shutdown  -h  +10

 

برای راه*اندازی دوباره سیستم باید به این صورت از 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 تعیین کرده است می*شود.

 

 

کد: [انتخاب]

>*/10   *   *   *   *   /home/ali/check-disk-space

 

الگوی فوق باعث اجرای دستور بررسی کردن فضای دیسک در هر ۱۰ دقیقه می*شود.

وضعیت زمان*دهی و نحو دستورات به این صورت است (از چپ به راست):

 

 

روز هفته کاربر اجرا کننده دستور دستور

روز ماه (1تا 31) ماه (۱ تا ۱۲ یا jan ،feb و ...)

دقیقه (۰ تا ۵۹) ساعت (۰ تا۲۳)

 

 

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

سه چیز رو هیچ وقت یادت نره

 

1- به همه نمی تونی کمک کنی

 

2- همه چیز رو نمی تونی عوض کنی

 

3-همه تو رو دوست نخواهند داشت

 

اسماعیل عطایی کچویی

چهارشنبه - ۲ اردیبهشت ۱۳۹۴

الأربعاء - ٣ رجب ١٤٣٦

Wednesday - 2015 22 April

لینک ارسال

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:       3919808    3624220     295588         0     233068    1766916
-/+ buffers/cache:    1624236    2295572
Swap:      2047996      20648    2027348

اما خروجی نشان داده شد بر حسب بایت است و خواندن را دچار مشکل می*کند.

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

 

کد: [انتخاب]

>
[ali@localhost ~]$ free    -tg
            total       used       free     shared    buffers     cached
Mem:             3          3          0          0          0          1
-/+ buffers/cache:          1          2
Swap:            1          0          1
Total:           5          3          2

top

زمانی که load پردازنده بالا رفته و به کندی به درخواست*ها جواب می*دهد، نخستین دستوری که برای بررسی*کردن بار پردازنده اجرا می*شود دستور top است. Top به*صورت پیش فرض تمامی پروسه*ها را بر*اساس باری که روی پردازنده می*گذارند لیست می*کند. شکل1 پروسه*های در حال اجرای سیستم را در دستور 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  1.9G     0           1.9G   0%       /dev
tmpfs             tmpfs        1.9G     6.6M    1.9G   1%       /dev/shm
tmpfs             tmpfs        1.9G     194M   1.7G   11%     /run
tmpfs             tmpfs        1.9G     0           1.9G   0%      /sys/fs/cgroup
/dev/sda5      ext4           16G      9.1G     5.6G   63%    /
tmpfs             tmpfs        1.9G     96K      1.9G   1%      /tmp
/dev/sda8       ext4          314G    281G    18G   95%     /home

kill

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

 

کد: [انتخاب]

>
ps   aux   |  grep  libreoffice
ali    2433  0.0  0.0 230788  2788 ?      Sl   Jul09   0:01 /usr/lib64/libreoffice/program/oosplash --writer
ali     2449  0.1  3.5 1313272 137620 ?    Sl   Jul09   2:56 /usr/lib64/libreoffice/program/soffice.bin --writer --splash-pipe=6
ali    22265  0.0  0.0 109180   848 pts/0   S+   10:46   0:00 grep --color=auto libreoffice

 

گزینه a برای نمایش پروسه*هایی که تمامی کاربران روی سیستم اجرا کرده*اند، x برای نمایش پروسه*هایی که چه از طریق ترمینال و چه از غیر آن اجرا شده باشند، استفاده می*شود و u هم برای نمایش کاربر اجرا*کننده پروسه استفاده می*شود. برای نابودی یک پروسه هم می*توان از دستور kill به همراه pid آن پروسه استفاده کرد. اما اگر یک پروسه زیر پروسه*هایی نیز داشته باشد باید از kill -9 استفاده کرد تا آن پروسه به همراه تمامی زیر پروسه*هایش 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 ‘26.png’?

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

 

cat

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

 

 

کد: [انتخاب]

>cat   file1   file2

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

 

کد: [انتخاب]

>
[ali@localhost ~]$  cat  -n  cross.repo
    1    [cross]
    2    name=cross
    3    mirrorlist=http://mirrorlist.fedora-arm.wantstofly.org/?repo=cross&arch=$basearch
    4    gpgcheck=0

سه چیز رو هیچ وقت یادت نره

 

1- به همه نمی تونی کمک کنی

 

2- همه چیز رو نمی تونی عوض کنی

 

3-همه تو رو دوست نخواهند داشت

 

اسماعیل عطایی کچویی

چهارشنبه - ۲ اردیبهشت ۱۳۹۴

الأربعاء - ٣ رجب ١٤٣٦

Wednesday - 2015 22 April

لینک ارسال

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

×
×
  • اضافه کردن...