انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: MHA152 در 02 شهریور 1392، 11:52 بظ
-
هر چقدر که محیطهای گرافیکی و برنامههای پر زرق و برق در لینوکس وارد شوند باز هم خط فرمان جایگاه خاص خود را دارد و هرگز آن را از دست نخواهد داد. در این مجموعه مطالب که بخش اول را در این شماره میخوانید، قرار است ۵۰ دستور متداول و پر کاربرد لینوکسی را مرور کنیم. البته اینها فقط دستورات لینوکسی نیستند بلکه به احتمال دستورات متداول دیگری نیز در لینوکس وجود دارند که در این مطلب از قلم افتادهاند.
دستور 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 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 '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
منبع (http://www.shabakeh-mag.com/Article.aspx?id=1008104)
-
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 استفاده شده است بنابراین، نیازی به وارد کردن فیلد کاربر اجرا کننده دستور نیست.
منبع (http://www.shabakeh-mag.com/article.aspx?id=1008177)
-
بخش سوم:
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 نشان میدهد.
(http://www.shabakeh-mag.com/data/gallery/2013/10/148%20-%20linux%20-%2001.jpg)
پس از باز شدن 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
-
http://www.shabakeh-mag.com/article.aspx?id=1008389
-
http://www.shabakeh-mag.com/article.aspx?id=1008540
-
شاید دیدهاید که فایلهای متنی ویندوزی در لینوکس بهطور کامل در یک خط نمایش داده میشوند (با ذخیره فایل در ویندوز با تنظیمات پیش فرض). اگر میخواهید خطوط بهصورت صحیح نمایش داده شود، باید در پایان هر خط ویندوزی یک r\n\ اضافه کنید. Sed این کار را بهراحتی برای شما انجام میدهد:
اشتباه نیست عایا؟ باید می نوشت: فایل های لینوکسی توی ویندوز بد نشان داده می شوند و باید برای نمایش صحیح آن ها یک \r\n اضافه کرد.
-
شاید دیدهاید که فایلهای متنی ویندوزی در لینوکس بهطور کامل در یک خط نمایش داده میشوند (با ذخیره فایل در ویندوز با تنظیمات پیش فرض). اگر میخواهید خطوط بهصورت صحیح نمایش داده شود، باید در پایان هر خط ویندوزی یک r\n\ اضافه کنید. Sed این کار را بهراحتی برای شما انجام میدهد:
اشتباه نیست عایا؟ باید می نوشت: فایل های لینوکسی توی ویندوز بد نشان داده می شوند و باید برای نمایش صحیح آن ها یک \r\n اضافه کرد.
تا حالا امتحان نکردم ولی با توجه به پرانتزش بعید میدونم منظورشون همین نبوده باشه
-
بخش 3 اضافه شد
-
ایووووووووووووووووووووووول
-
محمد حسین دمت گرم.
++++
-
http://www.shabakeh-mag.com/article.aspx?id=1008389
-
دوستان 50 دستور پر کاربرد تکمیل شد امیدوارم که دوست داشته باشید
-
واقعا ممنان.
-
+1