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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: راهنمای مقدماتی خط فرمان گنو/لینوکس (با تکیه بر Bash)  (دفعات بازدید: 91921 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر

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


پیش‌فرض‌ها: در اینجا فرض می‌شود که کاربر
  • یک توزیع گنو/لینوکس[1] (مانند اوبونتو، مینت، فدورا و...) در حال اجرا روی رایانهٔ خود یا در یک مجازی‌ساز مانند VirtualBox دارد.
  • می‌داند که چگونه دنیای تار را هوشمندانه و با بهترین ابزارها جست‌وجو کنید (DDG)
  • به خواندن برگه‌های راهنما (man pages) رغبت دارد!
پیوندهای پیشنهادی:
فیلم‌های آموزشی
کتاب:

[۱] لینوکس یا گنو/لینوکس؟ پیشنهاد می‌شود مقالهٔ «چه چیزی درون یک نام نهفته است؟» را بخوانید.
« آخرین ویرایش: 21 اسفند 1394، 10:05 ب‌ظ توسط Hadron »

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر
آشنایی با خط فرمان لینوکس
« پاسخ #1 : 01 اردیبهشت 1390، 09:12 ب‌ظ »
پیش‌گفتار[۱]

امروزه محیط‌های گرافیکی این امکان را فراهم کرده‌اند که کارهایمان را بی‌نیاز از دانش اولیهٔ محیط‌های متنی انجام دهیم. رابط‌های گرافیکی زیادی برای توزیع‌های گنو/لینوکسی[۲] وجود دارد، مانند یونیتی[۳] ، گنوم (Gnome)، پلاسما (Plasma)، باجی (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

در زیر تصویری از ترمینال را مشاهده می‌کنید:



نکته‌ها:

- ترمینال (Terminal)، یک رابط گرافیکی برای شل (Shell) است. شل آن چیزی است که دستورات را تفسیر می‌کند (دستوری را از صفحه-کلید می‌گیرد و پاسخ مناسب را می‌دهد - اینجا و اینجا را بخوانید) و ترمینال برنامه‌ای emulator برای ارتباط با آن در یک محیط گرافیکی! است. هم‌چنین ممکن است واژهٔ console را شنیده/دیده باشید: پس اینجا را بخوانید.
- در خط فرمان کاربر عادی با نشانهٔ $ و کاربر ریشه (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
[۲] اگر هنوز نام گنو/لینوکس برایتان ابهام دارد، یک رایانامهٔ خالی به نشانی linux1@darsnameh.com بفرستید! در این تاپیک برای اختصار بعضا ممکن است از واژهٔ لینوکس به‌جای گنو/لینوکس استفاده شده است.
[۳] اگر با محیط گرفیکی اوبونتو هنوز آشنایی کافی ندارید، به ویدیوهای تارنمای http://playubuntu.github.io نگاهی بیاندازید.
« آخرین ویرایش: 02 فروردین 1395، 01:08 ب‌ظ توسط Hadron »

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر
کوتاه از چندین دستور خط فرمان
« پاسخ #2 : 01 اردیبهشت 1390، 09:21 ب‌ظ »
- در این پست مختصرا با چند دستور معمول آشنا خواهید شد.
- نسخهٔ پی‌دی‌اف این پست و پست پیشین پیوست شده است.
File & Directory Commands
(pwd, ls, cd, cp, mv, rm, rmdir, mkdir)

pwdprint name of working directory
دستور pwd به شما این امکان را می‌دهد که بدانید در کدام شاخه ‌(directory) قرار دارید. برای آشنایی با directoryهای لینوکس اینجا را ببینید.

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 اینجا را ببینید.

+ شکل‌های استفاده از دستور:
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 تازه است در کنار لاگینی که شما به محیط گرافیکی لینوکس خود داشته‌اید.
- اگر می‌خواهید تنها نام کاربری‌تان را ببینید، whoami را فرمان دهید و اگر می‌خواهید جزئیات ورود تنها خودتان را ببینید، who am i را فرمان بدهید. اگر 'who am i' را اجرا کردید، who mom likes را هم فرمان بدهید و خروجی را ببینید و همین‌طور: who f g

- دستور زیر جزئیات همهٔ ورودهای پیشین را نمایش می‌دهد:
who -H /var/log/wtmp
- برگه‌ی راهنمای دستور w را نیز ببینید: man w


catconcatenate
فرمان cat چند پرونده متنی را به دنبال هم می‌چسباند. کافی است پرونده‌ها را به‌دنبال هم فراخوانی کنید. گاهی اوقات از آن برای به هم چسباندن پرونده‌های آرشیوی چند تکه شده (مانند zipها) نیز استفاده می‌شود. اما 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، جنتو از portage استفاده می‌کنند و این لیست به همین موارد محدود نمی‌شود.
« آخرین ویرایش: 21 اسفند 1394، 10:36 ب‌ظ توسط Hadron »

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر
دستور sudo
« پاسخ #3 : 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 را برای راهنمایی بیش تر به کار گیرید. راهنمای مناسبی در این مورد را می‌توانید در این نشانی بیابید.

+ بیشتر بخوانید: https://help.ubuntu.com/community/RootSudo
++ راهنمای شخصی‌سازی تنظیمات sudo

exitcause the shell to exit
از دستور exit برای بستن پنجره‌ی ترمینال استفاده می‌شود. هم‌چنین اگر در ترمینال سطح کاربری خود را به root تغییر داده باشید، از exit برای بازگشت به سطح کاربر عادی استفاده می‌شود.
« آخرین ویرایش: 21 اسفند 1394، 10:41 ب‌ظ توسط Hadron »

آفلاین Aref.Ariyapour

  • Full Member
  • *
  • ارسال: 203
  • جنسیت : پسر
مشاهده اطلاعات کاملی در مورد CPU, Memory و ....
« پاسخ #4 : 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 هم واسه مشاهده اطلاعات یک فایل مثل یه فایل متنی تو ترمینال استفاده میشه. ایشالا یکی از دوستان یا خودم بعدن درمورد این دستور توضیحات کاملی رو میدیم.
موفق باشید
That's me in the corner
That's me in the spotlight, I'm
Losing my religion

آفلاین finaprp

  • High Hero Member
  • *
  • ارسال: 1031
  • جنسیت : پسر
  • Open your source, Open your mind
پاسخ به: راهنمای ترمینال اوبونتو
« پاسخ #5 : 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:47 ب‌ظ توسط finaprp »
بین نرم‌افزار open source و نرم‌افزارهای Free Software تفاوت در روش تبلیغ و گرایش‌های عرضه‌كنندگان آن‌ها نهفته است.
در واقع كاركرد شما به عنوان عرضه كننده نرم‌افزار تفاوتی نمی‌كند،



آفلاین finaprp

  • High Hero Member
  • *
  • ارسال: 1031
  • جنسیت : پسر
  • Open your source, Open your mind
پاسخ به: راهنمای ترمینال اوبونتو
« پاسخ #6 : 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
« آخرین ویرایش: 02 اردیبهشت 1390، 04:58 ب‌ظ توسط finaprp »
بین نرم‌افزار open source و نرم‌افزارهای Free Software تفاوت در روش تبلیغ و گرایش‌های عرضه‌كنندگان آن‌ها نهفته است.
در واقع كاركرد شما به عنوان عرضه كننده نرم‌افزار تفاوتی نمی‌كند،



آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر
دستور history؛ بخش یکم
« پاسخ #7 : 10 اردیبهشت 1390، 02:33 ب‌ظ »
توجه: متن زیر ترجمهٔ مقالهٔ "command-line-history-in-ubuntu-terminal" از تارنگار Chris Jean است.

historyThose who forget history, are doomed to repeat it by manual entry
BASH، کوتاه شدهٔ عبارت Bourne Again SHell، پوستهٔ پیش‌فرض خط فرمان اوبونتو و بسیاری دیگر از دیستروها  است (منظور از دیسترو، توزیع گنو/لینوکسی است. distro، کوتاه شدهٔ distribution است که عرفی شده). این آموزش بر پایهٔ BASH خواهد بود که ممکن است در سایر توزیع‌های گنو/لینوکسی یا دیگر محیط‌های کاری مانند 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، راهی ساده برای پیدا کردن آن دستور تنها با استفاده از بخشی از دستور است.
فرض کنیم که شما پیش‌تر دستوری [ابتکاری] اجرا کردید که همهٔ پرونده‌هایی را می‌یابد که در پوشهٔ 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، می‌توانید قدرتی زیادی به دست آورید. History در BASH، این امکان را فراهم می‌کند که شما دستورهای پیشین را با یک جست‌وجو و جایگزینی با استفاده از Regexها (کوتاه شده‌ٔ REGular EXpressions) [برای هدفی تازه] اجرا کنید.
مثالی را که پیش‌تر برای جست‌وجوی پرونده‌های pdf زده شد به یاد بیاورید. دستور را با تغییراتی  مجدد اجرا می‌کنیم. اکنون به جای جست‌وجوی Documents/~، پوشه‌ٔ ‎~/Downloads جست‌وجو می‌کنیم. دستور را به شکل زیر به‌کار می‌بریم:
!412:s|~/Documents|~/Downloads|
find /home/username/Downloads -type f | grep \.pdf$ | grep link | sort -r
/home/username/Downloads/Solution-manual_(Linear-Algebra).pdf
/home/username/Downloads/Manually_type_old_books.pdf
/home/username/Downloads/manual4algebra.pdf
/home/username/Downloads/abstract-algebra_(manual).pdf
توجه کنید که جست‌وجو و جایگزینی با افزودن  دستور ”|‎:s|find|replace“ به انتهای دستور history (در مثال بالا به انتهای ‎!412)انجام می‌شود. علامت “|” Pipe نامیده می‌شود. در اینجا از pipeها برای خواناتر شدن دستور استفاده شد. شما هم‌چنین می‌توانید این بخش از دستور را به این شکل به کار ببرید: ”/‎:s/find/replace“



  • پاک کردن تاریخچه‌ٔ دستورهای نشست کنونی: به طور پیش‌فرض آخرین دستورهایی که کاربر در خط فرمان وارد می‌کند، در فایل مخفی "‎.bash_history‎" ذخیره می‌شود. به هر دلیلی ممکن شما بخواهید که تاریخچه‌ٔ دستورهای پنجره‌ٔ ترمینال کنونی‌تان در ‎.bash_history‎‎‎ اندوخته نشود. دستور ”history -c“ را در ترمینال وارد کنید و سپس می‌توانید پنجره‌ٔ ترمینال را ببندید. برای پاک کردن همه تاریخچه، دستور زیر را اجرا کنید:
echo '' > ~/.bash_history
« آخرین ویرایش: 21 اسفند 1394، 10:45 ب‌ظ توسط Hadron »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور history
« پاسخ #8 : 11 اردیبهشت 1390، 03:56 ق‌ظ »



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

چند مثال دیگه تو منبع هست که نگفتم
« آخرین ویرایش: 19 مهر 1391، 01:55 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور cd
« پاسخ #9 : 11 اردیبهشت 1390، 05:39 ب‌ظ »



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

« آخرین ویرایش: 19 مهر 1391، 02:17 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور ls
« پاسخ #10 : 13 اردیبهشت 1390، 12:48 ق‌ظ »


دستور 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 رو زدین



معنی رنگ ها :
رنگ پیش فرض ترمینال =  فایل هایه معمولی (( در عکس بالا رنگ سفید رنگ پیش فرض ست ))
سبز= فایل هایه قابل اجرا ((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
« آخرین ویرایش: 19 مهر 1391، 02:22 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور rm rmdir cp mv
« پاسخ #11 : 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'

« آخرین ویرایش: 19 آذر 1391، 09:40 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور mkdir
« پاسخ #12 : 18 اردیبهشت 1390، 11:16 ب‌ظ »


دستور 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
« آخرین ویرایش: 23 مهر 1391، 02:34 ب‌ظ توسط alieblice »

آفلاین lsf

  • Full Member
  • *
  • ارسال: 120
  • جنسیت : پسر
  • GNU/Linux is User-Friendly,it's not Idiot friendly
یه دستور سرکاری دیگه هم هست(البته استفاده مفیدم میشه ازش کرد!!)
uname           و            uname -a

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

COPYLEFT ALL WRONGS RESERVED

There're Some Software Money can't buy for everything else there's Microsoft

آفلاین rezamosh

  • Newbie
  • *
  • ارسال: 5
دستور du
« پاسخ #14 : 20 اردیبهشت 1390، 09:56 ب‌ظ »



دستور 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 که بعدا به این پست منتقل شد.
« آخرین ویرایش: 20 مهر 1391، 05:20 ب‌ظ توسط rezamosh »