انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: Hadron در 01 اردیبهشت 1390، 08:31 ب‌ظ

عنوان: راهنمای مقدماتی خط فرمان گنو/لینوکس (با تکیه بر Bash)
ارسال شده توسط: Hadron در 01 اردیبهشت 1390، 08:31 ب‌ظ

راهنمای آغاز کار با خط فرمان


پیش‌فرض‌ها: در اینجا فرض می‌شود که کاربر
پیوندهای پیشنهادی:
فیلم‌های آموزشی
کتاب:

[۱] لینوکس یا گنو/لینوکس؟ پیشنهاد می‌شود مقالهٔ «چه چیزی درون یک نام نهفته است؟ (http://www.gnu.org/gnu/why-gnu-linux.fa.html)» را بخوانید.
عنوان: آشنایی با خط فرمان لینوکس
ارسال شده توسط: Hadron در 01 اردیبهشت 1390، 09:12 ب‌ظ
پیش‌گفتار[۱]

امروزه محیط‌های گرافیکی این امکان را فراهم کرده‌اند که کارهایمان را بی‌نیاز از دانش اولیهٔ محیط‌های متنی انجام دهیم. رابط‌های گرافیکی زیادی برای توزیع‌های گنو/لینوکسی[۲] وجود دارد، مانند یونیتی (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) نگاهی بیاندازید.
عنوان: کوتاه از چندین دستور خط فرمان
ارسال شده توسط: Hadron در 01 اردیبهشت 1390، 09:21 ب‌ظ
- در این پست مختصرا با چند دستور معمول آشنا خواهید شد.
- نسخهٔ پی‌دی‌اف این پست و پست پیشین پیوست شده است.
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) استفاده می‌کنند و این لیست به همین موارد محدود نمی‌شود.
عنوان: دستور sudo
ارسال شده توسط: Hadron در 01 اردیبهشت 1390، 09:37 ب‌ظ
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 برای بازگشت به سطح کاربر عادی استفاده می‌شود.
عنوان: مشاهده اطلاعات کاملی در مورد CPU, Memory و ....
ارسال شده توسط: Aref.Ariyapour در 02 اردیبهشت 1390، 01:57 ق‌ظ
وقتی که سیستم بالا میاد یه سری اطلاعا کاملی تو دایرکتوری /proc قرار میگیره که میتونه خیلی مفید باشه.
برای دیدن اطلاعات کاملی در مورد CPU:
cat /proc/cpuinfo
در مورد RAM:
cat /proc/meminfo

البته اگه تو دایرکتوری /proc بگردید اطلاعات جالبی میتونید پیدا کنید. من خودم واسه پیدا کردن اطلاعات مثلا در مورد CDROM ام یه دستوری میزنم که میره کل /proc رو میگرده و اطلاعاتی که توش کلمه CDROM باشه رو نشون میده.
find ./[!0-9]* | xargs cat | grep CDROM
که مثلا واسه من میگه 'TOSHIBA' 'CDROM' 0x100
البته همه این دستور ها باید کامل بعدا توضیح داده بشه، اما فقط گفتم که واسه پیدا کردن اطلاعات دیگه یه راهی فعلا داشته باشیم. دوستان واسه پیدا کردن اطلاعات دیگه اگه کسی راه بهتری سراغ داره بگه.
دستور cat هم واسه مشاهده اطلاعات یک فایل مثل یه فایل متنی تو ترمینال استفاده میشه. ایشالا یکی از دوستان یا خودم بعدن درمورد این دستور توضیحات کاملی رو میدیم.
موفق باشید
عنوان: پاسخ به: راهنمای ترمینال اوبونتو
ارسال شده توسط: ٍاحسان ترکم در 02 اردیبهشت 1390، 04:44 ب‌ظ
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 واسه دیدن لیست برنامه هایی که بیشتر از رم و سی پی یو استفاده کردن.
عنوان: پاسخ به: راهنمای ترمینال اوبونتو
ارسال شده توسط: ٍاحسان ترکم در 02 اردیبهشت 1390، 04:55 ب‌ظ
گرفتن image iso در ترمینا.

sudo dd if=/dev/cdrom of=cd.iso
sudo dd if=/dev/dvd of=dvd.iso
مونت کردن Mounting an image

mkdir -p /mnt/isoimagemount -o loop -t iso9660 cd.iso /mnt/isoimage
Unmount

umount -lf /mnt/isoimage
 \\:D/

پی نوشت: اگه دو تا سیدی رام یا دیوی دی رام دارین
/dev/cdrom می شه اولی /dev cdrom1 می شه دومی یا /dev/dvd و /dev/dvd1
عنوان: دستور history؛ بخش یکم
ارسال شده توسط: Hadron در 10 اردیبهشت 1390، 02:33 ب‌ظ
توجه: متن زیر ترجمهٔ مقالهٔ "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“



echo '' > ~/.bash_history
عنوان: دستور history
ارسال شده توسط: alieblice در 11 اردیبهشت 1390، 03:56 ق‌ظ
(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  apt­get 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/ssh­scp­sftp­chroot­jail/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/)

چند مثال دیگه تو منبع هست که نگفتم
عنوان: دستور cd
ارسال شده توسط: alieblice در 11 اردیبهشت 1390، 05:39 ب‌ظ
(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

عنوان: دستور ls
ارسال شده توسط: alieblice در 13 اردیبهشت 1390، 12:48 ق‌ظ
(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 rmdir cp mv
ارسال شده توسط: alieblice در 15 اردیبهشت 1390، 11:37 ق‌ظ

دستور 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'

عنوان: دستور mkdir
ارسال شده توسط: alieblice در 18 اردیبهشت 1390، 11:16 ب‌ظ
(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
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته هایمان را به اشتراک بگذاریم)
ارسال شده توسط: lsf در 20 اردیبهشت 1390، 12:09 ق‌ظ
یه دستور سرکاری دیگه هم هست(البته استفاده مفیدم میشه ازش کرد!!)
uname           و            uname -a

یه دستور هم برای لاگین شدن هست:
login -p name
حالا این نام میتونه backdoor یا root یا ... باشه ولی من تا حالا نفهمیدم پسوردش چیه!!

عنوان: دستور du
ارسال شده توسط: rezamosh در 20 اردیبهشت 1390، 09:56 ب‌ظ
(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 که بعدا به این پست منتقل شد.
عنوان: ساختن کاربر ((user)) و پاک کردن و ایجاد بعضی محدودیت ها
ارسال شده توسط: alieblice در 22 اردیبهشت 1390، 01:37 ق‌ظ
دستور 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
ارسال شده توسط: alieblice در 22 اردیبهشت 1390، 04:47 ب‌ظ

دستور 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
ارسال شده توسط: alieblice در 23 اردیبهشت 1390، 12:47 ق‌ظ
دستور 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

همون طور که معلومه بعضی از خروجی هایه مثال ها شاید خیلی درست نباشن . خروجی مثال ها بین توزیع هایه مختلف متفاوت هستش.
عنوان: دستور top و دستور uptime
ارسال شده توسط: alieblice در 24 اردیبهشت 1390، 11:00 ب‌ظ
(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 هم میشه مدت اپتایم سیستم رو فهمید.

عنوان: Special Characters
ارسال شده توسط: Hadron در 29 اردیبهشت 1390، 12:39 ب‌ظ
(این پست در حال گسترش است...)

پس از چندین پست درباره‌ی دستورات خط فرمان، برای تنفس، در اینجا نویسه‌هایی (characters) را که برای شل دارای معنای خاص هستند، معرفی می‌کنیم:
& ; | * ? ' " " [] () $ <> {} # \/ ! ~هم‌چنین Tab و Space نیز برای شل دارای کاربرد حاص هستند.
- از backslash برای دورانداختن ویژگی خاص بودن یک «نویسه‌ی خاص» استفاده می‌شود. برای نمونه نویسه‌ی *، از نظر شل یک نویسه‌ی خاص است، اما ‎\*‎ به شل می‌گوید که با *، مانند سایر نویسه‌های عادی رفتار کند.
- نویسه‌ی |، که با نام pipe شناخته می‌شود، برون‌ده‌ی یک دستور را به دستور دیگر لوله‌کشی می‌کند.

عنوان: دستور chmod
ارسال شده توسط: alieblice در 31 اردیبهشت 1390، 11:51 ق‌ظ
دستور 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 صدق میکنه

عنوان: دستور cat و دستور cut
ارسال شده توسط: alieblice در 31 اردیبهشت 1390، 12:34 ب‌ظ
(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


عنوان: دستور rsync ((گرفتن :پشتیبان backup ))
ارسال شده توسط: alieblice در 01 خرداد 1390، 03:10 ب‌ظ
(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/
چند مثال دیگه تو منبع هست که نگفتم
عنوان: دستور sort
ارسال شده توسط: alieblice در 01 خرداد 1390، 11:49 ب‌ظ
(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/
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Aref.Ariyapour در 02 خرداد 1390، 01:08 ق‌ظ
خوب دوستان عزیز.
من دیدم این دوست عزیزمون 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 استفاده کنید.
ممنون از همه دوستان عزیز
موفق باشید
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته هایمان را به اشتراک بگذاریم)
ارسال شده توسط: doomhammer65ir در 09 خرداد 1390، 12:22 ق‌ظ
پرونده ای است که هر آن بدان چیزی افزوده میشود ( همچو log file )‌ میخواهیم بپاییمش :
tail -f logfilename-----------------------
میخواهیم تنها خطهای یکتا ( و اگر چند خط تکراریست تنها یکی از آن خطها ) را ببینیم :
( چیزی مانند distinct در sql )
uniq filename
عنوان: دستور wc , دستور uniq , دستور write
ارسال شده توسط: alieblice در 09 خرداد 1390، 12:38 ق‌ظ
دستور 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


عنوان: دستور grep
ارسال شده توسط: alieblice در 10 خرداد 1390، 06:10 ب‌ظ
نکته :
خروجی هر دستور  به صورت عکس هم قرار گرفته برای درک بهتر
 اگه عکس ها دیده نمیشن از ادرس زیر میتونین عکس هارو ببینین (( شماره هر عکس رو بالاش با رنگ ابی قرار دادم ))
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
عنوان: دستور wget ((دانلود منیجر تحت ترمینال))
ارسال شده توسط: alieblice در 14 خرداد 1390، 06:15 ب‌ظ
(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/




عنوان: فشرده سازی در لینوکس (قسمت اول 1) -* دستور zip *-
ارسال شده توسط: alieblice در 19 خرداد 1390، 10:49 ب‌ظ
(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


عنوان: دستور blkid (پیدا کردن اطلاعاتی در مورد درایو ها )
ارسال شده توسط: alieblice در 25 خرداد 1390، 09:43 ب‌ظ
(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


عنوان: دستور mount
ارسال شده توسط: alieblice در 29 خرداد 1390، 05:28 ب‌ظ
(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_
عنوان: دستور wall
ارسال شده توسط: alieblice در 01 تیر 1390، 05:58 ب‌ظ
(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
عنوان: دستور fdisk
ارسال شده توسط: alieblice در 06 تیر 1390، 05:51 ب‌ظ
(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/
عنوان: دستور chmod
ارسال شده توسط: alieblice در 13 تیر 1390، 08:11 ب‌ظ
(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
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Aref.Ariyapour در 16 تیر 1390، 11:32 ق‌ظ
سلام دوستان عزیز.
امروز یه سرچ کردم در مورد اینکه سایز یه دایرکتوری رو چطور تو ترمینال ببینیم، که به دو دستور 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
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: shahramlp در 16 تیر 1390، 11:46 ق‌ظ
سلام.شاید بهتر باشه به جای دستور یه کتاب معرفی کنم.یه کتاب هست به اسم خط فرمان لینوکس نوشته ی : scott granneman - ترجمه ی : محمد صادق سرشوق - انتشارات : دانشگاه آزاد اسلامی شهر مجلسی.ازاین سایت هم میتونین بخرینش : www.fardab.com
عنوان: دستور at
ارسال شده توسط: alieblice در 19 تیر 1390، 05:02 ب‌ظ
(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)

عنوان: دستور scp
ارسال شده توسط: alieblice در 22 تیر 1390، 04:56 ب‌ظ
(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/
عنوان: دستور grep
ارسال شده توسط: alieblice در 30 تیر 1390، 10:35 ب‌ظ

(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
عنوان: دستور usermod
ارسال شده توسط: alieblice در 14 امرداد 1390، 12:29 ق‌ظ
(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
عنوان: سطح دسترسی ها در لینوکس و دستور chmod
ارسال شده توسط: alieblice در 14 امرداد 1390، 10:21 ق‌ظ
(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
عنوان: دستور alias
ارسال شده توسط: alieblice در 22 امرداد 1390، 01:55 ب‌ظ
(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/
چند مثال دیگه تو منبع هست که نگفتم
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Aref.Ariyapour در 02 شهریور 1390، 11:40 ب‌ظ
سلام دوستان عزیز
یه نکته جالب تو ترمینال پیدا کردم که خیلی به درد خودم خورد و احتمالا به درد شما هم بخوره.
خیلی وقت ها پیش اومده که میخواید یه متن یا جمله یا کلمه ای رو تو ترمینال copy کنید و جای دیگه تو ترمینال paste کنید.
یه راهش این هست که تو ترمینال به جای Ctrl+c و Ctrl+v از Ctrl+Shift+c و Ctrl+Shift+v استفاده کنیم. این روش خوبه اما باز از این روشی که میخوام بگم بهتر نیستش.
واسه این کار میتونید متن مورد نظرتون تو ترمینال رو highlight کنید و بعد برید جایی که میخواید متن paste بشه و دکمه وسط mouse رو بزنید متن مورد نظرتون که highlight کردید اونجا paste میشه. جالبیش اینجاست که مثلا اگر جند تا ترمینال باز داشته باشید و تو یه ترمینال یه متن رو highlight کنید و برید تو ترمینال دیگه دکمه وسط موس رو بزتید هم باز این روش عمل میکنه.
امیدوارم مفید باشه براتون
آهان راستی دوستانی که با موس لپ تاپ کار میکنن واسه دکمه وسط موس هر دو دکمه چپ و راست رو بزنید به عنوان دکمه وسط عمل میکنه.
موفق باشید
عنوان: کرنل 32 یا 64 ::
ارسال شده توسط: alieblice2 در 08 شهریور 1390، 07:11 ب‌ظ
-----------------------------------------------------------------------
(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/
عنوان: دستور sort
ارسال شده توسط: alieblice2 در 15 شهریور 1390، 08:41 ب‌ظ
رزرو برایه دستور
عنوان: دستور apt-get
ارسال شده توسط: alieblice در 19 مهر 1390، 11:52 ب‌ظ

اموزش نصب نرم افزار به صورت گرافیکی توسط 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
ارسال شده توسط: alieblice در 21 مهر 1390، 01:11 ق‌ظ
دستور 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)
ارسال شده توسط: alieblice2 در 04 آبان 1390، 03:40 ب‌ظ
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 اموزش دستورات لینوکس
ارسال شده توسط: alieblice در 25 آبان 1390، 08:51 ب‌ظ
سلام دوستان

تصمیم گرفتم اموزش دستورات رو با فرمت PDF هم درست کنم که اولین نسخشو درست کردم

اموزش دستور LS ((نسخه PDF ))
از ادرس زیر در دست رس است
http://fsforums.ir/

پیشاپیش ممنون
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Mostafa Jalilianfar در 03 اسفند 1390، 12:28 ق‌ظ
df
لیست درایوهای مونت شده - حجم و فضای استفاده شده از فضای آنها را نمایش می دهد
پارامترهای نسبتا زیادی داره که شاید فقط بدرد حرفه ای ها بخوره به همین خاطر از اونها نام نمی برم
عنوان: پاسخ به: راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Mostafa Jalilianfar در 03 اسفند 1390، 12:35 ق‌ظ
touch
برای ساختن فایل متنی بکار می رود
touch file.txt

ln برای ایجاد لینک مورد استفاده قرار می گیرد
ln source destination
عنوان: ۱۰ دستور برای مدیریت پردازش ها از طریق Terminal ( ابونتو ۱۱٫۱۰ )
ارسال شده توسط: حامد سپهر در 18 اسفند 1390، 06:08 ب‌ظ
نمیدونم چرا عکسها کپی نشدن؟! (منم تنبلیم میشه دونه دونه بذارمشون  :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)
عنوان: چندین Cheat-Sheat و کتاب
ارسال شده توسط: alieblice در 15 فروردین 1391، 11:02 ب‌ظ
لینک ها به زودی تصحیح میشوند ((لینک هایه داخل کد درست هستند ))


(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
عنوان: پاسخ : راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Bijan در 29 اردیبهشت 1391، 06:44 ب‌ظ
اطلاعات بیشتر در خصوص رم با دستور زیر:

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
عنوان: پاسخ : راهنمای ترمینال اوبونتو (دانسته‌هایمان را به اشتراک بگذاریم)
ارسال شده توسط: Bijan در 29 اردیبهشت 1391، 07:01 ب‌ظ
اجرای چندین دستور با استفاده ; (semicolon)
txr@txr-System-Product-Name:~$ w ; free ; df
عنوان: پاسخ : راهنمای خط فرمان گنو/لینوکس (با تکیه بر توزیع اوبونتو)
ارسال شده توسط: doomhammer65ir در 28 آذر 1391، 05:39 ق‌ظ
پیش از خواب  یک کار درست انجام بدیم :
===================
پیش در آمدی بر 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 +100mFile 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-data14 - پرونده هایی که از برای کاربر www-data است را فهرست کن :
find /var/www/* -type f -user www-data15 - پرونده هایی که دسترسی آن 777 را بیاب :
find /var/www/* -perm 77716 - پرونده هایی که کمینه ی دسترسی آن 644 است را بیاب : ( دسترسی هایی مانند 755 و 655 هم فهرست خواهد شد  . لاکن 770 فهرست نخواهد شد )
find /var/www/* -perm -644
عنوان: پاسخ : راهنمای خط فرمان گنو/لینوکس (با تکیه بر توزیع اوبونتو)
ارسال شده توسط: hor_313 در 24 بهمن 1391، 01:26 ب‌ظ
سلام

ببخشید این مطلبو خراب میکنم اما من هرچقدر تلاش میکنم معنی همچین دستوراتی رو نمیفهمم :


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]
خب یک نفر مبتدی مثل بنده اینو میبینه هیچی ازش متوجه نمیشه و اینکه چطور باید ازش استفاده کنه (مقدار دهی کنه اون براکت هارو و دستور نهایی رو چطور باید وارد کنه که کار کنه؟)
عنوان: پاسخ : راهنمای خط فرمان گنو/لینوکس (با تکیه بر توزیع اوبونتو)
ارسال شده توسط: دانیال بهزادی در 26 بهمن 1391، 03:46 ب‌ظ
این (<>) یعنی چیزی که اون تو نوشته رو باید با توجّه به شرایط خودت بنویسی
این ([]) یعنی چیزی که اون تو نوشته اختیاریه
البته این رایج‌ترین شکلشه و ممکنه مدل‌های دیگه‌ای هم نوشته شه که بعد از یه مدّت کار کردن دستت می‌آد داستان چیه
عنوان: پاسخ : راهنمای خط فرمان گنو/لینوکس (با تکیه بر توزیع اوبونتو)
ارسال شده توسط: bat در 18 اسفند 1391، 04:07 ب‌ظ
یه دستور دیگه هم هست برای لیست کردن مشخصات سخت افزاری کامپیوتر
lspciکه اینم کاملش میکنه.
lspci -v