-
راهنمای آغاز کار با خط فرمان
پیشفرضها: در اینجا فرض میشود که کاربر
- یک توزیع گنو/لینوکس[1] (مانند اوبونتو (http://ubuntu.com)، مینت (http://linuxmint.com)، فدورا (http://getfedora.org) و...) در حال اجرا روی رایانهٔ خود یا در یک مجازیساز مانند VirtualBox (http://virtualbox.org) دارد.
- میداند که چگونه دنیای تار را هوشمندانه و با بهترین ابزارها جستوجو کنید (DDG (http://ddg.gg))
- به خواندن برگههای راهنما (man pages) رغبت دارد!
پیوندهای پیشنهادی:
- لیست فرمانها (http://web.archive.org/web/20150525094735/http://wiki.ubuntu.ir/BashCommands) - ویکی قدیمی
- خط فرمان (http://web.archive.org/web/20150322070244/http://wiki.ubuntu.ir/CommandlineHowto) - ویکی قدیمی
- آموزش خط فرمان (http://web.archive.org/web/20150322065817/http://wiki.ubuntu.ir/AdvancedCommandlineHowto) - ویکی قدیمی
- استفاده کردن از ترمینال (http://web.archive.org/web/20150725065539/http://wiki.ubuntu-ir.org/UsingTheTerminal) - ویکی قدیمی
- راهنمای کامل خط فرمان: بخش ۱ (http://web.archive.org/web/20101031134746/http://www.technotux.org/html/Sections-req-viewarticle-artid-8-allpages-1-theme-Printer.html)، بخش ۲ (http://web.archive.org/web/20100616212413/http://www.technotux.org/html/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=9&page=1)، بخش ۳ (http://web.archive.org/web/20110128103622/http://www.technotux.org/html/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=10&page=1)، بخش ۴ (http://web.archive.org/web/20100616235639/http://www.technotux.org/html/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=11&page=1)، بخش ۵ (http://web.archive.org/web/20100617003535/http://www.technotux.org/html/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=12&page=1) - تکنوتاکس
- مقاله فرمان و فاتح (http://forum.ubuntu.ir/index.php/topic,7903.0.html) - انجمن
- معرفی فرمانهای ترمینال (http://linuxseason.ir/?p=3281) - لینوکسسیزن
- اصول اولیه ترمینال (http://linuxseason.ir/?p=4679) - لینوکسسیزن
- میانبرهای ترمینال (http://www.linuxreview.ir/1390/06/linux-keyboard-shortcuts) - لینوکسریوییو
- نکتههای خط فرمان (http://forum.ubuntu.ir/index.php/topic,3480.0.html) - انجمن
- فرمانهای مفید و کاربردی در لینوکس (http://www.hamcodi.ir/article/254) - همکدی
- ترفندهای خط فرمان (http://forum.ubuntu.ir/index.php/topic,17817.0.html) - انجمن
- چطور در کامندلاین لینوکس حرفه ای باشیم یا «لینوکس را درک کنیم» (http://planet.sito.ir/%DA%86%D8%B7%D9%88%D8%B1-%D8%AF%D8%B1-%DA%A9%D8%A7%D9%85%D9%86%D8%AF%D9%84%D8%A7%DB%8C%D9%86-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85/)- جادی-دات-نت
- چرا نباید هر فرمانی را که میبینیم، بدون درک اینکه چگونه کار میکند، به درون ترمینال برده و اجرا کنیم؟ (http://forum.ubuntu.ir/index.php/topic,46592.0.html)- انجمن
فیلمهای آموزشی
- آموزش بش (http://www.aparat.com/rss/alireza_amirsamimi) (علیرضا امیرصمیمی (http://amirsamimi.mihanblog.com/post/tag/Bash))
- آموزش بش (Bash) در یوتیوب (http://forum.ubuntu.ir/index.php/topic,46802.0.html)
- دوستی با خط فرمان (http://www.aparat.com/v/TdiwM/%D8%AC%D8%A7%D8%AF%DB%8C_%D8%AA%DB%8C_%D9%88%DB%8C_%DB%B0%DB%B1%DB%B3-_%D8%A2%D9%85%D9%88%D8%B2%D8%B4_%D8%A7%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88_%D9%82%D8%B3%D9%85%D8%AA_%DB%B3%3A_%D8%AF%D9%88%D8%B3%D8%AA%DB%8C_%D8%A8%D8%A7) (جادی.نت (http://jadi.net))
- دوره آموزشی LPI (http://lpic.mp3yab.ir/) (جادی.نت (http://jadi.net))
کتاب:
- راهنمای آموزشی بش (http://libooks.ir/Libooks%20Files/Persian/General/BashGuide.tar.bz2)؛ ترجمه محمود پهلوانی
- اسكريپت نويسی در لينوكس (http://www.naghoospress.ir/bookview.aspx?bookid=1486690)؛ انتشارات ناقوس
[۱] لینوکس یا گنو/لینوکس؟ پیشنهاد میشود مقالهٔ «چه چیزی درون یک نام نهفته است؟ (http://www.gnu.org/gnu/why-gnu-linux.fa.html)» را بخوانید.
-
پیشگفتار[۱]
امروزه محیطهای گرافیکی این امکان را فراهم کردهاند که کارهایمان را بینیاز از دانش اولیهٔ محیطهای متنی انجام دهیم. رابطهای گرافیکی زیادی برای توزیعهای گنو/لینوکسی[۲] وجود دارد، مانند یونیتی (http://unity.ubuntu.com/)[۳] ، گنوم (http://gnome.org) (Gnome)، پلاسما (http://kde.org) (Plasma)، باجی (https://solus-project.com/budgie/) (Budgie) و...، که هر یک به شیوهای متفاوت کار میکند و استانداردسازی اندکی بینشان وجود دارد. در حالی که تقریباً همهٔ این توزیعهای گنو/لینوکس از دستوراتی مشابه برای اجرا در ترمینال خط فرمان استفاده میکنند. کاربران حرفهای در کنار محیط گرافیکی از محیط متنی نیز بسیار استفاده میکنند، زیرا با آن سریعتر میتوان به اطلاعات دسترسی داشت و یا دستوری را برای سیستمعامل صادر و پیگیری کرد.
برای کاربرانی که تازه به اوبونتو کوچ میکنند و تجربهای از محیطهای متنی ندارند، دستورهای خط فرمان، شاید چهرهای گنگ داشته باشند. این خطها را ببینید:
sudo apt install ubuntu-restricted-extras
echo -e 'khat_aval \nKaht_dovom \tYek_TAB_Faseleh' > test.txt
cat test.txt
اما نگران نباشید! این دستورهای ناآشنا بهمرور ابزار کار روزمرهتان خواهند شد. هر کاربری که بتواند کارهایی ابتدایی مانند تایپ کردن، رونوشت گرفتن و چسباندن (Paste & Cut) را انجام دهد، می تواند خط فرمان گنو/لینوکس را مدیریت کند که از این گونه کارها (رونوشت گرفتن و ...)، مشکلتر نخواهد بود! مهم است گفته شود که حتی کاربران باتجربه نیز اغلب دستورها را از یک مرجع یا راهنما در خط فرمان Copy & Paste میکنند، زیرا دستورها را به یاد نمیآورند!
فراخواندن ترمینال
محیط متنی لینوکس که همان محیط سنتی یونیکس (Unix) است، یک رابط خط فرمان (Command Line Interface, CLI) است که در آن با تایپ دستور به کامپیوتر میگویید که چه انجام دهد. برای دسترسی به این محیط متنی که اصطلاحاً Shell نامیده می شود، کافی است یک ترمینال جدید باز کنید. برای باز کردن ترمینال:
- کلیدهای ترکیبی Ctrl + Alt + T را بفشارید که در بیشتر توزیعهای گنو/لینوکسی کار میکند و یا:
- در محیط یونیتی و گنوم-شل واژهٔ «terminal» را Dash بنویسید!
- در محیط Plasma (مانند کوبونتو)، دکمههای [Alt]+[Spacebar] را زده و konsole را بنویسید.
- در محیط Mate در توزیع مینت: Applications menu > Accessories > Terminal
- در محیط Xfce (مانند زوبونتو): Applications menu > System > Terminal
- در محیط LXDE (مانند لوبونتو): Menu > Accessories > LXTerminal
در زیر تصویری از ترمینال را مشاهده میکنید:
(http://uploadkon.ir/uploads/Terminal%201.png)
نکتهها:
- ترمینال (Terminal)، یک رابط گرافیکی برای شل (Shell) است. شل آن چیزی است که دستورات را تفسیر میکند (دستوری را از صفحه-کلید میگیرد و پاسخ مناسب را میدهد - اینجا (http://unix.stackexchange.com/a/4132) و اینجا (http://www.linuxcommand.org/lc3_lts0010.php) را بخوانید) و ترمینال برنامهای emulator برای ارتباط با آن در یک محیط گرافیکی! است. همچنین ممکن است واژهٔ console را شنیده/دیده باشید: پس اینجا (http://www.linuxmantra.com/2010/04/console-vs-terminal.html) را بخوانید.
- در خط فرمان کاربر عادی با نشانهٔ $ و کاربر ریشه (root) با نشانهٔ # (بخوانید هَش) مشخص میشوند. (به تصویر بالا دوباره نگاه کنید.)
- خط فرمان به بزرگ و کوچک بودن حروف حساس است. Command، command و COMMAND، با هم متفاوت هستند.
- رونوشتگیری و چسباندن در ترمینال را میتوانید با گزینههای زبانهٔ Edit پنجرهٔ ترمینال انجام دهید. کلیدهای ترکیبی Ctrl+Shift+C و Ctrl+Shift+V نیز به ترتیب رونوشتگیری و چسباندن را انجام می دهند. دکمهٔ میانهٔ موس (غلطک) نیز میتواند عمل چسباندن متنی را که از پیش select شده است، انجام دهد!
- کارایی کلید Tab: فرض کنید میخواهید دستور sudo را تایپ کنید، اما فقط سه حرف اول آن را به یاد دارید (مثلاْ نمی دانید که sudo یا sudu). بنابراین کافی است که همان سه حرف را تایپ کنید و Tab را بزنید. اگر دستور یکتا باشد، یعنی دستور دیگری نباشد که با این سه حرف آغاز شود، دستور نیمخوردهٔ sud به sudo کامل خواهد شد. یعنی ترمینال دستور را شناسایی کرده و ادامهٔ آن را درج میکند. به این ترتیب با کلید Tab می توانید سریعتر دستورهایتان را تایپ کنید. اما اگر با زدن یکبار کلید Tab، دستور خودکار کامل نشد ممکن است حرفهای تايپ شده سرنام چند دستور باشد که در این صورت اگر Tab را دوباره فشار دهید، همهٔ آنها لیست می شوند. اگر Tab دوم هم برونده نداشت، یعنی دستوری که با حروف شما آغاز شود، وجود ندارد و آنچه که تایپ کردهاید، اشتباه است!
- Directory یا شاخه: اگر با مفهوم پوشه (Folder) در سیستمعاملهای دیگر آشنایی دارید، همان نگاه را به directory نیز داشته باشید که محلی برای نگهداری پروندهها است.
[۱] بخشهایی از مطلب بالا ترجمهٔ آزادی است از: https://help.ubuntu.com/community/UsingTheTerminal (https://help.ubuntu.com/community/UsingTheTerminal)
[۲] اگر هنوز نام گنو/لینوکس برایتان ابهام دارد، یک رایانامهٔ خالی به نشانی linux1@darsnameh.com بفرستید! در این تاپیک برای اختصار بعضا ممکن است از واژهٔ لینوکس بهجای گنو/لینوکس استفاده شده است.
[۳] اگر با محیط گرفیکی اوبونتو هنوز آشنایی کافی ندارید، به ویدیوهای تارنمای http://playubuntu.github.io (http://playubuntu.github.io) نگاهی بیاندازید.
-
- در این پست مختصرا با چند دستور معمول آشنا خواهید شد.
- نسخهٔ پیدیاف این پست و پست پیشین پیوست شده است.File & Directory Commands
(pwd, ls, cd, cp, mv, rm, rmdir, mkdir)
pwdprint name of working directory
دستور pwd به شما این امکان را میدهد که بدانید در کدام شاخه (directory) قرار دارید. برای آشنایی با directoryهای لینوکس اینجا (https://docs.google.com/open?id=0Bzsnn8gTh8MLTzJjRTNfNXBxUGM) را ببینید.
lslist
دستور ls، پوشهها و پروندههای درون یک شاخه را لیست میکند. برای نمونه، دستور ls ~، محتویات شاخهٔ خانهٔ کاربر را نمایش میدهد. در مورد دستور ls در پستهای بعدی بیشتر خواهید خواند. دستور ls افزودههای زیادی دارد که در زیر به چند مورد آن اشاره شده:
ls -R #به صورت تودرتو محتویات پوشههای داخلی را نیز نمایش میدهد که اصطلاحا به آن نمایش «بازگشتی» میگویند
ls -1 #عدد ۱ میگوید گه خروجی در یک ستون نمایش داده شود
ls -l #جزئیات بیشتری را نمایش میدهد مانند مالک گروه، تعداد پروندههای درون پوشهها و تاریخ تغییرات روی فایلها
ls -a #پروندههای پنهان را نمایش میدهد. پروندههای پنهان، پروندههایی هستند که نام آنها با نقطه شروع میشود
ls -F #با استفاده از نماد * (بخوانید Asterisk) برای پروندههای اجرایی و / برای پوشهها، کار شناسایی محتویات را سادهتر میکند
سوئیچهای r-، S- و t- به ترتیب خروجی را بر حسب وارون الفبایی، سایز و تاریخ مرتبسازی و نمایش میدهند.
نکته: نشانهی ~ که به آن tilde گفته میشود، به شاخهٔ خانهٔ کاربر (home directory) اشاره دارد.
cdchange directory
دستور cd، ترمینال را از شاخهٔ کنونی به شاخهٔ هدف تغییر میبرد. وقتی که ترمینال را باز میکنید، در آغاز در شاخهٔ /home/user قرار دارد. برای رفتن به شاخههای دیگر از cd استفاده کنید. در اینجا چند نمونه میآوریم:
- رفتن به شاخهٔ ریشه: cd /
- رفتن به شاخهٔ /opt (شاخهٔ opt در شاخهٔ root قرار دارد): cd /opt
- رفتن به خانهی کاربر: cd ~
دستور cd وقتی به تنهایی به کار رود، معادل ~ cd است.- رفتن به یک سطح بالاتر از شاخهٔ کنونی: cd ..
- رفتن به دو سطح بالاتر: ../.. cd
- برگشت به شاخهٔ پیشین: cd -
- برای گذر از میان چندین سطح از شاخهها، نشانی کامل شاخهٔ هدف را بنویسید.
cpcopy
دستور cp، برای رونوشتگیری بهکار میرود.
رونوشتگیری از یک پرونده:
cp <path of file> <new path>
با دستور بالا رونوشت کاملی از پرونده در شاخهٔ مشخص شده در بخش پایانی دستور، اندوخته میشود.
رونوشتگیری از یک پوشه
cp -r <path of folder> <new path>
دستور بالا رونوشتی از هر شاخهای را که به آن بدهید، به همراه تمام پروندهها و زیرشاخههایش در شاخهٔ تازهای که در بخش پایانی دستور مشخص میکنید، میگذارد.
mvmove
دستور mv، دو کارآیی دارد: تغییر نام و جابجایی
- تغییر نام یک پرونده یا پوشه
mv A B
با دستور بالا، پرونده یا شاخهٔ با نام A، نام تازهی B را به خود میگیرد.
- جابجایی یک پرونده یا شاخه
mv <path of file> <new path>
میخواهیم پروندهٔ A.ogg که آن را یک پروندهٔ ویدیویی فرض میکنیم، از خانهٔ کاربر (یعنی ~) به روی میزکار منتقل کنیم. دستور چنین نوشته میشود:
mv ~/A.ogg ~/Desktop
نکته: در هنگام جابجایی یک شاخه یا پرونده، همزمان میتوانید نام آن را نیز تغییر دهید. دستور زیر پروندهٔ A.ogg را از شاخهٔ خانهی کاربر بر میدارد و آن را با نام B روی میزکار کاربر میگذارد:
mv ~/A.ogg ~/Desktop/B.ogg
چگونه یک فایل را از طریق ترمینال میتوان پاک کرد؟rmremove
از دستور rm برای پاک کردن یک پرونده و در صورت استفاده از آپشن -r برای پاک کردن شاخهها (directories) استفاده میشود.
هشدار: به یاد داشته باشید که rm پروندههای پاک شده را به سطل زباله (Trash) نمیبرد. در صورت استفاده از rm، تنها راه بازیابی، ریکاوری اطلاعات از روی دیسک با برنامههای دیگر مانند testdisk میباشد. از اینرو برخی کاربران ترجیح میدهند برای پرهیز از پاک کردن سهوی یک فایل، rm را به صورت rm -i در قالب یک alias برای بش تعریف کنند. در مورد alias اینجا (https://duckduckgo.com/?q=what+are+bash+aliases) را ببینید.
+ شکلهای استفاده از دستور:
rm /Path/to/File
با دستور بالا پروندهی مورد نظر پاک میشود. نام پرونده باید به همراه پسوند آن تایپ شود. مثلاً اگر نام پروندهای A.ogg است، دستور rm A عمل نخواهد کرد.
برای پاک کردن یک directory (شاخه)، دستور زیر را بهکار ببرید:
rm -r /The/Target/Path
توجه کنید که باید به جای /The/Target/Path در دستور بالا، آدرس پوشهٔ موردنظرتان را درج کنید. با دستور بالا، شاخهٔ تعیین شده با تمامی پروندهها و زیرشاخههایش پاک میشود.
نکتهها:
- دستور rmdir: با این دستور می توانید یک یا چندین پوشهی خالی (empty) را حذف کنید. برای پوشههایی که خالی نباشند عمل نخواهد کرد.
نمونه: برای پاک کردن پوشه هایی با نام های Folder1، Folder2 و Folder3 که همگی خالیاند، دستور را چنین میزنیم:
rmdir Folder1 Folder2 Folder3
- دستور rm -r میتواند به صورت ترکیبی پوشهها و پروندهها را پاک کند:
rm -r A.ogg B Folder1
که Folder1، پوشه فرض شده است.
- دستور rm و به طور کلی فرآیند عادی پاک کردن در رایانه، پاک کردن فیزیک اطلاعات نیست، زیرا بر روی دیسکهای سخت تنها میتوان نوشت و یا از روی آن خواند. سیستمفایل پارتیشن شما (از نوع ntfs - fat - ext و...) وظیفهٔ آدرسی پروندههای بر روی هارد را بر عهده دارد. در یک مثال ساده و به دور از پیچیدگیهای فنی، موضوع را بیشتر باز میکنیم: پروندهٔ A.ogg را در نظر بگیرید. دستور rm A.ogg، نام و محل قرارگیری پروندهٔ A.ogg روی پارتیشن را از لیستی که سیستمفایل برای پروندهها ساخته، پاک میکند، اما پروندهٔ A.ogg هنوز در پارتیشن موردنظر بر روی هارد قرار دارد. تفاوتی که با وضعیت قبل از پاک کردن پرونده ایجاد شده در اینجاست که سیستمعامل دیگر نمیداند که این پرونده کجا است، چون در لیست نیست و از اینرو محلی را که پروندهٔ A.ogg به طور فیزیکی در آن قرار گرفته، خالی در نظر میگیرد و ممکن است دادههای بعدی شما را در همان محل آدرسیدهی کند. بنابراین برای پاک کردن کامل پروندهٔ A.ogg از روی هارد، بایستی آن را بازنویسی کنید. دستور shred با افزودهٔ u میتواند این کار را انجام دهد:
shred -u A
با افزودهٔ n میتوانید دفعات بازنویسی را افزایش دهید:
shred -un5 A
اگر میخواهید فرآیند overwrite را ببینید، از افزودهٔ v استفاده کنید بهویژه برای پروندههای بزرگ. shred بازنویسی را تصادفی انجام میدهد، پس اگر میخواهید در آخرین گام بازنویسی، صفرها روی هارد شما نوشته شوند، از افزودهٔ z استفاده کنید:
shred -vuzn5 A
Help Commands
(man, info, apropos)
manmanual
از 'man' برای گرفتن راهنمایی در مورد یک دستور استفاده میشود. دستوری را که می خواهید در مورد آن اطلاعاتی را به دست آورید، با فاصلهی یک نویسه (Character) در جلوی man تایپ و Enter کنید. سپس راهنمای دستور در همان ترمینال نمایش داده میشود. با کلید Spacebar (کلید بزرگ پایین صفحه کلید) می توانید صفحات بخش راهنما را جلو بروید و برای خروج از راهنما حرف Q را روی کیبورد فشار دهید. مثلاْ می خواهیم ببینیم که دستور sudo چه کاری انجام میدهد و شیوهی استفاده از آن چگونه است. پس در ترمینال می نویسیم:
man sudo
یا برای گرفتن راهنمایی درباره نرمافزار بارگیری wget مینویسیم:
man wget
و برای راهنمایی از خود دستور man، طبیعتاً باید نوشت:
man man
وقتی از man روی یک دستور استفاده میکنید، در برگهی راهنما در مقابل نام دستور یک عدد بین دو کمانک نشان داده میشود. این عدد به چه معنا است؟ بخش زیر را از برگهی راهنمای man، در اینجا میگذاریم:
The table below shows the section numbers of the manual followed by the types of pages they contain:
1 -> Executable programs or shell commands
2 -> System calls (functions provided by the kernel)
3 -> Library calls (functions within program libraries)
4 -> Special files (usually found in /dev)
5 -> File formats and conventions eg /etc/passwd
6 -> Games
7 -> Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 -> System administration commands (usually only for root)
9 -> Kernel routines [Non standard]
نکتهها:
- برای جستوجو در سرخط man-pageها از آپشن -k استفاده کنید. نمونه:
man -k "system information"
- اگر میخواهید در متن man-page یک دستور مشخص واژه یا عبارتی را جستوجو کنید، پس از وارد شدن به برگهی راهنمای دستور، کلید slash را روی صفحه کلید بفشارید، واژه/عبارت خود را در دنبالهی آن بنویسید و Enter کنید.
- میتوانید یک راهنمای دستور موردنظرتان را به پروندهی pdf تبدیل کنید:
man -t <COMMAND> | ps2pdfwr - > ~/<COMMAND>.pdf
به جای عبارتهای <COMMAND> نام دستور موردنظرتان را بنویسید. پرندهٔ ساخته شده در شاخهٔ خانهٔ کاربر ذخیره میشود.
apropossearch the manual page names and descriptions
شما نمیتوانید همهی دستورها و کاربردشان را به ذهن بسپارید. apropos اینجاست که به شما کمک کند. به apropos بگویید دنبال چه چیزی میگردید تا دستورهای پیشنهادیاش را به شما بگوید! برای نمونه به apropos میگوییم دستوری برای رونوشت گیری از یک پرونده میخواهیم؟ دستور زیر را در ترمینال میزنیم:
apropos "copy file"
این دستور را اجرا کنید و بُروندهی آن را ببینید.
توجه کنید که apropos مانند man -k عمل میکند، اما با این ویژگی اضافه که wildcardها (با سوئیچ w-) و regexها (با سوئیچ r-) را میفهمد.
** دستور info مستنداتی را که برای دستورها در فرمت پیشنهادی بنیاد گنو آماه شدهاند نمایش میدهد. با info info اطلاعات بیشتری دربارهٔ آن بهدست بیاورید.
Identifying Users
whowho is logged on
دستور who برای مشاهدهی کاربر(ان) کنونی استفاده میشود. این دستور، نام کاربرانی که به سامانه وارد شدهاند، زمان ورود و ... را نمایش میدهد.
optionهای who:
who -a
who -b
who -q
که به ترتیب
a ابتدای all برای مشاهدهی همهی دادهها
b ابتدای boot برای مشاهدهی زمان آخرین بوت شدن سامانه
q برای نمایش تنها نام کاربران حاضر در سامانه و شمارش آنها
برای مشاهدهی سایر optionهای این دستور از دستور man کمک بگیرید: man who
نکتهها:
- ترمینال را باز کنید و who را فرمان دهید. چرا دو خط را در خروجی نمایش میدهد؟ حال بدون بستن ترمینال کنونی، یک ترمینال دیگر باز کنید و دستور who را دوباره فرمان دهید. اینبار سه خط را در خروجی میبینید! شما ویژگی بزرگ لینوکس یعنی چندکاربره بودن آن را به کار گرفتهاید! هر پنجرهی تازهی ترمینال، یک login تازه است در کنار لاگینی که شما به محیط گرافیکی لینوکس خود داشتهاید.(http://www.lugod.org/presentations/intro2linux/images/multiuser.gif)
- اگر میخواهید تنها نام کاربریتان را ببینید، whoami را فرمان دهید و اگر میخواهید جزئیات ورود تنها خودتان را ببینید، who am i را فرمان بدهید. اگر 'who am i' را اجرا کردید، who mom likes را هم فرمان بدهید و خروجی را ببینید و همینطور: who f g
- دستور زیر جزئیات همهٔ ورودهای پیشین را نمایش میدهد:
who -H /var/log/wtmp
- برگهی راهنمای دستور w را نیز ببینید: man w
catconcatenate
فرمان cat چند پرونده متنی را به دنبال هم میچسباند. کافی است پروندهها را بهدنبال هم فراخوانی کنید. گاهی اوقات از آن برای به هم چسباندن پروندههای آرشیوی چند تکه شده (مانند zipها) (http://unix.stackexchange.com/a/40481) نیز استفاده میشود. اما cat دو استفادهٔ معمول دیگر نیز دارد:
۱. نمایش محتوای پروندههای متنی روی صفحه: کافی است پس از فرمان cat، مسیر پرونده متنی را درج کنید.
۲. ساخت پروندههای متنی: فرمان cat، سپس علامت < و پس از آن نام پروندهای را که میخواهید بسازید، درج کنید. پس از زدن دکمه Enter، متن مورد نظرتان را تایپ کنید. در انتها یک Enter و پس از آن Ctrl+D
cat > ~/Documents/test.txt
با فرمان بالا، وقتی کلیدهای Ctrl+D را در پایان روندی که گفته شد، بفشارید، پروندهٔ test.txt در مسیر ~/Documents با محتوایی که تایپ کردهاید، ساخته میشود.
echodisplay a line of text
فرمان زیر به اندازهٔ کافی گویا است!
echo "Hello World!"
apt
فرمان apt، مدیر بسته (Package Managet) در توزیع اوبونتو است. از وظایف آن میتوان به نصب نرمافزار، حذف نرمافزار و به روزرسانی سیستم اشاره کرد.
sudo apt install gimp
فرمان بالا از ۴ جزء تشکیل شده است. با sudo اجازهٔ دستکاری در سیستم (در اینجا نصب نرمافزار) را میگیرید. سپس مدیر بستهٔ apt را فرامیخوانید. با install خواستهٔ خود را به apt میفهمانید و gimp نرمافزاری است که apt قرار است نصب کند. همانطور که ملاحظه میکنید نیاز نیست خودتان فایل اجرایی نرمافزارها را روی اینترنت از جاهای مختلف (و بعضا غیرقابل اعتماد) دانلود کنید و سپس نصب کنید. کافی است به apt بگویید کدام برنامه را نیاز دارید! اما شاید بخواهید یک برنامه را از روی سیستمتان پاک کنید، پس:
sudo apt remove gimp
فرمان بالا نرمافزار gimp را پاک میکند.
چگونه سیستمتان را بروز رسانی کنید؟ باز apt اینکار را برایتان انجام میدهد. نخست لیست نرمافزارهای مخازن را بهروز کنید:
sudo apt update
نرمافزارها در اوبونتو از طریق اینترنت با مخازنی رسمی -که سرورهایی در نقاط مختلف دنیا هستند- همگام میشوند. به این معنی که اگر نسخهٔ جدیدی برای مثلاً Firefox بیاید، توسط افرادی که به نگهدارنده (maintainer) بستهها معروفاند، بررسی شده و اگر مشکلی نداشته باشد، وارد مخازن اوبونتو میشود. apt برای اینکه بداند نسخهٔ جدیدی از فایرفاکس در مخازن اوبونتو وارد شده، باید آخرین تغییرات مخازن را دریافت کند. sudo apt update آخرین اطلاعات مخزنها را در اختیار apt میگذارد. اما هنوز نرمافزاری بهروز نشده است! برای بهروزرسانی سیستم، پس از دستور بالا دستور زیر را اجرا کنید:
sudo apt upgrade
اکنون به apt گفتهاید که اگر نسخهٔ جدیدتری از نرمافزارهای نصب شده روی سیستمتان در مخازن اوبونتو وجود دارد، آنها را دریافت کرده و جایگزین نسخهٔ قدیمیتر کند
- توزیعهای مختلف، مدیربستههای مختلفی دارند. apt در اوبونتو و دبیان و توزیعهایی که از این دو مشتق شدهاند مانند ElementaryOS، مینت، کالی و... استفاده میشود. توزیع فدورا از مدیر بستهٔ dnf، آرچ از pacman، اوپنسوزه از zypper، نیکساواس از Nix (http://nixos.org/nixos/manual/index.html#sec-package-management)، جنتو از portage (https://wiki.gentoo.org/wiki/Portage) استفاده میکنند و این لیست به همین موارد محدود نمیشود.
-
sudosuperuser do
در اوبونتو (و در کل سیستمعاملهای گنو/لینوکسی) شناسه ریشه (root) به دلایل امنیتی به طور پیشفرض قفل است. کاربر برای نصب نرمافزار و اساساً هر دستور پیکربندی باید یا به شناسهٔ ریشه لاگین کند یا به طور موقت تا سطح اجرایی کاربر ریشه(root user) بالا برود. دستور sudo برای شناسایی شما به عنوان کاربر دارای پروانهٔ دسترسی استفاده میشود. وقتی دستور sudo را به کار میبرید، بی درنگ از شما گذرواژه شناسهٔ کاربریتان پرسیده میشود. گذرواژه را تایپ کنید که عموماً در پنجرهٔ ترمینال چیزی نمایش داده نمیشود (به دلایل امنیتی)، اما شما گذرواژه را به درستی تایپ کرده و دکمهٔ Enter را بزنید.
با sudo، شناسهٔ کاربری شما، موقتا دسترسی کاربر ریشه را میگیرد. دستور sudo، ناپایدار است و ارتقا به سطح مدیر سیستم را فقط تا حد زمانی مشخصی (15 دقیقه، بیشتر یا کمتر) نگه خواهد داشت و پس از این زمان و یا با بستن ترمینال منقضی خواهد شد.
روش استفاده از sudo به اینصورت است:
sudo apt install <Software_Name>
دستور بالا برای نصب نرمافزارها استفاده میشود. همانطور که میبینید قبل از دستوری که به دسترسی ریشه نیاز دارد (در مثال بالا دستور apt) به کار گرفته میشود.
* داخل پرانتز: از دستور apt install برای نصب و از apt remove برای حذف نرمافزار استفاده میشود.
نکتهها:
- در هنگام نصب اوبونتو، کاربر root خودکار ساخته میشود و کاربری که شما در آخرین گام نصب میسازید، یک کاربر adminstrator است که با کاربر root یکی نیست. در صورت تمایل میتوانید با دستور sudo passwd root، برای کاربر root گدرواژه بگذارید.
- میتوانید با دستور sudo su بدون انقضا دسترسی کاربر ریشه بگیرید که از نظر امنیتی توصیه نمیشود. اعلان خط فرمان به این صورت تغییر خواهد کرد:
user@PCBOX:~$ => root@PCBOX:/home/user#
برای خارج شدن از سطح کاربر root، دستور exit را فرمان بدهید. لازم به ذکر است که با sudo su تنها دسترسی ریشه میگیرید اما به شناسهٔ کاربر root لاگین نکردهاید. برای لاگین به شناسهٔ کاربر روت باید از su --login root استفاده کنید:
user@PCBOX:~$ => root@PCBOX:~#
- هر شناسهٔ کاربری در سیستم نمیتواند از sudo استفاده کند. باید به کاربر حق استفاده از sudo داده شده باشد.
- با ویرایش فایل etc/sudoers/ میتوانید مدت زمان اعتبار دستور sudo را تغییر دهید. توصیه اکید میشود برای اعمال تغییرات از visudo editor با اجرای دستور زیر استفاده کنید:
sudo visudo
دستور man sudoers را برای راهنمایی بیش تر به کار گیرید. راهنمای مناسبی در این مورد را میتوانید در این نشانی (http://www.go2linux.org/sudoers-how-to) بیابید.
+ بیشتر بخوانید: https://help.ubuntu.com/community/RootSudo (https://help.ubuntu.com/community/RootSudo)
++ راهنمای شخصیسازی تنظیمات sudo (http://forum.ubuntu.ir/index.php/topic,59347.0.html)
exitcause the shell to exit
از دستور exit برای بستن پنجرهی ترمینال استفاده میشود. همچنین اگر در ترمینال سطح کاربری خود را به root تغییر داده باشید، از exit برای بازگشت به سطح کاربر عادی استفاده میشود.
-
وقتی که سیستم بالا میاد یه سری اطلاعا کاملی تو دایرکتوری /proc قرار میگیره که میتونه خیلی مفید باشه.
برای دیدن اطلاعات کاملی در مورد CPU:
cat /proc/cpuinfo
در مورد RAM:
cat /proc/meminfo
البته اگه تو دایرکتوری /proc بگردید اطلاعات جالبی میتونید پیدا کنید. من خودم واسه پیدا کردن اطلاعات مثلا در مورد CDROM ام یه دستوری میزنم که میره کل /proc رو میگرده و اطلاعاتی که توش کلمه CDROM باشه رو نشون میده.
find ./[!0-9]* | xargs cat | grep CDROM
که مثلا واسه من میگه 'TOSHIBA' 'CDROM' 0x100
البته همه این دستور ها باید کامل بعدا توضیح داده بشه، اما فقط گفتم که واسه پیدا کردن اطلاعات دیگه یه راهی فعلا داشته باشیم. دوستان واسه پیدا کردن اطلاعات دیگه اگه کسی راه بهتری سراغ داره بگه.
دستور cat هم واسه مشاهده اطلاعات یک فایل مثل یه فایل متنی تو ترمینال استفاده میشه. ایشالا یکی از دوستان یا خودم بعدن درمورد این دستور توضیحات کاملی رو میدیم.
موفق باشید
-
apt-get command
1- apt-get install XXXXX
2- apt-get update
3- apt-get clear
4- apt-get upgrade
5- apt-get remove XXXX
و این:
whoami
باحاله یوزر جاری رو نشون می ده! تو tron legacy هم ازش استفاده کرد.
halt
خاموش کردن سیستم.
تو لینوکس option ها رو با - میارن مثلا nautilus -q یا بعضی مواقع -- nautilus --browser
و دستور killall یک برنامه رو می کشه. killall firefox-bin یا killall nautilus
و افزودن سورس ppa در ترمینا
sudo add-apt-repository ppa:tualatrix/ppa
و top
واسه دیدن لیست برنامه هایی که بیشتر از رم و سی پی یو استفاده کردن.
-
گرفتن image iso در ترمینا.
sudo dd if=/dev/cdrom of=cd.iso
sudo dd if=/dev/dvd of=dvd.iso
مونت کردن Mounting an image
mkdir -p /mnt/isoimage
mount -o loop -t iso9660 cd.iso /mnt/isoimage
Unmount
umount -lf /mnt/isoimage
\\:D/
پی نوشت: اگه دو تا سیدی رام یا دیوی دی رام دارین
/dev/cdrom می شه اولی /dev cdrom1 می شه دومی یا /dev/dvd و /dev/dvd1
-
توجه: متن زیر ترجمهٔ مقالهٔ "command-line-history-in-ubuntu-terminal (http://chrisjean.com/2009/03/09/command-line-history-in-ubuntu-terminal/)" از تارنگار Chris Jean (http://chrisjean.com) است.
historyThose who forget history, are doomed to repeat it by manual entry
BASH، کوتاه شدهٔ عبارت Bourne Again SHell، پوستهٔ پیشفرض خط فرمان اوبونتو و بسیاری دیگر از دیستروها است (منظور از دیسترو، توزیع گنو/لینوکسی است. distro، کوتاه شدهٔ distribution است که عرفی شده). این آموزش بر پایهٔ BASH خواهد بود که ممکن است در سایر توزیعهای گنو/لینوکسی یا دیگر محیطهای کاری مانند zsh (https://duckduckgo.com/?q=zsh)، کار کند یا نکند.
وقتی که شما پنجرهٔ ترمینال (نشست کنونی) را میبندید، BASH، همهٔ دستورهایی را که شما در آن نشست اجرا کردهاید، در پروندهٔ bash_history./~ مینویسد. وقتی یک پنجرهی ترمینال (نشست) تازه باز میکنید، این پرونده خوانده میشود و دستورهای پیشین به همراه دستورهای تازهای که در این نشست اجرا میکنید، تاریخچهٔ تازهٔ دستورهایتان میشود.
توجه داشته باشید که دستورهای اجرا شده در یک نشست فقط زمانی که نشست بسته می شود، در تاریخچه ثبت می شوند. بنابراین اگر همزمان دو نشست باز باشد، دستورهایی که بهتازگی در هر یک اجرا شدهاند، نمیتوانند در دیگری اجرا شوند. [یعنی دستورهای اجرا شده در هر پنجرهٔ باز، فقط برای همان پنجره در دسترس است.]
راهبری سادهٔ تاریخچهٔ دستورها
راه سادهٔ آغاز کار با تاریخچهٔ دستورهایتان، استفاده از کلیدهای جهتی بالا و پایین صفحه کلید است. با کلید جهتی بالا شما میتوانید دستورهای پیشین را یکی یکی مرور کنید. برای برگشت در لیست دستورها، کلید جهتی پایین را به کار بگیرید. وقتی دستور مطلوب خود را یافتید، میتوانید با آن طوری رفتار کنید که گویی آن را در خط فرمان تایپ کردهاید. کافی است دکمهٔ Enter را فشار دهید تا دستور دوباره اجرا شود یا اگر نیاز است میتوانید دستور را پیش از اجرا اصلاح کنید. این روش برای اجرای سریع دستورهایی که شما پیدرپی باید اجرا کنید - اگر دستورهای زیاد دیگری بینشان نباشد - عالی است.
لیست کردن تاریخچهٔ دستورها و جستوجوی آن
بااجرای دستور history بدون هیچ optionی، BASH همهٔ دستورهای تاریخچه را لیست کند. هر دستور با یک شماره برچسب می خورد. از چگونگی استفاده از این شمارهها در ادامه صحبت خواهد شد. همچنین با تخصیص دادن یک عدد برای دستور history میتوانید شمار خاصی از آخرین دستورهای اجرا شده را فراخوانی کنید. برای نمونه، برای دیدن 10 دستور پیشین، میتوانید دستور زیر را اجرا کنید:
history 10
510 which bash
511 echo $$
512 ps aux|grep 32115
513 which sh
514 history
515 man history
516 history|grep echo
517 vi ~/.bash_history
518 tail -10 ~/.bash_history
519 history 10
توجه کنید که دستور آخر همان دستوری است که برای فراخوانی این لیست دادهاید. بنابراین دستور history 1، خود همین دستور و شمارهٔ آن را لیست می کند.
توجه: از لیست بالا و شمارههای آن برای مثالهای بعدی استفاده خواهد شد.
جستوجوی تاریخچه
اگر به یاد می آورید که زمانی دستور خاصی را اجرا کردید، ولی نمیتوانید کامل به یاد آورید که چگونه آن را انجام دادید، ترکیب کردن history با grep (http://chrisjean.com/2009/01/21/grep-why-i-love-linux/)، راهی ساده برای پیدا کردن آن دستور تنها با استفاده از بخشی از دستور است.
فرض کنیم که شما پیشتر دستوری [ابتکاری] اجرا کردید که همهٔ پروندههایی را مییابد که در پوشهٔ Documents/~ به .pdf ختم میشوند و سپس پروندههای .pdf را به مواردی که در نامشان واژهٔ ”manual” وجود دارد، محدود کند و نتیجه را در یک لیست الفبایی وارونه نمایش دهد. ولی اکنون به یاد ندارید که چگونه این کار را انجام دادید. پس به سراغ تاریخچهٔ دستورها بروید و آن را بکاوید. از آن بخشی از دستور که میتوانید به یاد آورید، جزئی را که فکر میکنید در تاریخچه کمتر در سایر دستورها استفاده شده (در اینجا فرض میکنیم واژهٔ manual)، به عنوان هدف جستوجو برگزینید و دستور را چنین اجرا کنید:
history|grep manual
407 find ~/Documents -type f | grep \.pdf$ | grep manual | sort -r
اکنون گمشدهٔ خود را یافتید.
اجرای دوبارهٔ دستورها پیشین
جستوجو در history عالی است، اما آیا ترجیح نمیدهید که یافتهها را بیدرنگ اجرا کنید بهجای اینکه دستورها پیدا رونوشت (copy) گرفته و بچسبانید (paste). باز این BASH است که برای شما چارهای دارد. اگر مایلید که دستور پیشین (آخرین دستور تاریخچه)، سریعاً دوباره اجرا شود، به سادگی میتوانید دستور ”!!” اجرا کنید نخستین علامت تعجب (!) به BASH میگوید که شما در حال اجرای یک دستور از تاریخچه هستید. دومین علامت تعجب به BASH میگوید که دستور موردنظر همان آخرین دستور تاریخچه است که شما مایلید دوباره اجرا شود. تنها دو علامت تعجب دارید که ساده و سریع تایپ میشود.
تا اینجا دید که چگونه تاریخچهٔ دستوراتتان را جستوجو کنید و دستور موردنظرتان را بیابید. اکنون زمان استفاده از شمارهٔ دستور است. [برای نمونه] اگر میخواهید دستور 510 را دوباره اجرا کنید (به مثال 'history 10' نگاه کنید)، به سادگی میتوانید دستور زیر را بزنید:
!510
which bash
/bin/bash
میبینید که نخست دستور واقعی نظیر به شمارهٔ 510 (در اینجا دستور which bash) در تاریخچه لیست میشود و سپس برونده آن نمایش داده میشود. BASH، دستور !number را با دستور واقعی از تاریخچه جایگزین میکند. همچنین میتوانید پارامترهای اضافهای را به دستور !number بیافزایید. به مثال سادهٔ زیر توجه کنید:
!510 dash
which bash dash
/bin/bash
/bin/dash
توجه کنید که دستور کنونی پارامتر اضافهای دارد که به دستور اصلی افزوده شده است. مطابق انتظار نخست اصل دستور لیست میشود و سپس بُروندهٔ آن دستور نمایش داده میشود. همچنین میتوانید number! را با شیوههای استاندارد گسترش دهید. برای نمونه:
!412 | grep ~/Desktop
!510 > shell_locations.txt
جستوجو و اجرای دستورهای پیشین
علامت تعجب ”!”، به عنوان تابعی از BASH، میتواند تاریخچه را جستوجو کند و نخستین یافته را اجرا کند (این جستوجو از آخرین دستور اجرا شده به سوی نخستین دستور تاریخچه انجام میشود). برای این حالت، به کارگیری شکل پایهٔ دستور (!text) بخش ابتدایی دستورها را برای یافتن مورد همخوان جستوجو میکند. برای مثال ”find!”، آخرین دستوری را که با find شروع میشود، دوباره اجرا می کند. [فرض کنیم آخرین دستور اجرا شده با find، دستور find abc.pdf باشد. find! همین دستور را دوباره اجرا میکند و همانطور که پیشتر گفته شد میتوان ذستور را گسترش داد. در همین مثال اخیر، دستور گسترش یافتهٔ rm !find، پروندهٔ abc.pdf را پاک می کند]
شما هم چنین میتوانید همه ی دستورهای تاریخچه را برای اجرای آخرین دستوری که در آن عبارت خاصی به کار رفته است، جستوجو کنید:
!?text?
دستور بالا، آخرین دستوری را که در آن واژهٔ ”text” به کار رفته را فرا میخواند.
history پیشرفته با Regular Expressions
شما با ترکیب کردن ابزارهای دنیای لینوکس با Regular Expressions (http://www.regular-expressions.info)، میتوانید قدرتی زیادی به دست آورید. History در BASH، این امکان را فراهم میکند که شما دستورهای پیشین را با یک جستوجو و جایگزینی با استفاده از Regexها (کوتاه شدهٔ REGular EXpressions) [برای هدفی تازه] اجرا کنید.
مثالی را که پیشتر برای جستوجوی پروندههای pdf زده شد به یاد بیاورید. دستور را با تغییراتی مجدد اجرا میکنیم. اکنون به جای جستوجوی Documents/~، پوشهٔ ~/Downloads جستوجو میکنیم. دستور را به شکل زیر بهکار میبریم:
!412:s|~/Documents|~/Downloads|
find /home/username/Downloads -type f | grep \.pdf$ | grep link | sort -r
/home/username/Downloads/Solution-manual_(Linear-Algebra).pdf
/home/username/Downloads/Manually_type_old_books.pdf
/home/username/Downloads/manual4algebra.pdf
/home/username/Downloads/abstract-algebra_(manual).pdf
توجه کنید که جستوجو و جایگزینی با افزودن دستور ”|:s|find|replace“ به انتهای دستور history (در مثال بالا به انتهای !412)انجام میشود. علامت “|” Pipe نامیده میشود. در اینجا از pipeها برای خواناتر شدن دستور استفاده شد. شما همچنین میتوانید این بخش از دستور را به این شکل به کار ببرید: ”/:s/find/replace“
- پاک کردن تاریخچهٔ دستورهای نشست کنونی: به طور پیشفرض آخرین دستورهایی که کاربر در خط فرمان وارد میکند، در فایل مخفی ".bash_history" ذخیره میشود. به هر دلیلی ممکن شما بخواهید که تاریخچهٔ دستورهای پنجرهٔ ترمینال کنونیتان در .bash_history اندوخته نشود. دستور ”history -c“ را در ترمینال وارد کنید و سپس میتوانید پنجرهٔ ترمینال را ببندید. برای پاک کردن همه تاریخچه، دستور زیر را اجرا کنید:
echo '' > ~/.bash_history
- این برگهٔ تقلب را دریافت کنید: http://www.catonmat.net/download/bash-history-cheat-sheet.pdf (http://www.catonmat.net/download/bash-history-cheat-sheet.pdf)
-
(http://www.thegeekstuff.com/wp-content/uploads/2008/08/bash-command-line.jpg)
دستور history برای دیدن دستوراتی هست که شما قبلا در ترمینال نوشته اید .
با زدن history به تنهایی لیست تمام دستوراتی که قبلا نوشته اید رو میاره .
مثلا قسمتی از history سیستم من
root@debian:/# history
3 echo "4+10" | bc
4 echo "obase=15;5+9" | bc
5 sudo
6 halt
7 cd /
8 ls /etc
9 nano pam.conf
10 cd pam.conf
11 nano pam.conf
12 cd pam.d
13 cd pam.d
14 nano pam.d
15 nano /etc/pam.conf
16 cd /etc/pam.d
17 ls
18 man pam
19 PAM
20 man PAM
21 ls
22 nano su
23 ls
24 cp su /etc/pam.d/su.save
25 ls
26 nano su
27 login
28 ls
29 mkdir test
30 cd /
31 nano /etc/passwd
32 login
33 nano /etc/passwd
34 nano /etc/passwd
35 sudo
36 login
37 cd /
38 ls
39 nano /etc/passwd
40 login
41 ls
42 login
43 nano /etc/passwd
44 login
45 cd /
46 mkdir /home/khodam
47 login
48 cd /
49 groupadd
50 groupadd
51 gropadd limit
52 gruopadd limit
53 groupadd
54 groupadd limit
55 useradd -g {limit} khodam
56 useradd -g limit khodam
57 passwd khodam]
58 passwd khodam
59 usermod khodam
60 chage
61 chage khodam
62 usermod --help
63 ls
64 ls /home
65 login
66 nano /etc/security/limits.conf
67 nano /etc/security/limits.conf
68 cd /etc/sudoers
69 cd /etc/sudoers
70 cd /etc
71 ls
72 cd sudoers
73 cd sudoers
74 ls sudoers
75 nano sudoers
76 visudo
77 nano /etc/security/limits.conf
78 visudo
79 apt-get install squid
80 squid
81 nano /etc/squid.conf
82 cd /etc/squid
83 nano squid.conf
84 nano squid.conf
85 /etc/init.d/squid restart
86 cd /
87 nano /etc/squid/squid.conf
88 /etc/init.d/squid restart
89 nano /etc/squid/squid.conf
90 /etc/init.d/squid restart
91 /etc/init.d/squid restart
92 nano /etc/shels
93 ls /etc/shels
94 cd etc
95 ls
96 cd /
97 cd etc
98 ls
99 cd shells
100 nano shells
101 chsh
102 chsh khodam
103 nano shells
104 chsh khodam
105 nano shells
106 apt-get install lshel
107 apt-get install lshell
108 ch
109 cd security
110 ls
111 nano access.conf
112 visudo
113 visudo
114 visudo
115 visudo
116 cd /
117 upime
118 uptime
119 aptget install sudo debianutils coreutils
120 apt-get install debianutils coreutils
121 apt-get install coreutils
122 cd /usr/local/sbin
123 wget http://www.fuschlberger.net/programs/sshscpsftpchrootjail/make_chroot_jail.sh
124 wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
125 chmod 700
126 chmod 700 make_chroot_jail.sh
127 nano make_chroot_jail.sh
128 useradd
129 useradd ansary
130 passwd ansary
131 cd /home
132 ls
133 ln s . home
134 ln s . home
135 ls
136 ln s . home
137 ls
138 mkidir gailed
جستوجو در history
برای جستو جو در history کلید ترکیبی Control+R بزنید بعد کلمه ی کلیدی مورد نظر رو وارد کنین این جوری دستور قبلی که توش اون کلمه کلیدی بوده رو میاره وشما بازدن enter میتونین اونو اجرا کنین .
مثلا در زیر با دادن کلمه کلیدی red دستور قبلی که توش کلمهی red بوده رو میاره ((cat /etc/redhat-release))
# [Press Ctrl+R from the command prompt,
which will display the reverse-i-search prompt]
(reverse-i-search)`red': cat /etc/redhat-release
[Note: Press enter when you see your command,
which will execute the command from the history]
# cat /etc/redhat-release
Fedora release 9 (Sulphur)
اگه وقتی که کلمه کلیدی خودتونو دادین و دستور مورد نظرتون امد و خاستین توش تغییری ایجاد کنین قبل از اجرا قبل از اینکه enter رو بزنین کلید چب یا راستو از روی کیبوردتون بزنین ((left arrow or right arrow))
مثلا در زیر stop رو به start تغییر میدیم
# [Press Ctrl+R from the command prompt,
which will display the reverse-i-search prompt]
(reverse-i-search)`httpd': service httpd stop
[Note: Press either left arrow or right arrow key when you see your
command, which will display the command for you to edit, before executing it]
# service httpd start
تکرار کردن دستور قبلی به 4 روش
1-با زدن دکمه بالا ((up arrow)) دستور قبلی نشون داده میشه . برای اجرا enter را بزنین.
2- بنویسین !! اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه
3-بنویسین " 1-! " اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه ((ااگر جایه عدد n فرض کنیم nمین دستور قبل رو اجرا میکنه ))
4- Control+P دستور قبلی رو نشون میده برای اجرا کردنش enter رو بزنین
اجرا کردن دستور به وسیله شماره اون در history
اگه خروجی دستور history در بالا رو نگاه کنین میبینین که هر دستوری برای خودش یک شماره ای داره حالا اگر بخایم دستور شماره ی 517 رو اجرا کنیم دستور به این شکل میشه :
517!
مثلا
501 cd /
502 history
503 history --help
504 ls -a
505 ls -a
506 ls -a
507 history |more
508 history
509 history
510 history
511 top
512 ls -l
513 top
514 ls-1
515 ls-1
516 history
517 last |grep ppp |grep still
518 sudo netstat -na
519 history
520 ls -a /var/log
521 nano /etc/pam.d
522 halt --help
523 history
root@debian:/# !512
ls -l
total 8872
-rw-rw-r-- 1 aliali aliali 28 Sep 17 18:42 0-103
-rw-rw-r-- 1 aliali aliali 4 Oct 4 08:51 1
-rw-rw-r-- 1 aliali aliali 4 Oct 4 08:52 1*
-rw-rw-r-- 1 aliali aliali 331 Sep 17 20:16 1004
-rw-rw-r-- 1 aliali aliali 257 Sep 18 12:05 1005
خلاصه روش هایه اجرایه دستورات از داخل history :
!! = دستور قبل رو اجرا میکنه .
n-! = م nمین دستور قبل رو اجرا میکنه. (شمارش از اخر به اول)
n! = دستور شماره n رو اجرا میکنه .
string!= اخرین دستوری که با استرینگ شروع بشه اجرا میشه.
string?! = اخرین دستوری که توش استرینگ باشه اجرا میشه.
تغییر تعداد دستورات قابل ذخیره شدن
برای این کار فلدر bash_profile. که در دایرکتوری خانگیتون هست رو با یک ادیتور باز کنین و مقادیر رو مثل پایین تغییر بدین
# vi ~/.bash_profile
HISTSIZE=100
HISTFILESIZE=100
ذخیره نکردن بعضی دستورات به 2 روش
روش اول :
برای این که history بعضی دستوراتو ذخیره نکنه فلدر bash_profile. باز کنین و این خطو اضافه کنین
HISTCONTROL=ignorespace
حالا دستوراتی که اولشون یک space داشته باشه ذخیره نمیشه
مثلا
# ls -ltr
# pwd
# service httpd stop [Note that there is a space at the beginning of service,
to ignore this command from history]
# history | tail -3
67 ls -ltr
68 pwd
69 history | tail -3
روش دوم:
فایل bash_profile. رو با ادیتور مورد نظرتون باز کنین و دستورات رو به صورت جدا شده از هم با" : "بنویسین :
HISTCONTROL="pwd:ls -ltr:"
برای پاک کردن history این دستورو بزنین
history -c
منبع : http://www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-history/ (http://www.thegeekstuff.com/2008/08/15-examples-to-master-linux-command-line-history/)
چند مثال دیگه تو منبع هست که نگفتم
-
(http://alieblice.persiangig.com/image/cd-command-hack.jpg)
دستور cd برای جابه جایی بین فولدر ها استفاده میشود
کلا اپشن هایه زیادی ندارد ولی با ترکیب کردنش با دستورات دیگر کارایی شو تا حد زیادی میشه بالا برد که در سرعت انجام کار ها تاثیر زیادی داره
مثال
فرض میکنیم که میخاین وارد دسکتاپتون بشین خوب برای این کار اگه ترمینال رو باز کنینباید داخل home دایرکتوریتون باشین که برای فهمیدنش میتونین از دستور زیر استفاده کنین
pwd
دستور pwd مکان هم اکنون شما رو نشون میده که مثلا برای من الان این هست
alieblice@de-10:~$ pwd
/home/alieblice
همون طور که در بالا میبینین alieblice فولدر خانگی من هست ((( user's home directory ))
حالا چگونه وارد دسکتاپ بشیم
اول دستور cd رو مینویسیم و سپس ادرس فولدری که میخایم واردش بشیم
alieblice@de-10:~$ cd Desktop
حالا pwd بگیرین
alieblice@de-10:~/Desktop$ pwd
/home/alieblice/Desktop
چند نکته :
در بالا گفتیم ادرس فایل رو مینویسیم که خوب در مواقعی مثل بالا که فایل مورد نظر ما (( Deksktop )) در همون مکانی هست که ما الان داخلش هستیم فقط لازمه اسم اون فولدر مورد نظرمون رو بنویسیم
اگه شرایط مثل بالا نبود و در یک فولدر دیگری بودیم باید ادرس فولدر مورد نظرمون (( Desktop )) رو به صورت کامل بنویسیم (( به صورت کامل یعنی از اولین صفحه دایرکتوری درایومون )) با مثال زیر بهتر متوجه میشین
مثال :
در زیر فرض میکنیم شمت میخاین از دسکتاپ (( /home/alieblice/Desktop )) میخاین به فایل videos که ادرسش این هست برین (( /home/alieblice/Videos))
کارو به 2 صورت میشه انجام داد
1- ادرس فولدر Videos روکامل بزنیم
نکته مهم :
به ' / ' قبل از home توجه کنین اگه اون رو بزارین یعنی ادرس رو دارین از اولین دایرکتوری (( صفحه اول درایو )) مینویسین ولی اگر نزارین دنباله ادرس داخل همون دایرکتوری که هم اکنون هستین میگرده
alieblice@de-10:~/Desktop$ cd /home/alieblice/Videos
alieblice@de-10:~/Videos$
alieblice@de-10:~/Videos$ pwd
/home/alieblice/Videos
alieblice@de-10:~/Videos$
یکی این که یک دایرکتوری به عقب برگردیم و بعد بریم داخل Videos
برای برگشتن به یک دایرکتوری به عقب از دو تا نقطه استفاده مکینیم
alieblice@de-10:~/Desktop$ pwd
/home/alieblice/Desktop
alieblice@de-10:~/Desktop$
alieblice@de-10:~/Desktop$ cd ..
alieblice@de-10:~$
alieblice@de-10:~$ pwd
/home/alieblice
alieblice@de-10:~$
alieblice@de-10:~$ cd Videos/
alieblice@de-10:~/Videos$
alieblice@de-10:~/Videos$ pwd
/home/alieblice/Videos
alieblice@de-10:~/Videos$
مراحل رو کامل به همراه pwd گذاشتم قکر نکنم احتیاج به تو ضیح باشه
برگشتن به ادرس قبلی
اگه به روش اول مثال قبل عمل کرده باشین یعنی مستقیم از Desktop به Videos رفته باشین و بخاین دوباره به Desktop برگردین از - استفاده میکنیم که مراحل کار به این شکل میشود
alieblice@de-10:~/Videos$ cd -
/home/alieblice/Desktop
alieblice@de-10:~/Desktop$
برگشتن به home دایرکتوری
برایه این کار از ~ (( shift +دکمه بالایه tab )) استفاده کنین
alieblice@de-10:~/Desktop$ cd ~
alieblice@de-10:~$
alieblice@de-10:~$ pwd
/home/alieblice
alieblice@de-10:~$
برگشتن به 2 دایرکتوری قبل
alieblice@de-10:~/Desktop$ cd ../..
alieblice@de-10:/home$ pwd
/home
alieblice@de-10:/home$
به طور مشابه برایه 4 دایرکتوری به این شکل در میاد
cd ../../../../
استفاده از tab برایه کامل کردن اسامی
هنگامی که ادرس فایلی رو مینویسین اگه اسم دقیق یا املاش رو بلد نیستین میتونین از tab استفاده کنین مثلا در زیر تمام فایلایی که اولشون با dir شروع میشه رو لیست میکنه
alieblice@de-10:/$ cd /home/alieblice/Desktop/dede/dire
dire1/ dire2/ dire3/ dire4/
alieblice@de-10:/$ cd /home/alieblice/Desktop/dede/dire1
alieblice@de-10:~/Desktop/dede/dire1$
دردست کردن اشتباهات به صورت اتومات به وسیله shopt -s cdspell
به مثال زیر نگاه کنین
بار اول کلمهی mail رو به صورت اشتباه ((mall)) مینویسیم که اررور میده و بعد از زدن دستورز
shopt -s cdspell
خودش به صورت اتومات غلط املایی رو حل میکنه
# cd /etc/mall
-bash: cd: /etc/mall: No such file or directory
# shopt -s cdspell
# cd /etc/mall
# pwd
/etc/mail
[Note: By mistake, when I typed mall instead of mail,
cd corrected it automatically]
دانلود نسخه pdf :
http://alieblice.persiangig.com/PDF-command-fa/%d8%af%d8%b3%d8%aa%d9%88%d8%b1%20cd.pdf
منبع :
http://www.thegeekstuff.com/2008/10/6-awesome-linux-cd-command-hacks-productivity-tip3-for-geeks
-
(http://www.thegeekstuff.com/wp-content/uploads/2009/07/ls-command-300x257.gif)
دستور ls
دستور ls به طور کلی برای دیدن محتویات داخل یک دایرکتوری استفاده میشود که به وسیله ی اپشن هایش استفاده های بسیار دیگری هم می توان ازش کرد.
تعداد اپشن هایه دستور ls زیاده . این جا فقط پر کاربرد ترین و اونایی که به نظرم مهم می آمدن رو مینویسم
قبل از شروع اموزش دستور یک محیط کوچک شبیه محیط زیر برایه یاد گیری درست کنین
یک دایرکتوری مثلا با اسم ls ایجاد کنین که داخلش چند فایل متنی و غیر متنی مثل عکس و چند دایرکتوری که داخل اون ها هم چند تا فایل باشه
مثلا محیطی شبیه محیط زیر
$ tree
.
|-- backup
| `-- bookmarks 2011 10 07.json
|-- Link to water.avi -> /home/alieblice/Desktop/water.avi
|-- LPIC 1 In Nutshell Edition3.pdf
|-- lpic_2_linux_professional.pdf
|-- pic
| |-- HD Wallpapers Wide Pack.jpg
| `-- Scotland_29.jpg
|-- pic1.jpg
`-- vmware-1.log
2 directories, 8 files
شکل کلی دستور
ls [OPTION]... [FILE]...
به داخل دایرکتوری که ساختین برین و دستور ls رو بزنین
اگر دستور ls رو بدون هیچ اپشنی بزنین فقط محتویات داخل اون دایرکتوری که هم اکنون داخلش هستین رو نمایش میدهد
$ ls
'backup LPIC 1 In Nutshell Edition3.pdf pic1.jpg
Link to water.avi lpic_2_linux_professional.pdf vmware-1.log
logo.jpg pic
اگر میخاهید محتویات دایرکتوری خاصی رو ببینین اول دستور ls و سپس ادرس دایرکتوری رو بنویسین
$ ls /home/alieblice/Desktop/LS
backup LPIC 1 In Nutshell Edition3.pdf pic1.jpg
Link to water.avi lpc_2_linux_professional.pdf vmware-1.log
logo.jpg pic
جدا کردن فایل ها با کاما به وسیله ی m-
$ ls -m
backup, Link to water.avi, LPIC 1 In Nutshell Edition3.pdf, lpic_2_linux_professional.pdf,
pic, pic1.jpg, vmware-1.log
دیدن هر فایل در یک خط به وسیله 1-
$ ls -1
backup
Link to water.avi
logo.jpg
LPIC 1 In Nutshell Edition3.pdf
lpic_2_linux_professional.pdf
pic
pic1.jpg
vmware-1.log
دیدن اطلاعات کامل هر فایل به وسیله l-
به وسیله اپشن –l ((ال کوچک)) میتونین اطلاعاتی از قبیل نوع فایل ، پرمیشن فایل ...
$ ls -l
total 10500
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:04 backup
lrwxrwxrwx 1 alieblice alieblice 33 2011-11-08 09:10 Link to water.avi -> /home/alieblice/Desktop/water.avi
-rw-r--r-- 1 alieblice alieblice 93671 2011-10-07 20:47 logo.jpg
-rw-r--r-- 1 alieblice alieblice 3918360 2010-07-20 23:16 LPIC 1 In Nutshell Edition3.pdf
-rw-r--r-- 1 alieblice alieblice 6565740 2011-06-06 09:02 lpic_2_linux_professional.pdf
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:03 pic
-rw-r--r-- 1 alieblice alieblice 74110 2011-10-07 20:47 pic1.jpg
-rw-r--r-- 1 alieblice alieblice 82279 2011-07-31 07:33 vmware-1.log
توضیح خروجی دستور
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:04 backup
d : نوع فایل رو نشون میدهد که در این جا از نوع دایرکتوری هستش که میتونه یکی از نماد هایه زیر باشد :
d : برایه دایرکتوری مثل backup و pic در با لا
- : برایه فایل هایه معمولی مثلا عکس
l: برایه لینک ها مثل فایل water.avi در خروجی بالا
s : socket file
2 : تعداد لینک هارو نشون میده
alieblice : نام صاحب فایل رو نشون میدهد
alieblice : نام گروه فایل رو نشون میدهد
4096 : سایز فایل رو نشون میدهد (برایه این که راحت تر بشه خوندش بهتره از –h هم در کنار –l استفاده کنید پایینتر توضیح دادم )
2011-11-08 09:04 : اخرین زمان تغییرات رویه این فایل رو نشون میدهد
Backup : اسم فایل رو نشون میدهد
نمایش فایل هایه مخفی به وسیله a- یا A-
در لینوکس اگر اول اسم فایل ها یا دایرکتوری ها نقطه باشد اون فایل به صورت مخفی در میاد
یک فایل با اسم .logo.jpg ایجاد میکنیم . اگر الان دستور ls رو بزنین میبینین که در خروجی فایل ظاهر نمیشود .
به مثال زیر توجه کنین
$ ls -a
. Link to water.avi lpic_2_linux_professional.pdf vmware-1.log
.. .logo.jpg pic
backup LPIC 1 In Nutshell Edition3.pdf pic1.jpg
همون طور که میبینین فایل نشون داده میشود البته یک فرق کوچک بین a و A هست که در مثال بالا همون طور که میبینین . و .. دیده میشود ولی در A- دیده نمیشود.
. = نشان دهنده دایرکتوری که هم اکنون در ان هستیم
.. = نشان دهنده دایرکتوری قبلی است
استفاده .. بیشتر در دستور cd هستش . دستور cd برایه جابه جایی بین چند دایرکتوری است
مشخص کردن سایز فایل به وسیله k- یا h-
نکته : 2 اپشن بالا حتما باید به همراه –l باشن
برایه این که اعداد مربوط به سایز فایل رو بر اساس کیلو بایت در یافت کنین از k- ((کی کوچک)) استفاده کنین
$ ls -lk
total 10500
-rw-r--r-- 1 alieblice alieblice 92 2011-10-07 20:47 logo.jpg
-rw-r--r-- 1 alieblice alieblice 3827 2010-07-20 23:16 LPIC 1 In Nutshell Edition3.pdf
برایه این که خود ls به صورت اوتومات اعداد رو به مگابایت و یا گیگابایت تبدیل کند از h- استفاده کنین که بهش میگن Human Readable Format
نکته : در این حالت اعداد کمی گرد میشوند
لیست کردن بر اساس سایز فایل به وسیله S- (( اس بزرگ ))
به مثال زیر توجه کنین
$ ls -lhS
total 11M
-rw-r--r-- 1 alieblice alieblice 6.3M 2011-06-06 09:02 lpic_2_linux_professional.pdf
-rw-r--r-- 1 alieblice alieblice 3.8M 2010-07-20 23:16 LPIC 1 In Nutshell Edition3.pdf
-rw-r--r-- 1 alieblice alieblice 81K 2011-07-31 07:33 vmware-1.log
-rw-r--r-- 1 alieblice alieblice 73K 2011-10-07 20:47 pic1.jpg
drwxr-xr-x 2 alieblice alieblice 4.0K 2011-11-08 09:04 backup
drwxr-xr-x 2 alieblice alieblice 4.0K 2011-11-08 09:03 pic
lrwxrwxrwx 1 alieblice alieblice 33 2011-11-08 09:10 Link to water.avi -> /home/alieblice/Desktop/water.avi
نشون دادن بر اساس اخرین اصلاحات ((تغییرات)) به وسیله t-
به وسیله این اپشن میتونین فایل ها رو براساس اخرین تغییرات دسته بندی کنین به این صورت که جدید ترین فایل تغییر یافته در بالا قرار میگیرد
بیشتر اوقات با l- کاربردی تر هستش
$ ls -lt
total 10408
lrwxrwxrwx 1 alieblice alieblice 33 2011-11-08 09:10 Link to water.avi -> /home/alieblice/Desktop/water.avi
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:04 backup
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:03 pic
-rw-r--r-- 1 alieblice alieblice 74110 2011-10-07 20:47 pic1.jpg
-rw-r--r-- 1 alieblice alieblice 82279 2011-07-31 07:33 vmware-1.log
-rw-r--r-- 1 alieblice alieblice 6565740 2011-06-06 09:02 lpic_2_linux_professional.pdf
-rw-r--r-- 1 alieblice alieblice 3918360 2010-07-20 23:16 LPIC 1 In Nutshell Edition3.pdf
اگر خاستین لیست رو بر عکس کنین یعنی جدید ترین فایل تغییر یافته در پایین قرار گیرد از r- استفاده کنین . کلا r- برایه عکس کردن لیست هست با 1- یا l- یا ... میشه استفاده کرد
نشون دادن بر اساس نوع فرمت به وسیله X-
نکته : در این حالت نوع فرمت بر اساس حروف الفبا ترتیب میشود .
$ ls -1X
backup
pic
Link to water.avi
pic1.jpg
vmware-1.log
LPIC 1 In Nutshell Edition3.pdf
lpic_2_linux_professional.pdf
نشون دادن نوع فایل از طریق اشکال به وسیله F-
$ ls -1F
backup/
Link to water.avi@
LPIC 1 In Nutshell Edition3.pdf
lpic_2_linux_professional.pdf
pic/
pic1.jpg
vmware-1.log
*= قابل اجرا ((executable ))
/= دایرکتوری
@= symbolic link
|= fifo
= = socket
فایل هایی که هیچی ندارن یعنی فایل هایه معمولی هستن
نشون دادن نام ترمینالیه اسامیه فاصله دار به وسیله b-
بعضی اوقات پیش میاد که در نام فایلامون فاصله وجود دارد . اگر بخایم نام اون فایلا رو بر اساس نوع ترمینالی ببینین از b- استفاده کنین در X- چون دایرکتوری ها فرمت ندارند همیشه اول قرار میگیرند
$ ls -1b
backup
Link\ to\ water.avi
LPIC\ 1\ In\ Nutshell\ \ Edition3.pdf
lpic_2_linux_professional.pdf
pic
pic1.jpg
vmware-1.log
همون طور که میبینین به اضایه هر فاصله یک \ قرار گرفته
دیدن تمام فایل ها و فولدر ها به همراه همه ی ساب دایرکتوری ها و فایل هایه داخل انها تا اخرین ساب دایرکتوری به وسیله R-
فرض میکنیم یک فایل یه صورت شکل درختی که اول اموزش بود داریم
حالا اگر دستورو بزنیم خروجی این جوری میشه
$ ls -Rl
.:
total 10408
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:04 backup
lrwxrwxrwx 1 alieblice alieblice 33 2011-11-08 09:10 Link to water.avi -> /home/alieblice/Desktop/water.avi
-rw-r--r-- 1 alieblice alieblice 3918360 2010-07-20 23:16 LPIC 1 In Nutshell Edition3.pdf
-rw-r--r-- 1 alieblice alieblice 6565740 2011-06-06 09:02 lpic_2_linux_professional.pdf
drwxr-xr-x 2 alieblice alieblice 4096 2011-11-08 09:03 pic
-rw-r--r-- 1 alieblice alieblice 74110 2011-10-07 20:47 pic1.jpg
-rw-r--r-- 1 alieblice alieblice 82279 2011-07-31 07:33 vmware-1.log
./backup:
total 172
-rw-r--r-- 1 alieblice alieblice 172258 2011-10-07 03:47 bookmarks 2011 10 07.json
./pic:
total 10996
-rw-r--r-- 1 alieblice alieblice 6428039 2009-09-06 22:02 HD Wallpapers Wide Pack.jpg
-rw-r--r-- 1 alieblice alieblice 4827095 2009-05-07 03:55 Scotland_29.jpg
رنگی کردن خروجی به وسیله color--
معمولا این امکان به صورت پیش فرض وجود دارد اگر برایه شما فعال نیست به وسیله اپشن color-- میتونین فعالش کنین
پیشنهاد میدم این امکان رو به صورت دستور الیاس دربیارین که هر بار دستور ls رو میزنین انگار ls --color رو زدین
(http://alieblice.persiangig.com/PDF-command-fa/ls--color-command.png)
معنی رنگ ها :
رنگ پیش فرض ترمینال = فایل هایه معمولی (( در عکس بالا رنگ سفید رنگ پیش فرض ست ))
سبز= فایل هایه قابل اجرا ((executable))
ابی = دایرکتوری
زرد =fifo
سرخابی= socket و عکس ها ((,tiff jpg, gif ,png )) صوت ها ((mp3 ,ogg ,wav))
قرمز= فایل هایه فشرده ((tar, zip, rpm, deb,))
توضیح بعضی اپشن ها
n- = خروجی شبیه –l هست ولی uig و gid رو به صورت عدد نمایش میدهد
G- = به همراه –l کاربردی هست وباعث میشه group-name یا gid پرینت گرفته نشود
دستورات ترکیبی پیشنهادی
vi `ls -t | head -1`
باز کردن اخرین فایلی که ویرایش کردید
ls -1 *.pdf
فقط فایل هایه pdf رو پرینت میگیره به صورت یکی در یک خط
Ls -ltrbh
دستورات الیاس پیشنهادیalias ls='ls --color=auto'
alias la='ls -a'
alias lf='ls -alF'
alias ll='ls -ltrhb'
alias ls=’ls –lrshb’
مىابع:
Unix LS Command: 15 Practical Examples
Linux: Phrasebook
Ls man page
برابه دانلود اخرین نسخه pdf به این ادرس بروید
http://alieblice.persiangig.com/PDF-command-fa/%d8%af%d8%b3%d8%aa%d9%88%d8%b1v%201.01%20ls.pdf
http://alieblice.persiangig.com/PDF-command-fa/%d8%af%d8%b3%d8%aa%d9%88%d8%b1v%201.01%20ls%20%d9%81%d9%86%d8%aa%2014.pdf
-
دستور rm
دستور rm برایه پاک کردن فایل ها و پوشه ها استفاده میشود.
اپشن هایه زیادی نداری ولی از تو همون اندک اپشنایی هم که داره اکثر اوقات 3 یا 4 تاش مورد استفاده میگیره.
پاک کردن یک فایل
برایه پاک کردن یک فایل کافی هست که اسم اون فایل رو در جلویه دستور rm بنویسین . نکته : با این روش دایرکتوری هارو نمیشه پاک کرد.
$ rm robat.avi
برایه پاک کردن چندین تا فایل :
$ rm robat.avi horse.jpg ocean.jpg
پاک کردن دایرکتوری ها به کمک اپشن r- یا R-
برایه پاک کردن دایرکتوری ها از اپشن r- یا R- استفاده میکنیم که هردو یک معنی رو داره . در هنگام استفاده از اپشن r- یا R- فایل ها رو هم میتویم پاک کنیم .
$ rm -r Games Pics robat.avi
در دستور بالا Game و Pics دایرکتوری هستند و robat.avi یک فایل معمولی ویدیویی هست.
اطلاعات بیشتر در باره کاری که دستور انجام میدهد با اپشن v-
$ rm -r -v Game horse.jpg ocean.jpg Pics robat.avi
removed directory: `Game'
removed `horse.jpg'
removed `ocean.jpg'
removed directory: `Pics'
removed `robat.avi'
پرسیدن قبل از پاکر کدن با اپشن i-
اگر اپشن i- رو به کار ببرین قبل از پاک کردن هر فایل ازتون سوال میپرسه که پاکش کند یا پاک نکند که اگر جواب y بدید پاک میکنه و اگر n بدید پاک نمیکنه.
$ rm -rvi Game horse.jpg ocean.jpg Pics robat.avi
rm: remove directory `Game'? y
removed directory: `Game'
rm: remove regular file `horse.jpg'? n
rm: remove regular file `ocean.jpg'? y
removed `ocean.jpg'
rm: remove directory `Pics'? n
rm: remove regular file `robat.avi'? y
removed `robat.avi'
پاک زکدن فایل هایی که اول اسمشون - دارن
اگر اول فایلی - داشته باشه , دستور rm اونو با اپشن هاش اشتباه میگیره و ممکنه با ارور زیر مواجه بشید:
$ rm -horse.jpg
rm: invalid option -- 'h'
Try `rm ./-horse.jpg' to remove the file `-horse.jpg'.
Try `rm --help' for more information.
برایه حل این مشکل دستور رو به یکی از 2 شکل زیر بزنین :
rm ./-horse.jpg
یا
$ rm -- -horse.jpg
ارور ندادن برایه فایل هایی که وجود ندارد با f-
اگر تو لیست فایل هایی که برا پاک شدن نوشتین فایلی وجود نداشته باشه ارور میده که این فایل وجود نداره برا این که دیگه با این ارور مواجه نشین از اپشن f- استفاده کنین.
--------------------------------------------------------------------------
دستور cp
دستور cp برایه کپی کردن فایل ها و دایرکتوری ها استفاده میشود .
ساده ترین شکل استفاده از دستور به صورت زیر هست :
cp [OPTION]... SOURCE... DIRECTORY
کپی کردن یک فایل :
$ cp /home/aliali/debian-handbook.pdf /home/aliali/Desktop/
در مثال بالا فایل debian-handbook.pdf را به Desktop کپی کردیم
اگر از اپشن v- (وی کوچک) استفاده کنیم به ما اطلاعات بیشتری در مورد کاری که انجام میده خواهد داد :
cp -v /home/aliali/debian-handbook.pdf /home/aliali/Desktop/
`/home/aliali/debian-handbook.pdf' -> `/home/aliali/Desktop/debian-handbook.pdf'
نکته :مهم هست که بدونین از روش بالا برایه کپی کردن دایرکتوری ها نمیشه استفاده کرد و فقط برایه کپی کردن فایل ها میشه استفاده کرد در جلو تر درموردش توضیح داده شده.
برایه کپی کردن چندین تا فایل اون ها رو پشت سر هم بنویسید و مقصد رو در اخر بنویسید .
$ cp -v /home/aliali/debian-handbook.pdf /home/aliali/cart-sharg.jpeg /home/aliali/Desktop/
`/home/aliali/debian-handbook.pdf' -> `/home/aliali/Desktop/debian-handbook.pdf'
`/home/aliali/cart-sharg.jpeg' -> `/home/aliali/Desktop/cart-sharg.jpeg'
کپی کردن دایرکتوری ها با اپشن r-
برایه کپی کردن دایرکتوری ها از اپشن r- استفاده کنین
$ cp -vr pic Desktop
`pic' -> `Desktop/pic'
`pic/15012012117.jpg' -> `Desktop/pic/15012012117.jpg'
`pic/15022012120.jpg' -> `Desktop/pic/15022012120.jpg'
`pic/20100701_lcls.resized.jpg' -> `Desktop/pic/20100701_lcls.resized.jpg'
`pic/0.336193001349690893_taknaz_ir.gif' -> `Desktop/pic/0.336193001349690893_taknaz_ir.gif'
`pic/15022012121.jpg' -> `Desktop/pic/15022012121.jpg'
`pic/7b9e511a5d.jpg' -> `Desktop/pic/7b9e511a5d.jpg'
در بالا فایل pic رو به desktop کپی میکنیم .
کپی کردن بدون تغییر : owner timestamp mode (صاحب , برچسب زمانی(رمان ساخت و ...) , sgid...) به کمک اپشن p-
وقتی یک فایل رو در حالت عادی کپی کنین زمان ساخت اون به زمان هم اکنون تغییر میکند و همچنین موارد owner و mode هم بسته به کاربری که اون فایل رو کپی میکند تغییر میکند که برایه جلو گیری از این تغییرات از اپشن r- میشه استفاده کرد :
$ ls -l debian-handbook.pdf
-rw------- 1 aliali aliali 28627162 Aug 30 12:02 debian-handbook.pdf
$ cp -vp debian-handbook.pdf Desktop/
`debian-handbook.pdf' -> `Desktop/debian-handbook.pdf'
$ ls -l Desktop/debian-handbook.pdf
-rw------- 1 aliali aliali 28627162 Aug 30 12:02 Desktop/debian-handbook.pdf
همون طور که در بالا دیده میشه زمان ساخت و موارد دیگر تغییر نکرده اند
اپشن هایه دیگری هم این دستور دارد ولی این اپشن ها پر مصرف ترین موارد بودن .
برایه دیدن اپشن هایه دیگر از دستور man کمک بگیرید.
-------------------------------------------------------------------------------------------------
دستور mv
دستور mv برای انتقال یا تغییر اسم یک فلدر استفاده میشه
برای تغییر نامدادن یک پرونده از filename به newfilename
$ mv filename newfilename
نکته : اگه در دستور بالا فلدر newfilename از قبل وجود داشته باشه کار انتقال فایل انجام میشه ولی اگر نباشه کار تغییر اسم انجام میشه
برای جابهجا کردن یک پرونده به یک پوشهٔ خاص
$ mv afile /home/nickname/newfile
دستور زیر تمام فایلای file1 FILE2 FILE3 به tmpdir انتقال میده
v- هم فایلای انتقال یافته رو نشون میده
poy:/home# mv -v file1 FILE2 FILE3 tmpdir
`file1' -> `tmpdir/file1'
`FILE2' -> `tmpdir/FILE2'
`FILE3' -> `tmpdir/FILE3'
توضیح چندتا از سوئیچها
u-(برگرفته از update) : اگر تاریخ آخرین تغییر پرونده یا پوشهای که میخواهیم انتقال دهیم از پوشهای که قبلا وجود داشت بهروزتر باشد، آن را بر روی پوشه یا پروندهٔ قدیمی انتقال میدهد.
f- (برگرفته از force): در صورتی که پرونده یا پوشهٔ موجود باشد بدون اخطار دادن، انتقال را انجام میدهد.
--------------------------------------------------------------------------------------------------
دستور rmdir
دستور rmdir برایه پاک کردن دایرکتوری ها اگر خالی باشند استفاده میشود .
همون طور که گفته شد برایه پاک کردن دایرکتوری هایه خالی هستش پس اگر رویه یک فایل معمولی تستش کنیم اروری مثل زیر میده:
$ ls
debian-handbook.pdf test.rxt
$ rmdir test.rxt
rmdir: failed to remove `test.rxt': Not a directory
و اگر رویه یک فایل غیر خالی تستش کنیم اروری مثل زیر میده (اپشن v- پایین تر توضیح داده شده) :
$ rmdir -v not-empty-directory/
rmdir: removing directory, `not-empty-directory/'
rmdir: failed to remove `not-empty-directory/': Directory not empty
برایه پاک کردن یک دایرکتوری فقط لازم هست که اسم دایرکتوری رو بعد از دستور بنویسین
$ ls
debian-handbook.pdf test-directory test.rxt
$ rmdir test-directory
اگر از اپشن v- استفاده کنیم اطلاعات بیشتری رو بهمون در مورد کاری که میکنه میده
$ rmdir -v test-directory
rmdir: removing directory, `test-directory'
از اپشن p- میتونیم برایه پاک کردن دایرکتوری هایی که داخل هم دیگر هستن استفاده کنیم.
یعنی میتونیم یک جا تمام دایرکتوریهایه direcotory/test/rrr/ رو پاک کنیم و نمیخاد که 3 بار دستور رو برایه direcotory/test/rrr/ و direcotory/test/ و direcotory/ بزنیم.
$ rmdir -vp direcotory/test/rrr/
rmdir: removing directory, `direcotory/test/rrr/'
rmdir: removing directory, `direcotory/test'
rmdir: removing directory, `direcotory'
-
(http://ubuntuone.com/186Xd8scd7DUlMxR3RhFkk)
دستور mkdir برای ساختن دایرکتوری ((پوشه , فلدر )) استفاده میشه
برای ساختن یک دایرکتوری
mkdir FILE1
برای ساختن چند دایرکتوری
mkdir FILE1 FILE2 FILE3
برای ساختن دایرکتوری و گذاشتن پرمیشن به طور هم زمان برای اون دایرکتوری از m- استفاده کنین
در زیر برای پوشه پرمیشن 777 رو میزاریم
mkdir -m 777 FILE
حالا اگه ls -l بگیرین میبنین که پرمیشنش به این شکله drwxrwxrwx
ls -l
total 12
drwxrwxrwx 2 root root 4096 2011-05-21 07:37 FILE
برای اینکه بعد از ساخته شدن هر دایرکتوری دستور mkdir به ما بگه که چه دایرکتوری ساخته از v- استفاده کنین
poy:/home# mkdir -v FILE1 FILE2 FILE3
mkdir: cannot create directory `FILE1': File exists
mkdir: cannot create directory `FILE2': File exists
mkdir: cannot create directory `FILE3': File exists
poy:/home#
اگه زمانی خاستین که یک دایرکتوری بسازین که داخل چند دایرکتوری دیگر بود و اون چند دایرکتوری وجود نداشن از p- استفاده کنین
مثلا در زیر میخایم دایرکتوری dada که داخل 3 دایرکتوری FILE//pic/2010 هستشو بسازیم ولی 3 دایرکتوری FILE//pic/2010 وجود ندارن.
هم زمان پرمیشن 777 رو هم میزاریم از V- استفاده میکنیم
poy:/home# mkdir -m 777 -p -v FILE//pic/2010/dada
mkdir: created directory `FILE'
mkdir: created directory `FILE//pic'
mkdir: created directory `FILE//pic/2010'
mkdir: created directory `FILE//pic/2010/dada'
اینم tree ش
poy:/home# tree FILE
FILE
`-- pic
`-- 2010
`-- dada
3 directories, 0 files
اینو از توی wikipedia پیدا کردم
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
-
یه دستور سرکاری دیگه هم هست(البته استفاده مفیدم میشه ازش کرد!!)
uname و uname -a
یه دستور هم برای لاگین شدن هست:
login -p name
حالا این نام میتونه backdoor یا root یا ... باشه ولی من تا حالا نفهمیدم پسوردش چیه!!
-
(http://upload.wikimedia.org/wikipedia/commons/f/f2/Du_unix_output.png)
دستور du برای دیدن فضاهای اشغال شده توسط فایل ها و دیگر اجزای داخل دایرکتوری ممورد نظر است
شکل کلی دستو ر به این شکل هستش
du [OPTION]... [FILE
]...
که اپشن ها ی زیادی هم داره
چند مثال:
1-اگه دستور du رو به صورت هیچ اپشنی بزنین فقط حجم دایرکتوری های داخل اون فایل و ساب دایرکتوری هاشون رو نشون میده
root@192.168.1.43:/var/log# du
756 ./account
2140 ./apache2
320 ./installer/cdebconf
684 ./installer
12 ./fsck
36 ./apt
گه اعداد قابل فهم نیستن میتونین از اپشن -h استفاده کنین
root@192.168.1.43:/var/log# du -h
760K ./account
2.1M ./apache2
320K ./installer/cdebconf
684K ./installer
12K ./fsck
36K ./apt
2- اگه میخاین که فقط حجم فایلای داخل فولدر مورد نظر رو ببینین بدون هیچ ساب دایرکتوری این دستورو بزنین
root@192.168.1.43:/var# du -sh *
2.9M backups
103M cache
109M lib
4.0K local
8.0K lock
11M log
4.0K mail
4.0K opt
84K run
12K spool
4.0K tmp
12G www
3-اگه فقط حجم یک دایرکتوری خاصی رو می خاین ببینین از اپشن -s استفاده کنین
root@192.168.1.43:/# du -s /var/log
10404 /var/log
root@95-168-161-82:/#
4-اگه میخاین حجم یک سری فایل با فرمت خاص و به همراه حجمشون ببینین دستورو این جوری بزنین
root@192.168.1.43:/var/www//files# du -h *.rar
416M backtrack4.r2.www.vatandownload.com.part3.rar
382M backtracktutorials.www.vatandownload.com.part1.rar
382M backtracktutorials.www.vatandownload.com.part2.rar
منبع : پست جناب alieblice که بعدا به این پست منتقل شد.
-
دستور df در این مکان به زودی یا به ادامه دستور du در صفحه اول به زودی
(http://www.istockphoto.com/file_thumbview_approve/4175621/2/istockphoto_4175621-shiny-icons-user-actions.jpg)
برای ساختن user چندین تا دستور وجود داره که این جا برای ساختن user دستور
useradd
adduser
داریم و برای پاک کردن user
deluser
userdel
داریم
حالا اگه بخایم که برای یک کاربر محدودیت زمانی و بعضی محدودیتای دیگه بزاریم از دستور
usermod
استفاده میکنیم
useradd
برای ساختن یک کاربر
با این دستور کاربر tia ساخته میشه
useradd tia
برای ساختن یک کاربر به همراه home دایرکتوریش
useradd -m tia
حالا اگه خروجی home دایرکتوریرو بگیرین میبینین که فلدر tia ساخته شده
ساختن کاربر و اضافه کردن اون به لیست کاربرای یک گروه
با این دستور کاربر tia ساخته میشه و به گروه student اضافه میشه
useradd -g student tia
ساختن کاربر و مشخص کردن ادرس home دایرکتوری
با این دستور کاربر tia ساخته میشه و home دایرکتوریش هم میشه ادرسه /var/www/LILI
useradd tia -d /var/www/LILI
adduser
برای ساختن کاربر و دادن هم زمان بعضی اطلاعات مثل شماره تلفن و غیره
root@debian:/# adduser tia
Adding user `tia' ...
Adding new group `tia' (1009) ...
Adding new user `tia' (1008) with group `tia' ...
The home directory `/home/tia' already exists. Not copying from `/etc/skel'.
adduser: Warning: The home directory `/home/tia' does not belong to the user you are currently creating.
Enter new UNIX password:
Retype new UNIX password:
Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged
Try again? [y/N] y
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for tia
Enter the new value, or press ENTER for the default
Full Name []: tia dada
Room Number []: 1122
Work Phone []: 1212121212
Home Phone []: 121212121
Other []: blablanla
Is the information correct? [Y/n] y
root@debian:/#
اضافه کردن کاربر tia به گروه student
root@debian:/# adduser tia student
Adding user `tia' to group `student' ...
Adding user tia to group student
Done.
deluser
دستور deluser برای پاک کردن کاربرا هستش
پاک کردن کاربر tia
root@debian:/# deluser
Enter a user name to remove: tia
Removing user `tia' ...
Warning: group `tia' has no more members.
Done.
root@debian:/#
بعضی اپشن ها
برای پاک کردن home دایرکتوری
--remove-hom
برای پاک کردن تمام فایلایی که کاربر مورد نظر صاحبشونه
--remove-all-files
برای پشتیبان گیری از فایلای اون کاربر قبل از پاک کردن
--backup-to <DIR>
userdel
برای پاک کردن کاربر به همراه دایرکتوری خانه
userdel tia -r
usermod
دستور usemod برای گذاشن محدودیت برای یک کاربر هسنش
برای قفل کردن کاربر
usermod -L tia
برای باز کردن قفل کاربر
usermod -U tia
-d
برای تعیین تاریخ برای از کار افتادن کاربر
-s
برای تعیین شل کاربر
کلا تنضیماتش خیلی نیست با --help میتونین تنضیماتشو ببینین اکثرشم احتیاج به توضیح نداره
chage
این دستور هم برای گذاشتن یک سری دیگه از محدودیت ها استفاده میشه
برای گذاشتن محدودیت های دیگه ای مثل تعداد پروسس با حد اکثر تعداد login ها و غیره میتونین از فلدر
/etc/security
استفاده کنین
برای دیدن کاربرای online هم میتونین از دستور
who
یا
w
کنین
-
دستور free
(http://alieblice.persiangig.com/image/free-command.jpeg.jpg)
دستور free برایه دیدن مقدار رم خالی استفاده میشود
کلا تعداد زیادی اپشن نداره ولی تشریح قسمت هایه مختلف دستورش مهمه
شکل کلی دستور
با زدن خود دستور free به تنهایی خروجی شبیه زیر رو دریافت میکنین که بر اساس کیلوبایت است
alieblice@ali:~$ free
total used free shared buffers cached
Mem: 4037504 723244 3314260 0 44752 198608
-/+ buffers/cache: 479884 3557620
Swap: 2096124 0 2096124
alieblice@ali:~$
Mem = مقدار رم مصرفی شما رو با احتصاب disk caching نشون میده ((disk caching در اخر توضیح داده شده ))
-/+ buffers/cache = مقدار رم مصرف شده برایه disk caching و مقدار رم خالی شما بدون احتصاب disk caching رو نشون میدهد
Swap = مقدار فضایه مصرف شده از رم Swap رو نشون میده
توضیح اپشن ها :
= -b برایه نشون دادن بر اساس بایت است
= -k برایه نشون دادن بر اساس کیلوبایت است
= -m برایه نشون دادن بر اساس مگابایت است
alieblice@ali:~$ free -m
total used free shared buffers cached
Mem: 3942 706 3236 0 43 193
-/+ buffers/cache: 468 3473
Swap: 2046 0 2046
alieblice@ali:~$
= -g برایه نشون دادن بر اساس گیگابایت است
نکته : همون طور که در مثال اپشن –m میبینین مقدار رم 3942 مگابایت است ولی در حالت –g مقدار 3 رو نشون میده پس کلی نشون میده
alieblice@ali:~$ free -g
total used free shared buffers cached
Mem: 3 0 3 0 0 0
-/+ buffers/cache: 0 3
Swap: 1 0 1
alieblice@ali:~$
= -s برایه خروجی گرفتن به صورت ادامه دار هستش با تعیین مدت رمان (( پشت سر هم اپدیت میشه ))
در زیر هر 3 ثانیه خروجیمون بروز میشه
alieblice@ali:~$ free -s 3
total used free shared buffers cached
Mem: 4037504 726784 3310720 0 44848 200992
-/+ buffers/cache: 480944 3556560
Swap: 2096124 0 2096124
total used free shared buffers cached
Mem: 4037504 726908 3310596 0 44848 200992
-/+ buffers/cache: 481068 3556436
Swap: 2096124 0 2096124
^C
alieblice@ali:~$
= -c برایه تعیین تعداد مرتبه خروجی است که حتما باید با –s بیاد
مثال:
در زیر 4 بار خروجی میگریم با فاصله زمانی 3 ثانیه
alieblice@ali:~$ free -ms 3 -c 4
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
-/+ buffers/cache: 471 3471
Swap: 2046 0 2046
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
-/+ buffers/cache: 471 3471
Swap: 2046 0 2046
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
-/+ buffers/cache: 471 3471
Swap: 2046 0 2046
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
-/+ buffers/cache: 471 3471
Swap: 2046 0 2046
alieblice@ali:~$
= -o به صورت شکل قدیم نشون میده
فرقش اینه که خط -/+ buffers/cache (( buffer adjusted )) رو نشون نمیده
alieblice@ali:~$ free -o -m
total used free shared buffers cached
Mem: 3942 711 3231 0 43 196
Swap: 2046 0 2046
alieblice@ali:~$
= -t مجموع مقداررم swap و ram سخت افزاری رو نشون میده
نکته : اعداد خط -/+ buffers/cache رو تو جمع حساب نمیکنه
alieblice@ali:~$ free -tm
total used free shared buffers cached
Mem: 3942 712 3230 0 43 196
-/+ buffers/cache: 471 3470
Swap: 2046 0 2046
Total: 5989 712 5277
alieblice@ali:~$
مقدار واقعی مصرف رم شما
در لینوگس 2 نوع مصرف رم داریم
1= رمی که شما مصرف میکنین
2= رمی که شما مصرف میکنین به همراه disk caching
disk caching چیست ؟
disk caching در این جا به عملی می گویند که سیستم میاد مقدار رم خالی شما (( مثلا 2.5 گیگ از 4 گیگ )) که استفاده نمیشه مقداریش رو برایه کش کردن استفاده میکنه اما به محض این که شما اون مقدار فضا (( مثلا 500 مگابایت )) یا به مقداری از اون فضا احتیاج پیدا کردین سیستم بلافاصله فضا رو برایه شما خالی میکنه . پس اختلالی در انجام کار ها پیش نمیاره و حتی باعث سریع شدن کار ها بالا رفتن سرعت لود نرم افزارها میشه .
اگه هنوز متوجه نشدین داستان زیر رو بخونین
http://chrisjohnston.org/2009/why-on-linux-am-i-seeing-so-much-ram-usage
و برایه دیدن تاثیرش هم ادرس زیر رو نگاه کنین
http://www.linuxatemyram.com/play.html
پس برایه این که بدونین چه مقدار رم خالی دارین باید عددی که در خط -/+ buffers/cache است رو بخونین
که در مثال زیر 3470 مگابایت است
alieblice@ali:~$ free -tm
total used free shared buffers cached
Mem: 3942 712 3230 0 43 196
-/+ buffers/cache: 471 3470
Swap: 2046 0 2046
Total: 5989 712 5277
alieblice@ali:~$
نکته :
در دستور top مقدار رم مصرفی با احتصاب disk caching نشون داده میشه
در دستور htop مقدار رم مصرفی بدون احتصاب disk caching محاصبه میشود
غیر فعال کردن disk caching
حقیقتش نمیدونم که با این کار به طور کامل از کش شدن جلو گیری میکنیم یا تا حدی جلوشو میگیریم ولی در اعداد تغییر چشم گیری ایجاد میشه
دستور زیر رو برایه جلوگیری کردن بزنین
Sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
حالا اگه دوباره دستور free رو بزنین میبینین که اعداد زیر ستون هایه
shared buffers cached
نغییر کرده است
در ادرس زیر هم ((جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک))
http://www.forum.persianadmins.ir/showthread.php?t=18296
فایل هایه مربوطه
/proc/meminfo
/proc/sys/vm/drop_caches
منابع:
http://www.forum.persianadmins.ir/showthread.php?t=18296
http://www.linuxatemyram.com/
-
دستور uname برایه بدست اوردن اطلاعاتی در مورد کرنل مورد استفاده و اطلاعات ساده دیگر مثل نوع معماری سیستم .
اگه در خروجی دستورتون کلمه ی x86_64 بود یعنی 64 بیت است
اگه در خروجی دستورتون یکی از کلمات i386/i486/i586/i686 بود یعنی 32 بیت است
در این جا نمونه خروجی دستورات بر رویه ubuntu 12.04 اجرا شدن.
s-
نام کردنل رو نشون میدهد
$ uname -s
Linux
n-
اسم نود رو میگه که همون اسم هاست یا اسم سیستممون هست
aliali@lp:~$ uname -n
lp
r-
نوع رلیز کرنل رو میگه (( print the kernel release ))
$ uname -r
3.2.0-32-generic
v-
ورژن کرنل رو میگه
$ uname -v
#51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012
شاید بشه گفت که خروجی اپشن r- برایه این اپشن باید باشه.
m-
اسم سخت افزار سیستم رو میگه
$ uname -m
x86_64
p-
نوع سی پی یو رو میگه
$ uname -p
x86_64
i-
نوع پلت فرم سخت افزار
$ uname -i
x86_64
o-
خروجی دادن سیستم عامل
$ uname -o
GNU/Linux
همون طور که معلومه بعضی از خروجی هایه مثال ها شاید خیلی درست نباشن . خروجی مثال ها بین توزیع هایه مختلف متفاوت هستش.
-
(http://www.thegeekstuff.com/wp-content/uploads/2010/01/linux-top-command-300x225.png)
ین دستور در ترمینال به شما نشون می ده چه برنامه هایی در حال اجرا هستند و چه مقدار cpu و حافظه رو درگیر می کنند . همچنین نشون می ده برنامه ی در حال اجرا از طرف کدوم کاربر اجرا شده به همراه کلی اطلاعات دیگر
شکل کلی خروجی دستور top به این شکل هستش
(http://www.thegeekstuff.com/wp-content/uploads/2010/01/top-memory-sort.png)
دستور top به صورت پیش فرض بر اساس مقدار مصرف cpu پروسس هارو نشون میده اگه میخاین که بر اساس مقدار مصرف مموری نشون بده M ((ام بزرگ )) در حالتی که top در حال اجرا هست رو بزنین
kill کردن یک پروسس
برای این که یک پروسس رو از بین ببرین در حالتی که top در حال اجرا هست دکمه k رو بزنین ((k کوچک)) و عدد pid مربوط به اون پروسس رو بنویسین
PID to kill: 1309
Kill PID 1309 with signal [15]:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus
نشون دادن پروسس های مربوط به یک user
اگه میخاین که top فقط پروسس های مربوط به یک user خاص رو نشون بده از u- استفاده کنین
مثلا در اینجا پروسس مربوط به کاربر geek
$ top -u geek
Which user (blank for all): geek
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
نشون دادن تمام cpu ها و هسته های cpu
خروجی دستور top به صورت پیش فرض اطلاعات cpu رو در ترکیب باهم به صورت زیر نشون میده
top - 20:10:39 up 40 days, 23:02, 1 user, load average: 4.97, 2.01, 1.25
Tasks: 310 total, 1 running, 309 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.7%sy, 0.0%ni, 92.3%id, 6.4%wa, 0.0%hi, 0.0%si, 0.0%st
اگه میخاین که اطلاعات رو به صورت کامل و به اضای هر هسته cpu ببینین در موقعی که top در حال اجرا هست عدد 1 رو بزنین
top - 20:10:07 up 40 days, 23:03, 1 user, load average: 5.32, 2.38, 1.39
Tasks: 341 total, 3 running, 337 sleeping, 0 stopped, 1 zombie
Cpu0 : 7.7%us, 1.7%sy, 0.0%ni, 79.5%id, 11.1%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 94.9%id, 4.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 3.3%us, 0.7%sy, 0.0%ni, 55.7%id, 40.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.0%us, 1.0%sy, 0.0%ni, 86.2%id, 7.4%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu4 : 38.5%us, 5.4%sy, 0.3%ni, 0.0%id, 54.8%wa, 0.0%hi, 1.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.3%us, 0.7%sy, 0.0%ni, 97.3%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 5.4%us, 4.4%sy, 0.0%ni, 82.6%id, 7.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 1.7%us, 1.7%sy, 0.0%ni, 72.8%id, 23.8%wa, 0.0%hi, 0.0%si, 0.0%st
بروز شدن خروجی top
خروجی دستور top به صورت پیشفرض هر 3 ثانیه بروز میشه که اگه میخاین این مدت رو مثلا به یک ثانیه تغییر بدین در موقعی که دستور top در حال اجرا هست دکمه d رو بزنین
Change delay from 3.0 to: 1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2032 704 612 S 0 0.3 0:01.78 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
بسته شدن top بعد از نشون دادن تعداد خاصی خروجی
برای این کار از n- استفاده کنین
در زیر top بعد از 2 بار بروز شدن بسته میشه
$ top -n 2
نشون دادن دستور کامل هر پروسس
هر پروسسی که ایجاد میشه قبلش یک دستور زده شده مثلا همین top که بعد از زدن دستورش پروسسش ایجاد میشه در داخل خروجی خودش دستورشو به اینشکل نشون میده
به زیر COMMAND توجه کنین
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1100 root 20 0 2332 1140 900 R 0 0.4 0:00.06 top
مثال دیگه
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 /usr/sbin/gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 /usr/sbin/gagent -l 0 -u pre
دستور top در حالت Batch Mode
فرق این حالت با حالت معمولی top اینه که هر بار top به روز میشه اطلاعات جدید زیر اطلاعات قبلی مینویسه
مثلا در زیر top بعد از 3 بار به روز شدن در حالت batch mode بسته میشه
root@debian:/# top -b -n 3 -u tia
top - 13:55:26 up 58 min, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 254672k total, 67884k used, 186788k free, 9432k buffers
Swap: 308216k total, 0k used, 308216k free, 34232k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1118 tia 20 0 8476 1492 860 S 0 0.6 0:00.01 sshd
1119 tia 20 0 4484 1728 1404 S 0 0.7 0:00.00 bash
1128 tia 20 0 8052 3608 2568 S 0 1.4 0:00.02 w3m
top - 13:55:29 up 58 min, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 254672k total, 67884k used, 186788k free, 9432k buffers
Swap: 308216k total, 0k used, 308216k free, 34232k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1118 tia 20 0 8476 1492 860 S 0 0.6 0:00.01 sshd
1119 tia 20 0 4484 1728 1404 S 0 0.7 0:00.00 bash
1128 tia 20 0 8052 3608 2568 S 0 1.4 0:00.02 w3m
top - 13:55:32 up 58 min, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 254672k total, 67884k used, 186788k free, 9436k buffers
Swap: 308216k total, 0k used, 308216k free, 34232k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1118 tia 20 0 8476 1492 860 S 0 0.6 0:00.01 sshd
1119 tia 20 0 4484 1728 1404 S 0 0.7 0:00.00 bash
1128 tia 20 0 8052 3608 2568 S 0 1.4 0:00.02 w3m
root@debian:/#
روش بالا بیشتر برای ذخیره کردن خروجی دستور top در یک فایل متنی استفاده میشه با برای grep کردنش
هدر top
در موقعی که top در حال اجرا هست اگه
l ((ال کوچک )) بزنین خط اول هدر مربوط به load average ناپدید میشه
t بزنین خط 2م و 3م هدر مربوط به Tasks: و Cpu(s) ناپدید میشه
m بزنین 2 خط اخر هدر مربوط به مموری ناپدید میشه
کاهش دادن تعداد پروسس در خروجی top
در حالتی که top در حال اجرا هست n رو بزنین بعد از شما تعداد پروسس رو میپرسه
Maximum tasks = 0, change to (0 is unlimited): 2
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
در اخر هم برای بستن top در حالت اجرا از دکمه q ((کیو کوچک)) استفاده کنین
منبع: http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/
چند مثال دیگه تو منبع هست که نگفتم
نرم افزار دیگه ای هم هست که همین کار top رو انجام میده ولی یک مقدار فرق داره
اسم نرم افزار: htop
http://fa.wikipedia.org/wiki/Htop (http://fa.wikipedia.org/wiki/Htop)
(http://upload.wikimedia.org/wikipedia/commons/b/b1/Htop.png)
منبع : http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/
-----------------------------------------------------------------------------------------------
دستور uptime
دستور uptime برایه دیدن مدت زمانی که سیستم روشن بوده استفاده میشه. اپشن خاصی نداره و خروجیش به شکل زیر هست :
$ uptime
21:54:36 up 4 days, 2:44, 1 user, load average: 0.23, 0.38, 0.43
از خزوجی بالا معلومه که موقعی که دستور اجرا شده ساعت 21:54:36 بوده
مدت زمانی که سیستم روشن بوده 4 روز و 2 ساعت و 44 دقیقه بوده است.
1 user = تعداد کار بری که هم اکنون در سیتم لوگین هستند رو نشون میده که این جا یک نفر فقط لوگین هست.
load average و اعداد مقابلش نشان دهده مقدار load سیستم هست که از سمت راست به چپ به ترتیب برایه 1 و 5 و 15 دقیقه هستش .
روش هایه دیگری هم برایه دیدن مدت زمانی که سیستم روشن بوده وجود داره مثلا
با استفاده از ps
درواقع مدت زمانی که در دستور uptime هست مدت زمانی هست که pid شماره 1 به وجود امده که این pid مادر تمام pid هایه دیگر هست و به عنوان اولین pid به وجود میاد.
$ ps -p 1 -O pid,etime
PID PID ELAPSED S TTY TIME COMMAND
1 1 4-02:56:37 S ? 00:00:04 init [2]
در خروجی بالا uptime ممون 4 روزو 2 ساعت و 56 دقیقه و 37 ثانیه است
با استفاده از /proc/uptime
این فایل فایلی هست که داخلش مدت زمان روشن بودن سیستم ذخیره میشه
$ cat /proc/uptime
356400.89 350924.99
توضیح فرمت فایل :
فرمت فایل یه صورت ثانیه هستش که عدد 356400.89 نمایان گر مدت زمان روشن بودن سیستم بر حصب ثانیه است.
و اون عدد دیگر مدت زمانی که سیستم در حالت استراحت بوده . که به اصطلاح idle میگن.
از طریق دستور top هم میشه مدت اپتایم سیستم رو فهمید.
-
(این پست در حال گسترش است...)
پس از چندین پست دربارهی دستورات خط فرمان، برای تنفس، در اینجا نویسههایی (characters) را که برای شل دارای معنای خاص هستند، معرفی میکنیم:
& ; | * ? ' " " [] () $ <> {} # \/ ! ~
همچنین Tab و Space نیز برای شل دارای کاربرد حاص هستند.
- از backslash برای دورانداختن ویژگی خاص بودن یک «نویسهی خاص» استفاده میشود. برای نمونه نویسهی *، از نظر شل یک نویسهی خاص است، اما \* به شل میگوید که با *، مانند سایر نویسههای عادی رفتار کند.
- نویسهی |، که با نام pipe شناخته میشود، بروندهی یک دستور را به دستور دیگر لولهکشی میکند.
-
دستور chmod در این مکان -(در حال تکمیل شدن است)
دست رسی به فایل ها در لینوکس توسط یک سری پارامتر که به اون ها access mode یا mode می گویند قابل انجام هست این مد ها به 3 کلاس تقسیم میشوند که به صورت زیر است :
User = کاربری که صاحب فایل است
Group = گروهی که صاحب فایل است
Other = تمامی کاربران دیگری که بر رویه سیستم وجود دارند.
معمولا وقتی یک فایلی ساخته میشود صاحب اون (user) فایل کسی هست که اون فایل رو ساخته و گروه فایل (group) نیز گروهی است که اون کاربر به اون تعلق داره و تمام کسانی که به اون گروه تعلق ندارند دیگران (other) گفته میشود.
برایه هرکدام از این کلاس ها 3 نوع دست رسی قابل تنظیم است که به شرح زیر است :
permission اجازه برایه دایرکتوری ها اجازه برایه فایل ها نوع حروفی
Read قابلیت خاندن سنجیدن محتویات یک فایل مثلا
داشتن توانایی برایه خاندن
محتویات یک فابل با فرمت txt
Write قابلیت نوشتن
Execute قابلیت اجرای
--------------------------------------------------------------------------------
((( اگه روش هایی به غیر از روش های زیر دوستان میدونستین به صورت پیقام خصوصی یا زیر همین پست بگین تا اموزشو کامل کنم - ممنون )))
برای خاموش کردن لینوکس 4 روش وجود داره که هرکدوم مقداری تفاوت با هم دارن مثلا یکی زود تر خاموش میکنه یا یکی به صورت اصولی خاموش میکنه یا یکی همین جوری یک دفعه ای سیستمو میبره پایین .
1- shutdown
2- init 0 یا telinit 0
3- halt
4- poweroff
1- shutdown
شکل کلی دستور به این شکل هست
shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[/s]
چند مثال
خاموش کردن کامپیوتر قبل از نصفه شب
shutdown -h 23:539
خاموش کردن در همین لحظه
shutdown -h now
خاموش کردن در 25 دقیقه اینده
shutdown -h +25
در دستورای بالا به جای -h که همون دستور halt رو صدا میزنه اگه از -r استفاده کنین کار ریستارت کردنو میکنه
init 0
دستور init یا telinit مربوط به تغییر runlevel ها میشه که 0 برای خاموش کردن و 6 برای ریستازت کردن هستش
برای خاموش کردن
init 0
یا
telinit 0
برای ریستارت کردن عدد صفر در دستورای بالا رو به عدد 6 نغییر بدین
halt
دستور halt اسم دیگه runlevel 0 هستش که همون کار خاموش کردنو میکنه
برای خاموش کردن سیستم فقط لازم دستور halt رو بزنین
halt
خطر
اگه دستور halt رو با -f و -p بزنین مثل کشیدن کابل برق عمل میکنه ! خطر
halt -fp
دستور بالا تو سیستم های مجازی مثل freez کردن عمل میکنه سیستمو خاموش نمیکنه تو vmware player که این جوری بود .
poweroff
اگه خروجی help-- دو دستور halt و poweroff رو بگیرین می بینین که هردوشون مثل همن
برای خاموش کردن سیستم
poweroff
دستور
خطر
بالا هم برای poweroff صدق میکنه
-
(http://alieblice.persiangig.com/image/cat-comman.png)
دستور cut در ادامه دستور cat به زودی
دستور cat برایه خواندن و خروجی گرفتن استاندارد فایل ها ی متنی استفاده میشود ک ولی برایه هرنوع فایلی میتونین ازش استفاده کنین حتی برایه عکس ولی خروجیش نا مفهوم میشه
شکل کلی دستور
cat [OPTION]... [FILE]...
در مثال هایه زیر از یک فایل متنی به اسم sisi و با محتویات زیر استفاده شده است
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Tree lines above this line is empty.
One lines above this line is empty.
And this is the last line.
اگه دستور cat رو به تنهایی بزنین خروجی مثل متن بالا رو نشون میده نه کم نه زیاد
alieblice@~/Desktop$ cat sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Tree lines above this line is empty.
One lines above this line is empty.
And this is the last line.
alieblice@~/Desktop$
شماره گذاری خط ها
خط هارو به دو صورت میشه نام گذاری کرد
1- تمام خط ها یعنی هم خط هایه پر و هم خط هایه خالی بوسیله n-
خط هایه خالی یعنی خط هایه 4 ,5,6,8
مثال
alieblice@~/Desktop$ cat -n sisi.txt
1 THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
2 this line is the 1st lower case line in this file.
3 This Line Has All Its First Character Of The Word With Upper Case.
4
5
6
7 Tree lines above this line is empty.
8
9 One lines above this line is empty.
10 And this is the last line.
alieblice@~/Desktop$
2- فقط خط هایه پر رو شماره گذاری مکند یعنی خط هایه خالی رو شماره گذاری نمیکنه بوسیله b-
مثال:
alieblice@~/Desktop$ cat -b sisi.txt
1 THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
2 this line is the 1st lower case line in this file.
3 This Line Has All Its First Character Of The Word With Upper Case.
4 Tree lines above this line is empty.
5 One lines above this line is empty.
6 And this is the last line.
alieblice@~/Desktop$
نشانه گذاری پایان خط ها به وسیله E-
بوسیله این اپشن میتونین پایان هر خط رو با علامت ﷼ مشخص کنین
alieblice@~/Desktop$ cat -E sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.$
this line is the 1st lower case line in this file.$
This Line Has All Its First Character Of The Word With Upper Case.$
$
$
$
Tree lines above this line is empty.$
$
One lines above this line is empty.$
And this is the last line.$
alieblice@~/Desktop$
پاک کردن خط هایه خالی پشت سر هم بوسیله s- (( اس کوچک ))
اگه به متنی که اول اموزش گذاشته شده توجه کنید وسط متن 3 خط خالی پشت سر هم وجود داره که اگه بخاین اونارو حذف کنین و یک خطو نگه دارین از s- استفاده کنین
مثال :
alieblice@~/Desktop$ cat -s sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Tree lines above this line is empty.
One lines above this line is empty.
And this is the last line.
alieblice@~/Desktop$
همون طور که میبینین 3 خط به یک خط تبدیل شد
نکته :
اگه اسم چند فایلو پشت سر هم تو cat بیاریم همشونو پشت سر هم نشون میده
cat file1 file2 file3
چند دستور ترکیبی cat
اگه خروجی cat اونقدر زیاده که تو صفحه ترمینالتون جا نمیشه میتونین از این اپشن استفاده کنینی
cat file1 | less
با دستور زیر میتونین اطلاعات FILENAME رو به فایل جدید NEWFILENAME انتقال بدین
cat FILENAME > NEWFILENAME
نکته : اگه در دستور بالا فایل NEWFILENAME وجود داشته باشه پاک میشه و فایل جدیدی جاش ایجاد میشه اگه میخاین که این طور نشه و به ادامه اون فایل اضافه بشه از << استفاده کنین
cat FILENAME >> NEWFILENAME
ذخیره خروجی چندین تا فایل در یک فایل
cat file1 file2 file3 > file4
منابع :
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/cat.htm
http://www.linfo.org/cat.html
-
(http://www.thegeekstuff.com/wp-content/uploads/2010/10/rsync-command.png)
دستور head و دستور tail در این مکان به زودی
[/b]
دستور rsync برای بکاپ گیری در لینوکس استفاده میشه همچنین قابلیت synchronize دو فایل رو هم داره که این 2 فایل میتونن در یک کامپیوتر یا یکیشون در یک کامپیوتر رموت باشه
چند نکته خوب درمورد rsync
سرعت بالا : به دلیل این که اول 2 تا فایلو باهم مقایسه میکنه بعد فقط قسمت های تغییر کرده رو بروز یا تغییراتی درشون اءمال میکنه
امنیت : چون rsync از ssh برای برقراری ارتباط استفاده میکنه از امنیت بالایی برخورداره
مصرف پهنای باند کم : چون از فشرده سازی به صورت block by block استفاده میکند همیشه پهنای باند مصرفی از مقدار فایل تبادل شده کمتر است
در اخر هم پیشنیاز خاصی برای نصبش نیاز نیست
نصب :
برای نصب دستورات زیر رو بزنین
apt-get update
apt-get install rsync
شکل کلی دستور
$ rsync options source destination
Synchronize دو فلدر در یک کامپیوتر
$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
sva.xml
svB.xml
.
sent 26385 bytes received 1098 bytes 54966.00 bytes/sec
total size is 44867 speedup is 1.63
$
-z بزای فشرده سازی
v- برای نشون دادن مراحل کار
r- indicates recursive
حالا اگه ls -l هردو فایلو بگیرین میبینین که پرمیشن ها ثابت مانده اند ولی زمان ساخته شدن فایلا تغییر کردن
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 bin bin 949 Jun 18 2009 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root bin 949 Sep 2 2009 /root/temp/sva.xml
برای این که زمان ساخته شدن فایلا تغییر نکند از a- استفاده کنین
$ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list ... done
./
sva.xml
svB.xml
.
sent 26499 bytes received 1104 bytes 55206.00 bytes/sec
total size is 44867 speedup is 1.63
$
حالا اگه خروجی ls -l رو نگاه کنین میبینین که زمان ساخته شدن فایلها بعد از بکاپ گیری یکی هستش
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 root bin 949 Jun 18 2009 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root bin 949 Jun 18 2009 /root/temp/sva.xml
Synchronize فقط یک فایل که عمل کپی کردن یک فایل به فلدر دیگر رو انجام میده
$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys
sent 42 bytes received 12380 bytes 3549.14 bytes/sec
total size is 12288 speedup is 0.99
Synchronize کردن فایل از کامپیوتر local به کامپیوتر remote
local : کامپیوتری که شما الان باهاش کار میکنین ((کامپیوتر محلی))
remote : کامپیوتری که در دور دست هستش
$ rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
Password:
building file list ... done
./
rpm/
rpm/Basenames
rpm/Conflictname
sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
total size is 45305958 speedup is 2.87
برای انجام این کار احتیاج به username وIP address سیستم رموت و همچنین ادرس فایل در سیستم رموت که شکل کلی به این شکل میشه
username@machinename:path
path : ادرس دایرکتوری در سیستم رموت
که در دستور بالا به این شکل بود : thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
/root/temp/ : ادرس فایل های ارسالی از لوکال به سرور
Synchronize سیستم رموت به سیستم خانگی
alieblice@alieblice-desktop:~$ sudo rsync -avz root@172.16.49.128:/var/www/Videos /home/reza
[sudo] password for alieblice:
root@172.16.49.128's password:
receiving incremental file list
created directory /home/reza
Videos/
Videos/.htaccess
Videos/Oggy.001.avi
Videos/Oggy.002.avi
Videos/Oggy.003.avi
Videos/Oggy.004.avi
Videos/Oggy.005.avi
sent 129 bytes received 347205008 bytes 10063917.01 bytes/sec
total size is 350419831 speedup is 1.01
alieblice@alieblice-desktop:~$
root@172.16.49.128:/var/www/Videos : ادرس سیستم رموت
/home/reza : ادرسی که میخایم فایلا از رموت تو کامپیوتر لوکال شخصی ذخیره شود
دیدن اطلاعاتی در مورد انتقال هر فایل
برای این کار از progress-- استفاده کنین
alieblice@alieblice-desktop:~$ sudo rsync --progress -avz root@172.16.49.128:/var/www/Videos /home/reza
root@172.16.49.128's password:
receiving incremental file list
Videos/
Videos/Oggy.001.avi
70811648 100% 17.25MB/s 0:00:03 (xfer#1, to-check=4/7)
Videos/Oggy.002.avi
70343454 100% 11.02MB/s 0:00:06 (xfer#2, to-check=3/7)
Videos/Oggy.003.avi
70598656 100% 13.04MB/s 0:00:05 (xfer#3, to-check=2/7)
Videos/Oggy.004.avi
69273600 100% 14.00MB/s 0:00:04 (xfer#4, to-check=1/7)
Videos/Oggy.005.avi
69392384 100% 12.04MB/s 0:00:05 (xfer#5, to-check=0/7)
sent 110 bytes received 350537798 bytes 12746833.02 bytes/sec
total size is 350419831 speedup is 1.00
alieblice@alieblice-desktop:~$
ممکنه وقتی که 2 فایلو باهم دارین synce میکنین یکسری فایل در فلدر ی که دارین بکاپ هارو توش ذخیره میکنین ((target )) وجود داشته باشه که در فلدر اصلی ((source)) که ازش بکاپ میگیرین نباشه حالا اگه بخاین که فایلای اضافی که در target بودنو پاک کنین از delet-- استفاده کنین
ls فولدر source
root@debian:/var/www/Videos# ls
Oggy.003.avi Oggy.004.avi Oggy.005.avi
ls فلدر target
alieblice@alieblice-desktop:~$ ls /home/reza/Videos
Oggy.001.avi Oggy.002.avi Oggy.003.avi Oggy.004.avi Oggy.005.avi
alieblice@alieblice-desktop:~$
alieblice@alieblice-desktop:~$ sudo rsync --progress --delete -avz root@172.16.49.128:/var/www/Videos /home/reza
root@172.16.49.128's password:
receiving incremental file list
deleting Videos/Oggy.002.avi
deleting Videos/Oggy.001.avi
Videos/
Videos/Oggy.005.avi
69392384 100% 16.48MB/s 0:00:04 (xfer#1, to-check=0/5)
sent 34 bytes received 69415891 bytes 9255456.67 bytes/sec
total size is 209264729 speedup is 3.01
alieblice@alieblice-desktop:~$
ممکنه فقط بخاین فایلایی که با کلمه خاصی شروع میشن رو بکاپ بگیرین
که برای این کار از include-- و exclude-- استفاده کنین
--include 'P*' : فایلایی که با P شروع میشن رو بکاپ بگیر
--exclude '*' : تمام فایلای دیگر رو در نظر نگیر
$ rsync -avz --include 'P*' --exclude '*' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Packages
Providename
Provideversion
Pubkeys
sent 129 bytes received 10286798 bytes 2285983.78 bytes/sec
total size is 32768000 speedup is 3.19
محدودیت حجمی
برای ایجاد محدودیت حجمی میتونین از
--min-size=SIZE :فقط فایلایی که حجمشون از مقدار در نظر گرفته شده بیشتر است رو انتقال بده
--min-size=SIZE : فقط فایلایی که حجمشون از مقدار در نظر گرفته شده کمتر است رو انتقال بده
دستور زیر فایلای زیر 100 کیلوبایت رو انتقال میده
M for megabytes and G for gigabytes K for kilobyte
$ rsync -avz --max-size='100K' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Conflictname
Group
Installtid
Name
Sha1header
Sigmd5
Triggername
sent 252 bytes received 123081 bytes 18974.31 bytes/sec
total size is 45305958 speedup is 367.35
rsync خیلی گسترده هستش و پایه اساس خیلی از نرم افزارای بکاپ گیری لینوکس و ویندوز هستش
برای دیدن کامل کارایی که rsync میتونه انجام بدهد به man یا helpش مراجعه کنین
نسخه گرافیکی مختلفی برای لینوکس و ویندوز داره که از ادرس زیر میتونین ببینین
http://en.wikipedia.org/wiki/Rsync
منبع : http://www.thegeekstuff.com/2010/09/rsync-command-examples/
چند مثال دیگه تو منبع هست که نگفتم
-
(http://alieblice.persiangig.com/image/sort-command.jpeg)
دستور sort همون طور که از معنیش معلومه برایه ترتیب کردن حروف بر اساس حروف الفبا و همچنین ترتیب کردن اعداد بر اساس اعداد استفاده میشود
از جایی که اپشن هایه زیادی دارد من این جا فقط اونایی که از همه بیشتر مصرف میشوند و کار راه انداز هستن رو میگم
شکل کلی دستور
sort [OPTION]... [FILE]...
ساده ترین شکل دستور sort به شکل زیر هستش که به صورت پیش فرض ترتیب کردن رو بر اساس حروف انجام میدهد
برایه این مثال اول فایل زیر رو با محتویات زیر بسازید و ذخیره کنید
alieblice@~/Desktop/sisi$ nano lili.txt
X
C
d
c
a
h
g
A
G
H
K
p
برایه ذخیره شدن دکمه کنترل و ایکس رو فشار بدین و سپس دکمه y رو بزنین (( Ctrl+x ))
alieblice@~/Desktop/sisi$
مثال :
alieblice@~/Desktop/sisi$ sort lili.txt
a
A
c
C
d
g
G
h
H
K
p
X
alieblice@~/Desktop/sisi$
ترتیب بر اساس اعداد به وسیله n-
برایه این کار فایل sisi.txt رو به روش بالا با محتویات زیر بسازین
10
30
40
5
7
1
88
2
1390
یک فایل رو به دو صورت میشود به ترتیب اعداد کرد
1=
از این طریق اعداد فقط بر حصب عدد اولشون ترتیب میشن
مثال:
alieblice@~/Desktop/sisi$ sort lili.txt
1
10
1390
2
30
40
5
7
88
alieblice@~/Desktop/sisi$
2=
بر اساس ترتیب شمردن که احتیاج به اپشن n- دارد
مثال:
alieblice@~/Desktop/sisi$ sort -n lili.txt
1
2
5
7
10
30
40
88
1390
alieblice@~/Desktop/sisi$
نکته : اگه خاستین بر عکس ترتیب بشود از اپشن r- استفاده کنین یعنی مثلا در ترتیب اعداد در مثال بالا اول 1390 بعد 88 وبعد 40 و بعد ....
تعیین جدول
برایه تعیین جدول احتیاج به دو چیز داریم یک جدا کننده که به ما میگه چه جوری دو تا جدول از هم جدا میشوند و دیگری شماره جدول
در مثال هایه زیر از متن زیر استفاده شده است
acl Safe_ports port 80 # http
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
tia:x:1000:1000::/home/tia:/bin/bash
به خط زیر توجه کنین
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
اگه در خط بالا نوع جدا کننده را : در نظر بگیریم خط بالا از 7 قسمت درست شده که ما اینجا به اونا جدول می گفتیم
در مثال زیر میگیم که خطوط رو بر اساس جدول 3وم و نوع جدا کننده : به ترتیب اعداد بکند
alieblice@~/Desktop/sisi$ sort -n -t: -k3 lili.txt
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 80 # http
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
tia:x:1000:1000::/home/tia:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
alieblice@~/Desktop/sisi$
در مثال بالا t- برای تعیین جدا کننده و k- برایه تعیین جدول هستش
اگه خاستین خروجی هایه تکراری پاک شوند از u- استفاده کنین
مثال :
alieblice@~/Desktop/sisi$ sort -nu -t":" -k3 lili.txt
acl Safe_ports port 80 # http
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
alieblice@~/Desktop/sisi$
همون طور که میبینین این خط به همراه تمام خط هایی که توش جدا کننده پیدا نشده به جز یکی حذف شدند
tia:x:1000:1000::/home/tia:/bin/bash
مثالی دیگر :
در مثال زیر جدا کننده رو یک فاصله (( space )) در نظر میگیریم
alieblice@~/Desktop/sisi$ sort -t" " -k 4 -nu lili.txt
bin:x:2:2:bin:/bin:/bin/sh
acl Safe_ports port 80 # http
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
alieblice@~/Desktop/sisi$
نکته :
یکی از مشکلاتی که دستور sort دارد نوع جدا کننده هستش که نمیشه دو حرفی تعیین کرد یعنی مثلا چیزهایی مثل " :" ::" ":@" نمیشه تعیین کرد
منبع : LPIC-1_In_Nutshell_Oreilly_Edition3
ادرس دانلود:
http://ubuntuone.com/p/15HZ/
--------------------------------------------------------------------------------------------------
دستور man برای دیدن راهنمای دستورات و بعضی فایل ها استفاده میشه
اتقال دستور man به صفحه اول قیل از دستور cd (نبود جا برایه دستور man)
یک دستور میتونه چندین تا راهنمای مجزا (( چندین صفحه man )) داشته یاشه که به صورت استاندارد به بخش های زیر تقسیم میشن
Section Description
1 User programs
2 System calls
3 Library calls
4 Special files (usually found in /dev)
5 File formats
6 Games
7 Miscellaneous
8 System administration
شکل کلی دستور
man [options] [section] name
مثلا دستور
man mkdir
اگه بزنین راهنمای mkdirرو میاره
man mkdir
MKDIR(1) User Commands MKDIR(1)
NAME
mkdir - make directories
SYNOPSIS
mkdir [OPTION]... DIRECTORY...
DESCRIPTION
Create the DIRECTORY(ies), if they do not already exist.
Mandatory arguments to long options are mandatory for short options
too.
-m, --mode=MODE
set file mode (as in chmod), not a=rwx - umask
-p, --parents
no error if existing, make parent directories as needed
-v, --verbose
print a message for each created directory
-Z, --context=CTX
set the SELinux security context of each created directory to
CTX
--help display this help and exit
--version
output version information and exit
AUTHOR
Written by David MacKenzie.
REPORTING BUGS
Report mkdir bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
Report mkdir translation bugs to <http://translationproject.org/team/>
COPYRIGHT
Copyright © 2010 Free Software Foundation, Inc. License GPLv3+: GNU
GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
mkdir(2)
The full documentation for mkdir is maintained as a Texinfo manual. If
the info and mkdir programs are properly installed at your site, the
command
info coreutils 'mkdir invocation'
should give you access to the complete manual.
GNU coreutils 8.5 April 2010 MKDIR(1)
دیدن man های یک دستور
man -wa command
مثلا
$ man -wa mkfifo
/usr/share/man/man1/mkfifo.1
/usr/share/man/man3/mkfifo.3
خوب حالا اگه بخاین راهنمای C-language دستور mkfifo رو ببینین باید به manای که عدد 3 رو داره برین که برای این کار دستور به این شکل میشه
$ man 3 mkfifo
اگه بخاین که man تمام راهنما های موجود برای یک دستورو یک جا براتون بیاره از a- استفاده کنین
حالا اگه دستور زیرو بزنین اول man 1 و بعد man 7 رو میاره به این صورت که با بسته شدن man 1 با q ((کیو )) یا Ctrl-C به man 2 میرود
man -a man
نکته :
اگه دستور دیدن مکان man یک دستورو به شکل man -w COMMAND بزنین فقط مکان راهنمایی رو که بازدن man COMMAND میبینین رو نشون میده که برای دیدن مکان همه ی man های یک دستور باید از aw- استفاده کنین .
سیرچ کردن تمام صفحات man موجود
برای این کار از k- استفاده کنین
مثلا کلمه apache رو سیرچ میکنیم
ali@172.16.15.149:~$ man -k apache
a2dismod (8) - enable or disable an apache2 module
a2dissite (8) - enable or disable an apache2 site / virtual host
a2enmod (8) - enable or disable an apache2 module
a2ensite (8) - enable or disable an apache2 site / virtual host
ab (1) - Apache HTTP server benchmarking tool
apache2 (8) - Apache Hypertext Transfer Protocol Server
apache2ctl (8) - Apache HTTP server control interface
apachectl (8) - Apache HTTP server control interface
check_forensic (8) - tool to extract mod_log_forensic output from apache lo...
logresolve (1) - Resolve IP-addresses to hostnames in Apache log files
rotatelogs (8) - Piped logging program to rotate Apache logs
وقتی که دستور man ls رو میزنین راهنمای ls باز میشه که خود همون صفه باز شده از چند قسمت تشکیل شده که به صورت زیر هستش
Heading Description
Name The name of the item, along with a description
Synopsis A complete description of syntax or usage
Description A brief description of the item
Options Detailed information on each command-line option (for commands)
Return values Information on function return values (for programming references)
See also A list of related items that may be helpful
Bugs Descriptions of unusual program behavior or known defects
Files A list of important files related to the item, such as configuration files
Copying or copyright A description of how the item is to be distributed or protected
Authors A list of those who are responsible for the item
دستور خلاصه تر از man هم هست که فقط توضیح کوتاهی از اون دستورو میده
whatis ls
ls (1) - list directory contents
منبع : LPIC-1_In_Nutshell_Oreilly_Edition3.pdf
ادرس دانلود
http://ubuntuone.com/p/15HZ/
-
خوب دوستان عزیز.
من دیدم این دوست عزیزمون alieblice دارن زحمات زیادی میکشن. من هم از همین سایتی که ایشون یه سری Command ها رو آموزش دادن، یه سری اطلاعات و آموزشها رو ترجمه میکنم. امیدوارم که هم کمکی به دوستانی باشه که این تاپیک بسیار مفید رو زنده نگه میدارن و هم اینکه امیدوارم مفیر باشه واسه همه دوستان.
دوستان این وبسایت http://www.thegeekstuff.com/ خیلی وبسایت عالی هستش. من سعی میکنم هر وقت که پستی رو خوندم و جالب دیدم بیام و اینجا هم مطرح کنم.
۵ روش برای شناسایی فایل سیستم
rf@Aref-Ubuntu:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 28868732 818088 26584176 3% /
none devtmpfs 505400 688 504712 1% /dev
none tmpfs 512008 356 511652 1% /dev/shm
none tmpfs 512008 224 511784 1% /var/run
none tmpfs 512008 0 512008 0% /var/lock
/dev/sda5 ext4 68246080 30481724 34297656 48% /home
/dev/sda6 ext4 16339372 3596348 11913024 24% /usr
/dev/sdb1 vfat 1003584 937464 66120 94% /media/Receiver Fl
-T در فرمان df نوع فایل سیستم را مشخص میکند.
از دستور mount به شکل زیر استفاده کنید:
mount | grep "^/dev"
rf@Aref-Ubuntu:~$ mount | grep "^/dev"
/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)
/dev/sda5 on /home type ext4 (rw,commit=0)
/dev/sda6 on /usr type ext4 (rw,commit=0)
/dev/sdb1 on /media/Receiver Fl type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)
با استفاده از دسترسی root از فرمان file به شکل زیر استفاده کنید. توجه شود که نام device مورد نظر باید به دستور داده شود.
file -sL /dev/sda1
rf@Aref-Ubuntu:~$ sudo file -sL /dev/sda1
[sudo] password for rf:
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=83c2ae51-5ab2-4380-bbc8-910f8148a288 (needs journal recovery) (extents) (large files) (huge files)
اگر یک mountpoin مشخص، طوری تنظیم شده باشد که هنگام بالا آمدن سیستم بخواهد mount شود، میتونیم نوع فایل سیستم اون رو تو fstab ببینیم.
rf@Aref-Ubuntu:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=83c2ae51-5ab2-4380-bbc8-910f8148a288 / ext4 errors=remount-ro 0 1
/dev/sda5 /home ext4 defaults 0 2
/dev/sda6 /usr ext4 defaults 0 2
/dev/sda7 none swap sw 0 0
توجه شود که در این روش باید device مورد نظر مشخص شود:
fsck -N /dev/sda1
rf@Aref-Ubuntu:~$ fsck -N /dev/sda1
fsck from util-linux-ng 2.17.2
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/sda1
و در آخر اینکه اگر شما دسترسی root را ندارید، اما میخواهید که فایل سیستمتان را شناسایی کنید، از:
/sbin/fsck -N
استفاده کنید.
ممنون از همه دوستان عزیز
موفق باشید
-
پرونده ای است که هر آن بدان چیزی افزوده میشود ( همچو log file ) میخواهیم بپاییمش :
tail -f logfilename
-----------------------
میخواهیم تنها خطهای یکتا ( و اگر چند خط تکراریست تنها یکی از آن خطها ) را ببینیم :
( چیزی مانند distinct در sql )
uniq filename
-
دستور uniq n در ادامه دستور wc و write در این مکان به زودی
دستور wc برایه شمردن تعداد کلمه ها , تعداد خط ها و تعداد حرف ها استفاده میشود
اگر خود دستور wc رو بر رویه یک فایل اجرا کنین تعداد خط کلمه و حروف رو به شما می دهد.
$ wc /var/log/dmesg
1974 16587 131873 /var/log/dmesg
در خروجی بالا 1975 تعداد خط و 16587 تعداد کلمه و 131873 تعداد چرکتر ها که با مقدار بایت هم برابر هست.
اپشن هایه دستور wc
اپشن c-
برا نشون دادن مقدار بایت فایل
$ wc -c /var/log/dmesg
131873 /var/log/dmesg
اپشن m-
برایه شموردن تعداد چرکتر
$ wc -m /var/log/dmesg
131873 /var/log/dmesg
اپشن l-
برایه نشون دادن تعداد خط ها
$ wc -l /var/log/dmesg
1974 /var/log/dmesg
L- ال بزرگ
برایه دیدن طولانی ترین خط
$ wc -L /var/log/dmesg
195 /var/log/dmesg
در بالا طولانی ترین خطمون 195 چرکتر است
اپشن w-
برایه شمردن تعداد کلمه ها
$ wc -w /var/log/dmesg
16587 /var/log/dmesg
----------------------------------------------------------------------------------------------------------------------------
(http://alieblice.persiangig.com/image2/mail-icon.png)
دستور write برای چت کردن در ترمینال با کاربرای دیگر که login شده اند استفاده میشه که خیلی هم ساده هستش و اپشنی هم نداره
شکل کلی دستور
write user [tty]
برای بر قراری ارتباط با یک کاربر دستورو به این شکل بزنین
alieblice@alieblice-desktop:~$ write alieblice
write: alieblice is logged in more than once; writing to pts/4
salamm
در بالا میبینین که گفته write: alieblice is logged in more than once; writing to pts/4
یعنی کاربر alieblice بیشتر از یک ترمینال باز شده داره که همه این ترمینال ها میتونه مال یک نفر یا چند نفر باشه که برای جلو گیری از اشتباه بهتره که tty کاربر رو هم معلون کنین . برای دیدن tty کاربرای وارد شده به سیستم دستور w یا who رو بزنین
مثال w تو سیستم من
alieblice@alieblice-desktop:~$ w
00:20:51 up 1:34, 7 users, load average: 0.73, 0.67, 0.54
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alieblic tty8 :0 22:52 1:34m 2:54 0.08s gnome-session
alieblic pts/0 :0.0 23:24 56:08 0.17s 0.17s bash
alieblic pts/1 :0.0 23:51 27:03 0.14s 0.14s bash
alieblic pts/2 :0.0 23:57 3:23 0.14s 0.14s bash
alieblic pts/3 :0.0 00:08 0.00s 0.14s 0.00s w
tia pts/4 - 00:20 39.00s 0.41s 0.14s -bash
tia pts/5 - 00:20 2.00s 0.36s 0.01s top
alieblice@alieblice-desktop:~$
همونطر که میبینین کاربر tia دو بار وارد سیستم شده
مثلا من به کار بری که شناسش pts/5 هست ارتباط برقرار میکنم که الان داره با top کار میکنه
alieblice@alieblice-desktop:~$ write tia pts/5
hi tia
بستن چت
اگر زمانی خاستین که کسی مزاحمتون نشه در حین کار میتونین از دستور mesg استفاده کنین که به صورت y و n استفاده میشه
Usage: mesg [y|n]
مثلا باری این که کاربر tia اجازه ی چت رو ببنده دستور به این شکل هست که اگر mesg رو هم به صورت خالی بزنین y یا n بودنشو میگه
tia@alieblice-desktop:~$ mesg n
tia@alieblice-desktop:~$ mesg
is n
tia@alieblice-desktop:~$
نکته : در ubuntu چت یک طرفه هستش یعنی اگه شما با یک نفر ارتباط برقرار کنین فقط میتونین براش چیزی بفرستین بارایه این که 2 طرفه بشه طرف مقابل هم باید دستور مشابه شما رو بزنه در حالی که تو دبیان این جوری نیست .
دستورات مشابه دیگه ای هم وجود داره مثل talk
-
نکته :
خروجی هر دستور به صورت عکس هم قرار گرفته برای درک بهتر
اگه عکس ها دیده نمیشن از ادرس زیر میتونین عکس هارو ببینین (( شماره هر عکس رو بالاش با رنگ ابی قرار دادم ))
http://alieblice.persiangig.com/image/grep-pic/ (http://alieblice.persiangig.com/image/grep-pic/)
یا از این ادرس دانلود کنین
http://ubuntuone.com/p/15nL/
(http://alieblice.persiangig.com/image/tight-grip-230x300.jpg)
دستور grep برای پیدا کردن یک نوشته در بین تعداد زیادی نوشته استفاده میشه که خروجیش میتونه به صورت های مختلف باشه مثلا :
خط هایی که اون نوشته مورد نظر رو دارا هستن رو نشون بده
تعداد خط هایی که نوشته در انها منطبق شده نشون بدهد
....
..
.
شکل کلی دستور
grep [OPTION]... PATTERN [FILE]...
یا
grep "literal_string" filename
نکته :
در طی اموزش از 3 فایل به نام های demo و demo2 و demo3 استفاده میشه که متن داخلشون به ترتیب به صورت زیر هست
demo
alieblice@de-10:~$ cat demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line
.
demo2
alieblice@de-10:~$ cat demo2
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.
demo3
alieblice@de-10:~$ cat demo3
4. Vim Word Navigation
You may want to do several navigation in relation to the words, such as:
* e - go to the end of the current word.
* E - go to the end of the current WORD.
* b - go to the previous (before) word.
* B - go to the previous (before) WORD.
* w - go to the next word.
* W - go to the next WORD.
WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.
جستوجو برای یک کلمه در متن
این دستور ساده ترین نوع دستور grep هستش که به صورت زیر عمل میکنیم
grep "literal_string" filename
مثال
قبل از زدن دستور زیر فایل demo رو با محتویاتی که اول اموزش گذاشتم بسازید
در مثال زیر به دنبال کلمه this میگردیم
alieblice@de-10:~$ grep "this" demo
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$
1
(http://alieblice.persiangig.com/image/grep-pic/1.png)
جستوجو برای یک کلمه در چندین فایل
برای این کار فقط لازم اسم فایلارو پشت سر هم با یک فاصله بنویسین
مثال
قبل از زدن دستور زیر فایل demo2 رو بسازین
alieblice@de-10:~$ grep "this" demo demo2
demo:this line is the 1st lower case line in this file.
demo:Two lines above this line is empty.
demo:And this is the last line.
demo2:this line is the 1st lower case line in this file.
demo2:Two lines above this line is empty.
demo2:And this is the last line.
alieblice@de-10:~$
2
(http://alieblice.persiangig.com/image/grep-pic/2.png)
همون طور که در بالا میبینین اول هر خط نوشته که هر خط ماله چه فایلی هست
دستور بالا رو میتونین به این صورت هم بنویسین
alieblice@de-10:~$ grep "this" demo*
حساس نبودن به حروف بزرگ و کوچک بوسیله i-
در حالت عادی grep حساس به حروف بزرگ و کوچک هستش اگه با i- برای the جستوجو کنیم تمام کلمات THE و The و the رو شامل میشه
alieblice@de-10:~$ grep -i "the" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
And this is the last line.
alieblice@de-10:~$
4
(http://alieblice.persiangig.com/image/grep-pic/4.png)
استفاده از regular expression در grep
grep به خوبی از regular expression پشتیبانی میکند که روش استفادشم مثل مثال اول هستش
اطلاعات بیشتر در مورد regular expression رو از ادرسهای زیر میتونین بخونبن
http://www.thegeekstuff.com/2011/01/regular-expressions-in-grep-command/ (http://www.thegeekstuff.com/2011/01/regular-expressions-in-grep-command/)
http://www.thegeekstuff.com/2011/01/advanced-regular-expressions-in-grep-command-with-10-examples-%E2%80%93-part-ii/ (http://www.thegeekstuff.com/2011/01/advanced-regular-expressions-in-grep-command-with-10-examples-%E2%80%93-part-ii/)
http://www.grymoire.com/Unix/Regular.html
مثال
alieblice@de-10:~$ grep "lines.*empty" demo
Two lines above this line is empty.
alieblice@de-10:~$
5
(http://alieblice.persiangig.com/image/grep-pic/5.png)
در بالا grep برای هر چیزی که با lines شروع بشه و با empty به پایان برسه که در بینشون هر چیزی میتونه باشه جستو جو میکنه
جستوجو فقط برای کلمه خاصته شده
اگه با grep کلمه is رو جستوجو کنیم کلمات زیر رو هم جزو خروجی میاره
“is”, “his”, “this”
حالا اگه بخایم که فقط دنبال is بگرده از w- میتونیم استفاده کنیم
عکس grep با اپشن i-
6
(http://alieblice.persiangig.com/image/grep-pic/6.png)
عکس grep با اپشن w-
alieblice@de-10:~$ grep -iw "is" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$
7
(http://alieblice.persiangig.com/image/grep-pic/7.png)
نشون دادن چند خط قبل یا بعد یا دوروبر نوشته پیدا شده -A, -B and -C
برای این قسمت فایل demo3 رو بسازین
نشون دادن N خط بعد نوشته تطبیق شده با استفاده از A-
alieblice@de-10:~$ grep -A 3 -i "example" demo3
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.
alieblice@de-10:~$
8
(http://alieblice.persiangig.com/image/grep-pic/8.png)
نشون دادن N خط قبل از نوشته تطبیق شده با استفاده از B-
alieblice@de-10:~$ grep -B 2 "single WORD" demo3
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
alieblice@de-10:~$
9
(http://alieblice.persiangig.com/image/grep-pic/9.png)
نشون دادن چند خط دورو بر نوشته تطبیق شده با استفاده از C- ((سی بزرگ))
alieblice@de-10:~$ grep -C 2 "Example" demo3
word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
alieblice@de-10:~$
10
(http://alieblice.persiangig.com/image/grep-pic/10.png)
جستوجو در داخل تمام فایل ها و ساب دایرکتوری ها با استفاده از r-
grep -r "ramesh" *
بر عکس کردن جستوجو با استفاده از v-
با این کار تمام خط هایی که با کلمه تطبیق نیافته اند نشون داده میشن
alieblice@de-10:~$ grep -v "go" demo3
4. Vim Word Navigation
You may want to do several navigation in relation to the words, such as:
WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.
Example to show the difference between WORD and word
* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.
alieblice@de-10:~$
11
(http://alieblice.persiangig.com/image/grep-pic/11.png)
همون طور که میبینین در عکس خروجی رنگی وجود ندارد
جستو جو هم زمان برایه چند نوشته به وسیله e-
برای این کار دستورو به این شکل مینویسیم
grep -v -e "pattern" -e "pattern"
مثال :
alieblice@de-10:~$ grep -e "is" -e "line" demo
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$
12
(http://alieblice.persiangig.com/image/grep-pic/12.png)
میتونین خط هایی که هیچکدان از نوشته های مورد نظر رو ندارن هم پیدا کنین که به این شکل میشه
alieblice@de-10:~$ grep -ve "is" -e "line" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
13
(http://alieblice.persiangig.com/image/grep-pic/13.png)
شمردن خط هایی که نوشته تطبیق شده رو داراست به وسیله c-
alieblice@de-10:~$ grep -c "go" demo3
6
alieblice@de-10:~$
یا
alieblice@de-10:~$ grep -c this demo
3
alieblice@de-10:~$
نشون دادن فایل هایی که نوشته مورد نظر درون انها تطبیق شده بوسیله l-
alieblice@de-10:~$ grep -l this *
demo
demo2
یا
alieblice@de-10:~$ grep -l this demo*
demo
demo2
نشون دادن خطی که در ان نوشته تطبق شده بوسیله n-
alieblice@de-10:~$ grep -n "go" demo3
5: * e - go to the end of the current word.
6: * E - go to the end of the current WORD.
7: * b - go to the previous (before) word.
8: * B - go to the previous (before) WORD.
9: * w - go to the next word.
10: * W - go to the next WORD.
alieblice@de-10:~$
16
(http://alieblice.persiangig.com/image/grep-pic/16.png)
همون طور که میبینین شماره خط رو اول هر خط نوشته
رنگی کردن
به طور پیش فرض grep از رنگ قرمز برای مشخص کردن متن های تطبیق یافته استفاده میکند که در عکس های بالا دیده میشه
حالا اگه بخاین رنگش رو تغییر بدین راحت ترین روش اینه که یک خط مثل خط پایین رپ به فایل
.bashrc
که در home دایرکتوری تون هست قرار بدین (( نکته : اول فایل یک نقطه داره که باعث مخفی شدنش میشه ))
نمونه خط :
export GREP_OPTIONS='--color=auto' GREP_COLOR='COLOR'
در خط بالا به جای COLOR کد رنگ مورد نظرتونو بزارین
چند نمونه رنگ
export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
17
(http://alieblice.persiangig.com/image/grep-pic/17.png)
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;37;41'
18
(http://alieblice.persiangig.com/image/grep-pic/18.png)
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
19
(http://alieblice.persiangig.com/image/grep-pic/19.png)
export GREP_OPTIONS='--color=auto' GREP_COLOR='7'
منبع :
http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/
http://www.debian-administration.org/articles/460
-
(http://www.thegeekstuff.com/wp-content/uploads/2009/10/15-wget-examples-300x257.png)
دستور sed در این مکان بزودی
لینک به اموزش رگیولار اکسپرسشن جناب Hadron و اموزش دیگر
wget یک دانلود منیجر تحت ترمینال هستش که که اپشن های زیادی هم داره که به واسطه همونا در موقعیت های مختلف دانلود کردن میشه ازش استفاده کرد
برای پیدا کردن اطلاعات کاملی در مورد دانلود منیجر های لینوکسی به این ادرس برید
دانلود منیجرهای دنیای لینوکس
http://linuxreview.ir/1390/01/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%85%D9%86%DB%8C%D8%AC%D8%B1%D9%87%D8%A7%DB%8C-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/
شکل کلی دستور
wget [OPTION]... [URL]...
دانلود کردن یک فایل
برای دانلود کردن یک فایل دستور wget رو بنویسین و در ادامش url ((ادرس فایل مورد نظر )) تونو بنویسین مثلا :
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
نکته : دستور wget رو در هر دایرکتوری که بزنین فایل در همون دایرکتوری ذخیره میشه
توضیح دستور بالا :
٪ مقدار درصد فایل که دانلود شده در زیر 31% فایل دانلود شده
مقدار بایت فایل دانلو شده که در ادامه فلش میاد که در زیر 1,213,592 است
سرعت دانلود کردن که در زیر 68.2K/s است
مقدار زمان باقی مانده تا اتمام دانلود فایل که در زیر 34s است
درحال دانلود شدن
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2.1'
31% [=================> 1,213,592 68.2K/s eta 34s
اتمام دانلود
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2'
100%[======================>] 3,852,374 76.8K/s in 55s
2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]
دانلود کردن چندین فایل به وسیله ی لیست ادرس ها
برای این کار لیست ادرس های خود را داخل یک فایل متنی ذخیره کنید و دستور wget رو به همراه اپشن i- استفاده کنین
$ wget -i download-file-list.txt
نکته : ادرس هاتون باید یه شکل زیر باشه یعنی در هر خط یک url قرار بدین و url بعدی زیر خط بالایی
$ cat > download-file-list.txt
URL1
URL2
URL3
URL4
دانلود کردن وذخیره کردن با اسمی متفاوت
به طور پیش فرض wget اسم فایلو از اخرین کلمه بعد از اسلش (( / )) بر میداره
برای این کار از اپشن O- (( اوو بزرگ))
wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
دربالا اگه از اپشن O- استفاده نکنین فایل با اسم download_script.php?src_id=7701 ذخیره می شود و اگر استفاده کنین با اسم taglist.zip ذخیره میشود
محدودیت سرعت در دانلود
برای این کار از اپشن limit-rate=NUMBER-- استفاده کنین مثلا در زیر محدودیت 200 کیلپبایت میزاریم
$ wget --limit-rate=200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
ادامه دادن دانلود فایل ناقص دانلود شده
برای این کار از c- استفاده کنین
$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
نکته مهم : دستور بالا رو باید در همون دایرکتوری که فایلتونو بار اول زدین و ناقص دانلود کردین بزنین تا فایلتون که به صورت ناقص هست به وسیله wget پیدا بشه در غیر این صورت از اول شروع به دانلود میکند
اگر فایلی رو خاستین دانلود کنین که یک فایل دیگه هم اسمش وجود داره به اخر فایلی که شما دانلود میکنین یک 1- اضافه میکنه اگه همون اسم با 1- وجود داشت 2- اضافه میکند
دانلود کردن در پشت صحنه :
برای این کار از b- استفاده کنین
نکته : در این حالت با دستور fg نمیتونین wget رو به روی صفحه بیارین اگر دستور jobs هم بزنین میبینین که خبری از wget نیست
$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Continuing in background, pid 1984.
Output will be written to `wget-log'.
در این حالت wget اطلاعات رو در یک فایل ذخیره میکند که همون طور که در بالا میبینین اسم اون فایل wget-log است
برای دیدن فایل به صورت on time از دستور tail استفاده کنین
$ tail -f wget-log
Saving to: `strx25-0.9.2.1.tar.bz2.4'
0K .......... .......... .......... .......... .......... 1% 65.5K 57s
50K .......... .......... .......... .......... .......... 2% 85.9K 49s
100K .......... .......... .......... .......... .......... 3% 83.3K 47s
150K .......... .......... .......... .......... .......... 5% 86.6K 45s
200K .......... .......... .......... .......... .......... 6% 33.9K 56s
250K .......... .......... .......... .......... .......... 7% 182M 46s
300K .......... .......... .......... .......... .......... 9% 57.9K 47s
دانلود کردن یک سایت به صورت کامل
از دستور زیر به همراه اپشناش استفاده کنین
شکل کلی :
$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
مثال :
wget --mirror -p --convert-links -P /tmp http://forum.ubuntu.ir/index.php/topic,17561.0.html
ادرس http://forum.ubuntu.ir/index.php/topic,17561.0.html دانلود میکنپ ودر فایل tmp/ ذخیره میکند
توضیح دستور بالا : ((ترجمش با خودتون ))
–mirror : turn on options suitable for mirroring.
-p : download all files that are necessary to properly display a given HTML page.
–convert-links : after the download, convert the links in document for local viewing.
-P ./LOCAL-DIR : save all the files and directories to the specified directory.
چند مثال مفید دیگه هم در منبع بود که من نگفتم
منبع : http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/
-
(http://up.iranblog.com/images/76qkhuvxf44ome7arltt.jpg)
دستور find در این مکان بزودی
تقریبا اطمینان دارم که همه میدونن zip چی هستش پس خیلی توضیح نمیدم
zip یک فرمت فشرده سازی هستش که با اون مبشه یک یا چند فایل و یا دایرکتوری را zip فشرده کرد که باعش کم شدن حجم میشود
فایلی که با zip فشرده بشود در اخر اسم ان کلمه zip قرار میگیرد که نشانه فرمت اون هست
اطلاعات بیشتر که zip چی هست : http://en.wikipedia.org/wiki/ZIP_%28file_format%29 (http://en.wikipedia.org/wiki/ZIP_%28file_format%29)
بزای فشرده کردن یک فایل که اسم اون مشخص هستش دستور به شکل زیر میشود
tia@alieblice-desktop:~/com$ zip 1.zip 1.jpeg
adding: 1.jpeg (deflated 0%
)
1-در بالا فایل 1.jpeg رو به فرمت zip دز میاریم و با اسم 1.zip ذخیره میکنیم (( اول اسمی که میخایم فایل ذخیره بشه و بعد ادرس فایل مورد نظر ))
2- در بالا در هر دایرکتوری که باشیم فایل فشرده در همون جا ذخیره میشه . اگه دوست داشتین میتونین ادرس بدین به هش
مثلا در زیر فایل رو در /home/tia ذخیره میکنیم
zip /home/tia/1.zip /var/www/1.jpeg
هم زمان میتونین چندین تا فایل هم بدین که دستور به این شکل میشه
zip archivefile1 doc1 doc2 doc3
اگه خاستین تمام فایل های داخل دایرکتوری فشرده بشن از * استفاده کنین
zip archivefile1 *
نکته : در بالا دایرکتوری های داخل دایرکتوری ها فشرده نمیشن برای این کار از r- استفاده کنین(( This copies the current directory, including all subdirectories into the archive file)).
zip error: Nothing to do! (/home/tia/1.zip)
tia@alieblice-desktop:~/com$ zip -r ggg.zip *
adding: 1.jpeg (deflated 0%)
adding: 1.zip (stored 0%)
adding: 2.flv (deflated 3%)
adding: limit-3 (deflated 76%)
adding: untitled folder/ (stored 0%)
adding: untitled folder/limit-3 (deflated 76%)
adding: untitled folder/untitled folder/ (stored 0%)
نکته : در بالا فایل هایی که اولشون با نقطه شروع میشه ((فایل های مخفی)) فشرده نمیشوند برای این که اون ها هم فشرده شوند دستور به این شکل میشه
zip archivefile1 .* *
سطح فشرده سازی
در zip ر 9 سطح فشرده سازی دارسم (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9) داریم که 9 بالا ترین و صفر اصلا فشرده نمیکنه و به طور پیش فرض روی 6 هستش
zip -r -9 /home/tia/padmins3.zip *
گذاشتن رمز
گذاشتن رمز به 2 صورت انجام میشه یک با اپشن e- و دیگری با اپشن P- ((پی بزرگ )) که فرق این 2 تا اینه که در p- باید رمز رو در دستور بنویسین ولی با e- رمزو خودش میپرسه
tia@alieblice-desktop:~/com$ zip -r -9 -P @LiebL1C3 /home/tia/padmins3.zip 1.jpeg
updating: 1.jpeg (deflated 0%)
tia@alieblice-desktop:~/com$
tia@alieblice-desktop:~/com$ zip -r -9 -e /home/tia/padmins3.zip 1.jpeg Enter password:
Verify password:
updating: 1.jpeg (deflated 0%)
tia@alieblice-desktop:~/com$
اپدیت کردن فایل zip
اگه یک فایل دارین از یک دایرکتوری و به اون دایرکتوری چیزی اضافه شده و میخاین که اونا رو هم به اون فایل zip اضافه کنین از u- میتونین استفاده کنین که عمل اپدیت کردنو انجام میده ((فقط فایلایی که اضافه شدن رو به فایل zip اضافه میکنه و فایلی که کم شده باشه از فایل zip پاک نمیکنه))
tia@alieblice-desktop:~/com$ zip test.zip *
adding: 1.jpeg (deflated 0%)
adding: 1.zip (stored 0%)
adding: 2.flv (deflated 3%)
adding: ggg.zip (stored 0%)
adding: limit-3 (deflated 76%)
adding: untitled folder/ (stored 0%)
tia@alieblice-desktop:~/com$ zip -u test.zip *
adding: oo-presenting-kubuntu-fa.pdf (deflated 11%)
tia@alieblice-desktop:~/com$
unzip
برای از فشرده دراوردن فایل های zip از دستور unzip استفاده کنین
مثلا برای از فشرده دراوردن فایل letter
unzip letters
در این حالت فایل ها در همون دایرکتوری که هستین از فشره در میاد
اگه هم اسم فایل وجود داشته باشه از شما سوال میپرسه که چه کاری انجام بده
ali@172.16.15.133:~$ unzip -j syslog.save.zip
Archive: syslog.save.zip
replace syslog.save? [y]es, [n]o, [A]ll, [N]one, [r]ename: ^Cali@172.16.15.133:~$
ali@172.16.15.133:~$
ali@95-168-161-82:~$ unzip syslog.save.zip
Archive: syslog.save.zip
replace syslog.save? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: syslog-01
extracting: syslog-01
ali@172.16.15.133
:~$
برای از فشرده دراوردن تمام فایل های zip داخل دایرکتوری از این دستور استفاده کنین
unzip \*.zip
باز کردن فایل zip از حالت فشرده در محل دیگری :
برای این کار از d- استفاده کنین
PersianAdmins:~# unzip padmins.zip -d /padmins/
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: /padmins/ali/
creating: /padmins/ali/navid/
extracting: /padmins/ali/navid/reza
extracting: /padmins/file1.txt
inflating: /padmins/file2.txt
PersianAdmins:~#
اطمینان از سالم بودن فایل zip
روش اول
ali@172.16.15.133:~$ unzip -tq syslog.save.zip
No errors detected in compressed data of syslog.save.zip
.
روش دوم
ali@172.16.15.133:~$ unzip -t test.zip
Archive: test.zip
testing: wtmp OK
testing: syslog.save OK
No errors detected in compressed data of test.zip.
از فشرده در اوردن یک فایل خاص از داخل فایل zip
ali@172.16.15.133:~$ zip test.zip wtmp syslog.save
adding: wtmp (deflated 96%)
adding: syslog.save (stored 0%)
ali@172.16.15.133:~$
ali@172.16.15.133:~$ unzip test.zip wtmp -d /home/ali/
Archive: test.zip
replace /home/ali/wtmp? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: wtmp-2
inflating: /home/ali/wtmp-2
بدست آوردن اطلاعاتی در مورد فایل ها و دایرکتوری های موجود در فایل zip :
ali@172.16.15.133:~$ unzip -v test.zip
Archive: test.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
427392 Defl:N 16218 96% 2011-03-27 12:23 8be4c72a wtmp
1 Stored 1 0% 2011-03-26 10:44 32d70693 syslog.save
-------- ------- --- -------
427393 16219 96% 2 files
منابع : http://linux.about.com/od/commands/a/blcmdl1_unzipx.htm
http://persianadmins.ir/v2/articles/linux/list/207-compression-on-linux.html
-
(http://alieblice.persiangig.com/image/Screenshot-dev-sda-GParted-2.png)
دستور blkid بارای پیدا کردن اطلاعاتی در مورد درایو ها از جمله اسم , نوع فایل سیستم , UUID , و ... استفاده میشود
شکل کلی دستور
blkid [ -hlv ] [ [ -c cachefile ] -w writecachefile ] [ -o format ] [ -s tag ] [ -t NAME=value ] [ device ... ]
برای این که ببینین چه درایو هایی روی سیستمتون وجود داره دستورو به تنهایی بزنین
دستورو به همراه sudo بزنین
root@172.16.49.20:/# blkid
/dev/sda1: UUID="eb51f2cf-636e-49a0-8ed5-31daee03f0f9" TYPE="ext3" LABEL="LILI"
/dev/sda5: UUID="ccc497b8-da19-4965-b96f-2c0d44332025" TYPE="swap"
همون طور که در بالا میبینین 2 درایو وجود دارد که ادرساشون :
/dev/sda1
/dev/sda5
هستش که sd اولشون نشان دهنده این هست که از نوع هارد های sata هستن
LABEL="LILI" : اسم درایو رو میگه
TYPE="ext3" و TYPE="swap" نوع فرمت درایو رو میگه
اپشن o-
به وسیله ی این اپشن می تونین خروجی دستورو بر اساس فرمت های مختلف ببینین که به صورت پیش فرض full هستش
value, device, list, udev or full))
list
root@172.16.49.20:/# blkid -o list
device fs_type label mount point UUID
----------------------------------------------------------------------------------------------------------------
/dev/sda1 ext3 LILI / eb51f2cf-636e-49a0-8ed5-31daee03f0f9
/dev/sda5 swap <swap> ccc497b8-da19-4965-b96f-2c0d44332025
udev
root@172.16.49.20:/# blkid -o udev
ID_FS_UUID=eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ID_FS_UUID_ENC=eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ID_FS_TYPE=ext3
ID_FS_LABEL=LILI
ID_FS_LABEL_ENC=LILI
ID_FS_UUID=ccc497b8-da19-4965-b96f-2c0d44332025
ID_FS_UUID_ENC=ccc497b8-da19-4965-b96f-2c0d44332025
ID_FS_TYPE=swap
value
root@172.16.49.20:/# blkid -o value
eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ext3
LILI
ccc497b8-da19-4965-b96f-2c0d44332025
swap
به وسیله ی دستور blkid میتونین lable یا UUID یک درایو رو به device name تبدیل کنین
root@172.16.49.20:/# blkid -L LILI
/dev/sda1
root@172.16.49.20:/# blkid -U eb51f2cf-636e-49a0-8ed5-31daee03f0f9
/dev/sda1
root@172.16.49.20:/#
موضوعات مرتبط :
۵ روش برای شناسایی فایل سیستم
http://forum.ubuntu.ir/index.php/topic,17561.msg135707.html#msg135707
-
(http://alieblice.persiangig.com/image/penguin-polar-bear-wakeup.jpg)
دستور mount برای بالا اوردن یک درایو استفاده میشه که در فارسی هم همون موینت کردن میگن
هر درایوی که شما در سیستمتون داشته باشین یک device name بهش تعلق میگیره که در فولدر /dev/میتونین اونا رو پیدا کنین مثلا
dev/sda
/dev/sda5
برای بدست اوردن اطلاعاتب در مورد فایل سیستم درایوهاتون و پیدا کردن uuid , lable و device name به 2 اموزش زیر رجوع کنین
http://forum.ubuntu.ir/index.php/topic,17561.msg135707.html#msg135707
http://forum.ubuntu.ir/index.php/topic,17561.msg145022.html#msg145022
شکل کلی دستور
mount [-alrsvw] [-t fstype] [-o options] [device] [mountpoint]
mount کردن یک درایو به ساده ترین شکل
برای این کار احتیاج به device name اون درایو و یک محل برای مونت کردنش احتیاج داریم که به اون mount point میگن
پس شکل کلی به این شکل میشه
mount device-name mount-point
مثلا
alieblice@ubuntu:~$ sudo blkid
[sudo] password for alieblice:
/dev/sda1: UUID="246dcfec-7380-48d3-942b-a5ba4c2e8882" TYPE="ext4"
/dev/sda5: UUID="715fa349-8dd1-4104-bd70-9a31a6279749" TYPE="swap"
/dev/sdb: UUID="d1a62327-4227-439b-81f9-4ef82027957b" TYPE="ext4" LABEL="New Volume"
/dev/sdc1: UUID="5f1bb23f-3857-4e06-8bda-28e0cb6f61d3" TYPE="ext2"
/dev/sdc5: UUID="b4637559-61e4-41ff-ae1c-667632393686" SEC_TYPE="ext2" TYPE="ext3"
alieblice@ubuntu:~$ mount /dev/sdb /media/sdb
mount: only root can do that
alieblice@ubuntu:~$ sudo mount /dev/sdb /media/sdb
alieblice@ubuntu:~$
دستور blkid برای دیدن دایو های موجود روی سیستمتون استفاده میشه که قبلا کامل توضیح داده شده
همون طور که در بالا میبینین چندین تا دراییو وجود داره که ما درایو dev/sdb رو به /media/sdb موینت کردیم که /dev/sdb درواقع mount point مون بود
نکته : فلدر sdb باید از قبل در فولدر media موجود باشه در غیر این صورت ارور میده
mountکردنو میتونین بر اساس label و uuid هم انجام بدین که دستور به این صورت میشه
برای lable از L- استفاده کنین ((ال بزرگ))
label
alieblice@ubuntu:~$ sudo mount -L New Volume
mount: no such partition found
alieblice@ubuntu:~$ sudo mount -L "New Volume"
alieblice@ubuntu:~$
پیشنهاد میکنم همیشه اسم درایو رو بین "" قرار بدین تا به مشکل بر نخرین
در بالا mount point رو تعیین نکردم به این دلیل که داخل فایل /etc/fstab تنظیماتی رو انجام دادم (( در اخر اموزش در مورد فایل fstab توضیح دادم ))
uuid
alieblice@ubuntu:~$ sudo mount -U d1a62327-4227-439b-81f9-4ef82027957b /media/sdb
توضیح بعضی اپشن ها
a- : استفاده از a- باعث میشه که تمام درایو های لیست شده در فایل /etc/fstab موینت بشن ((دیگه لازم نیست دونه به دونه برای هرکدوم دستور موینت رو بنویسیم ))
r- : استفاده از r- باعث میشه تا درایومون به صورت read-only ((فقط قابل خواندن)) موینت بشه
w- : با استفاده از w- درایوتون به صورت read and write ((قابل خواندن و نوشتن)) موینت میشود
v- : اطلاعات بیشتری رو از مراحل موینت شدن درایو به شما میدهد
t- : با استفاده از t- میتونین نوع فایل سیستم مورد نظرتونو انتخاب کنین ((ext4 ,ext3 , .....))
L- و U- که به ترتیب برای موینت کردن بر اساس اسم و uuid هستش که در بالا مثالش زده شد
o-
یک سری اپشن دیگر هستن که باید در ادامه o- بیان که در زیر تعدادیشون توضیح داده شده
defaults : با عث میشه تا تنظیمات پیش فرض برای موینت کردن اون درایو استفاده بشه که در درجه اول تنظیمات داخل فایل /etc/fstab رو میخونه و اگر تنظیماتی نبود سراغ تنظیمات خودش میزه
auto : با این اپشن میتونیم بگیم که در هنگام بوت شدن سیستم , این درایو هم موینت بشود یا در موقعی که از a- استفاده کردیم به عنوان اپشن , این درایو هم موینت بشود
noauto : عکس کار auto رو انجام میده یعنی در موقع بوت شدن سیستم درایو رو موینت نکند و در موقع استفاده از اپشن a- موینت نشود
user یا nouser : با استفاده از این 2 میتونیم به کاربران غیر روت اجازه دهیم که یک درایو رو بدون دست رسی به روت موینت کنن که معمولا همون کاربری که موینت کرده درایو رو میتونه unmount بکند .
اپشن بالا بیشتر برای درایو هایی مثل usb فلاپی و غیره استفاده میشه
users : شبیه user با این تفاوت که هرکسی میتونه درایو رو unmount کند
remount : بعضی اوقات پیش میاد که لازم میشه بدون این که یک درایوی unmount بشه تغییراتی روی اون درایو ایجاد کنیم مثلا تبدیلش کنیم به read-only در این مواقع میتونیم از این اپشن استفاده کنیم
loop : فرض کنیم که یک فایل ایمیج داریم که میخایم اونو جوری موینتش کنیم که انگار یک درایو از hard disk مون بوده میتونیم از این اپشن استفاده کنیم مثلا
mount -t vfat -o loop image.img /mnt/image
فایل image.img جوری موینت میکنه که انگار یک درایو یا یک هارد بوده
ro :همون فقط قابل خوندن هستش
rw :همون قابل خوندن و نوشتن هستش
چند مثال از اپشن های بالا
alieblice@ubuntu:~$ sudo blkid
/dev/sda1: UUID="246dcfec-7380-48d3-942b-a5ba4c2e8882" TYPE="ext4"
/dev/sda5: UUID="715fa349-8dd1-4104-bd70-9a31a6279749" TYPE="swap"
/dev/sdb: LABEL="New Volume" UUID="d1a62327-4227-439b-81f9-4ef82027957b" TYPE="ext4"
/dev/sdc1: UUID="5f1bb23f-3857-4e06-8bda-28e0cb6f61d3" TYPE="ext2" LABEL="LILI"
/dev/sdc5: UUID="b4637559-61e4-41ff-ae1c-667632393686" SEC_TYPE="ext2" TYPE="ext3"
alieblice@ubuntu:~$
مثال :
در زیر یک درایو با فرمت ext2 و به همراه اپشن فقط قابل خواندن (r-) و همچنین توانایی unmount کردن درایو به وسیله ی هرکاربری(users) که اسم درایو LILI است رو به mount point به این ادرس /media/LILI موینت میکنیم
alieblice@ubuntu:~$ sudo mount -v -r -t ext2 -o users -L LILI /media/LILI
/dev/sdc1 on /media/LILI type ext2 (ro,noexec,nosuid,nodev)
alieblice@ubuntu:~$
در مثال زیر همون درایو بالا رو بدون این که unmount کنیم از اپشن فقط قابل خواندن به قابل خواندن و نوشتن و همچنین قابلیت unmount کردنشو به وسیلهی هر کاربری میگیرم
alieblice@ubuntu:~$ sudo mount -v -o remount -w -U 5f1bb23f-3857-4e06-8bda-28e0cb6f61d3
/dev/sdc1 on /media/LILI type ext2 (rw,noexec,nosuid,nodev)
alieblice@ubuntu:~$
نکته ک برای 2 مثال بالا حتما نکته اخر اموزش رو هم بخونین
فایل /etc/fstab
فایل /etc/fstab از 6 قسمت تشکیل شده که شامل موارد زیر هستش
#device mount point filesystem options dump fsck
dump : یک نرم افزار backup گیر هستش که ازش استفاده میکنین میتونین مقدار رو به عدد یک تغییر بدین تا از درایوتون پشتیبان تهیه کند
pass یا fsck : لینوکس در زمان بوت شدن از نرمافزار fsck برای چک کردن فایل سیستم ها استفاده میکنه که اگه مقدارشو به عدد 1 تغییر بدین در هر بار بالا امدن فایل سیستم برای اون درایو رو چک میکنه
در واقع شما میتونین همون اپشن هایی که در دستور mount مینوشتین رو در این فایل بنویسین تا هر بار نخواد دستورو از نو بنویسین و هم چنین ایجاد اپشن هایی مثل مونت شدن اتوماتیک در موقع بوت سیستم
مثال :
در زیر یک درایو با فرمت ext2 و به همراه اپشن فقط قابل خواندن (r-) و همچنین توانایی unmount کردن درایو به وسیله ی هرکاربری(users) که ادرس درایو /dev/sdc1 است رو به mount point به این ادرس /media/LILI و قابلیت موینت شدن خودکار در زمان بوت و قابلیت موینت کردن به وسیله ی کاربران عادی رو داخل فایل fstab مینویسیم
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sdc1 /media/LILI ext2 ro,users,user,auto 0 0
نکته : در قسمت device میتونیم از lable و یا uuid هم استفاده کنیم که در مثال زیر نوع چگونگی نوشتنش رو میتونین ببینین
نمونه یک فایل fstab پیشرفته
#device mount point filesystem options dump fsck
/dev/sda1 / ext3 defaults 1 1
UUID=3631a288-673e-40f5-9e96-6539fec468e9
/usr reiserfs defaults 0 0
LABEL=/home /home reiserfs defaults 0 0
/dev/sdb5 /windows vfat uid=500,umask=0 0 0
/dev/cdrom /media/cdrom iso9660 users,noauto 0 0
/dev/sdb1 /media/usb auto users,noauto 0 0
server:/home /other/home nfs users,exec 0 0
//winsrv/shr /other/win cifs users,credentials=/etc/creds 0 0
/dev/sda4 swap swap defaults 0 0
نکته مهم :
بعضی اوقات در دستوراتی که استفاده میکنیم از اپشنایی مثل : قابلیت موینت شدن به وسیله ی هر کاربری
یا قابلیت unmount شدن به وسیله ی هر کاربری و ... استفاده میکنیم مثل دستور زیر
sudo mount -v -r -t ext2 -o users -L LILI /media/LILI
خوب حالا اگه الان به عنوان یک کاربر معمولی بیاین وبخاین که اونو unmount کنین , نمیتونین اونو unmount کنین و این اررورو میده
alieblice@ubuntu:~$ umount /dev/sdc1
umount: /dev/sdc1 is not in the fstab (and you are not root)
alieblice@ubuntu:~$
برای حل این مشکل حتما باید از فایل fstab استفاده کنین و اپشناتونو در اون بزارین
منبع : lpic_2_linux_professional_institute_certification_
-
(http://alieblice.persiangig.com/image/osd-mail-icon.png)
دستور wall برای فرستادن متن به تمام کاربران وارد شده به سیستم استفاده میشود
برای استفاده از wall اول خود دستور رو بنویسید بعد یک صفه باز میشه میتونین متنتونو در اون بنویسین بعد که متنتونو نوشتین Ctrl+d رو بزنین تا متن برای همه ارسال شود
مثلا
root@de-10:/home/alieblice# wall
abdarchi chaii biar
Broadcast Message from alieblice@de-10.04
(/dev/pts/0) at 17:35 ...
barname kary emrooz:
8 AM -2:30 PM zange tafrihhhh
^D
root@de-10:/home/alieblice#
میتونین یک متن از پیش اماده شده رو از داخل یک فایل بفرستین که لازمه فقط ادرس فایلو بدین
root@de-10:/home/alieblice# wall Desktop/broadcast
Broadcast Message from alieblice@de-10.04
(/dev/pts/0) at 17:37 ...
ta 10 daghigheie dige hame dar salon egtemaat game sheed ((genab raees))
^D
root@de-10:/home/alieblice#
برای این که نخواد Crtl+d بزنین میتونین از روش های زیر استفاده کنین
استفاده از echo
root@de-10:/# echo Remember to brush your teeth! | wall
Broadcast Message from root@de-10.04
(/dev/pts/0) at 17:46 ...
Remember to brush your teeth!
root@de-10:/#
استفاده از >>>
root@de-10:/# wall <<<'Remember to brush your teeth!'
Broadcast Message from root@de-10.04
(/dev/pts/0) at 17:50 ...
Remember to brush your teeth!
root@de-10:/#
نکته : اگه کاربرانی ورود هر نوع مسیجی رو بسته باشن به وسیلهی دستور mesg فقط کاربر روت میتونه به اون افراد متنی رو ارسال کند
منبع : http://en.wikipedia.org/wiki/Wall_%28Unix%29
-
(http://alieblice.persiangig.com/image/fdisk-command.png)
دستور fdisk برای پارتیشن بندی یک هارد استفاده میشود
نکته : دستور fdisk کار فرمت کردنو انجام نمیده فقط پارتیشن رو میسازه
در قالب بیسیک کلا سه نوع پارتیشن داریم
primary , extended , logical
حداکثر تعداد پارتیشن ها
primary : چهار
extended : یک
logical : درون پارتیشن extended تا 26 عدد
عدد 26 رو مطمءن نیستم بعضی جاها به عنوان نا محدود نام بردن
قیل از هر کاری باید هاردی که میخاین پارتیشن بندیش کنین پیدا کنین که میتونین از این دستورا برای این کار استفاده کنین
fdisk -l
alieblice@de-10:~$ sudo fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe51ba496
Device Boot Start End Blocks Id System
/dev/sda1 * 2 119618 960823522 f W95 Ext'd (LBA)
/dev/sda2 119619 121552 15526912 83 Linux
/dev/sda3 121552 121602 402432 82 Linux swap / Solaris
/dev/sda5 2 119618 960823521 7 HPFS/NTFS
Disk /dev/sdb: 320.1 GB, 320072933376 bytes
249 heads, 33 sectors/track, 76079 cylinders
Units = cylinders of 8217 * 512 = 4207104 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x41894189
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 12462 51197952 7 HPFS/NTFS
/dev/sdb2 12462 76077 261361485 f W95 Ext'd (LBA)
/dev/sdb5 12462 76077 261359616 7 HPFS/NTFS
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x465668a5
Device Boot Start End Blocks Id System
/dev/sdc1 1 117794 946176000 7 HPFS/NTFS
/dev/sdc2 * 117794 121601 30582784 7 HPFS/NTFS
alieblice@de-10:~$
یا تو یک سیستم خلوت تر
alieblice@ubuntu:/$ sudo fdisk -l
Disk /dev/sda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003f696
Device Boot Start End Blocks Id System
/dev/sda1 * 1 493 3952640 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 493 523 238593 5 Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5 493 523 238592 82 Linux swap / Solaris
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd
Device Boot Start End Blocks Id System
/dev/sdc1 1 30 30704 83 Linux
/dev/sdc2 31 70 40960 83 Linux
/dev/sdc3 71 102 32768 83 Linux
alieblice@ubuntu:/$
یا برای این که فقط پارتیشن های یک هاردو ببینین ادرس هارد هم بزنین
alieblice@ubuntu:~$ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd
Device Boot Start End Blocks Id System
/dev/sdc1 1 30 30704 83 Linux
/dev/sdc2 31 70 40960 83 Linux
/dev/sdc3 71 102 32768 83 Linux
alieblice@ubuntu:~$
blkid
alieblice@de-10:~$ sudo blkid
/dev/sda2: UUID="b69e95f0-bcf7-409e-a898-f9e70d78d0f4" TYPE="ext4"
/dev/sda3: UUID="69bc2dec-ef4f-487b-bf50-5e7c273596a9" TYPE="swap"
/dev/sda5: LABEL="1-TB" UUID="FA402FC0402F828D" TYPE="ntfs"
/dev/sdb1: UUID="D410B13310B11E04" TYPE="ntfs"
/dev/sdb5: UUID="70E8BF68E8BF2B6C" TYPE="ntfs"
/dev/sdc1: LABEL="1-TB-2" UUID="9AA05A1BA059FE67" TYPE="ntfs"
/dev/sdc2: UUID="D6308EFC308EE2BB" TYPE="ntfs"
alieblice@de-10:~$
اموزش blkid قبلا کامل گفته شده
http://forum.ubuntu.ir/index.php/topic,17561.msg145022.html#msg145022 (http://forum.ubuntu.ir/index.php/topic,17561.msg145022.html#msg145022)
دستور fdisk دو گروه اپشن داره یک گروه اپشن هایی که به طور معمولی استفاده میشه ویک گروه اپشن هایی که خودش به این اسم نام برده :
extra functionality (experts only)
من در اینجا فقط یک سری از اپشن های سری معمولی رو اموزش میدم
d = برای پاک کردن پارتیشن استفاده میشه
l = هر پارتیشنی برای خودش کدی داره که میتونین با این اپشن کد هارو ببینین در حالت عادی احتیاجی به این کدها پیدا نمیکنین مگر اینکه بخاین پارتیشنایی مثل lvm بسازین
n = برای ساختن یک پارتیشن استفاده میشود
p = پارتیشنایی که هم اکنون روی هاردتون وجود داره رو نشون میدهد
q = خروج بدون ذخیره کردن چیزی
t = برای تغییر کد پارتیشن استفاده میشود
u = برای تغییر واحد ها بین sectors و cylinders استفاده میشود
w = ذخیره اطلاعات و خروج
چند مثال
نکته: من در اینجا از درایوهایی که توسط vmware player ایجاد شدن استفاده میکنم که حجمشونم خیلی کم هستش زیر (( مگابایت 300)) برای سریع کردن کار
مثال 1
(http://alieblice.persiangig.com/image/1-dev-sdc.png)
در مثال شماره یک فقط 2 درایو از 3 درایو روی هاردمونو پاک میکنیم
روش کار :
1 = هارد مورد نظرتونو توسط دستورایی که بالا نام بردم پیدا کنین
2 = دستور fdisk رو به همراه ادرس اون بنویسید
alieblice@de-10:~$ sudo fdisk /dev/sdc
نکته : وقتی دستور fdisk رو میزنین وارد یک محیط دیگه میشید که فقط اپشن هایی که بالا نام بردم و اپشنای دیگری که با زدن m میتونین ببینین رو میتونین استفاده کنین
alieblice@de-10:~$ sudo fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): q
alieblice@de-10:~$
3 = بعد از این که وارد محیط شدین اگه m رو بزنین اپشن های قابل قبول رو براتون میاره اگه p روبزنین پارتیشن های موجود روی اون هاردرو میاره
alieblice@ubuntu:~$ sudo fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd
Device Boot Start End Blocks Id System
/dev/sdc1 1 30 30704 83 Linux
/dev/sdc2 31 70 40960 83 Linux
/dev/sdc4 71 102 32768 83 Linux
Command (m for help):
همون طور که میبینین در بالا 3 درایو درون هارد وجود دارد
4 = باری پاک کردن یک درایو باید d رو بزنین که بعد از زدن d از شما شماره درایو رو میپرسه که باتوجه به اطلاعاتی که در خروجی اپشن p گرفتین میتونین درایو درست رو بدین
به این صورت که اگه مثلا میخاین dev/sdc2 رو پاک کنین عدد 2 رو بدین و با این کار پارتیشن dev/sdc2 پاک میشود
نکته : هنوز پارتیشنتون به صورت واقعی پاک نشده اگه اشتباه زدین عدد رو میتونین با زدن q ((کیو کوچک)) هیچ چیزی رو ذخیره نکنین و خارج شید
4-1 = کار بالا دو باره انجام بدین تا درایو بعدی رو هم پاک کنین
4-2 = حالا p رو بننین تا ببینین که پاک شده
5 = حرف w ((دبلیو کوچک)) رو بزنین و همه چیز ذخیره میشود
خروجی کامل مثال یک :
alieblice@ubuntu:~$ sudo fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd
Device Boot Start End Blocks Id System
/dev/sdc1 1 30 30704 83 Linux
/dev/sdc2 31 70 40960 83 Linux
/dev/sdc4 71 102 32768 5 Extended
Command (m for help): d
Partition number (1-5): 2
Command (m for help): d
Partition number (1-5): 4
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
alieblice@ubuntu:~$
عکس بعد از پاک کردن پارتیشن ها
(http://alieblice.persiangig.com/image/1-2-dev-sdc.png)
مثال 2
در مثال دوم از همون درایو قبلی به همراه همون پارتیشن بندی که در پایان ایجاد شد ((عکس پایانی مثال اول --عکس بالا )) استفاده میکنیم به این صورت
که میخاهیم یک درایو از نوع extende بسازیم و درون اون دو درایو از نوه logical
تو این مثال مراحلو به صورت جزع جزع توضیح نمیدم دیگه به غیر از چند قسمتش
1 = دستور fdisk رو به همراه ادرس هاردمون میزنیم
سپس p رو میزنیم که درایو های موجود روی هاردو نشون بدهد
سپس n رو میزنیم تا درایو جدید ایجاد کنیم
2 = بعد از این که n رو زدیم از ما سوال میپرسه که چه نوع درایوی میخاین اضافه کنین ((extended یا primary ))
از جایی که قراره یک extended بسازیم خوب من e رو انتخاب میکنم
p = primary
e = extended
نکته : در اینجا گذینه logical رو نیاورد به این دلیل که پارتیشن logical داخل پارتیشن extende ساخته میشه
3 = بعد از این که نوع پارتیشن رو تعیین کردین از شما یک شماره میخاد که اون میشه شماره درایوتون من 2 رو میدم
alieblice@ubuntu:~$ sudo fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2
Device Boot Start End Blocks Id System
/dev/sdc1 1 20 20464 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21):
4 = بعد از مرحله بالا میرسیم به مرحله تعیین حجم درایو
به صورت پیش فرض حجم درایو رو به صورت cylinder میاره که به شما میگه میتونید از یک عدد مشخص تا عدد مشخص دیگری انتخاب کنین در این مثال عدد بین ((21 تا 102 )) هستش. از جایی که خیلی کم پیش میاد کسی بخاد بر اساس cylinder پارتیشن بندی کنه من اینجا بر اساس مگابایت یاد میدم
4-1 = چگونه بر اثاث مگابایت پارتیشن یندی کنیم
همون طور که در خروجی مرحله 1 تا 3 میبینین عدد انتخابی ما بین 21 تا 102 هستش برای شروع بر اثاث مگابایت عدد 21 رو بزنین وقتی عدد 21 رو زدین از شما یک عدد دیگر میخاد که در این قسمت میتونین عدد رو به صورت مگابایت کیلوبایت و گیگابایت بدین
+size{K,M,G}
همیشه از اون عددی که میدین یک مقدار بزرگ ترشو میسازه دلیلشو نتونستم پیدا کنم مثلا برای 170 مگابایت 179 مگابایت ساخت و برای 80 مگابایت حدود 85 تا
اگه دلیلشو پیدا کردین به منم بگین
مثلا برای این که 2350 مگابایت بشه سایز درایوتون عدد رو به این شکل بدین
+2350M
به طور مشابه برای کیلوبلیت و گیگا بایت مثلا 10 گیگ --- 1000000کیلو بایت
+10G
+100000K
در زیر 80 مگابایت تعیین کردم
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-102, default 102): +80M
Command (m for help):
5 = تا این جا دو درایو داریم یکی از قبل با نوع primary و یکی هم که الان ساختیم با نوع extended
حالا 2 درایو داخل پارتیشن extended رو میسازیم که از نوع logical میشن
6 = مثل مرحله قبل n رو میزنیم بعد نوع درایو که در اینجا میشه l ((ال کوچیک )) رو میزنیم و بعد مثل مرحله قبل حجمشو میدیم
نکته : در اینجا گذینه extended نیامد چون یکی ازش میشه ساخت
7 = دوباره همون کار مرحله 6 رو انجام میدیم تا دومی رو هم اضافه کنیم
و بارای ذخیره کردن w رو میزنیم
و همه چی ذخیره میشه
خروجی کامل مثال دوم
alieblice@ubuntu:~$ sudo fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2
Device Boot Start End Blocks Id System
/dev/sdc1 1 20 20464 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-102, default 102): +80M
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2
Device Boot Start End Blocks Id System
/dev/sdc1 1 20 20464 83 Linux
/dev/sdc2 21 101 82944 5 Extended
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (21-101, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-101, default 101): +50M
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2
Device Boot Start End Blocks Id System
/dev/sdc1 1 20 20464 83 Linux
/dev/sdc2 21 101 82944 5 Extended
/dev/sdc5 21 71 52208 83 Linux
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (72-101, default 72): 72
Last cylinder, +cylinders or +size{K,M,G} (72-101, default 101): 101
Command (m for help): p
Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2
Device Boot Start End Blocks Id System
/dev/sdc1 1 20 20464 83 Linux
/dev/sdc2 21 101 82944 5 Extended
/dev/sdc5 21 71 52208 83 Linux
/dev/sdc6 72 101 30704 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
alieblice@ubuntu:~$
عکس نهایی مثال 2دوم
(http://alieblice.persiangig.com/image/2-dev-sdc.png)
منبع :
http://www.thegeekstuff.com/2010/09/linux-fdisk/
http://www.cyberciti.biz/faq/linux-how-to-delete-a-partition-with-fdisk-command/
http://www.cyberciti.biz/faq/linux-viewing-drive-partitions-with-fdisk-parted/
-
(http://alieblice.persiangig.com/image/chmod-linux-1.png)
دسترسی به هر فایل یا دایرکتوری توسط ۹بیت اطلاعات اضافهای که به فایل یا دایرکتوری چسبانده میشود برای ۳ کلاس ۳ بیتی کاربر, گروه کاربر و سایر کاربران , تعیین میشود که به ترتیب با کدهای u(کاربر) , g(گروه) و o(سایرین) مشخص میشوند. 0 یا 1 بودن بیت اول تعیین کننده دسترسی خواندن (Read)برای صاحب فایل ( کاربر), بیت دوم امکان نوشتن (Write) و ایجاد تغییر در فایل یا دایرکتوری مورد نظر و بالاخره بیت سوم امکان اجرای(eXecute) فایلهای اجرایی را مشخص میکند. سه بیت دوم این دسترسیها را برای کلاس گروه کاربر و سه بیت آخر دسترسیها را برای سایر کاربران مشخص میکند. در صورتی که یک مجوز به کاربری داده نشده باشد به جای مجوز مورد نظر(یکی از حروف R,W یاX ) هنگام نمایش مجوزها، علامت دش (-) دیده میشود. آنچه در زیر دیده میشود مجوز دسترسی کامل به یک فایل است. یعنی همه کاربران امکان خواندن، نوشتن و اجرای فایل را دارند :
rwxrwxrwx
یا در حالتی که صاحب فایل دسترسی کامل، گروهش امکان خواندن و اجرا و سایرین هیچگونه دسترسی به فایل مورد نظر نداشته باشند این مجوزها به صورت زیر خواهد بود:
rwxr-x---
نمونهای از این مجوزها را میتوانید با اجرای فرمان ls -l مشاهده نمایید. توجه کنید که علاوه بر ۹بیت ذکر شده، یک کاراکتر اضافه نیز در ابتدای این رشته وجود دارد که تعیین کننده نوع فایل است که برای فایلهای عادی بصورت دش (-) و برای دایرکتوری ها بصورت d دیده میشود:
drwxr-xr-x
-rwxr-xr-x
نکته:
مجوز پیش فرض برای فایلهای جدید بصورت زیر است:
rw-r- - r--
و در صورتی که فایلی توسط یکی از کامپایلرهای موجود اجرایی شده باشد x (یا امکان اجرا کردن) به دسترسیها اضافه میگردد. مجوز پیش فرض دسترسی به یک دایرکتوری جدید نیز مشابه همین حالت است:
rwxr-xr-x
در صورتی که بخواهید مجوزهای پیش فرض را برای نشست جاری خود تغییر دهید میتوانید از دستور umask استفاده کنید.
برای تغییر مجوزهای یک فایل یا دایرکتوری کاربری که این اختیار را دارد (کاربر ریشه یا صاحب فایل یا دایرکتوری) میتواند با دستور chmod این کار رابوسیله یکی از دو روش زیر انجام دهد.
-در روش نخست پس از دستور chmod میتوان با علامت های "+" یا "–" یک یا چند مجوز را به کلاس ها افزود و یا از آنها گرفت. در این حالت کلاس ها با کدهایی که در بالا ذکر شد تعیین می شوند.مثلا:
#chmod go-rx anything
این دستور تعیین می کند که مجوز خواندن و اجرای فایلی به نام anything از کلاس گروه کاربر(u) و سایرین(o) گرفته شود و برعکس آن به صورت زیر است:
#chmod go+rx anything
-در روش دوم مجموع سه سطح دسترسی(خواندن,نوشتن و اجرا) به صورت یک عدد بین صفر تا هفت برای 3 کلاس کاربر, گروهش و سایرین به صورت زیر تعیین می شود و پس از دستور chmod می آید. برای خواندن عدد چهار, برای نوشتن عدد دو و برای اجرا عدد یک منظور می شود. یعنی هفت(1+2+4) نشان دهنده دسترسی کامل است در نتیجه مثلا 777 نشان دهنده اعطای دسترسی کامل به همه کاربران است.مثلا:
#chmod 750 anything
این دستور نیز تعیین می کند که مجوزها بصورت زیر تغییر کنند:
rwxr-x---
منبع :
http://sat4u.org/showthread.php?t=237441&page=5
-
سلام دوستان عزیز.
امروز یه سرچ کردم در مورد اینکه سایز یه دایرکتوری رو چطور تو ترمینال ببینیم، که به دو دستور du و df رسیدم و دیدم که جالبه و گفتم با دوستان هم share کنم.
دستور du
برای به دست آوردن سایز یه دایرکتوری
du
این دستور همه دایرکتوری های داخل دایرکتوری جاری رو سایزشون رو بهتون میگه. خط آخر هم سایز دایرکتوری جاری رو میگه. توجه بشه که سایز ها در حالت عادی به صورت Kb نشان داده میشوند.
du /home/david
این فرمان size دایرکتوری /home/david رو میده
du -h
این فرمان یه خروجی قابل فهم تری رو نشون میده. در این حالت اگر فایلها به کیلوبایت باشه با K، اگه به مگابایت باشه با M و …
du -ah
این دستور نه تنها دایرکتوری ها بلکه تمام فایلهای داخل دایرکتوری جاری رو نشون میده
du -c
اندازه دایرکتوری جاری را به شکل زیر نشان میدهد:
30M.
30M total
من خودم درست متوجه نشدم که این دقیقاً به چه دردی میخوره اما این Total
میتونه جایی که میخوایم با دستور grep فقط اندازه نهایی دایرکتوری جاری رو پیدا کنیم مفید باشه.
du -ch | grep total
این دستور فقط خط آخر را در خروجی خواهد داشت که اندازه دایرکتوری جاری را نشان میدهد.
du -s
بهترین راه و سادهترین راه برای فهمیدن اندازه دایرکتوری جاری.(بسیار خلاصه و فقط اندازه دایرکتوری جاری رو نشون میده)که البته بهتره که یه h هم بهش اضافه کنید تا خوانا تر بشه.
du –exculde=mp3
خوب این دستور میاد اندازه دایرکتوری جاری و زیر دایرکتوری ها رو اعلام میکنه، به جز اون فایلهایی رو که تو نامشون mp3 وجود داره. بنابر این اگه فایلهای Mp3 در دایرکتوری جاری داشته باشیم، اندازه اونا اعلام نمیشه.
دستور df
برای به دست آوردن مقدار فضای خالی دیسک/اندازه استفاده شده
df
با زدن این دستور خروجی نمایش داده شده شامل ۶ ستون است که کاملاً قابل فهم هستند. توجه شود که اندازه ها بر اساس کیلوبایت هستند
df -h
همونطور که قبلاً هم گفته شد، option -h برای قابل فهم تر شدن خروجی به کار میره
اکثر کاربر ها از option دیگه ای چندان استفاده نمیکنن. بنابر این df رو در همین حد توضیح میدیم.
منبع:
http://www.codecoffee.com/tipsforlinux/articles/22.html
راستی دوستان من متوجه شدم که دوست عزیزمون alieblice تو صفحه اول هم در مورد du خیلی کامل صحبت کرده بودن. اینم لینکش:
http://forum.ubuntu.ir/index.php/topic,17561.msg134346.html#msg134346
-
سلام.شاید بهتر باشه به جای دستور یه کتاب معرفی کنم.یه کتاب هست به اسم خط فرمان لینوکس نوشته ی : scott granneman - ترجمه ی : محمد صادق سرشوق - انتشارات : دانشگاه آزاد اسلامی شهر مجلسی.ازاین سایت هم میتونین بخرینش : www.fardab.com
-
(http://alieblice.persiangig.com/image/at-command-cloack.jpg)
دستور at برای زمان بندی کارها , مثلا اجرا شدن یک دستور در زمان خاصی یا اجرا شدن یک اسکریپت در زمان خاصی استفاده میشود
دستور مشابه دیگه ای مثل دستور at هستش که اسمش cron هستش
اموزش cron :
http://wiki.ubuntu.ir/CronHowto?highlight=%28cron%29 (http://wiki.ubuntu.ir/CronHowto?highlight=%28cron%29)
یکی از فرق های مهم cron و at در این هست که cron قابلیت تکرار شدن رو داره (( مثلا هر روز در زمان خاصی کار خاصی انجام بشه)) اما at کاری که بهش دادیم رو یک بار انجام میدهد
شکل کلی دستور
at [-V] [-q queue] [-f file] [-mldv] timespec...
at [-V] [-q queue] [-f file] [-mkdv] [-t time]
یا به شکل ساده تر
at time date
تعیین زمان در at
تنها قسمت مهم دستور at تعیین زمان اجرا شدن دستور هستش
در دستور at وقتی که دستور به همراه زمان معیین شده زدین یک صفه باز میشه که به صورت زیر هستش در اون صفه میتونین دستور مورد نظر خودتونو بنویسین و سپس کلید ترکیبی Ctrl+D رو بزنین تا اجرا بشه
alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
at> ls > ~/Desktop/ls.txt
at> حالا کنترل= دی رو بزنین <EOT>
job 73 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$
جزع به جزع دستور بالا در پایین تر توضیح داده شده
معنی کلمات در تعیین زمان
اگه فرض کنیم ساعت وتاریخ هم اکنون
10:00 AM Tuesday, September 18, 2001
باشد ,, هر کدوم از زمان یندی های زیر معنیشونو جلوشون نوشته
at noon = 12:00 PM September 18, 2001
at midnight = 12:00 AM September 19, 2001
at teatime = 4:00 PM September 18, 2001
at tomorrow = 10:00 AM September 19, 2001
at noon tomorrow = 12:00 PM September 19, 2001
at next week = 10:00 AM September 25, 2001
همون طور که در بالا میبینین بعضی کلمات معنی خاصی دارن مثلا noon یعنی ساعت 12:00 pm و کلمات به صورت ترکیبی هم میتونن استفاده بشن مثلا
at noon tomorrow
یعنی فردا ((روز بعد از امروز )) ساعت 12:00 pm
at next week
اگه امروز سه شنبه ساعت 10 صبح باشه دستور بالا میگه هفته ی دیگهسه شنبه ساعت 10 صبح کار انجام بشه
مشخص کردن روز های هفته
برای هر روز از هفته یک کلمه داریم که میتونین تمام حروفشون رو به صورت بزرگ یا کوچک بنویسین فرقی نداره البته اسم کوچکش هم با حروف کوچک یا بزرگ میتونین بنویسین فرقی نداره
day_of_week : SUN | MON | TUE | WED | THU | FRI | SAT
از چپ به راست به ترتیب بالا یعنی
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
چند مثال :
at next monday = 10:00 AM September 24, 2001
اگه الان ساعت 10 صبح باشه یک شنبه بعدی همین ساعت دستور اجرا میشه
at 04:46 am fri
روز جمعه ساعت 4:46 دقیقه صبح کارو انجام میده
نام گذاری ماه ها
ماه ها هم مثل روز های هفته برای خودشون اختصار دارن که به شکل زیر هستش
month_name : JAN | FEB | MAR | APR | MAY | JUN
| JUL | AUG | SEP | OCT | NOV | DEC
چند مثال
at 2:30 PM Sept 21
ساعت 2:5 ظهر در تاریخ 21 سپتامر
at noon jul 24
چند مثال اضافه از تمام قسمتایی که تا الان گفتیم
اگه فرض کنیم هم اکنون ساعت و تاریخ
10:00 AM Tuesday, September 18, 2001
at 9:00 AM = 9:00 AM September 19, 2001
at 2:30 PM = 2:30 PM September 18, 2001
at 1430 = 2:30 PM September 18, 2001
at 2:30 PM tomorrow = 2:30 PM September 19, 2001
at 2:30 PM next month = 2:30 PM October 18, 2001
at 2:30 PM Fri = 2:30 PM September 21, 2001
at 2:30 PM Sept 21 = 2:30 PM September 21, 2001
at 2:30 PM 9/21/2010 = 2:30 PM September 21, 2010
at 5 pm Friday = خودتون حدث بزنین
نکته : بعد از next مقادیری که بر اثاث واحد های زیر باشه میتونه بیاد
* minute[s]
* hour[s]
* day[s]
* week[s]
* month[s]
* year[s]
نکته :
در
at 1430 = 2:30 PM September 18, 2001
از am و pm نمیتونین استفاده کنین باید زمان رو به صورت 24 ساعته بزنین یعنی مثلا به جای 2 ظهر بزنین 14
زمان معکوس ((Countdown))
شاید بخاین کاری رو در مثلا 5 دقیقه اینده انجام بدین یا مثلا در فردا پنج دقیقه بعد از ساعت 12 ظهر خوب این 5 دقیقه ها رو باید به صورت زیر بنویسین
نکته : مقادیری که بعد از بعلاوه می ایند بر اثاث یکی از این واحد های زیر میتونه باشه
* minute[s]
* hour[s]
* day[s]
* week[s]
* month[s]
* year[s]
مثلا برای این که کاری رو در 25 دقیقه اینده از هم اکنون انجام بدین دستورو این جوری بنویسین
at now +15 min
به جای min میتونین minutes یا minute هم بزارین
برای این که کاری رو فردا 3 ساعت بعد از ساعت 12 انجام بدین دستورو این شکلی بنویسین
at noon tomorrow +3 hours
یا
at 12:00 pm tomorrow +3 hours
جند مثال از این قسمت
اگه فرض کنیم زمان و تاریخ هم اکنون
10:00 AM Tuesday, September 18, 2001
معنی هر مثال جلوش نوشته شده
at now + 30 minutes = 10:30 AM September 18, 2001
at now + 1 hour = 11:00 AM September 18, 2001
at now + 2 days = 10:00 AM September 20, 2001
at 4 PM + 2 days = 4:00 PM September 20, 2001
at now + 3 weeks = 10:00 AM October 9, 2001
at now + 4 months = 10:00 AM January 18, 2002
at now + 5 years = 10:00 AM September 18, 2007
چند مثال واقعی به همراه کار
روش کار به این صورت هستش که شما اول دستور at رو به همراه زمان اجرا شدنش مینویسین و سپس برای شما یک صفه باز میشه که در اون جا میتونین دستور مورد نظرتونو بنویسین و برای این که کار خود را ذخیره کنین کلید ترکیبی Ctrl+D رو بزنین
در دستور زیر کاری رو فردا 3 دقیقه بعد از ساعت 12 انجام میدهد
alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
at> ls > ~/Desktop/ls.txt
at> <EOT>
job 73 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$
دستور بالا رو میتونین به صورت زیر هم بنویسین که فکر کنم راحت تر باشه
alieblice@ubuntu:~$ echo ls > ~/Desktop/ls.txt | at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
job 74 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$
اپشن v- (( وی کوچک ))
اپشن v- برای نشون دادن زمان اجرا شدن دستور در همان اول کار یعنی قبل از امدنه صفحه ای که شما توش دستورو مینویسین
alieblice@ubuntu:~$ at -v noon jul 24 + 10 min
Fri Jul 24 12:10:00 2009
warning: commands will be executed using /bin/sh
at> cp -r /home/alielbice /var/backup/alieblice-bkp
at> <EOT>
job 77 at Fri Jul 24 12:10:00 2009
alieblice@ubuntu:~$
اپشن f-
اپشن f- برای دادن لیستی از کار هایی که میخایم انجام بدیم از طریق یک فایل متنی هستش
alieblice@ubuntu:~$ cat myjobs.txt
/home/sathiya/calculate-space.sh
/path/to/a/shell-script
/path/to/any/command/or/script
alieblice@ubuntu:~$ at -f /home/alieblice/jobs.txt now +1 hour
warning: commands will be executed using /bin/sh
job 79 at Thu Jul 9 08:07:00 2009
alieblice@ubuntu:~$
اپشن l-
نکته : به جای l- میتونین از atq هم استفاده کنین
این اپشن و atq برای لیست کردن کار هایی که هنوز انجام نشده اند و در انتظار رسیدن زمان تعیین شده هستن استفاده میشه
alieblice@ubuntu:~$ at -l
79 Thu Jul 9 08:07:00 2009 a alieblice
77 Fri Jul 24 12:10:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
همون طور که میبینین هر کار برای خودش عددی دارد که از اون برای پاک کردن و دیدن محتویات اون استفاده میشه
پاک کردن یک کار
از اپشن d- یا atrm میتونین استفاده کنین
برای این کار نیاز به شماره اون کار دارین که میتونین با لیست کردنشون شمارشونو یدست بیارین
مثلا در زیر کار به شماره 77 رو پاک میکنیم
alieblice@ubuntu:~$ atq
79 Thu Jul 9 08:07:00 2009 a alieblice
77 Fri Jul 24 12:10:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -d 77
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -l
79 Thu Jul 9 08:07:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
دیدن اطلاعات یک کار
برای این کار از اپشن c- ((سی کوچک )) استفاده کنین
خروجیش زیاد بود برای همین فقط خود دستور رو میزارم
alieblice@ubuntu:~$ at -l
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -c 73
#!/bin/sh
# atrun uid=1000 gid=1000
# mail alieblice 0
umask 22
خروجی کامل نیست
محدود کردن دسترسی به at
برای این که دسترسی کاربران رو به دستور at ببندین یا دسترسی رو برای یک سری کار بر خاص باز بگذارین میتونین از 2 فایل زیر استفاده کنین
سیستم اول فلدر at.allow رو چک میکنه اگه وجود نداشت میره سراغ at.deny
/etc/at.allow
/etc/at.deny
مثلا اگه کاربر tia رو به فایل at.deny اضافه کنین موقعی که کاربر tia بخاد از at استفاده کنه این اررور رو میگیره
tia@ubuntu:~$ at 12:00 pm
You do not have permission to use at.
tia@ubuntu:~$
اگرم بخاین که at رو برای فقط کاربرای مشخصی باز بگذارین از فلدر at.allow استفده کنین
ممکنه این فلدر وجود نداشته باشه میتونین بسازینش
فایل های مرتبط به at
/var/spool/cron/atjobs
/var/spool/cron/atspool
/var/run/utmp
/etc/at.allow
/etc/at.deny
منابع :
http://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/ (http://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/)
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/at.htm (http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/at.htm)
http://pcsupport.about.com/od/commandlinereference/p/at-command.htm (http://pcsupport.about.com/od/commandlinereference/p/at-command.htm)
http://www.softpanorama.org/Utilities/at.shtml (http://www.softpanorama.org/Utilities/at.shtml)
http://content.hccfl.edu/pollock/Unix/AtDemo.htm (http://content.hccfl.edu/pollock/Unix/AtDemo.htm)
-
(http://alieblice.persiangig.com/image/s1.png)
دستور scp برگرفته از secure copy برای کپی کردن اطلاعات از یک کامپیوتر به یک کامپیوتر دیگر استفاده میشود
درواقع تمام امکانات دستور cp را دارد با این تفاوت که قابلیت انتقال داده بین ۲ کامپیوتر نیز وجود دارد (( یعنی فقط به صورت لوکال کار نمیکنه به صورت رموت هم کار میکنه ))
یکی از مزیت هایی که این دستور دارد امن بودن اون به واسته استفاده از تونل ssh هستش ((همه چیز encrypt میشه))
شکل کلی دستور
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
شکل قابل فهم تر
$ scp REMOT-SYSTEM:ADRESS LOCAL-SYSTEM-ADRESS
در دستور زیر یک فایل رو از سیستم رموت به سیتم لوکال انتقال میدهیم
alieblice@de-10:~$ scp root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi /home/alieblice/
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi 100% 49MB 24.6MB/s 00:02
alieblice@de-10:~$
root@172.16.49.21 = یوزرنیم به همراه ادرس سیستم رموت
/var/www/ShaunTheSheep_Part_07.avi = اسم و ادرس فایلی که میخایم کپیش دیم به سیستم لوکال
/home/alieblice/ = محل ذخیره شدن فایل در سیستم لوکال
کپی کردن فایل و تغییر اسم ان
برای این کار مثل مثال بالا عمل میکنیم با این تفاوت که وقتی محل ذخیره شدن اونو در سیستم لوکال انتخاب میکنیم اسمش را هم انتخاب میکنیم
alieblice@de-10:~$ scp root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi /home/alieblice/Videos/scp/cartoon-07.avi
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi 100% 49MB 49.1MB/s 00:01
alieblice@de-10:~$
حالا اگه ls محل ذخیره شدنو بگیریم میبینین که اسم فایل تغییر کرده
alieblice@de-10:~$ ls /home/alieblice/Videos/scp/
cartoon-07.avi
alieblice@de-10:~$
کپی کردن فایل ها
برای این کار مثل دستور cp از r- استفاده کنین
در دستور زیر دایرکتوری DNSvideo رو از سیستم رموت به لوکال کپی میکنیم
alieblice@de-10:~$ scp -r root@172.16.49.21:/var/www/DNSvideo /home/alieblice/Documents/
root@172.16.49.21's password:
YouTube - Setting Up and Configuring a DNS 100% 20MB 20.1MB/s 00:01
YouTube - Setup DNS Server Quick & Simple.flv 100% 9288KB 9.1MB/s 00:00
YouTube - Setting Up and Configuring a DNS 100% 20MB 19.6MB/s 00:00
YouTube - Instala y configura Bind 9 en Ub 100% 10MB 10.2MB/s 00:01
YouTube - Setting Up and Configuring a DNS 100% 15MB 15.1MB/s 00:00
YouTube - install dan konfigurasi bind9 (DNS) 100% 6742KB 6.6MB/s 00:00
YouTube - Setting Up and Configuring a DNS Se 100% 17MB 17.5MB/s 00:00
alieblice@de-10:~$
اگر از -r استفده نکنین این اررور رو میده
alieblice@de-10:~$ scp root@172.16.49.21:/var/www/DNSvideo /home/alieblice/Documents/
root@172.16.49.21's password:
scp: /var/www/DNSvideo: not a regular file
Local Copy
برای این کار دقیقه مثل دستور cp عمل میکنیم
alieblice@de-10:~$ scp -r /home/alieblice/Documents/DNSvideo ~/
انتقال فایل از لوکال به رموت
برای این کار اول ادرس فایل در لوکال رو بدین و سپس ادرس و محل ذخیره شدن در رموت را بدهید
alieblice@de-10:~$ scp /home/alieblice/Videos/ShaunTheSheep_Part_18.avi root@172.16.49.21:
root@172.16.49.21's password:
Permission denied, please try again.
root@172.16.49.21's password:
ShaunTheSheep_Part_18.avi 100% 49MB 49.3MB/s 00:01
alieblice@de-10:~$
نکته : اگر برای ذخیره شدن فایل یا برای کپی شدن فایل در سیستم رموت ادرسی رو انتخاب نکنیم مثل بالا به طور پیش فرض home دایرکتوری استفاده میشه
توضیح بعضی از اپشن ها
-B
برگرفته از batch mode بیشتر در اسکریپت ها استفاده میشه و باعث میشه که از interactive authentication methods
نتونین استفاده کنین وباید از روش هایی مثل key authenticationباید استفاده کنین
-C
(سی بزرگ) برای فشرده سازی استفاده میشود که در سرعت های پایین باعث بالا رفتم سرعت میشه ولی در سرعت های بالا فقط باعث کندی سرعت میشه
-l
برای محدود کردن سرعت کپی کردن فایل استفاده میشود بر اثاث Kbit/s
در زیر سرعت 1000 کلو بیت بر ثانیه استفاده شده که برای تبدیل ان به کیلو بایت بر ثانیه باید ان را تقسیم بر 8 کنین 1000/8=125
در مثال زیر اگه توجه کنین بعد از مدت کوتاهی سرعت به 125 رسیده
مثال :
alieblice@de-10:~$ scp -l 1000 root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi 0% 400KB 141.0KB/s 05:53 ETA
ShaunTheSheep_Part_07.avi 1% 528KB 139.7KB/s 05:56 ETA
ShaunTheSheep_Part_07.avi 7% 3520KB 125.8KB/s 06:11 ETA^
-P
برای مشخص کردن پرت ارتباطی استفاده میشود
نکته : این جا از پی بزرگ استفاده شده بر عکس ssh که از پی کوچک استفاده میشود دلیلش اینه که در rcp از پی کوچک برای کار دیگری استفاده میشده
-p
برای شما quiet mode رو فعال میکنه به تفاوتش در مثال زیر توجه کنین
alieblice@de-10:~$ scp -q root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
root@172.16.49.21's password:
alieblice@de-10:~$
درصد و سرعت انتقال رو نشون نمیده
-v
از وی برای گرفتن اطلاعات اضافی تری در باره ی نوع اتصال و چیز های دیگه میتونین استفاده کنین
از وی تا 3 بار میتونین استفاده کنین که سومین وی خیلی اطلاعات دقیقی میده
مثال برای یک وی
alieblice@de-10:~$ scp -v root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
Executing: program /usr/bin/ssh host 172.16.49.21, user root, command scp -v -f /var/www/ShaunTheSheep_Part_07.avi
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 172.16.49.21 [172.16.49.21] port 22.
debug1: Connection established.
debug1: identity file /home/alieblice/.ssh/identity type -1
debug1: identity file /home/alieblice/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-4096
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-4096
debug1: identity file /home/alieblice/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6
debug1: match: OpenSSH_5.5p1 Debian-6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '172.16.49.21' is known and matches the RSA host key.
debug1: Found key in /home/alieblice/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/alieblice/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/alieblice/.ssh/identity
debug1: Trying private key: /home/alieblice/.ssh/id_dsa
debug1: Next authentication method: password
root@172.16.49.21's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8
debug1: Sending command: scp -v -f /var/www/ShaunTheSheep_Part_07.avi
Sending file modes: C0755 51482624 ShaunTheSheep_Part_07.avi
Sink: C0755 51482624 ShaunTheSheep_Part_07.avi
ShaunTheSheep_Part_07.avi 100% 49MB 49.1MB/s 00:01
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 14816, received 51535384 bytes, in 1.3 seconds
Bytes per second: sent 11794.2, received 41024565.4
debug1: Exit status 0
alieblice@de-10:~$
مثال برای 2 وی
alieblice@de-10:~$ scp -vv root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
خروجیش رو نمیزارم چون خیلی زیاد بود
دستور مشابه دیگری به اسم rsync با امکانات خیلی بیشتری وجود دارد که قبلا اموزشش گذاشته شده
منبع :
Pro OpenSSH (2005).pdf
ادرس دانلود کتاب :
http://ubuntuone.com/p/12CZ/
-
(http://up.iranblog.com/images/r1h0lw6t1hhxd3ptw60a.jpg)
احتیاج به ویرایش
[/b]
دستور locate اطلاعات رو از روی دیتابیسی که با updatedb اماده سازی میشه میخواند و بعد با توجه به کلمه ای که شما به اون داده اید گزینه های سازگار رو در خروجی خود مینویسد
برای به روز کردن دیتابیس خود از دستور زیر استفاده کنین
برای این کار به کاربر روت احتیاج هست
نکته :اگه فایل یا هر چیز جدید دیگه ای ساختین بعدش دستور زیر رو بزنین تا به دیتابیس اضافه بشه چون بروز اوریه دیتا بیس خیلی سریع نیست .
sudo updatedb
برای پیدا کردن تمام فایلاها و دایرکتوریهایی که کلمه screenshot رو دارن دستور به این شکل میشه
locate Screenshot
با زدن این دستور تمام فایلاییو دایرکتوری که کلمه Screenshot در اسمشون باشه به شما نشون داده میشه که البته محدود به یک دایرکتوری خاص هم نمیشه و تمام دایرکتوری های موجود در درایوی که لینوکستون رو نصب کردین شامل میشه .
اگه خاستین دنبال یک چیزی محدود به یک دایرکتوری بگردین میتونین به این صورت دستورو بزنین
مثلا من در اینجا دنبال یک فایل در داخل /home/alieblice/Documents میگردم :
alieblice@alieblice-desktop:/$ locate firefox |grep /home/alieblice/Documents
/home/alieblice/Documents/firefox-4.0.tar.bz2
alieblice@alieblice-desktop:/$
اگه دستور locate -i firefox رو بزنین میبینین که چه همه firefox دارین
توضیح دستور بالا :
i- برای case-insensitive یعنی حساس نبودن به بزرگی و کوچکی استفاده میشه
| ((\+shift)) : میگه که خروجی دستور قبلی بشه ورودی دستور جدید که دستور بلافاصله بعد از | میاد ((پایپ pipe یا لوله میخوننش ))
grep : تمام خطهایی که کلمه ی ورودی رو داره برای ما جدا میکنه که کلمه ی ورودی در اینجا /home/alieblice/Documents بود .
جستوجو بر اساس اسم دقیق داده شده
برای ای کار دستور به شکل زیر میشه
locate -b '\NAME'
اینجوری فقط دایرکتوری یا فلدر هایی که اسمشون دقیقا NAME هست نشون داده میشه
alieblice@alieblice-desktop:/$ locate -b '\Oggy'
/home/alieblice/Videos/Oggy
alieblice@alieblice-desktop:/$
alieblice@alieblice-desktop:/$
alieblice@alieblice-desktop:/$ locate Oggy
/home/alieblice/Documents/Oggy.003.htm
/home/alieblice/Downloads/Oggy.003.htm
/home/alieblice/Videos/Oggy
/home/alieblice/Videos/Oggy.002.avi
/home/alieblice/Videos/Oggy.003.avi
alieblice@alieblice-desktop:/$
لیست کردن تمام دایرکتوری ها و ساب دایرکتوری
برای این کار بعد از دستور locate ادرس دایرکتوری رو بدین
alieblice@alieblice-desktop:/$ locate /home/alieblice/Videos
/home/alieblice/Videos
/home/alieblice/Videos/Oggy.001.avi
/home/alieblice/Videos/Oggy.002.avi
/home/alieblice/Videos/Oggy.003.avi
/home/alieblice/Videos/test
/home/alieblice/Videos/test/test2
alieblice@alieblice-desktop:/$
لیست کردن بر اساس فرمت داده شده
locate "*.png" -q
-q برای نشون ندادن ارور هست
اگر خاستین تعداد خاصی یعنی مثلا 3 تا خروجی بیشتر نداشته یاشه از n- استفاده کنین
alieblice@alieblice-desktop:/$ locate -n 3 "*.png"
/etc/alternatives/start-here-16.png
/etc/alternatives/start-here-22.png
/etc/alternatives/start-here-24.png
alieblice@alieblice-desktop:/$
اگه مقدار خروجی خیلی زیاد بود میتونین از less یا more استفاده کنین
locate *.png |less
locate *.png |more
نکته :
دیتابیس locate در ادرس زیر هست
/var/lib/mlocate/mlocate.db
که برای دیدن محتویات داخلش از این دستور میتونین استفاده کنین
sudo strings /var/lib/mlocate/mlocate.db |less
-
(http://www.istockphoto.com/file_thumbview_approve/4175621/2/istockphoto_4175621-shiny-icons-user-actions.jpg)
ما با این دستور میتونیم یه سری تغییرات روی یوزر های لینوکسی بدیم .
همون طور که می بینید دستور usermod شامل 17 آپشن هست که یکی یکی توضیح میدم .
البته آپشن های
-L
-p
-U
به صورت انحصاری هست و اگر بخوایم از این 3 تا آپشن استفاده کنم فقط در یک دستور باید یکی از این آپشن هارو قرار بدیدم یعنی همزمان نمیتونیم از آپشن های -p و -L استفاده کرد .
root@debian:~# usermod --help
Usage: usermod [options] LOGIN
Options:
-c, --comment COMMENT new value of the GECOS field
-d, --home HOME_DIR new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, --gid GROUP force use GROUP as new primary group
-G, --groups GROUPS new list of supplementary GROUPS
-a, --append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, --help display this help message and exit
-l, --login NEW_LOGIN new value of the login name
-L, --lock lock the user account
-m, --move-home move contents of the home directory to the
new location (use only with -d)
-o, --non-unique allow using duplicate (non-unique) UID
-p, --password PASSWORD use encrypted password for the new password
-s, --shell SHELL new login shell for the user account
-u, --uid UID new UID for the user account
-U, --unlock unlock the user account
-Z, --selinux-user new SELinux user mapping for the user account
root@debian:~#
آپشن -c :
با این آپشن میتونیم یه توضیح مختصر برای یک یوزر بنویسیم مثلا :
root@debian:~# usermod -c Administrator vahid
با توجه به دستور بالا ما گفتیم که یوزر vahid مدیر هست .
آپشن -d :
با این آپشن میتونیم ست کنیم home directory یک یوزر رو , توی ویندوز مثلا c:\users\vahid هست که میتونیم توی لینوکس به صورت دیفالت در home یک فایل به اسم خود یوزر ساخته میشه و Home Directory اون شخص میشه . به طور مثال برای تغییر Home Directory یک کاربر :
root@debian:~# usermod -d /home2/vahid vahid
آپشن -e :
با این آپشن میتونیم تاریخ انتقضای یک کاربر رو ست کنیم به طور مثال :
root@debian:~# usermod -e 2020-10-10 vahid
با توجه به دستور بالا ما گفتیم که یوزر vahid یوزر کاربریشون در تاریخ 2020-10-10 باطل بشه و دسترسی به سیستم نداشته باشه .
آپشن -f :
با این آپشن میتونیم ست کنیم که زمانی که پسورد Expire شد یه مدت بر حسب روز به کاربر وقت داده بشه که پسوردشو عوض کنه . برای مثال :
root@debian:~# usermod -f 7 vahid
اینجا ست کردیم که بعد از اینک پسورد کاربری vahid باطل شد 7 روز وقت داشته باشه تا پسورش خودشو عوض کنه .
آپشن -g :
با این آپشن میتونیم گروه کاربری رو تغییر بدیم برای مثال :
root@debian:~# id vahid
uid=1000(vahid) gid=1000(vahid) groups=1000(vahid)
root@debian:~# usermod -g root vahid
root@debian:~# id vahid
uid=1000(vahid) gid=0(root) groups=0(root)
توی دستور های بالا اول ما ای دی یوزر vahid رو چک کردیم . دیدم یوزر و گروه هر دو vahid هست بعد با دستور usermod یوزر vahid رو در گروه root قرار دایدم .
آپشن -G :
با این آپشن میتونیم یک یوزر رو در گروه قرار بدیدم برای مثال :
root@debian:~# usermod -G vahid vahid
root@debian:~# id vahid
uid=1000(vahid) gid=0(root) groups=0(root),1000(vahid)
خوب ما میبینم که علاوه بر اینکه یوزر Vahid در گروه خودش هست در گروه root هم هست .
آپشن -a :
زمانی که ما از دستور های -G استفاده میکنیم فقط ما کاربر رو به یک گروه ها اضافه میکنیم ولی اگه یه زمان بخوایم در چندین گروه قرار بگیره از -a استفاده میکنیم برای مثال :
root@debian:~# usermod -aG sales vahid
root@debian:~# id vahid
uid=1000(vahid) gid=0(root) groups=0(root),1002(sales)
root@debian:~# usermod -aG vahid vahid
root@debian:~# id vahid
uid=1000(vahid) gid=0(root) groups=0(root),1000(vahid),1002(sales)
آپشن -l :
با این آپشن میتونیم یوزر کاربری رو اسمشو عوض کنیم برای مثال :
root@debian:~# usermod -l master sirous
در مثال بالا یوزر کاربری sirous به یوزر master تغییر کرد
آپشن -L :
با این آپشن خیلی ساده یک یوزر رو دسترسیشو قطع میکنیم در واقع میبیندیمش برای مثال :
root@debian:~# usermod -L master
در مثال بالا یوزر master لاک شد و دیگه دسترسی به سیستم نداره
آپشن -m :
با این آپشن میتونیم home Directory یک یوزر رو منتقل کنیم به یک مکان دیگه برای مثال :
usermod -m -d /home/master master
در مثال بالا home directory منتقل میشه به /home/master
آپشن -o :
همون طور که میدونید uid یا همون user id به طور منحصر به فرد مربوط به یک کاربر هست ولی با این آپشن میتونیم به چند کاربر یک uid بدیم برای مثال :
root@debian:~# usermod -o vahid
آپشن -p :
با این آپشن میتونیم پسورد برای یک کاربر بزاریم یا تغییرش بدیم الیته باید encrypted باشد پسورد برای مثال :
root@debian:~# mkpasswd
Password:
D9Fv4apNaq/rE
root@debian:~# usermod -p D9Fv4apNaq/rE master
اول ما با دستور mkpasswd یک پسورد encrypted ساختیم و بعد اون پسورد رو برای کاربر قرار دایدم
اپشن -s :
با این آپشن میتونیم دسترسی shell کاربر رو تعیین کنیم برای مثال
root@debian:~# usermod -s /bash/false vahid
در مثال بالا ما دسترسی shell رو از کاربر vahid گرفتیم
آپشن -u :
با این آپشن میتونیم عدد UID رو خودمون برای کاربر ست کنیم برای مثال :
root@debian:~# usermod -u 22 master
root@debian:~# id master
uid=22(master) gid=1011(sirous) groups=1011(sirous)
در مثال بالا uid کاربر master رو 22 قرار دادیم
آپشن -U :
با این آپشن میتونیم کاربری که لاک هست رو آنلاک کنیم
root@debian:~# usermod -U Vahid
در مثال بالا یوزر Vahid انلاک هست و میتونه به سیستم دسترسی داشته باشه .
آپشن -Z :
با این آپشن میتونیم ست کنیم که یک یوزر جزو یوزر های selinux باشه برای مثال :
root@debian:~# usermod -Z master
یوزر master رو جزو یوزر های Selinux قرار دادیم که یه سری دسترسی های خاص داده
با تشکر
وحید سیروس
منبع : http://www.webhostingtalk.ir/f104/28950/ (http://www.webhostingtalk.ir/f104/28950/)
موضوعات وابسته : ساختن کاربر ((user)) و پاک کردن و ایجاد بعضی محدودیت ها
http://forum.ubuntu.ir/index.php/topic,17561.msg134502.html#msg134502
-
(http://alieblice.persiangig.com/image/chmod-linux-1.png)
سطح دسترسی ها در لینوکس
پایه و اساس سطح دسترسی ها در لینوکس شامل دو تا قسمت میشه یکی مالکیت فایل یا (ownership ) و یکی مجوز فایل ها (permissions ) .
مالکیت فایل (ownership ) شامل دو تا قسمت میشه :
یکی مالکیت کاربری (User Ownership)
یکی مالکیت گروهی (Group Ownership)
پس یک فایل دو تا مالکیت میگیره یکی مالکیت گروه یکی مالکیت کاربر
برای مثال فایل زیر رو ببینید :
root@debian:~/# ll
-rw-r--r-- 1 root vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/#
از فایل بالا متوجه میشیم که Group Ownership این فایل گروه vahid هست .
و User Ownership این فایل مربوط به یوزر root هست .
حالا ما چه شکلی میتونیم ownership یک فایل رو تغییر بدیم ؟ با دستور chown
به صورت زیر :
chown userowner:groupowner myfile.txt
به طور مثال ما میخوایم User Ownership و Group Ownership هر دو این فایل رو به vahid تغییر بدیم
root@debian:~/wht# chown vahid:vahid vahid.txt
root@debian:~/wht# ll
-rw-r--r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
حالا میریم سراغ قسمت دوم یعنی مجوز فایل ها (permissions )
مجوز فایل ها (permissions ) شامل 3 تا قسمت میشه :
مجوز برای کاربر
مجور برای گروه
مجوز برای دیگران (که شامل بقیه کاربران سیستم میشه)
rw- r-- r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
| | |
| | |________ user permission
| |___________ group permission
|_______________ other permission
که هر قست شامل 3 قسمت میشه :
r = read permission
w = write permission
x = execute permission
یعنی :
دسترسی خواندن
دسترسی نوشتن
دسترسی اجرایی (برای اجرا کردن یک برنامه)
که هر قسمت یه عدد میگیره
4 = read (r)
2 = write (w)
1 = execute (x)
0 = no permission (-)
برای مثال فایل زیر رو مد نظر بگیرید :
root@debian:~/wht# ll
-rw-r--r-- 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
اگر permission فایل رو سه قسمت کنیم :
-rw- r-- r--
میبینیم که
در سطح کاربر فقط میتونه فایل رو بخونه
در سطح گروه هم فقط میتونه فایل رو بخونه
و در سطح other دسترسی خوندن و نوشن رو داره
حالا ما چه شکلی میتونیم permission یک فایل رو تغییر بدیم ؟ با دستور chmod
chmod permissionnumber myfile.txt
به طور مثال ما میخوایم خود کاربر دسترسی خوندن و نوشتن و اجرا شدن رو داشته باشه ولی گروهش هیج دسترسی نداشته باشه و برای Other هم فقط دسترسی خوندن باشه
حالا میایم عدد ها رو جمع میزنی
دسترسی برای کاربر = خوندن + نوشتن + اجرا شدن = 4+2+1 = پس عدد دسترسی برای کاربر میشه 7
دسترسی برای گروه = هیچ دسترسی نداشته باشه = 0 = پس عدد دسترسی گروه میشه 0
دسترسی برای other = خوندن = 4 = پس عدد دسترسی other میشه 4
و این دسترسی رو اعمال میکنیم :
root@debian:~/wht# chmod 407 vahid.txt
root@debian:~/wht# ll
-r-----rwx 1 vahid vahid 0 Aug 5 00:58 vahid.txt
root@debian:~/wht#
حالا اگر خواستید تمامی فایل ها و زیر مجموعه هاش رو تغیر owner یا permission بدید باید از آپشن -R (تاکید میکنم بر روی R بزرگ هست ) استفاده کنید
برای مثال :
root@debian:~# chown -R vahid:vahid wht/
root@debian:~# chmod -R 407 wht/
این دو تا دستور تمامی owner های این فایل هارو به vahid تغییر میده و تمامی فایل های این فولدر به 407 تغییر میکنه
موفق و پیروز باشید
منبع : http://www.webhostingtalk.ir/f104/29244/
موضوعات وابسته : http://forum.ubuntu.ir/index.php/topic,17561.msg151252.html#msg151252
-
(http://www.thegeekstuff.com/wp-content/uploads/2010/04/alias-300x129.jpg)
دستور alias برای کوتا ه کردن دستورات طولانی استفاده میشه که باعث افزایش سرعت کار شما در ترمینال می شود
شکل کلی دستور به شکل زیر هستش
$ alias name='unix command with options'
alias - دستوری که با اون دستور کوتاه شده یک دستورو میسازین
name - دستور جایگزین دستور بلند
unix command with options - دستور واقعی که براش می خواهین دستور جایگزین درست کنین
چند مثال
پیدا کردن 5 فایل بزرگ داخل دایرکتوری
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5
"
برای پاک کردن تمام صفحهی نمایش و تاریخچهی ترمینال ((history))
alias hcl='history -c; clear'
برای وارد شدن ((رموت)) به یک سیستم با ssh
alias server_name='ssh root@192.168.1.1 -p7777 -c'
برای دیدن افراد انلاین pp*tp سرور ((روی سیستم شما شاید کار نکنه . دلیلش کار نکردنش اینه که رو سیستمتون pp*tp سرور ندارین ))
alias pppp='last |grep ppp|grep still'
*********************************************
برای دیدن تمام دستورات alias خود فقط لازم هست که خود دستور الیاس رو بزنین
برای دیدن دستور واقعی یک دستور الیا س اول دستور alias و سپس دستور خلاصه شده را بنویسید مثلا در زیر میخواهیم دستور اصلی دستور dus رو ببینیم :
$ alias dus
alias dus='df -h'
برای پاک کردن یک دستور الیاس از unalias استفاده کنین
unalias dus
$ dus
-bash: dus: command not found
برای پاک کردن تمام دستورات alias اینو بزنین
$ unalias -a
$ alias
نکته !!
اگه یک موقعی با رستارت کردن کامپیوتر دستورات alias تون پاک می شد , برای این که پاک نشه دستورات alias خودتونو داخل فلدر
.bash_aliases
قرار بدین
ادرس فلدر :
/home/username/.bash_aliases
منبع با مقداری تغییرات : http://www.thegeekstuff.com/2010/04/unix-bash-alias-examples/
چند مثال دیگه تو منبع هست که نگفتم
-
سلام دوستان عزیز
یه نکته جالب تو ترمینال پیدا کردم که خیلی به درد خودم خورد و احتمالا به درد شما هم بخوره.
خیلی وقت ها پیش اومده که میخواید یه متن یا جمله یا کلمه ای رو تو ترمینال copy کنید و جای دیگه تو ترمینال paste کنید.
یه راهش این هست که تو ترمینال به جای Ctrl+c و Ctrl+v از Ctrl+Shift+c و Ctrl+Shift+v استفاده کنیم. این روش خوبه اما باز از این روشی که میخوام بگم بهتر نیستش.
واسه این کار میتونید متن مورد نظرتون تو ترمینال رو highlight کنید و بعد برید جایی که میخواید متن paste بشه و دکمه وسط mouse رو بزنید متن مورد نظرتون که highlight کردید اونجا paste میشه. جالبیش اینجاست که مثلا اگر جند تا ترمینال باز داشته باشید و تو یه ترمینال یه متن رو highlight کنید و برید تو ترمینال دیگه دکمه وسط موس رو بزتید هم باز این روش عمل میکنه.
امیدوارم مفید باشه براتون
آهان راستی دوستانی که با موس لپ تاپ کار میکنن واسه دکمه وسط موس هر دو دکمه چپ و راست رو بزنید به عنوان دکمه وسط عمل میکنه.
موفق باشید
-
-----------------------------------------------------------------------
(http://static.macgeneration.com/img/2010/05/64_bit_logo-20100525-230946.jpg)
کرنل 32 یا 64 ::
استفاده از دستور uname -a برای فهمیدن 32 بیت یا 64 بیت بودن
اگه در خروجی دستورتون کلمه ی x86_64 بود یعنی کرنل سیستم شما 64 بیت است
اگه در خروجی دستورتون یکی از کلمات i386/i486/i586/i686 بود یعنی کرنل شما 32 بیت است
دستور زیر یک نمونه کرنل 64 بیت رو نشون میده
$ uname -a
Linux ora100 2.6.5-7.252-smp #1 SMP Tue Feb 14 11:11:04 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux
cpu 32 یا 64 ::
استفاده از /proc/cpuinfo
این دستورو داخل ترمینال بزنین تا اطلاعات cpu شما رو نشون بده که از داخل اون اطلاعات 32 یا 64 بیت بودن cpuتونو می تونین بفهمین
less /proc/cpuinfo
این دستورو در ترمینال بزنین که اگر در خروجیش کلمه ی lm بود شما cpu 64 بیت دارین
$ grep flags /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
دستور lscpu هم هست که اطلاعات کاملی از cpu در اختیارتون قرار میده ((تجزیه تحلیل دستورش با خودتون ))
ali@172.16.15.149:~$ lscpu
Architecture: i686
CPU op-mode(s): 64-bit
CPU(s): 1
Thread(s) per core: 1
Core(s) per socket: 1
CPU socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 44
Stepping: 2
CPU MHz: 2127.777
Hypervisor vendor: Microsoft
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 12288K
منبع : http://www.thegeekstuff.com/2010/12/linux-32-or-64-bit/
-
رزرو برایه دستور
-
اموزش نصب نرم افزار به صورت گرافیکی توسط synaptic و aptitude در ubuntu و kubuntu در ادرس زیر موجوده من این جا روش ترمینالیشو به صورت خلاصه و کار راه انداز میگم اونم محدود به apt-get
wiki.ubuntu-ir.org/InstallingSoftware
دستور apt-get برای نصب و بروز اوری و پاک کردن بسته ها و ... استفاده میشه
برای نصب نرم افزار دستور به این شکل هستش
apt-get install APP-NAME
مثلا در این جا میخایم htop رو نصب کنیم
root@debian:/# apt-get install htop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
strace ltrace
The following NEW packages will be installed:
htop
0 upgraded, 1 newly installed, 0 to remove and 11 not upgraded.
Need to get 57.1 kB of archives.
After this operation, 201 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ squeeze/main htop i386 0.8.3-1 [57.1 kB]
جستوجو برای پیدا کردن یک بسته
برای جستوجو داخل مخازن برای پیدا کردن یک نرم افزار دستور به این شکل هستش
apt-cache search APP-NAME
مثلا اینجا دنبال نرم افزار vnstat هستیم
root@debian:/# apt-cache search vnstat
vnstat - console-based network traffic monitor
vnstati - image output support for vnStat
root@debian:/#
بعضی اوقات پیش میاد که یک دستورو باید به صورت یک بسته نصبش کنیم مثل killall ولی بسته ی اون دستور هم اسم اون دستور نیست اینم از مواردی هستش که جستوجو در مخازن به ما کمک میکنه تا اسم بسته ی اون دستورو بدست بیاریم
root@debian:/# apt-cache search killall
psmisc - utilities that use the proc file system
sysvinit-utils - System-V-like utilities
root@debian:/#
برای بروز کردن لیست نرم افزارای مخازن از update استفاده میکنیم
فرض کنیم شما یک repository جدید به سیستمتون اضافه کردین وبرای این که لیست بسته های اون repository به سیستمتون اضافه بشه باید دستور زیرو بزنین
root@debian:/# apt-get update
Get:1 http://security.debian.org squeeze/updates Release.gpg [836 B]
Ign http://security.debian.org/ squeeze/updates/main Translation-en
Ign http://security.debian.org/ squeeze/updates/main Translation-en_US
Hit http://ftp.us.debian.org squeeze Release.gpg
Ign http://ftp.us.debian.org/debian/ squeeze/main Translation-en
Ign http://ftp.us.debian.org/debian/ squeeze/main Translation-en_US
Get:2 http://ftp.us.debian.org squeeze-updates Release.gpg [836 B]
Get:3 http://security.debian.org squeeze/updates Release [38.4 kB]
Ign http://ftp.us.debian.org/debian/ squeeze-updates/main Translation-en
Ign http://ftp.us.debian.org/debian/ squeeze-updates/main Translation-en_US
Hit http://ftp.us.debian.org squeeze Release
Get:4 http://ftp.us.debian.org squeeze-updates Release [113 kB]
Get:5 http://security.debian.org squeeze/updates/main Sources [33.0 kB]
Get:6 http://security.debian.org squeeze/updates/main i386 Packages [99.7 kB]
Hit http://ftp.us.debian.org squeeze/main Sources
Hit http://ftp.us.debian.org squeeze/main i386 Packages
Hit http://http.us.debian.org stable Release.gpg
Ign http://http.us.debian.org/debian/ stable/contrib Translation-en
Get:7 http://ftp.us.debian.org squeeze-updates/main Sources/DiffIndex [1,057 B]
Ign http://http.us.debian.org/debian/ stable/contrib Translation-en_US
Ign http://http.us.debian.org/debian/ stable/main Translation-en
Ign http://http.us.debian.org/debian/ stable/main Translation-en_US
Ign http://http.us.debian.org/debian/ stable/non-free Translation-en
Ign http://http.us.debian.org/debian/ stable/non-free Translation-en_US
Hit http://http.us.debian.org stable Release
Get:8 http://ftp.us.debian.org squeeze-updates/main i386 Packages/DiffIndex [1 057 B]
Hit http://http.us.debian.org stable/main Sources
Get:9 http://ftp.us.debian.org squeeze-updates/main 2011-05-07-1415.58.pdiff [ 80 B]
Get:10 http://ftp.us.debian.org squeeze-updates/main 2011-05-07-1415.58.pdiff 380 B]
Get:11 http://ftp.us.debian.org squeeze-updates/main 2011-05-07-1415.58.pdiff 380 B]
Hit http://http.us.debian.org stable/main i386 Packages
Hit http://http.us.debian.org stable/contrib i386 Packages
Hit http://http.us.debian.org stable/non-free i386 Packages
Get:12 http://ftp.us.debian.org squeeze-updates/main i386 Packages [5,414 B]
Get:13 http://ftp.us.debian.org squeeze-updates/main 2011-05-10-2143.25.pdiff 918 B]
Get:14 http://ftp.us.debian.org squeeze-updates/main 2011-05-10-2143.25.pdiff 918 B]
Get:15 http://ftp.us.debian.org squeeze-updates/main 2011-05-10-2143.25.pdiff 918 B]
Fetched 295 kB in 12s (23.9 kB/s)
Reading package lists... Done
root@debian:/#
برای بروز کردن بسته هایی که نصب کردین از upgrade استفاده کنین
apt-get upgrade
مثلا سیستم من الان براش نسخه های جدید تر کرنل امده که وقتی دستورو میزنم جزو لیست نبسته هایی هست که میخاد بروز بشه linux-image-2.6.32-5-68
root@debian:/# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
base-files console-setup isc-dhcp-client isc-dhcp-common keyboard-configuration
libssl0.9.8 linux-base linux-image-2.6.32-5-686 login passwd tzdata
11 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 34.9 MB of archives.
After this operation, 1,151 kB of additional disk space will be used.
Do you want to continue [Y/n]?
برای پاک کردن نرم افزار
apt-get remove APP-NAME
spt-get --purge remove APP-NAME
مثلا پاک کردن htop
root@debian:/# apt-get remove htop
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
htop
0 upgraded, 0 newly installed, 1 to remove and 11 not upgraded.
After this operation, 201 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 22826 files and directories currently installed.)
Removing htop ...
Processing triggers for man-db ...
root@debian:/#
با دستور بالا فقط بسته ی htop رو پاک میکنین ولی فایلای تنضیمات و دیگر فایلاش باقی میمونن
برای پاک کردن کامل یک بسته از اپشن --purge به همراه remove استفاده کنین
مثلا برای پاک کردن vnstat
root@debian:/# apt-get --purge remove vnstat
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
vnstat*
0 upgraded, 0 newly installed, 1 to remove and 11 not upgraded.
After this operation, 291 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 22815 files and directories currently installed.)
Removing vnstat ...
Stopping vnStat daemon: vnstatd.
Purging configuration files for vnstat ...
dpkg: warning: while removing vnstat, directory '/var/lib/vnstat' not empty so not removed.
Processing triggers for man-db ...
root@debian:/#
در اخر هم فلدرایی که مربوط به اون بسته میشده و پاک نکرده رو هم میگه مثلا در بالا
dpkg: warning: while removing vnstat, directory '/var/lib/vnstat' not empty so not removed.
-
دستور uptime
دستور uptime برایه دیدن مقدار مدت زمان روشن بودن سیستم استفاده میشود که در کنار اون ساعت ; تعداد کاربر و مقدار لود سیستم رو نشون میدهد
دستور uptime اپشنی ندارد و خروجیش به شکل زیر هستش
13:17:57 up 214 days, 2:52, 4 users, load average: 0.09, 0.03, 0.01
یا برایه سیستم من
alieblice@ali:~$ uptime
22:00:58 up 13 min, 2 users, load average: 0.00, 0.06, 0.10
13:17:57 = ساعت سیتم
214 days, 2:52 = مدت زمان روشن بودن سیستم که اگر بیشتر از 24 ساعت شود تبدیل به روز و ساعت میشود
load average: 0.09, 0.03, 0.01 = مقدار لود سیستم رو نشون میده که در اینجا 0.09است که از چپ به راست برایه 1, 5 و 15 دقیقه است
load average در لینوکس بر اساس تعداد پروسس هایی که در نوبت اجرا (( run queue )) هستن محاصبه میشود که این پروسس ها میتونه مربوط به cpu ; disk I/O یا حتی network باشن
متن زیر کامل ترشو گقته
Load average on a Linux system is defined as the number of blocking processes in the run queue
averaged over a certain time period. A blocking process is a process that is waiting on a resource
to continue, usually the CPU, disk I/O, or network. Many processes waiting in the run queue
will drive up the load average of your system. It’s not uncommon to see a load average over 1;
that just means for the designated time interval (1, 5 or 15 minutes) there was an average of at
least one process waiting on resources in the run queue. This is usually indicative of a busy
system and might not necessarily mean anything is amiss. However, high load averages will
negatively affect system performance, so it’s always a good idea to be aware of what is causing
them. Here is the uptime output of a relatively busy web server:
$ uptime
1:20pm up 3 days 15:49, 1 user, load average: 1.47, 1.10, 0.83
پیدا کردن uptime به روش هایه دیگر
مدت زمان روشن بودن سیستم در فایل زیر نیز وجود دارد
cat /proc/uptime
ali@95:~$ cat /proc/uptime
91554.73 89629.48
ali@95:~$
91554.73 = زمان روشن بودن سیستم بر اثاث ثانیه
89629.48 =
The second number is how much of that time the machine has spent idle, in seconds.[10] On multi core systems (and some linux versions) the second number is the sum of the idle time accumulated by each CPU.
با دستور زیر هم میشه مدت زمان رو دید
sudo ps -p 1 -o etime=
ali@95:~$ sudo ps -p 1 -o etime=
1-01:34:53
ali@95:~$
ali@95:~$ uptime
17:17:08 up 1 day, 1:35, 2 users, load average: 0.00, 0.00, 0.00
ali@95:~$
با دستور top و htop هم میشه دید
منابع:
http://en.wikipedia.org/wiki/Uptime
http://www.thegeekstuff.com/2011/04/ps-command-examples/
-
shell job controls (دستور fg bg jobs nohup)
منظور از shell job از کاv انداختن و راه اندازی مجدد یک پروسس یا ازبین بردن و یا به پشت صحنه بردن یک پروسس در ترمینال است
jobs = برایه دیدن کار هایه پشت صحنه
fg = برایه رویه صحنه اوردن کاری که در پشت صحنه است
bg = برایه رستارت کردن کاری که در پشت صحنه است
nohup = برایه ازبین نرفتن کاری به هنگام بستن ترمینال
منظور از فرستادن یک کار (( پروسس )) به پشت صحنه
فرض کنین تو ترمینال دستور firefox رو میزنین یا مثلا دستور nautilus وقتی که یکی از این دو دستور رو میزنین نرم افزار مربوطه رو صفحه ظاهر میشود و یک سری اطلاعاتی رو تو ترمینال مینویسد و عملا ترمینال رو برایه زدن دستورات دیگر غیر قابل مصرف میکند . حالا برایه این که ترمینالتون در این مواقع قابل استفاده باشد اون نرم افزار یا پروسس رو به پشت صحنه میفرستیم
مثال:
مراحل کار :
اول nautilus رو اجرا میکنیم
دوم به وسیله کلید ترکیبی Ctrl+z از کار میندازیمش و
سوم به وسیله ی دستور bg رستارتش میکنیم تا شروع به کار کند
alieblice@/$ sudo nautilus
Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
^Z
[1]+ Stopped sudo nautilus
alieblice@/$
اگر الان دستور jobs رو بزنین خروجی شبیه زیر رو میبینین
alieblice@/$ jobs
[1]+ Stopped sudo nautilus
alieblice@/$
همون طور که میبینین کلمه Stopped رو نوشته که نشون از ازکار افتادن این پروسس ((در اینجا به وسیله Ctrl+z )) هست که برایه راه اندازیش از دستور bg به همراه شماره کار (پروسس) که در این جا [1] میباشد استفاده میکنیم
alieblice@/$ bg 1
[1]+ sudo nautilus &
alieblice@/$
حالا اگر دستور jobs رو بزنین میبینین که از کلمه Runnig استفاده شده است
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
اگر خاستین nautilus رو دوباره به رویه صحنه بیارین از fg استفاده کنین به همراه شمارش
alieblice@/$ fg 1
sudo nautilus
alieblice@/$
اجرا کردن یک پروسس که به طور خود کار به پشت صحنه برود
برایه این کار در پایان دستورتون از حرف & استفاده کنین
مثال:
بعد از زدن دستور به همراه & یک بار دکمه enter رو بزنین
alieblice@/$ sudo nautilus&
[1] 7661
alieblice@/$ Initializing nautilus-open-terminal extension
Initializing nautilus-gdu extension
Initializing nautilus-image-converter extension
alieblice@/$
دستور jobs
در مورد jobs این جا کامل توضیح داده ولی چون بیشتر چیزایی که گفته بود کار نمیکرد من فقط دو تا از اپشناشو میگم
http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds3%2Fjobs.htm
همون طور که در بالا دیدین دستور jobs برایه دیدن کارهایه پشت صحنه هستش
مثال:
alieblice@/$ jobs
[1]+ Running sudo nautilus &
alieblice@/$
توضیح چند تا از اپشن ها
از l- برایه دیدن job number, current job, process group ID
از p- برایه دیدن pid
دستور nohup
از این دستور برایه زمانی که یک پروسس رو در ترمینال ایجاد کردیم و میخایم که بابسته شدن ترمینال پروسسمون از بین نره استفاده میکنیم
در nohup
خروجی ها در $HOME/nohup.out
اررور ها در خود ترمینال
و ورودی ها :
If standard input is a terminal, redirect it from /dev/null
نکته : همیشه با بسته شدن ترمینال پروسس هامون از بین نمیره مثلا در مثال هایه nautilus بالا اگه nautilus پشت صحنه باشه از بین نمیره
مثال :
alieblice@~$ sudo nohup firefox
nohup: ignoring input and appending output to `nohup.out'
alieblice@~$
نکته :
پروسس هایی که با nohup اجرا میشن در لیست کار هایه دستور jobs نمیاد
منابع :
LPIC-1_In_Nutshell_Oreilly_Edition3
http://ubuntuone.com/p/15HZ/
http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=%2Fcom.ibm.aix.cmds%2Fdoc%2Faixcmds3%2Fjobs.htm
-
سلام دوستان
تصمیم گرفتم اموزش دستورات رو با فرمت PDF هم درست کنم که اولین نسخشو درست کردم
اموزش دستور LS ((نسخه PDF ))
از ادرس زیر در دست رس است
http://fsforums.ir/
پیشاپیش ممنون
-
df
لیست درایوهای مونت شده - حجم و فضای استفاده شده از فضای آنها را نمایش می دهد
پارامترهای نسبتا زیادی داره که شاید فقط بدرد حرفه ای ها بخوره به همین خاطر از اونها نام نمی برم
-
touch
برای ساختن فایل متنی بکار می رود
touch file.txt
ln برای ایجاد لینک مورد استفاده قرار می گیرد
ln source destination
-
نمیدونم چرا عکسها کپی نشدن؟! (منم تنبلیم میشه دونه دونه بذارمشون :P ) برای دیدن متن کامل همراه با عکسهاش به منبع این مطلب که تو آخر نوشته لینکش رو دادم مراجعه کنین
------------------------------------------------------------------------------
افرادی که کمی در مورد لینوکس و توزیع های مختلف آن مطالعه کرده باشند ، بدون شک با خط فرمان بسیار قدرتمند آن تا حدودی آشنایی دارند . از طریق این محیط میتوانید به اطلاعات زیادی در مورد سیستم عامل ، برنامه ها و موارد دیگر دسترسی پیدا کنید .
یکی از این موارد ، پردازش ها یا همان Process ها میباشند . در سیستم عامل ویندوز ابزار معروفی به نام Task Manager وجود دارد که بیشتر کاربران آن را میشناسند . در توزیع ابونتو میتوانید از طریق خط فرمان به این پردازش ها دسترسی داشته باشید .
دستور top یکی از روش های قدیمی برای مشاهده پردازش هایی است که از منابع سیستم استفاده میکنند . البته این دستور پردازش هایی را نمایش میدهد که میزان زیادی از منابع سیستمی را به کار گرفته باشند . اما دستور دیگری به نام htop وجود دارد که نوع بهبود یافته و پیشرفته تر دستور top به حساب می آید . اما برای استفاده از این دستور ، ابتدا باید آن را نصب کنید . چون به صورت پیشفرض در بیشتر توذیع های لینوکسی نصب نیست .
پس از نصب میتوانید از طریق ترمینال ابونتو به مدیریت پردازش های در حال اجرا بپردازید . پس ابتدا از طریق Dash ( برای مشاهده کلید ویندوز در کیبورد خود را بفشارید ) کلمه Terminal را تایپ کرده تا آیکون آن برای شما نمایش داده شود . روی آن کلیک کنید تا محیط ترمینال باز شود . حالا دستور زیر را تایپ کرده و کلید اینتر را بزنید :
sudo apt-get install htop
اکنون باید کلمه عبور خود را وارد کنید . پس از چند ثانیه این برنامه نصب شده و آماده به کار میباشد .
اگر موافق باشید به سراغ دستورهایی برویم که بوسیله آنها میتوانید پردازش ها را مشاهده کرده و به مدیریت آنها بپردازید .
مشاهده پردازش ها با دستور ps :
دستور ps لیست پردازش های در حال اجرا را به شما نشان خواهد دارد . با تایپ دستور زیر میتوانید تمام پردازش های در حال اجرا را مشاهده کنید . به بزرگی کرکتر A توجه داشته باشید .
ps -A
اگر میخواهید کل لیست به یکباره نمایش داده نشود ، کافیست دستور را به شکل زیر تایپ کنید :
ps -A | less
با تایپ دستور بالا ، ترمینال دارای اسکرول بار نخواهد شد و پس از به اتمام رسیدن ظرفیت نمایش ترمینال ، باید برای دیدن پردازش های بعدی ، کلید اینتر را بفشارید تا پردازش ها ، یک به یک نمایش داده شوند . اگر قصد داشتید که از لیست خارج شوید ، کافیست کلید “q” را از صفحه کلید بفشارید .
البته شما میتوانید لیست پردازش های مربوط به یک برنامه خاص را نیز مشاهده کنید . در واقع این امکان برای شما وجود دارد که پردازش ها را فیلتر کنید و به موراد مورد نظرتان دست یابید . به عنوان مثال میخواهیم به لیست پردازش های مربوط به فایرفاکس دسترسی پیدا کنیم . دستور زیر را تایپ کنید :
ps -A | grep firefox
همانطور که در تصویر بالا مشاهده میکنید ، پردازش مربوط به مرورگر فایرفاکس ظاهر شد .
نمایش درختی پردازش های جاری با استفاده از دستور pstree :
در بیشتر مواقع اگر یک لیست به صورت درختی نمایش داده شود ، میتوان دید بهتری نسبت به آن داشت و رابطه بین آیتم ها را بهتر فهمید . با استفاده از دستور pstree میتواند نحوه نمایش لیست پردازش ها را به صورت درختی تعیین کنید .
از کار انداختن یک پردازش با استفاده از دستور kill :
دستور Kill همانطور که از نامش پیداست میتواند یک پردازش را از کار بیندازد و یا به اصطلاح بکشد :D . این دستور با استفاده از کد مربوط به هر پردازش ، هدف خود را شناسایی کرده و آن را از بین میبرد . به عنوان مثال میخواهیم پردازش مربوط به مرورگر فایرفاکس را با این دستور از کار بیندازیم . ابتدا باید پردازش مربوط به فایرفاکس را پیدا کرده و کد مربوط به آن را بدست بیاوریم . اگر یادتان باشد در ابتدا مطلب دستوری را به شما نشان دادیم که با استفاده از آن میتوانستید پردازش مربوط به یک برنامه را از بین همه پردازش ها جداسازی کنید .
ps -A | grep firefox
کدی که در اولین ستون از سمت چپ نوشته شده است ، کد مربوط به پردازش فایرفاکس میباشد . پس این کد را مقابل دستور kill بنویسید . به عنوان مثال :
kill 3684
البته برخی پردازش ها خیلی سرسخت بوده و به راحتی از کار نمی افتند . اما برای این مورد هم چاره ای اندیشیده شده است . شما میتوانید به جای استفاده از دستور kill ، از دستور kill -KiLL و یا kill -9 استفاده کنید . به عنوان مثال میخواهیم پردازشی با کد ۱۵۱۶۸ را که در برابر حذف شدن مقاومت میکند را از کار بیندازیم . میتوانید با دستورات زیر این پردازش را حذف کنید :
kill -KILL 15168
kill -9 15168
پیدا کردن PID ( کد ) پردازش ها با استفاده از دستور pgrep
این دستور نیز برای پیدا کردن PID یا به همان کد پردازش هاست . به عنوان مثال برای پیدا کردن کد پردازش فایرفاکس کافیست دستور زیر را تایپ کنید :
pgrep firefox
همانطور که مشاهده میکنید در خط بعدی کد پردازش فایرفاکس ظاهر شده است . اما میتوانید این دستور را به صورت ترکیبی نیز به کار ببرید . بگذارید با یک مثال این مورد به شما توضیح دهیم تا درک بهتری از آن داشته باشید .
مانند مثال قبلی میخواهیم پردازش مربوط به فایرفاکس را حذف کنیم . برای اینکه زحمت پیدا کردن کد پردازش فایرفاکس را از دوش خود بردارید ، میتوانید دستور pgrep را با دستور kill ترکیب کنید . به دستور زیر توجه کنید :
kill $(pgrep firefox)
خیلی ساده است . کد مربوط به پردازش فایرفاکس با استفاده از دستور pgrep firefox به صورت اتوماتیک مقابل دستور kill قرار میگیرد .
لازم به ذکر است که دستور pgrep را میتوانید با دستورات kill -KILL و kill -9 برای حذف پردازش های سرسخت نیز ترکیب کنید .
حذف پردازش ها با استفاده از نام آنها از طریق دستورات pkill و killall :
اگر میخواهید با استفاده از نام پردازش ها اقدام به حذف آنها کنید ، تنها کافیست از دستورات pkill و killall استفاده کنید . به عنوان مثال :
pkill firefox
killall firefox
تعیین اولویت برای پردازش ها با دستور renice :
گاهی اوقات نیاز میشود تا اولویت یک پردازش را بالاتر ببریم تا پردازنده با اولویت بالاتری به آن رسیدگی کند . از این رو میتوانید از دستور renice کمک بگیرید . این دستور مقداری بین -۱۹ و +۱۹ را به عنوان ورودی دریافت میکند . -۱۹ بیشترین اولویت و +۱۹ کمترین اولویت را به یک پردازش خواهد داد . مقدار ۰ نیز اولویت معمولی را به یک پردازش میدهد . هر پردازش از ابتدا که ایجاد میشود ، مقدار ۰ را به عنوان مقدار پیشفرض دارد .
اما روش استفاده از این دستور نیز مانند دستور kill بر اساس PID یا همان کد مربوط به پردازش است . به عنوان مثال میخواهیم به پردازش مربوط به فایرفاکس که با کد ۳۸۶۸ مشخص شده است ، کمترین اولویت را بدهیم . پس به شکل زیر عمل میکنیم .
renice 19 3868
البته میتوانید از ترکیب این دستور با دستور pgrep برای راحتی کار پیدا کردن کد پردازش مورد نظرتان استفاده کنید .
renice 19 $(pgrep firefox)
البته باید توجه داشته باشید که برای دادن بیشتر اولویت به یک پردازش باید مجوز ریشه ( root ) داشته باشید . بنابراین باید قبل از تایپ دستور به صورت بالا ، عبارت sudo را اضافه کنید . مانند دستور زیر :
sudo renice -19 3868
پس از اجرای دستور بالا از شما درخواست پسورد میشود که باید آن را وارد کنید .
برنامه های هنگ کرده را با دستور xkill ببندید :
گاهی اوقات پیش می آید که برخی برنامه ها هنگ کرده و هرچه روی دکمه close بالا پنجره کلیک میکنیم ، برنامه مورد نظر بسته نمیشود . اگر میخواهید یک راه حل ساده و سریع را برای بستن برنامه مورد نظر تجربه کنید ، کافیست دستور xkill را در ترمینال تایپ کنید . اکنون کرسر موس به شکل یک ضربدر شده است و با آن روی هر پنجره ای کلیک کنید ، بلافاصله بسته خواهد شد . البته به منظور انصراف از این دستور میتوانید روی پنجره مورد نظر راست کلیک کنید .
منبع: گویا آی تی
لینک این پست: http://www.gooyait.com/1390/12/15/ten-commands-for-management-process-trough-terminal-ubuntu-1110.html (http://www.gooyait.com/1390/12/15/ten-commands-for-management-process-trough-terminal-ubuntu-1110.html)
-
لینک ها به زودی تصحیح میشوند ((لینک هایه داخل کد درست هستند ))
(http://alieblice.persiangig.com/image/800px-Cheating.resized.JPG)
برگه تقلب دستورات
(http://alieblice.persiangig.com/image/fwunixref.resized.png)
http://ubuntuone.com/7fM95BEYaZE0trViPH1tKh
(http://alieblice.persiangig.com/image/linux-spicker.resized.png)
http://ubuntuone.com/3YL2JPKmzmKszvgb0VpDWa
(http://alieblice.persiangig.com/image/pixelbeat.org.resized.png)
http://ubuntuone.com/79wlpbo6mgFwMm7GsSMMmy
.(http://alieblice.persiangig.com/image/shell-commands20050327.resized.png)
http://ubuntuone.com/2a7vhLACCr2hncRJs43sAR
(http://alieblice.persiangig.com/image/The-One-Page-Linux-Manual.resized.png)
http://ubuntuone.com/4X9cnxZ1f9BOn7ECO9tQU3
(http://alieblice.persiangig.com/image/Useful-system-commands.resized.png)
http://ubuntuone.com/05Cf2nj0LJofJrwEOi4xmE
برگه تقلب دستورات پیرامون فایل هایه متنی
(http://alieblice.persiangig.com/image/awk.resized.png)
sed stream editor
http://ubuntuone.com/35ATILSVlW6yG3IHhPxpJj
(http://alieblice.persiangig.com/image/awk.resized.png)
awk
http://ubuntuone.com/7L23wAEMcj39QEcIJ1BMrr
برگه تقلب مدیریت بسته ها (( deb rpm yum ))
(http://alieblice.persiangig.com/image/linux-rpm.resized.png)
rpm
http://ubuntuone.com/4zrgBduf66LRByWrBlr5Xm
(http://alieblice.persiangig.com/image/RPM-Chea.resized.png)
rpm
http://ubuntuone.com/2fJaVcfMJaEvOBGz3HmdSF
(http://alieblice.persiangig.com/image/apt-ge.resized.png)
apt-get
http://ubuntuone.com/2PHO6OwfgN1f4p1xT6Cyyk
برگه تقلب دبیان
(http://alieblice.persiangig.com/image/refcard-en-a4.resized.png)
http://ubuntuone.com/4wDKCLAGuYk2UhZQqyDARQ
برگه تقلب بالا رو این جوری تا بزنین :
(http://alieblice.persiangig.com/image/refcard.png)
برگه تقلب اوبونتو
(http://alieblice.persiangig.com/image/KDE%20%26%20Kubuntu%20Cheatsheet.resized.png)
http://ubuntuone.com/3CC8ZoKKmSeI73nvQHgUW6
(http://alieblice.persiangig.com/image/Ubuntu-Reference.resized.png)
http://ubuntuone.com/1pKe0R6RX5t45ec8hUFpOq
متفرقه
(http://alieblice.persiangig.com/image/anatomy-of-a-linux-system.png)
anatomy-of-a-linux-system
http://ubuntuone.com/7FSO512J9NjMcYmXOLPMUG
(http://alieblice.persiangig.com/image/UNIX-Linux-Shell-Cheat-Sheet.png)
UNIX-Linux-Shell-Cheat-Sheet
http://ubuntuone.com/2xrPe610jbZ1omw06WRtdf
(http://alieblice.persiangig.com/image/Linux-Security-Quick-Reference-Guide.png)
Linux Security Quick Reference Guide
http://ubuntuone.com/2p9SymVmI0OOqKxpwYSg51
(http://alieblice.persiangig.com/image/LINUX-Admin-Quick-Reference.png)
LINUX Admin Quick Reference
http://ubuntuone.com/1LXZjS58sSsI03NtezydV8
یک سری کتاب و Cheat-Sheat دیگر
www.libooks.ir/Libooks%20Files/Persian/General/Bash_command_line_for_Linux.tar.bz2
www.libooks.ir/Libooks%20Files/Persian/General/Bash-Prog-Intro-HOWTO-1-2.tar.bz2
www.blainekendall.com/uploads/RubyOnRails-Cheatsheet-BlaineKendall.pdf
www.catonmat.net/blog/wp-content/plugins/wp-downloadMonitor/user_uploads/awk.cheat.sheet.pdf
www.catonmat.net/download/awk.cheat.sheet.pdf
www.catonmat.net/download/sed.stream.editor.cheat.sheet.pdf
www.columbia.edu/~thl2102/linuxrefcard.pdf
www.danleff.net/downloads/linux/linux_quick_ref_card.pdf
www.digilife.be/quickreferences/QRC/GDB%20Quick%20Reference.pdf
www.digilife.be/quickreferences/QRC/LINUX%20Admin%20Quick%20Reference.pdf
www.digilife.be/quickreferences/QRC/Linux%20Security%20Quick%20Reference%20Guide.pdf
www.digilife.be/quickreferences/QRC/LINUX%20System%20Call%20Quick%20Reference.pdf
www.digilife.be/quickreferences/QRC/The%20One%20Page%20Linux%20Manual.pdf
www.digilife.be/quickreferences/QRC/UNIX%20commands%20reference%20card.pdf
www.digilife.be/quickreferences/QRC/vi%20Quick%20Reference.pdf
www.digilife.be/quickreferences/QRC/Vi%20Reference%20Card.pdf
www.digilife.be/quickreferences/QRC/VIM%20Quick%20Reference%20Card.pdf
www.en.wikipedia.org/wiki/Comparison_of_command_shells
www.files.fosswire.com/2008/04/ubunturef.pdf
www.files.fosswire.com/wpu/2007/08/fwunixref.pdf
www.gnome-look.org/CONTENT/content-files/119833-cheat-cube-ub.svg.bz2
www.gnome-look.org/CONTENT/content-files/121377-cubo-trucos-ubuntu.pdf
www.gnu.org/software/bash/manual/bashref.pdf
www.mikeoliveri.com/utils/shellcheatsheet.pdf
www.packetlife.net/media/library/12/tcpdump.pdf
www.packetlife.net/media/library/13/Wireshark_Display_Filters.pdf
www.pragmaticstudio.com/rails/RailsTextMateCheats.pdf
www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf
www.shell-tips.com/sheets/bash-help-sheet.pdf
www.slash7.com/assets/2006/10/8/RJS-Demistified_Amy-Hoy-slash7_1.pdf
www.slash7.com/cheats/activerecord_cheatsheet.pdf
www.slash7.com/cheats/form_helpers.pdf
www.slash7.com/cheats/rails_files_cheatsheet.pdf
www.suso.com/infosheets/shell-commands20050327.png
www.tablespace.net/quicksheet/aix-quicksheet.pdf
www.tablespace.net/quicksheet/apv-quicksheet.pdf
www.tablespace.net/quicksheet/solaris-quicksheet.pdf
www.tangosoft.com/refcard/refcard-en-a4.pdf
www.tangosoft.com/refcard/refcard-en-lt.pdf
www.testingeducation.org/conference/wtst3_pettichord9.pdf
www.tldp.org/LDP/abs/abs-guide.pdf
www.tldp.org/LDP/Bash-Beginners-G...ners-Guide.pdf
www.topfunky.com/clients/rails/ruby_and_rails_assertions.pdf
www.ubuntuka.com/static.images/linux-cheat-sheet.png
منبع:
fsforums.ir
-
اطلاعات بیشتر در خصوص رم با دستور زیر:
cat /proc/meminfo
txr@txr-System-Product-Name:~$ cat /proc/meminfo
MemTotal: 4121164 kB
MemFree: 1487896 kB
Buffers: 552884 kB
Cached: 1176528 kB
SwapCached: 0 kB
Active: 1428424 kB
Inactive: 1090240 kB
Active(anon): 789736 kB
Inactive(anon): 4152 kB
Active(file): 638688 kB
Inactive(file): 1086088 kB
Unevictable: 0 kB
Mlocked: 0 kB
HighTotal: 3280392 kB
HighFree: 1291100 kB
LowTotal: 840772 kB
LowFree: 196796 kB
SwapTotal: 1999868 kB
SwapFree: 1999868 kB
Dirty: 1652 kB
Writeback: 0 kB
AnonPages: 789248 kB
Mapped: 198288 kB
Shmem: 4644 kB
Slab: 67956 kB
SReclaimable: 49228 kB
SUnreclaim: 18728 kB
KernelStack: 3024 kB
PageTables: 9120 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4060448 kB
Committed_AS: 3015544 kB
VmallocTotal: 122880 kB
VmallocUsed: 51852 kB
VmallocChunk: 42492 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 190456 kB
DirectMap2M: 722944 kB
-
اجرای چندین دستور با استفاده ; (semicolon)
txr@txr-System-Product-Name:~$ w ; free ; df
-
پیش از خواب یک کار درست انجام بدیم :
===================
پیش در آمدی بر find
فرمان find برای یافتن هر پرونده ای در رایانه کاربرد دارد .
در اینجا میخواهم چند نکته ی کاربردی را از آن یادآوری کنم:
1 - کجا جستجو کنم ؟
درست پس از کلیدواژه ی find بگویید کجا باید جستجو انجام شود :find ./*
find /home/*
find /var/www/
2 - چگونه چیزی را بیابیم :
find ./* -type
c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option or the
-follow option is in effect, unless the symbolic link is
broken. If you want to search for symbolic links when -L
is in effect, use -xtype.
s socket
D door (Solaris)
3- نام آن چیست ؟find ./* -type d -name '*Dexter*'
find ./* -type f -name '*tiffany*'
find /home/mohammad/* -type f -name '*.mkv'
4 - خوب حالا باهاش چی کار کنم ؟
find /home/mohammad/* -type f -name '*Porno*' -exec rm -f {} \;
{} و \; هر دو باید به همین شکل نوشته شود
{} نماینده ی نشانی آن چیزیست که یافته شده :
find /home/mohammad/* -exec echo {} \;
5 - تا چه زیر پوشه هایی این جستجو انجام شود ؟find $HOME/* -type d -maxdepth 0
find $HOME/* -type d -maxdepth 5
find $HOME/* -type d -mindepth 0
find $HOME/* -type d -mindepth 5
6- پرونده های با اندازه ی فلان را بیاب :
find $HOME/* -type f -name '*EveAngel*' -size +100m
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is
used)
`c' for bytes
`w' for two-byte words
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
7 - یافتن پرونده هایی که در آنها نام Sapphic نباشد :
find $HOME/* -type f ! -name '*Sapphic*'
find $HOME/* -type f -not -name '*Sapphic*'
8 - یافتن پرونده هایی که در نام آنها هم Sapphic و هم Angel باشد :
find $HOME/* -type f -name '*Sapphic*' -and -name '*Angel*'
9 - یافتن پرونده هایی که در نام آنها Sapphic باشد یا Angel :
find $HOME/* -type f -name '*Sapphic*' -or -name '*Angel*'
10 - پرونده هایی که از 10 دقیقه ی پیش تا کنون مورد دسترس شده :
find $HOME/* -type f -amin -10
11 - پرونده هایی که وضعیت پرونده ( دسترسی - اجازه ها ... ) از 10 دقیقه پیش تا کنون تغییر کرده :
find $HOME/* -type f -ctime -10
12 - پرونده هایی درون مایه آنها از 10 دقیقه پیش تا کنون دگرگون شده است را فهرست کن :
find $HOME/* -type f -mmin -10
13- پرونده هایی که از برای گروه www-data است را فهرست کن :
find /var/www/* -type f -group www-data
14 - پرونده هایی که از برای کاربر www-data است را فهرست کن :
find /var/www/* -type f -user www-data
15 - پرونده هایی که دسترسی آن 777 را بیاب :
find /var/www/* -perm 777
16 - پرونده هایی که کمینه ی دسترسی آن 644 است را بیاب : ( دسترسی هایی مانند 755 و 655 هم فهرست خواهد شد . لاکن 770 فهرست نخواهد شد )
find /var/www/* -perm -644
-
سلام
ببخشید این مطلبو خراب میکنم اما من هرچقدر تلاش میکنم معنی همچین دستوراتی رو نمیفهمم :
cd ~/<my_working _directory>
git clone https://github.com/Itseez/opencv.git
cmake [<some optional parameters>] <path to the OpenCV source directory>
اولا اینکه چطور باید این دستور هارو وارد کرد؟ آیا علامات <> یا [] رو هم موقع دادن دستور باید نوشت ؟ اگر نه اگه بخوایم واسه اون دستورات مثال بنویسیم چطور میشه ؟
من دستورات رو توی قسمت آخر این صفحه دیدم : http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation (http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation)
نه توضیحاتشو متوجه میشم و نه اینکه چطور باید از این دستورات استفاده کرد ](*,)
حای صفحه اول همین تاپیک هم مثلا دستور زیر رو معرفی کرده اما مثال برای نحوه استفاده اش نزده :
cp -r [path of folder] [new path]
خب یک نفر مبتدی مثل بنده اینو میبینه هیچی ازش متوجه نمیشه و اینکه چطور باید ازش استفاده کنه (مقدار دهی کنه اون براکت هارو و دستور نهایی رو چطور باید وارد کنه که کار کنه؟)
-
این (<>) یعنی چیزی که اون تو نوشته رو باید با توجّه به شرایط خودت بنویسی
این ([]) یعنی چیزی که اون تو نوشته اختیاریه
البته این رایجترین شکلشه و ممکنه مدلهای دیگهای هم نوشته شه که بعد از یه مدّت کار کردن دستت میآد داستان چیه
-
یه دستور دیگه هم هست برای لیست کردن مشخصات سخت افزاری کامپیوتر
lspci
که اینم کاملش میکنه.
lspci -v