pdn tech-%20 the-linux-command-line

166
c The-Linux-Command-Line وده: محد) کار با پوستهکس وورات لینورسی دست مختصر به برند به صورت این مستshell می( پردازد. تاريخچه: ردیفویسنده ن تاریخه ویرایش شماروضیحات ت۱ فنی و مهندسی تیم۲۶ خرداد۹۲ ۱.۰.۰ ها دیگر نوشته کتاب وز مطالببی ا ترکی۲ فنی و مهندسی تیم۱۰ تیر۹۲ ۱.۱.۱ جدید به مستندی کردن بخشهایضافه ا۳ فنی و مهندسی تیم۱۱ تیر۹۲ ۱.۲.۰ ورات کامل دستوضیحاتضافه شدن تمل محتوا ا تغییر کا جدید وفهرست بندی۴ فنی و مهندسی تیم۱۵ تیر۹۲ ۱.۲.۱ جزئیش های ویرایوین تعلق دارد. پویش داده نندسی شبکه شرکت مه مستند به این معنویق مادی و کلیه حقونع است .ع بل ماا ذکر منب بستفاده مطالب ا

Upload: pdnsoftco

Post on 14-Jan-2017

369 views

Category:

Engineering


0 download

TRANSCRIPT

c

The-Linux-Command-Line

محدوده:پردازد. ) میshellاین مستند به صورت مختصر به بررسی دستورات لینوکس و کار با پوسته (

:تاريخچهتوضیحاتشماره ویرایشتاریخنویسندهردیف

ترکیبی از مطالب کتاب و دیگر نوشته ها۹۲۱.۰.۰ خرداد ۲۶تیم فنی و مهندسی۱

اضافه کردن بخش هایی جدید به مستند۹۲۱.۱.۱ تیر ۱۰تیم فنی و مهندسی۲

۹۲۱.۲.۰ تیر ۱۱تیم فنی و مهندسی۳ تغییر کامل محتوا اضافه شدن توضیحات کامل دستورات

وفهرست بندی جدید

ویرایش های جزئی ۹۲۱.۲.۱ تیر۱۵تیم فنی و مهندسی۴

کلیه حقوق مادی و معنوی این مستند به شرکت مهندسی شبکه پویش داده نوین تعلق دارد.استفاده مطالب با ذکر منبع بل مانع است .

فهرست مندرجات۹.......................................................................................................................................................................................................- چکیده

۹.....................................................................................................................................................................................................- مقدمه۱۹................................................................................................................................................................... بخش اولBash- آشنایی با ۲

۱۱..............................................................................................................................................- لینوکس چگونه دستور ها را اجرا می کند ؟۲.۱۱۱......................................................................................................................... و نماد ها )cd بخش دوم ( دستور Bash- آشنایی با ۳۱۴.....................................................................................................................................- چگونه در لینوکس دستور ها را پیدا کنیم ؟۴

man ..............................................................................................................................................................................................................۱۴- دستور ۴.۱.۱apropos .....................................................................................................................................................................................................۱۴- دستور ۴.۱.۲

۱۵....................................................................................................................................................................... ها Alias- نام های مستعار یا ۴.۲۱۵................................................................................................................................................................................. ها Function- توابع یا ۴.۳compgen ........................................................................................................................................................................................۱۶- دستور ۴.۴Alias .......................................................................................................................................................................۱۷- نامهای مستعار الیاس ۴.۵

۱۹..................................................................................................................................................- دستورات به زبان فارسی با توضیح ۵۱۹............................................................................................................................................................................................- اطلعات سیستم۵.۱

uptime,w,who )...........................................................................................................۱۹- فهرست کاربرن وارد شده به سیستم ( دستور های ۵.۱.۱۲۳............................................................................................................................................................................- جدول دستورات اطلعات سیستم۵.۱.۲

۲۴........................................................................................................................................- خاموش کردن و راه اندازی مجدد یک سیستم ۵.۲poweroff...............................................................................................................................................................۲۴ و reboot, halt- دستور های ۵.۲.۱۲۶......................................................................................................................................................- چگونه یک ماشین را از راه دور خاموش کنیم؟۵.۲.۲۲۷...................................................................................................................................................- خاموش کردن و راه اندازی مجدد یک سیستم ۵.۲.۳

۲۷...............................................................................................................................................................................- فایل ها و دایرکتوری ها۵.۳dot symbol ..........................................................................................................................................................................................۲۸- نماد نقطه ۵.۳.۱۲۸...............................................................................................................................................................................................................- نماد دو نقطه۵.۳.۲۲۹........................................................................................................................................................................................................................~ - ن]م]اد ۵.۳.۳۲۹........................................................................................................................................................................................................................–- ن]م]اد ۵.۳.۴و] ۵.۳.۵$ ۲۹..................................................................................................................................................................................................................# - ن]م]اد و] ۵.۳.۶ < - ن]م]اد <................................................................................................................................................................................................................۲۹۳۰...........................................................................................................................................................................................................................|- ن]م]اد ۵.۳.۷۳۰................................................................................................................................................................- جدول دستورات فایل ها و دایرکتوری ها۵.۳.۸

find.................................................................................................................................................................۳۲- جستجوی فایل ها با دستور ۵.۴name -..........................................................................................................................................................................................................۳۲- سوئیچ ۵.۴.۱type- ............................................................................................................................................................................................................۳۳- سوئیج ۵.۴.۲

۲

size-..............................................................................................................................................................................................................۳۴- سوئیچ ۵.۴.۳not- ..............................................................................................................................................................................................................۳۵- سوئیج ۵.۴.۴maxdepth- ................................................................................................................................................................................................۳۵- سوئیچ ۵.۴.۵exec-.............................................................................................................................................................................................................۳۶- سوئیچ ۵.۴.۶find..............................................................................................................................................۳۶- جدول دستورات جستجوی فایل ها با دستور ۵.۴.۷

۳۸................................................................................................................................................................- نصب و استقرار یک فایل سیستم۵.۵lsof ..............................................................................................................................................................................................................۳۸- دستور ۵.۵.۱lsof :............................................................................................................................................................................................۴۰- استفاده از دستور ۵.۵.۲fuser..............................................................................................................................................................................................................۴۲- دستور ۵.۵.۳۵.۵.۴ -Mount۴۵...................................................................................................................................................................................... کردن در لینوکسumount........................................................................................................................................................................................................۴۹- دستور ۵.۵.۵۵۲................................................................................................................................................................................ کردن Unmount- رفع مشکل ۵.۵.۶۵.۵.۷ -mount کردن فایل های image) بصورت محلی locally۵۳..........................................................................................................) در لینوکس۵۵............................................................................................................................... نصب و استقرار یک فایل سیستمmount- جدول دستورات ۵.۵.۸

۵۶...................................................................................................................................................................................- فضای دیسک سخت ۵.۶du...................................................................................................................................................................................................................۵۶- دستور ۵.۶.۱۵۹.....................................................................................................................................................................- جدول دستورات فضای دیسک سخت۵.۶.۲

۶۰..........................................................................................................................................................................................- کاربرها و گروه ها۵.۷۶۰..................................................................................................................................................................- آشنایی با مدیریت کاربران در لینوکس۵.۷.۱۶۰.......................................................................................................................................................................................................- اطلعات کاربری ۵.۷.۲۶۱....................................................................................................................................................................................................- متغیر های محیطی ۵.۷.۳۶۳..........................................................- متغیر های محلی هر کاربر لینوکسی و همچنین دسته بندی کردن کاربران در غالب گروه یا گروه ها۵.۷.۴۶۳..................................................................................................................................................................- ایجاد یک حساب کاربری(اکانت)جدید:۵.۷.۵۶۵.............................................................................................................................................................................- تعیین پسورد برای اکانت جدید :۵.۷.۶۶۷..............................................................................................................................................................................................................- حذف کاربر :۵.۷.۷۶۷................................................................................................................................................................................- تغییر اطلعات اکانت کاربران :۵.۷.۸۶۸......................................................................................................................................................................................................- مدیریت گروه ها :۵.۷.۹

۷۰.................................................................................................................................................................................- مدیریت گروه ها در لینوکس۵.۷.۱۰۷۰................................................................................................................................................................................................................- ایجاد گروه۵.۷.۱۱۷۱...........................................................................................................................................................................................- نمایش گروه های عضو۵.۷.۱۲۷۲...............................................................................................................................................................................................................- حذف گروه۵.۷.۱۳۷۲................................................................................................................................................................................................- تغییر اطلعات گروه۵.۷.۱۴۷۲.............................................................................................................................................................................................- افزودن کاربر به گروه۵.۷.۱۵۷۳.......................................................................................................................................................................- جدول دستورات کاربرها و گروه ها۵.۷.۱۶

chmod................................................................................................................................................................۷۴ و chown- مجوز فایل ها ۵.۸۷۵.................................................................................................................................................................................- جدول دستورات مجوز فایل ها۵.۸.۱

۳

۷۷....................................................................................................................................................- جدول اعمال مشخصات ویژه بروی فایل۵.۹۷۸........................................................................................................................................................................- فایل های فشرده و بایگانی۵.۱۰

tar.....................................................................................................................................................................۷۸- آرشیو و فشرده سازی با دستور ۵.۱۰.۱۷۹.................................................................................................................................................................................................................- ایجاد فایل۵.۱۰.۲۷۹...........................................................................................................................................................................................................- استخراج فایل۵.۱۰.۳۷۹..................................................................................................................................................................................- فهرست کردن محتوای فایل۵.۱۰.۴zip..............................................................................................................................................................۸۱- فشرده سازی فایل/دایرکتوری ها با ۵.۱۰.۵zip..................................................................................................................................................................................۸۱- فشرده سازی فایل ها با ۵.۱۰.۶zip ,gz ,rar , tar.bz2.....................................................................................................................۸۴- جدول دستورات فشرده سازی و بایگانی ۵.۱۰.۷

Red Hat ).................................................................................................................۸۶ ( فدورا و توزیع های مبتنی بر RPM- بسته های ۵.۱۱۸۶..................................................................................................................................................................................- انواع بسته های نرم افزاری :۵.۱۱.۱۸۸..................................................................................................................................................................................................- نصب انواع مختلف۵.۱۱.۲۸۸............................................................................................................................................................... چیست ؟Dependencies- وابستگی یا ۵.۱۱.۳۸۹................................................................................................................................................................................- نیاز نصب از مخازن چیست؟۵.۱۱.۴۸۹...........................................................................................................................................................................- راه حل مشکل اینترنت چیست؟۵.۱۱.۵rpm...............................................................................................................................................................۹۰- جدول دستورات نصب بسته های ۵.۱۱.۶

Red Hat )................................................................................................................۹۲ ( فدورا و توزیع های مبتنی بر YUM- ابزار نصب ۵.۱۲۹۲...................................................................................................................................................................................................- نصب از کد منبع :۵.۱۲.۱۹۳.......................................................................................................................................................................... در لینوکس :gcc- نصب کامپایلر ۵.۱۲.۲۹۴.................................................................................................................................................- حذف بسته نرم افزاری نصب شده از کد منبع :۵.۱۲.۳Binary........................................................................................................۹۵ و باینری Source Code- نصب دو فرمت دو فرمت کد منبع ۵.۱۲.۴rpm :.........................................................................................................................................................................................۹۵- نصب بسته های ۵.۱۲.۵۹۶...............................................................................................................- برای حذف بسته ای که نصب کرده اید از دستور زیر استفاده کنید.۵.۱۲.۶Red Hat )....................................................................................................۹۸ ( فدورا و توزیع های مبتنی بر YUM- جدول دستورات نصب ۵.۱۲.۷

۹۹.........................................................................................................................................- جدول دستورات مشاهده ی محتویات فایل ۵.۱۳۱۰۰......................................................................................................................................- جدول دستورات آنالیز و تعمیر فایل سیستم ۵.۱۴swap ...................................................................................................................................................۱۰۱- جدول دستورات فایل سیستم ۵.۱۵۱۰۱........................................................................................................................................................................................- گرفتن پشتیبان۵.۱۶

۵.۱۶.۱ -dd ۱۰۱......................................................................................... دستوری برای تبدیل و کپی یک فایل به اندازه تعیین شده با پیوست کامل۱۰۱................................................................................................................................. بصورن زیر هستند :dd های متداول option- سوئیچ یا ۵.۱۶.۲۱۰۲.............................................................................................................................................................................................................- کاربرد ها :۵.۱۶.۳۵.۱۶.۴ -Rsync..................................................................................................................................................................................................................۱۰۳۵.۱۶.۵ -scp ۱۰۵........................................................................................................................................................... برای کپی کردن فایل با امنیت بال۵.۱۶.۶ -Rsync server....................................................................................................................................................................................................۱۰۶۱۰۶.................................................................................................................................................................................................- نصب و پیکربندی۵.۱۶.۷۱۱۲...................................................................................................................................................................................- رابط های گرافیکی کاربری۵.۱۶.۸

۴

back up )...................................................................................................................................................۱۱۳- جدول دستورات گرفتن پشتیبان(۵.۱۶.۹cd..........................................................................................................................................۱۱۵ بر روی iso و ساخت cd از iso- گرفتن ۵.۱۷WiFi ...........................................................................................................................................................۱۱۵ و Lan- دستورات شبکه ۵.۱۸

ifconfig .................................................................................................................................................................................................۱۱۵- دستور ۵.۱۸.۱ifdown :...........................................................................................................................................................................۱۱۷ و ifup- دستور های ۵.۱۸.۲route........................................................................................................................................................................................................۱۱۸- دستور ۵.۱۸.۳Static Route ........................................................................................................................................................................................۱۲۲- نوشتن ۵.۱۸.۴RedHat....................................................................................................................۱۲۶ های شبکه (کارت های اترنت) در Interface- تنظیم ۵.۱۸.۵۱۲۹......................................................................................................................................................................................- جدول دستورات شبکه ۵.۱۸.۶

۵.۱۹ -Iptables( فایروال ) ..............................................................................................................................................................................۱۳۱۱۳۲...........................................................................................................................................................................- فعال و غیر فعال کردن فایروال۵.۱۹.۱۵.۱۹.۲ -iptables و چگونگی استفاده از دستور iptables ..........................................................................................................................................۱۳۵nat.......................................................................................................................................................................................۱۳۶- زنجیره های جدول ۵.۱۹.۳mangle..............................................................................................................................................................................۱۳۶- زنجیره های جدول ۵.۱۹.۴۱۳۷...........................................................................................................................................................................................- سوئیچ های پراستفاده۵.۱۹.۵iptable ................................................................................................................................................................................۱۳۸- جدول دستورات ۵.۱۹.۶

۱۳۹..............................................................................................................................................- جدول دستورات نظارت و اشکال زدائی۵.۲۰۱۴۰......................................................................................................................................................................................- دستوراتی دیگر ۵.۲۱

۶ -crontab۱۴۱................................................................................................................... برنامه ای برای زمانبدی کارها در لینوکسVI....................................................................................................................................................................۱۴۵- دستورات ویراشگر ۷

۱۴۶.............................................................................................................................................................- ورود به ویرایشگر و خروج از آن۷.۱۱۴۷................................................................................................................................... آخرین تغییراتsave- خروج از ویرایشگر بدون ۷.۲vi...........................................................................................................................................................................۱۴۷- جمع بندی دستورات ۷.۳۱۴۸..............................................................................................................................................................................- حرکت در داخل فایل۷.۴۷.۵ -cut۱۴۹....................................................................................................................................................... یا حذف کردن یک یا چند خط۷.۶ -paste کردن محتوا و undo۱۴۹......................................................................................................................................... نمودن تغییرات۷.۷ -cut یا حذف کردن باقیمانده خط ، از نقطه فعلی cursor....................................................................................................................۱۴۹۱۵۰............................................................................................................................... و تفاوتهای آنInsert- راههای مختلف ورود به مد ۷.۸۱۵۱................................................................................................................................................................- پرش به نقاط مختلف یک خط۷.۹

vi.......................................................................................................................................................................۱۵۵- جدول کلیه دستورات ۷.۱۰۱۵۹..................................................................................................................................................................................................- منابع۸

فهرست تصاوير۵

uptime.....................................................................................................................................................................................۲۰: ۱تصویر w...................................................................................................................................................................................۲۰: دستور ۲تصویر lsof | less................................................................................................................................................................................۳۹: ۳تصویر lsof............................................................................................................................................................۴۰ دستور FD: ستون ۴تصویر ps | grep 4616 | grep -v grep............................................................................................................................................۴۳: ۵تصویر fuser -v –n udp 53..............................................................................................................................................................۴۴: ۶تصویر cd /mnt/NAS.........................................................................................................................................................................۵۱: ۷تصویر umount /mnt/NAS..............................................................................................................................................................۵۱: ۸تصویر lsof /opt2................................................................................................................................................................................۵۲: ۹تصویر fuser.....................................................................................................................................................................................۵۳: ۱۰تصویر mount...................................................................................................................................................................................۵۵: ۱۱تصویر groups..................................................................................................................................................................................۷۰: ۱۲تصویر groupadd GROUP_NAME..........................................................................................................................................۷۱: ۱۳تصویر groupadd -g GID_NUMBER GROUP_NAME....................................................................................................۷۱: ۱۴تصویر The GNOME view for Back In Time Application.............................................................................................۱۱۳: ۱۵تصویر route..................................................................................................................................................................................۱۱۸: ۱۶تصویر route..................................................................................................................................................................................۱۲۰: ۱۷تصویر ۱۲۴.........................................................................................................................................................................: تعریف روتر۱۸تصویر less /etc/sysconfig/iptables.........................................................................................................................................۱۳۴: ۱۹تصویر iptables -L INPUT -t filter.........................................................................................................................................۱۳۷: ۲۰تصویر crontab -e.........................................................................................................................................................................۱۴۳: ۲۱تصویر back up with corntab...................................................................................................................................................۱۴۳: ۲۲تصویر back up with corntab...................................................................................................................................................۱۴۴: ۲۳تصویر back up with corntab...................................................................................................................................................۱۴۴: ۲۴تصویر back up with corntab...................................................................................................................................................۱۴۴: ۲۵تصویر back up wih corntab....................................................................................................................................................۱۴۵: ۲۶تصویر

فهرست جداول۲۳..........................................................................................................................................: جدول دستورات اطلعات سیستم ۱جدول

۶

۲۷...................................................................................................................: خاموش کردن و راه اندازی مجدد یک سیستم ۲جدول ۳۰...........................................................................................................................................................: فایل ها و دایرکتوری ها۳جدول find............................................................................................................................................۳۶: جستجوی فایل ها با دستور ۴جدول ۵۵............................................................................................................................ نصب و استقرار یک فایل سیستمmount: ۵جدول ۵۹................................................................................................................................................................: فضای دیسک سخت۶جدول ۷۳....................................................................................................................................................................: کاربرها و گروه ها۷جدول ۷۵............................................................................................................................................................................: مجوز فایل ها۸جدول ۷۷............................................................................................................................................: اعمال مشخصات ویژه بروی فایل۹جدول zip ,gz ,rar , tar.bz2.................................................................................................................۸۴: فشرده سازی و بایگانی ۱۰جدول rpm............................................................................................................................................................۹۰: نصب بسته های ۱۱جدول Red Hat )...........................................................................................۹۸ ( فدورا و توزیع های مبتنی بر YUM: ابزار نصب ۱۲جدول ۹۹.....................................................................................................................................................: مشاهده ی محتویات فایل۱۳جدول ۱۰۰.................................................................................................................................................: آنالیز و تعمیر فایل سیستم۱۴جدول swap..............................................................................................................................................................۱۰۱: فایل سیستم ۱۵جدول rsyncd.conf........................................................................................................................................۱۰۸: پارامتر های فایل ۱۶جدول back up )................................................................................................................................................۱۱۳: گرفتن پشتیبان(۱۷جدول iso...........................................................................................................................................................................۱۱۵: ساخت ۱۸جدول WiFi ).....................................................................................................................................۱۲۹ و Lan: دستورات شبکه ( ۱۹جدول ۱۳۸.................................................................................................................................................... ( دیوار آتش )Iptables: ۲۰جدول ۱۳۹.......................................................................................................................................................: نظارت و اشکال زدایی ۲۱جدول ۱۴۰...................................................................................................................................................................: دستوراتی دیگر۲۲جدول Crontab options.............................................................................................................................................................۱۴۵: ۲۳جدول ۱۴۸.....................................................................................................................................................: جمع بندی دستورات بال۲۴جدول vi..............................................................................................................................................۱۵۵: کلیه دستورات ویرایشگر ۲۵جدول

فهرست ضمائمdd..........................................................................................................................................................۱۶۰جدول مرجع کامل دستورات

File systems ........................................................................................................................................................................................۱۶۰Backup and system-related..............................................................................................................................................................۱۶۱

Text manipulation.............................................................................................................................................................................۱۶۶

۷

۱۶۶..................................................................................................................................................خلصه دستورات در قالب یک تصویر

۸

چکیده

) میپردازد .shellاین مستند به صورت مختصر به بررسی دستورات لینوکس و کار با پوسته (

مقدمه۱

با توجه نیاز اعلم شده از سوی دوستان/همکاران/کارفرمایان محترم به منظور برخوردار بودن از مستندی کام]]ل و جامع برای یادگیری سریع و آسان دستورات سیستم عامل لینوکس به زبان فارسی بر آن شدیم تا ب]]ا گ]]رد آوری

این مستند پاسخی مناسب به این نیاز مهم را ارایه داده باشیم. هدف گردآوری و دسته بندی مناسب مطالب، به شیوه ای است که خواننده به روشی هدایت شده و آسان ق]]ادر

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

س]]ایت هایمورد استفاده قرار گیرد .طی این مستند نه تنها با مطالب بسیار جذاب و زیادی آشنا میگردی]]د بلک]]ه ب]]ا استفاده گردیده است، نیز آشنا میگردید ک]]ه ج]]ا دارد ازآن هاایرانی و خارجی مفیدی، که در تهیه مستند از مطالب

قدردانی کنیم.سایت هازحمات پدید آوردگان این لزم به ذکر است در هر قست دستورات و مفاهیم اصلی با شرح مبسوط ذکر گردیده ان]]د و م]]وارد تکمیل]]ی در

قالب جداول دستورات عرضه شده است.

بخش اولBashآشنايی با ۲

لینوکس شامل بسیاری دستور است.خط فرمان لینوکس و دستور های قابلیت کنترل کامل بر سیس]]تم را دارن]]د. ها و همچنین اسکریپت ها گسترشFunction ها و توابع یا Aliasدستور ها را می توان در قالب نام های مستعار یا

۹

داد و آنها را به گونه دیگری استفاده کرد.Bash یکی از چندین پوسته لینوکس است که دستورها را اجرا می کند. وظیف پوسته یا Shellدریافت دستور ها

و تفسیر آنها توسط هسته سیستم عامل می باشد یعنی پوسته واسطی میان کاربر و سیستم عامل است.ویژگ]]ی ه]]ایی که در زیر بیان می شوند میان تمام پوسته های لینوکسی یکسان هستند :دستور های لینوکس به ک]]وچکی حس]]اس

را بنویسید قابل قبول نیستند.Ls یا LS قابل قبول است ولی اگر lsهستند.یعنی در لینوکس دستور .می شودهر دستور از سه بخش بصورت زیر برای اجرا شدن تشکیل تشکیل

cmd -options Arg

) خود دستور است .cmd) commandکه در آن options و یا با یک فاصله از خود دس]]تور ج]]دا م]]ی ش]]وند امکان]]ات بیش]]تر ی]امی آید– یک آن ها ها که ابتدای

بطور عادی فقط فایل های غیر پنه]]ان را لیس]]تlsجزئیاتی بیششتر از دستور را نشان می دهند. مانند اینکه دستور - فایل های مخفی را نیز نشان می دهد.a یا گزینه optionمی کند اما با

ی]ا بص]ورت قاب]]ل درک ی]اls در مث]]ال دس]تور aگزینه های به دو صورت هستند: یا خلصه شده هس]]تند مانن]]د Human Readable برای کاربر که در مثال دستور ls گزینه a مخفف allکاربر راحتر درک می می باشد که برای

شود. هاoption قبل از dash دوعلمت dash بصورت زیر است یعنی به جای یک علمت فرمت گزینه های قابل درک

می آید- - help

Argمخفف آرگومان است که با توجه به خود دستور می تواند نام و یا مسیر یک فایل یا دایرکتوری یا حتی یک دستور دیگر و یا همچنین یک متغر باشد.بطور مثال می میخواهیم تمام محتویات یک دایرکتوری به مسیر

/home/ehsan/mydir

را نشان دهیم. در این مثال مسیر /home/ehsan/mydir

۱۰

خواهد بود.lsبعنوان آرگومان دستور

لینوکس چگونه دستور ها را اجرا می کند ؟۲.۱

PATH مدیریت کاربران در لینوکس و همچنین آشنایی با کاربر ریشه در لینوکس را بخوانید تا با متغی]]ر با باید

آشنا شوید. مربوط ب]]ه ک]]اربری ک]]هPATHوقتی شما دستوری را در خط فرمان اجرا می کنید ابتدا لینوکس محتوای متغیر

دستور را اجرا کرده را بررسی می کند. این متغیر برای هر کاربر دارای مقدار خاص همان کاربر است و ممکن است برای چندین کاربر یا برای همگی یکی باشد اما محتوای آن چیزی جز مسیر های منتهی ب]]ه دایرکت]]وری ه]]ایی ک]]ه شامل دستور ها هستند نمی باشد.هر دایرکتوری با یک علمت : از دیگری جدا شده است.یک نمونه از خروج]]ی آن

در خ]]ط دوم از دوEhsan در خط اول و یک نمونه از خروجی برای یک کاربر معمولی در ب]]ه ن]امrootبرای کاربر خط زیر آمده است.

PATHپس از بررسی این متغیر لینوکس می فهمد که آیا دستوری که اجرا کردید در مسیر هایی که در متغی]]ر

می دهد و این به آن معنی نیست کهCommand not foundشما وجود دارد یا نه ؟ اگر وجود نداست یک پیغام شما وجود ندارد.اما شاید ه]]م اص]]لنPATHاصلن این دستور وجود ندارد یا نصب نیست بلکه در مسیر های متغیر

بطور کلی هنوز این دستور در سیسستم نصب نشده باشد که شاید با نصب در جایی که شامل یک]]ی از مس]]یر ه]]ایPATHشما نصب شود و پس از نصب شما بتوانید آنرا اجرا کنید. اما دلیل دیگری هم برای عدم اجرا وجود دارد و

آن نداشتن مجوز اجرایی است.

و نماد ها )cd بخش دوم ( دستور Bashآشنايی با ۳

cd مخفف Change Directoryیکی از پرکابردترین دستور هایی است که در طول استفاده شما از سیستم بک]]ار برده می شود.از این دستور برای پیمایش در سطح سیستم فایل لینوکس در خط فرمان استفاده می شود.

cd: دستوریست بدون گزینه و برای پیمایش سیستم فایل بکار می رود. روش استفاده آن بصورت زیر است ۱۱

cd /path/to/directory

یکسری از نماد های تعریف شده در سیتم های یونیکسی وجود دارند که می توان برای راحتی کار، آنها را بج]]ایمسیر، بکار برد. این نماد ها بصورت زیر هستند :

dotنماد نقطه • symbol) نشان دهنده دایرکتوری جاری اس]]ت.دایرکت]]وری. : در خط فرمان یک نقطه تنها ( جاری دایرکتوری است که در حال حاضر درون آن هستیم به این دایرکتوری، دایرکت]]وری ک]]اری نی]]ز م]]ی

وجود دارد که با اجرای آن دایرکتوری جاری در خط فرمانPrint Work Directory یا pwdگویند.دستور گری ب]]ه دایرکت]]وری ج]اری منتق]]لنسان داده می شود.بطور مثال وقتی می خواهید یک فایل را از مسیر دی

کنید بجای اینکه مسیر دایرکتوری جاری را بنویسید کافیست بصورت زیر عمل کنید :cp /source/path/filename .

نماد دو نقطه : در خط فرمان دو نقطه نشان دهنده دایرکتوری وال]]د{، دایرکت]]وری ج]]اری اس]]ت. ب]]ا اج]]رای• شما بجای نوشتن مسیر دایرکتوری والد،یکباره به آن منتقل می شوید.cdدستور ..

من cd /home/ehsan به معنی دایرکتوری خانگی شماست و بجای نوشتن~ در خط فرمان نماد ~ : نماد • cd~ بنویس]]م می توانم

–ن]م]اد : ن]م]اد یا • –dash وقتی جلوی دستور cd می آید یعن]]ی ش]]بیه س]]ازی back/forwardدر مرورگ]]ر های گرافیکی سیستم فایل. فرض کنید شما در حال حاضر در دایرکتوری

/dir1/dir2/

به دایرکتوری cd هستید و سپس با دستور /dir3/dir4

می روید حال می خواهید دوباره به دایرکتوری /dir1/dir2

بروید بجای نوشتن دستور ۱۲

cd /dir1/dir2

به دایرکتوری می خواهیداگر /dir3/dir4

را اجرا کنید.cd بروید دوباره کافیست دستور - م]]ی ش]]ود.پ]]س درHidden : نماد نفطه اگر در ابندای هر فایلی بیاد آن فای]]ل مخف]]ی ی]]ا dotنماد نقطه یا •

filename الزامی است که آنرا در ابندای نام فایل بیاورید.فرض کنید فایل cdپیمایش خط فرمان با دستور

مخفی است پس برای پیمایش باید دستور زیر را استفاده کنید :cd /path/to/.filename

وقتی شما با یک کاربر معمولی پنجره خط فرمان یا ترمینال مجازی را باز می کنید جلوی خط$ : و # نماد •نشان داد# هستید نماد root نشان داده می شود ولی وقتی با کاربر$ علمت Command Prompt اعلن

.بکار می رود echo برای تعریف و چاپ مقدار متغیر های محلی با دستور$ : نماد (به ورودی یک دستور) Standard Output( برای ارسال خروجی یک دستور< نماد < : و > نماد •

Standard Input (برای ارسال ورودی به یک دستور بکار می رود> نماد . بکار می رود.

ls -l > filedir

cat < filedir

را اجرا می کند و سپس خرجیش را بجای اینکه در نمایشگر چاپ کند بصورت ورودی درls -lدستور اول ابتدا می دهد.catیک فایل ذخیره می کتد. دستور دوم هم محتوای آن فایل را بعنوان ورودی به دستور

: ا]ین] ن]م]اد مع]]رف معنی است که نتیجه اج]]رای ی]]کن به ایPiping یا لوله کشی استو مفهوم Piping| ن]م]اد دستور را به یک دستور دیگر بدهیم. یعنی نتیجه دستور اول بعنوان آرگومان ورودی دستور دوم و ….

ls -l | wc -l

lsدر دستور بال ابتدا دستور -lاجرا شده و نتیجه آن یعنی فهرست دایرکتوری ها و فای]]ل ه]]ا بعن]]وان پ]]ارامتر ۱۳

بکار می رود.wc -lدستور

چگونه در لینوکس دستور ها را پیدا کنیم ؟۴

یکی از مزیت های لینوکس این است که شما نیاز به اینترنت یا کتاب برای یادگرفتن لینوکس ندارید چ]]ون ه]]ر آنچه که بخواهید در خود لینوکس وجود دارد مانند مستندات عالی و کاملی که وج]]ود دارن]]د.در ادام]]ه ب]]ا چن]]دین

روش یافتن دستور ها آشنا خواهیم شد.

manدستور ۴.۱.۱

ممکن است ای]]ن دس]]تور بس]]یارmanبدست آوردن اطلعات در مورد دستورهای مختلف در لینوکس با دستور در اختیار شما قرار میدهد .آن هاکاربرد و اطلعات کاملی از یک دستور همراه با سویچ ها و و توضیحات

و چه سویچ هایی دارد می دهدبرای مثال می خواهید بدانید یک دستور چه کاری انجام man cd

را نشان می دهد .cdدستور بال اطلعات کامل دستور man -k : .بدست آوردن اطلعات در مورد دستوری که نام آن را نمی دانید ولی عملکرد آن را می دانیدman -f : .شرح مختصری در مورد دستوری که کاربرد آن را نمی دانید ولی نام آن را می دانید

man -u بروز رسانی بانک اطلعاتی دستور : man بهتر است قبل از استفاده از دستور ،man این دستور را ب]]ه کار ببریم.

aproposدستور ۴.۱.۲

را بر اساس یک کلمه که شما بعنوان آرگومان به آن می دهید جستجوwhatisاین دستور یک پایگاه داده به نام می کند و بر اساس آن کلمه خروجی هایی مطابق با آنرا روی خروجی چاپ می کند.فرض کنید دستور زیر را ب]]رای۱۴

پایگاه داده را جستجو کرده و هرapropos وجود دارد اجرا کنید. دستور userیافتن هر آنچه در سیستم برای کلمه باشد را نشان می دهد.userآنچه که درباره

apropos user

منظور از نوع دستور ها این است که اگر ما فرض کنیم هر چیزی که برای اجرا در خ]]ط فرم]]ان م]]ی نویس]]یم و را می زنیم به چند دسته تقسیم می شوند :Enterسپس

دستور ها برنامه های باینری هستند که بطور معمول در مسیر هایی مانند دستور ها : / /usr bin

و یا / / usr sbin

-Built تفسیم می شوند. دستور های Built-in و غیر Bash یا درونی Built-inوجود دارند. دستور ها به دو دسته

in توسط خود Bashکنترل می شوند و وقتی شما آنها را اجرا می کنید والد یا پدید آورن]]ده آنه]]ا خ]]ود دس]]تور ی]]ا . خواهد بودbashفرایند

ها Aliasنام های مستعار يا ۴.۲

های زیادی بنویسید و سپس اجرا کنی]]دoptionبرخی از دستور ها را که می خواهید اجرا کنید باید آنرا به همرا که هر بار که اجرا می کنید کسل کننده و خسته کننده هستند. نام های مستعار این کار را برای شما ساده کرده اند. با نام های مستعا شما به آن دستور و گزینه هایش که چندین حرف را شامل م]]ش ون]]د فق]]ط ی]]ک کلم]]ه کوچ]]ک

ه]]اAliasاختصاص می دهید تا از این پس انجام آن دستور و گزینه هایش سلده شود.در پست های بعدی درب]]اره صحبت می کنم.

ها Functionتوابع يا ۴.۳

شما چندین دستور و دیگر بخش ها را در غالب یک نام گرداوری می کنید که این دس]]تور ه]]ا و دیگ]]ر اج]]زا ب]]ا

۱۵

یکدیگر در ارتباط هستند و همگی برای انجام یک کار خاص یا بهتر بگویم یک خروجی باهم کار می کنند.اسکریپت ها :

اسکریپت یک فایل است که چندین دستور یا در غالب یک تابع یا حتی بدون یک تابع باهم کار می کنند. دستورها از بال به پایین نوشته شده و به ترتیب بال به پایین اجرا می شوند.

compgenدستور ۴.۴

این دستور با دستور قبلی متفاوت است. اساس کار این دستور این است که دستور ها را بر اساس نوعش]]ان رویخروجی بیاورد.

Option: های آن بصورت زیر هستند •c با این : -option.تمام دستور های درون سیستم نشان داده خواهد شد

compgen -c | less

•a.تمام نام های مستعا را نشان می دهد : -•k کلمات کلید یا : -Keyword.ها را نشان می دهد •b تمام دستور های : -built-in.را نشان می دهد •A.تمام توابع را نشان می دهد : -

compgen -A function

حالت کلی آن بصورت زیر است که تمام انواع را نشان خواهد داد.compgen -abckA function | less

یک ترفند ساده :شماچه تعداد دستور را می توانید در سیستم اجرا کنید :

compgen -c | wc -l

۱۶

Aliasنامهای مستعار الیاس ۴.۵

نام های مستعار یک دستور بلند را که مکرر اجرا می کنید را در قالب یک دستور کوچک خلصه م]]ی کن]د. ف]رضpsکنید شما باید هر چند لحظه یکبار کارایی فرایند های سیستم را با دستور -auxچک کنید اما شاید نخواهد ای]]ن

ها استفاده کنید.Aliasدستور را تکرار کنید پس بهتر است از نام های مستعار یا ها بصورت زیر هستند.Alias ها استفاده می شود. فرمت کلی Alias برای تعریف aliasاز دستور

alias alias_name=cmd

دستور دلخ]]واه را ق]]رار دهی]]د. خاص]]یتcmd نام دلخواه معادل دستور زا قرار دهید و بجای alias_nameبجای alias ها ماندگار نیستند و با بستن پنجره خط فرمان یا حتی با گشودن یک برگه یا Tabجدید در همان پنجره خط

ذخی]]ره کنی]]م.فای]]لbashrcفرمان از بین می روند برای آنکه این تاثیر ماندگار باشد بهتر اس]]ت آنه]]ا را در فای]]ل bashrcبا هربار ورود به سیستم خوانده می شود پس بهترین مکان برای ذخیره سازی نام های مستعار همین فای]]ل

است. این فایل در دو جا ذخیره می شود : یکی در دایرکتوری خانگی همه کاربران که اثر آن فقط ب]]ر هم]]ان ک]]اربر تعری]]فalias/ که اثرش برتمام کاربرن و کل سیستم است.پس اگر می خواهید etcاست و یکی هم در دایزکتوری

دایرکتوری خانگی خودتان ذخیره کنید.(این فایل پنهانbashrcشده فقط برای خودتان اثر داشته باشد آنرا در فایل است و اول آن یک علمت نقطه وجود دارد. خط اول از دو خط زیر) ولی اگر می خواهید بر کل کاربرن اثر بگ]]ذارد

/ تعریف کنید (خط دوم از خطوط زیر) . با ه]ر ویرایش]گر دلخ]]واهی م]]ی توانی]]د ای]ن فای]ل راetc/bashrcدر فایل ویرایش کنید.

vi /home/ehsan/.bashrc

vi /etc/bashrc

وارد کنید :bashrcبا هر یک از ویرایشگر ها دستورات زیر را در فایل

alias wtf=’watch -n 1 w -hs

alias wth=’ps -uxa | more

۱۷

alias attrib=chmod

alias chdir=cd

alias copy=cp

alias cp=cp -i

alias d=dir

alias del=rm

alias deltree=rm -r

alias rm=rm -i

alias search=grep

alias mem=top

alias move=mv

alias mv=mv -i

و فضای خالی بعد dash اول هر وقت از کارکتر های خاص مانند Boldمانند دو دستور را سمت راست را بین آن هااز علمت = استفاده میکنیم باید

” راس]]ت را] ب]ین] و] یا ب]ین] ق]]رار ده]]یم. ” ‘ ‘

نکات :بین علمت مساوی و عبارت های سمت چپ و راست هیچ فاصله ای وجود ندارد. … درmOvE وMove و moveنام های مستعار مانند دستور ها به بزرگی و کوچکی حساس هس]]تند پ]]س بی]]ن

تفاوت است. را به تنهایی در خط فرمان اجرا کننید وaliasبرای لیست کردن نام های مستعار درون سیستم کافیست دستور

)copmgenیا اینکه از روش گفته شده در.(دستور ۱۸

از بین بردن نام های مستعار : را از سیستم حذف کنید بدون اینکه نیاز به ویرای]]ش فای]]لalias به شکل زیر می توانید یک unaliasبا دستور

bashrc.را داسته باشید

دستورات به زبان فارسی با توضیح ۵

لینوکس شامل هزاران دستور می باشد که به صورت تخصصی پرداختن به تمام آن ها بسیار سخت و حتی عقلنی نمی باشد و برای هر کار تخصصی اگر به صورت کامل به همان دستورات مراجعه شود بهتر قابل استفاده ت]]ر اس]]ت در زیر به جمع آوری یک سری از دستورات ابتدایی برای تازه کاران و افراد علقمند ب]]ه ی]]ادگیری لین]]وکس آورده

شده در صورت نیاز به دانستن سویچ های بیشتر یک دستور یا خواندن اطلعات کامل آن توصیه من استفاده از man commandname

یا-- help

لینوکس است و یا جستجوی در اینترنت برای یافتن دستورات تخصصی .

اطلعات سیستم۵.۱

)uptime,w,whoفهرست کاربرن وارد شده به سیستم ( دستور های ۵.۱.۱

مدت زمانی که سیستم در uptime دستور های.آشنا می شویم who,w,uptime دستور مدیریتی ۳در این مطلب با کرده و چه login نشان می دهد چه کاربرانی در حال حاضر به سیستم w. حال اجرا شدن است را نشان می دهد

.کرده اند login نشان می دهد چه کاربرانی در حال حاضر به سیستم w مانند who. دستور هایی را اجرا کرده اندuptime

۱۹

خروجی آن یک خط است ک]]ه ش]]امل اطلع]]ات،. مدت زمانی که سیستم در حال اجرا شدن است را نشان می دهد تاریخ و زمان جاری، مدت زمانی که سیستم در حال اجرا شدن است، چه تعداد کاربر در ح]]ال حاض]]ر ب]]ه سیس]]تم

login ،کرده اندLoad Averages با اجرای تنهای دستور، خروجی زیر. دقیقه ۱۵و ۵ , ۱سیستم در سه بازه زمانی نشان داده می شود

uptime

w

که اجرا کرده اند) فرایند هایی(کرده اند به همراه دستور ها login اطلعات کاربرانی که در حال حاضر به سیستم و uptime گفته می شود، دقیقن همانند خروجی دستور Header اولین خط خروجی که سرایند یا. را نشان می دهد

:خط های بعدی شامل اطلعات زیر است. همان اطلعات است

•USER : ممکن است کابر دیگری توسط. نشان دهنده نام کاربری است ssh از راه دور به ماشین محلی وارد ۲۰

uptime: ۱تصویر

w: دستور ۲تصویر

.شده باشد•TTY : با استفاده از دستور. نام کنسولی که کاربر دستور را در آن اجرا کرده است tty در پنجره های خط

.فرمان می توان نام کنسول را پیدا کرد•FROM : خروجی این ستون یک IP یا hostname باشد یعنی کاربر: ۰.۰یا : ۰است، اگر آدرس بصورت

باشد، یعنی از ماشین دیگری، از راه دور به ماشین ۱۹۲.۱۶۸.۱.۱۰۰ماشین محلی است و اگر آدرسی مانند .کرده است Login پسورد روی ماشین محلی، به ماشین محلی/محلی و توسط یک نام کاربری

•@Login : زمانی که کاربر به سیستم Login کرده است.•IDLE : توسط کاربر) دستور( مدت زمان بیکاری اجرای فرایند•JCPU : مدت زمان استفاده cpu توسط تمامی فرایند هایی که روی یک کنسول TTY اجرا می شوند.•PCPU : مدت زمان استفاده CPU توسط فرایند جاری که نامش در ستون WHAT آمده است.•WHAT : نشان دهنده نام و یا مسیر فرایند جاری در حال اجرا توسط کاربر.

w

در زم]]ان root بخاط این است ک]]ه ک]]اربر. سه بار در سیستم وجود دارد root در شکل بال می بنید که کاربر وارد) پسورد را وارد کرده است/محیط گرافیکی که نام کاربری ( Xorg با اجرای دستور tty7 و در ترمینال ۲۳:۱۱

اجرا کرده pts/1 و pts/0 به نام های) Pesudo (را در دو شبه ترمینال man w و w سیستم شده، سپس دو دستور.از ترمینال باز شده است Tab ۲چیزی مانند شکل زیر که .است

.را نشان نمی دهد w خروجی دستور) Header (خط اول- h سوئیچ.می شود JCPU, PCPU و Login @باعث عدم نمایش ستونهای- s سوئیچ برای نمایش اطلعات یک کاربر خاص مابین تمامی کاربران حاضر در سیستم ب]]ه ش]]کل کل]]ی زی]]ر- u سوئیچ

.استفاده می شودw -u USERNAME

۲۱

w از فایل utmp در زیر دایکتوری var/log /و از فایل های زیر دایرکتوری proc /ب]]رای چ]]اپ خروج]]ی و .اطلعات استفاده می کند

who

اطلعات خروج]]ی. کرده اند استفاده می شود Login برای چاپ اطلعات کاربرانی که در حال حاظر به سیستم کرده، تاری]خ و زم]]ان ورود ب]]ه سیس]]تم و Login نام کاربری، ترمینالی که کاربر به آن: شامل w شبیه به دستور

.hostname یا IP آدرس.برای نشان دادن زمان آخرین بوت سیستم- b سوئیچ

.سیستم Login برای نمایش فرایند های- l سوئیچw -l

:خروجیLOGIN tty2 2012-12-31 00:23 1956 id=2

LOGIN tty3 2012-12-31 00:23 1958 id=3

LOGIN tty4 2012-12-31 00:23 1962 id=4

LOGIN tty5 2012-12-31 00:23 1964 id=5

LOGIN tty6 2012-12-31 00:23 1966 id=6

در خروجی دستور زیر. وجود دارد login برای نمایش اینکه چه تعداد کاربر و از هر کاربر چه تعداد- q سوئیچ.به سیستم در حال حاضر وجود دارد root از کاربر login ۵تعداد

root root root root root

users=5

برای نمایش سطح اجرایی فعلی- r سوئیچ.شکل کلی آن بصورت زیر است. برای نمایش اطلعات یک کاربر خاص استفاده می شود- u سوئیچ

who -u USERNAME

۲۲

جدول دستورات اطلعات سیستم۵.۱.۲

: جدول دستورات اطلعات سیستم ۱جدول اطلعات سیستم

arch بیتی ۶۴ یا ۳۲تم عامل نوع سیس cal 2007 میلدی۲۰۰۷ نمایش تقویم سال cat /proc/cpuinfo CPU نمایش اطلعات cat /proc/interrupts سخت افزار های ) IRQ ( نمایش خطوط در خواست وقفه

مختلفcat /proc/meminfo نمایش اطلعات حافظه ی سیستمcat /proc/swaps نمایش اطلعات حافظه ی مجازیcat /proc/version نمایش نام توزیع و نسخه ی هسته ی استفاده شده در

سیستمcat /proc/net/dev نمایش آمار و اطلعات کارت های شبکه و وایرلسcat /proc/mounts نمایش فایل سیستم های متصل شده به سیستمclock –w ذخیره ی تغییرات تاریخ بروی بایوسdate نمایش تاریخ سیستمdate 041217002007.00 ,روز , ماه : تنظیم تاریخ سیستم به ترتیب از چپ به راست

ثانیه, سال , دقیقه , ساعت dmidecode –q نمایش بسیار کامل اجزای سخت افزاری سیستمhdparm -i /dev/had نمایش مشخصات و ویژگی های دیسک سختhdparm -tT /dev/sda انجام آزمایش خواندن بروی دیسک سخت و تعیین سرعت

آن

lspci –tv PCI نمایش قطعات و دستگاههای متصل شده به پورت lsusb –tv USB نمایش قطعات و دستگاههای متصل شده به پورت uname –m نمایش معماری سیستم

۲۳

اطلعات سیستم uname –r نمایش نسخه ی هسته ی استفاده شده در سیستم

خاموش کردن و راه اندازی مجدد يک سیستم ۵.۲

poweroff و reboot, haltدستور های ۵.۲.۱

این دستور دارای. استفاده می شود shutdown کردن سیستم های یونیکسی از دستور restart برای خاموش یا به جز این دستور دس]]تور ه]]ای. کردن استفاده می شوند Restart کردن و shutdown سوئیچ هایی است که برای

reboot و halt و poweroff نیز برای Restart تمامی عملکرد دستور های. کردن و خاموش کردن استفاده می شوند reboot,halt و poweroff توسط دستور shutdown دستور. با سوئیچ هایش قابل انجام است reboot برای بوت

.قابل انجام است- r به همراه سوئیج shutdown کردن استفاده می شود، که توسط دستور Restart مجدد یا

reboot

:shutdown دستور- r عملکرد همین دستور با استفاده از سوئیج

shutdown -r now

OR

shutdown -r +0

shutdown -r +5

هر دو باعث خاموش شدن سیس]]تم خواهن]]د ش]]د ک]]ه هم]]ان عملک]]رد دس]]تور poweroff و halt دستور های۲۴

shutdown با سوئیچ h -است.

halt

poweroff

:shutdown دستور- h عملکرد همین دستورها با استفاده از سوئیج

shutdown -h now

OR

shutdown -h +0

shutdown -h +5

.ها در چه ساعتی انجام شده است reboot می توانید بفهمید آخرین last از دستور

last rebo

ot

همان اجرای ۰تغییر می کنند که تغییر به سطح اجرایی ۶و ۰با اجرای دستور های زیر که به سطوح اجرایی .است reboot همان اجرای دستور ۶و تغییر به سطح اجرایی halt دستور

init 0 == halt

init 6 == reboot

۲۵

چگونه يک ماشین را از راه دور خاموش کنیم؟۵.۲.۲

البت]]ه. یا خاموش ک]]رد Restart و بصورت زیر می توان به یک ماشین وارد شده و سیستم را ssh با استفاده از به ماشین راه دور متصل root می خواهند باید با نام کاربری root توجه کنید که چون اجرای دستور های بال مجوز

.شویدssh -l root 192.168.1.102 /sbin/shutdown -r now

ssh root @192.168.1.102 /sbin/shutdown -r now

ssh -l root 192.168.1.102 /sbin/shutdown -h now

ssh root @192.168.1.102 /sbin/shutdown -h now

ssh -l root 192.168.1.102 /sbin/reboot

ssh root @192.168.1.102 /sbin/reboot

ssh -l root 192.168.1.102 /sbin/halt

ssh root @192.168.1.102 /sbin/halt

یا ریست کردن به صورت در لحظه یا به صورت زمان بن]]دی ش]]دهدستوراتی که برای راه اندازی یک سیستم و .نیاز دارید

۲۶

خاموش کردن و راه اندازی مجدد يک سیستم ۵.۲.۳

: خاموش کردن و راه اندازی مجدد یک سیستم ۲جدول خاموش کردن و راه اندازی مجدد یک سیستم

init 0 این دستور برای خاموش کردن سیستم به کار می رودlogout خارج شدن از سیس]]تم و رفت]]ن ب]]ه ص]]فحه ی ورود مج]]دد(

Login( reboot ) سیستم به کارrestart این دستور برای راه اندازی مجدد (

می رودshutdown -h now این دستور برای خاموش کردن سیستم به کار می رود

shutdown -h 16:30 & خاموش کردن سیستم در ساعت و دقیقه ی معین shutdown –c ) خاموش شدن سیستم در زمان معینcancel لغو کردن ( shutdown -r now ) سیستم به کارrestart این دستور برای راه اندازی مجدد (

می رودtelinit 0 این دستور برای خاموش کردن سیستم به کار می رود

فايل ها و دايرکتوری ها۵.۳

پرداختم در اینجا تعدادی از دستورات دیگر برای جستجو و کپی فایل هاcdدر ابتدای این فایل به توضیح دستور نیاز پی]]دا میکنی]]د تک]]رار آن خ]]الی ازآن هاآورده شده است و همچنین دستوراتی که هنگام کار با دایرکتوری ها به

لطف نیست cd مخفف Change Directory یکی از پرکابردترین دستور هایی است که در طول استفاده شما از سیستم بکار

ای]]ن پس]]ت.از این دستور برای پیمایش در سطح سیستم فایل لینوکس در خط فرمان استفاده می شود.برده می شود برای درک بهتر مطالب برخی از مفاهیم دیگر نیز. نوشته شده است Linux Hack ۱۰۱بر گرفته از فصل اول کتاب

۲۷

.اضافه شده استcd روش استفاده آن بصورت زیر است. دستوریست بدون گزینه و برای پیمایش سیستم فایل بکار می رود:

cd /path/to/directory

یکسری از نماد های تعریف شده در سیتم های یونیکسی وجود دارند که می توان برای راحتی کار، آنها را بج]]ای :این نماد ها بصورت زیر هستند. مسیر، بکار برد

dot symbol نماد نقطه۵.۳.۱

دایرکتوری جاری دایرکتوری اس]]ت ک]]ه در.نشان دهنده دایرکتوری جاری است(.) در خط فرمان یک نقطه تنها Print ی]]ا pwd دس]]تور.حال حاضر درون آن هستیم به این دایرکتوری، دایرکتوری کاری نی]]ز م]]ی گوین]]د Work

Directory بطور مث]]ال وق]]تی م]]ی.وجود دارد که با اجرای آن دایرکتوری جاری در خط فرمان نسان داده می شود خواهید یک فایل را از مسیر دیگری به دایرکتوری جاری منتق]]ل کنی]]د بج]]ای اینک]]ه مس]]یر دایرکت]]وری ج]]اری را

:بنویسید کافیست بصورت زیر عمل کنید

cp /source/path/filename .

پس در پیمایش خط فرمان با دستور.می شود Hidden نماد نفطه اگر در ابندای هر فایلی بیاد آن فایل مخفی یاcd فرض کنید فایل.الزامی است که آنرا در ابندای نام فایل بیاورید filename مخفی است پس برای پیمایش باید

:دستور زیر را استفاده کنید

cd /path/to/.filename

نماد دو نقطه۵.۳.۲

شما بجای cd .. با اجرای دستور. در خط فرمان دو نقطه نشان دهنده دایرکتوری والد{، دایرکتوری جاری است ۲۸

.نوشتن مسیر دایرکتوری والد،یکباره به آن منتقل می شوید

~ نماد ۵.۳.۳

cd به معنی دایرکتوری خانگی شماست و بجای نوشتن~ در خط فرمان نماد /home/ehsan م]]ن م]]ی ت]]وانم cd ~ بنویسم

–نماد ۵.۳.۴

در مرورگ]]ر ه]]ای گرافیک]]ی back/forward می آید یعنی شبیه سازی cd وقتی جلوی دستور dash –ن]م]اد یا به دایرکتوری cd هستید و سپس با دستور/ dir1/dir2 /فرض کنید شما در حال حاضر در دایرکتوری. سیستم فایل

dir3/dir4 /می روید حال می خواهید دوباره به دایرکتوری dir1/dir2 /بروید بجای نوشتن دستور cd /dir1/dir2

را cd– بروید دوباره کافیست دستور/ dir3/dir4 را بزنید و دوباره می خواهید به دایرکتوری cd– کافیست دستور.اجرا کنید

$و # نماد ۵.۳.۵

وقتی شما با یک کاربر معمولی پنجره خ]]ط فرم]]ان ی]ا ترمین]]ال مج]]ازی را ب]]از م]]ی کنی]]د جل]]وی خ]]ط اعلن Command Prompt نشان داده می شود ولی وقتی با کاربر$ علمت root نشان داده می شود# هستید نماد.

.بکار می رود echo برای تعریف و چاپ مقدار متغیر های محلی با دستور$ : نماد

< و > نماد ۵.۳.۶

بکار می) Standard Input (به ورودی یک دستور) Standard Output (برای ارسال خروجی یک دستور< نماد .برای ارسال ورودی به یک دستور بکار می رود> نماد . رود

ls -l > filedir

cat < filedir

۲۹

را اجرا می کند و سپس خرجیش را بجای اینکه در نمایشگر چاپ کند بصورت ورودی در ls -l دستور اول ابتدا.می دهد cat دستور دوم هم محتوای آن فایل را بعنوان ورودی به دستور. یک فایل ذخیره می کتد

|نماد ۵.۳.۷

به ایم معنی است که نتیجه اجرای یک دستور را به Piping یا لوله کشی استو مفهوم Piping این نماد معرف ….یعنی نتیجه دستور اول بعنوان آرگومان ورودی دستور دوم و. یک دستور دیگر بدهیم

ls -l | wc -l

ls در دستور بال ابتدا دستور -l اجرا شده و نتیجه آن یعنی فهرست دایرکتوری ها و فایل ه]]ا بعن]]وان پ]]ارامتر .بکار می رود wc -l دستور

جدول دستورات فايل ها و دايرکتوری ها۵.۳.۸

: فایل ها و دایرکتوری ها۳جدول فایل ها و دایرکتوری ها

cd /home ورود به دایرکتوری یا شاخه ی مورد نظر مانند پوشه ی )homeخانگی (

cd .. برگشتن به دایرکتوری قبلیcd ../.. برگشتن به دو دایرکتوری قبلی cd ) از هر مسیر دلخواهhome رفتن به پوشه ی خانگی ( cd ~user1 رفتن به پوشه ی خانگی کاربر مورد نظر از هر مسیر دلخواهcd- برگشتن به آخرین دایرکتوری ( مسیر ) که در آن بوده ایدcp file1 file2 به مسیر مورد نظرfile1 کپی کردن یک فایل با نام cp dir.*/ کپی کردن تمام فایل های موجود در دایرکتوری مورد نظر

به مسیر جاری که در آن هستیدcp -a /tmp/dir1 . کپی کردن دایرکتوری مورد نظر به مسیر جاری که در آن

۳۰

فایل ها و دایرکتوری ها

هستیدcp -a dir1 dir2 ) به دایرکتوری مقصد (dir1 کپی دایرکتوری مبدا (

dir2 به جای .( dir1 و dir2مسیر کامل دایرکتوری های مبدا و مقصد را قرار دهید

cp file file1 نمایش نوع و ماهیت یک فایل به همراه مشخصات آن. به مسیر فایل مورد نظر را قرار دهیدfile1جای

ln -s file1 lnk1 ایجاد لینک نمادین ( میانبر ) به فایل یا دایرکتوری دلخواه. مسیر فایل یا دایرکتوری مورد نظر و به جایfile1به جای

lnk1مسیر دایرکتوری که قرار است فایل یا دایرکتوری میانبر در آن ایجاد شود را قرار دهید

ln file1 lnk1 ایجاد لینک فیزیکی به یک فایل یا دایرکتوری ( در واقع همان عمل کپی می باشد )

ls نمایش فایل ها و دایرکتوری های موجود در دایرکتوری جاری

ls –F نمایش فایل ها و دایرکتوری های موجود در دایرکتوری جاری

ls –l نمایش جزئیات فایل ها و دایرکتوری های موجود در دایرکتوری جاری

ls –a نمایش فایل ها و دایرکتوری های موجود و همچنین فایل های مخفی در دایرکتوری جاری

lstree نمایش تمام فایل ها و دایرکتوری های یک شاخهmkdir dir1 در مسیر مورد نظرdir1 ایجاد یک دایرکتوری با نام mkdir dir1 dir2 ایجاد دو دایرکتوری همزمان در مسیر مورد نظرmkdir -p /tmp/dir1/dir2 root ایجاد یک شاخه ی دایرکتوری با شروع از mv dir1 new_dir ) یک فایل یاmove تغییر نام یا جا به جا کردن (

دایرکتوری۳۱

فایل ها و دایرکتوری هاpwd نشان دادن مسیر دایرکتوری جاریrm -f file1 file1 پاک کردن یک فایل با نام rm -rf dir1 و محتویات آن بهdir1 پاک کردن یک دایرکتوری با نام

صورت بازگشتیrm -rf dir1 dir2 پاک کردن دو دایرکتوری در مسیر مورد نظر و محتویات

آنها به صورت بازگشتیrmdir dir1 dir1 پاک کردن یک دایرکتوری با نام touch -t 0712250000 file1 تغییر تاریخ ویرایش یا تغییر یک فایل یا دایرکتوری. به جای

file1مسیر فایل یا دایرکتوری مورد نظر را قرار دهید tree نمایش تمام فایل ها و دایرکتوری های یک شاخه

findجستجوی فايل ها با دستور ۵.۴

find یکی از مهمترین و پر استفاده ترین دستور ها در تمامی سیستم عامل های مبتنی بر یونیکس است که ه]]ر بین سیستم عامل های مبتنی بر find استفاده از Syntax البته تفاوت هایی در. کاربر یونیکسی باید با آن آشنا باشد

یک شکل کلی پایه برای استفاده. وجود دارد، اما نقاط اشتراک بیشتر هستند Solaris و Linux,BSD یونیکس مانند.بصورت زیر است find از دستور

find DIR_PATH options

-nameسوئیچ ۵.۴.۱

دستور زی]]ر. استفاده می کنیم- name بعنوان اولین مثال برای یافتن فایل ها، دایرکتوری ها با نام آنها از سوئیچ اگر جای دایرکتوری چیزی نوشته نشود یا ی]]ک.را پیدا می کند passwd تمامی فایل ها با نام root در دایرکتوری

.نقطه نوشته شود، یعنی جستجو در دایرکتوری جاری انجام شود

۳۲

find / -name passwd

usr/bin/passwd/

selinux/class/passwd/

selinux/class/passwd/perms/passwd/

etc/passwd/

etc/pam.d/passwd/

جستجو دیگر به بزرگی و- iname به کوچکی بزرگی حروف حساس است، با استفاده از سوئیچ- name سوئیچ.کوچکی حروف حساس نیست

find / -iname passwd

- type سوئیج۵.۴.۲

دایرکتوری، فایل معمولی مانند فایل متن]]ی و(می توان جستجو را بر اساس نوع فایل - type با استفاده از سوئیج c ها و مقدار Bloack Device برای b مقدار. هستند d و file که به ترتیب یعنی d و f دو مقدار. انجام داد) …

اولین دستور زیر و برای یافتن test بطور مثال برای یافتن دایرکتوری. ها استفاده می شود Character Device برای و) نام ها(به معنی تمامی فایل ها * در دومین دستور . ها از دومین دستور زیر استفاده کنید Bloack Device تمامی” ب]اید م]یان] ق]]رار گیردحتما ”.

find / -name test -type d

find / -name “*” -type b

۳۳

-size سوئیچ۵.۴.۳

می- empty هم چنین با استفاده از سوئیچ. فایل ها را بر اساس اندازه شان پیدا کنید- size با استفاده از سوئیچ استفاده مهم این دو سوئیچ زمانی است که اندازه پارتیشن یک سرور. را پیدا کرد) با اندازه صفر(توان فایل های تهی

به خاطر فایل های حجیم و بی استفاده بسیار بزرگ شده و یا به دلیل وجود فایل های خالی بسیار شلوغ شده اند که.با دو سوئیچ می توان آنها را پیدا کرد

find / -name “*.iso” -size 3.6G

find . -empty

find -empty -type f

گیگابایت است و دومین دستور تمامی فای]]ل ۳.۶را که حجمشان . iso اولین دستور بال تمامی فایل ها با فرمت )مانن]]د فای]]ل ه]]ای متن]]ی(سومین دستور تمامی فایل های معمولی . های خالی در دایرکتوری جاری را پیدا می کند

به معنی مگابایت استفاده M به معنی کیلوبایت و k می توان از G بجای. خالی در دایرکتوری جاری را پیدا می کند –و] در کن]]ار+ م]]ی ت]]وان از علم]]ت ه]]ای - size در اس]]تفاده از س]]وئیچ. کوچک اس]]ت k کرد و توجه کنید که و گیگاب]]ایت۳.۶ب]]ا ان]]دازه بیش]]تر از. iso بطور مثال اولین دستور زیر یعنی تمامی فایل های. عدد به استفاده کرد

.مگابایت ۱۵۰با اندازه کمتر از . iso دومین دستور یعنی تمامی فایل های

find / -name “*.iso” -size +3.6G

find / -name “*.iso” -size -150M

۳۴

- not سوئیج۵.۴.۴

بطور مثال در مثال زیر تم]]امی فای]]ل ه]]ایی ک]]ه نامش]]ان. می توان برای نفی نتیجه استفاده کرد- not از سوئیجmysite.php نیست را پیدا می کند.

find / -not -iname mysite.php

- maxdepth سوئیچ۵.۴.۵

که یک عدد را بعنوان مقدار می گیرد، حداکثر تعداد سطوح بعد دایرکتوری تعیین ش]]ده را- maxdepth سوئیچ تا دو root از دایرکتوری passwd بطور مثال در دستور زیر برای جستجوی فایل هایی با نام. برای جستجو می کنند

تعیین شده ولی تا دوسطح بعد جستجو می شود که باید هر ۳عدد . جستجو می شود root سطح بعد از دایرکتوری.می شود ۲که ۳-۱یعنی . عددی را از یک کم کنیم

find / -maxdepth 3 -name passwd

usr/bin/passwd/

selinux/class/passwd/

etc/passwd/

etc/pam.d/passwd/

البت]]ه در اص]]ل بای]د. جس]]نجو ش]]ده اس]]ت/ همانطور که در خروجی می بینید تا دو دایرکتوری بعد از دایرکت]وری -maxdepth. انجام نمی شود/ دایرکتوری انجم بشود ولی بالتر از دو دایرکتوری بعد دایرکتوری ۲یا ۱جستجو در

ح]]داقل س]]طح دایرکت]]وری ه]]ا ب]]رای- mindepth تعیین کننده حداکثر سطح دایرکتوری ها برای جستجو اس]]ت و passwd برای یافتن فایل های ۴تا ۲بطور مثال در دستور زیر برای جستجو بین سطح . جستجو را تعیین می کند

.استفاده می شودfind / -mindepth 3 -maxdepth 5 -name passwd -type f

. پیش از هر سوئیج دیگری نوشته شوندحتما- maxdepth و- mindepth سوئیچ های

۳۵

بدهیم یعنی جستجو در دایرکتوری جاری که معادل نوشتن یک نقطه بجای دایرکتوری ۱را مقدار - maxdepth اگر.هر سه دستور زیر معادل هم هستند. یا ننوشتن چیزی بجای دایرکتوری است

find -maxdepth 1 -name passwd

find . -name passwd

find -name passwd

بطور.است استفاده کنید Inode Number که مخفف- inum انها از سوئیچ inode برای جستجوی فایل ها بر اساس.را پیدا می کند inode 494 مثال دستور زیر فایلی با

find / -inum 494

-execسوئیچ ۵.۴.۶

بصور. برای حذف آنها را انجام داد rm می توان پس از یافتن فایل ها، دستوری مانند- exec با استفاده از سوئیچ آنه]]ا- exec توسط سوئیچ rm مثال در دستور زیر پس از یافتن تمامی فایل های خالی در سیستم با اجرای دستور

پاک می rm شده و سپس توسط{} جایگزین ) مسیر و نام فایل ها(یعنی فایل ها - exec سوئیچ. پاک خواهند شد را نشان می دهد و دومین دستور مثالی ب]]رای- exec اولین خط دستور های زیر شکل کلی استفاده از سوئیچ. شوند

.پاک کردن تمامی فایل های خالی است find DIR_PATH other_find_options -exec UNIX_CMD_TO_RUN ;\ {}

find / -empty -exec rm -i ;\ {}

find با دستور فايل هاجدول دستورات جستجوی ۵.۴.۷

find با دستور فایل ها: جستجوی ۴جدول

جستجوی فایلfind / -name file1 جستجوی فایل و دایرکتوری در داخل پارتیشن لینوکس (

root(

۳۶

جستجوی فایلfind / -user user1 user1 جستجوی فایل و دایرکتوری متعلق به find /home/user1 -name \*.bin در داخل دایرکتوریbin جستجوی فایل های با پسوند

home/user1 find /usr/bin -type f -atime +100 روز گذشته استفاده۱۰۰ جستجوی فایل های باینری که در

نشده اندfind /usr/bin -type f -mtime -10 ۱۰ جستجوی فایل های ایجاد شده با تغییر کرده در طول

روز گذشته

find / -xdev -name \*.rpm جستجوی فایل های با پسوند rpm بدون جستجو در پارتیشن …حافظه فلش و, های جداشدنی مانند سی دی رام

locate \*.ps ب]تدا دس]]تور ps جستجو فایل های با پسوند updatedb– ا

اجرا می شودwhereis halt نمایش مکان یک فایل

س]]ورس یا مس]]تندات , ب]اینری which halt نمایش مسیر کامل یک فایل باینری یا اجرایی

نصب و استقرار يک فايل سیستم۵.۵

lsof دستور ۵.۵.۱

هر چیزی در یونیکس ها و لینوکس فایل است. کاربران و فرایند ها بصورت مداوم و همیشگی با برخ]]ی از فای]]ل و یک فایل پیکربندی در حال کار ک]]ردن اس]]ت.C با برخی از فایل های کتابخانه CMD یک مثلها کار می کنند.

فایل ها در دایرکتوری ها ذخیره میشوند. این که می گوییم در یونیکس ها و لینوکس همه چیز فایل اس]]ت فق]ط ب]]ه فایل های متنی و دیگر فایل های مرسوم ختم نمی شود، بلکه حتی اتصال های شبکه و س]]خت اف]]زار ه]]ا نی]]ز فای]]ل

هستند و این فایل ها توسط کاربران،سرویس ها و فرایند ها مورد استفاده قرار می گیرند

۳۷

میباشد که درFile Descriptorبدون در نظر گرفتن نوع فایل، هر فایلی در یونیکس ها و لینوکس ها دارای یک List مخف]]ف lsof اطلعات جامعی از یک فایل به شما میدهد. FD نشان داده می شود. FD با lsofخروجی دستور

Open File می باشد که در تمامی سیستم عامل های مبتنی بر یونیکس مانن]]د BSDه]]ا و توزی]]ع ه]]ای لینوکس]]ی ط]]ولنیlsofموجود و قابل استفاده می باشد. ساده ترین شکل استفاده آن بصورت زیر می باش]]د (خروج]]ی دس]]تور

صفحه بندی کنید.)lessاست و بهتر است آنرا با جدول

lsof

lsof | less

دستور و نام کاربری است کهPID به ترتیب معرف نام دستور، شناسه یا USER و PID,COMMANDستون های از آن فایل استفاده می کند.

(که تعیین کنندهinode به شمارهNODE به اندازه فایل، ستون SIZE/OFF به نام دیسک، ستون Deviceستون معرف نام فایل است. از ستون های گفته می شود فهمید که ک]]دامNAMEو هویت فایل در دسیک است) و ستون

USER چه دستوری(فرایندی) را با چه PID،ی را استفاده می کند و فرایند یا دستور در حال استفاده از کدام فای]]ل هستند که اطلعات کاملتری را درTYPE و FDبا چه اندازه ای و در کدام دیسک ذخیره شده است. و ستون دیگر

۳۸

lsof | less: ۳تصویر

است.File Descriptor مخفف FDاختیار شما قرار می دهند. ستون Current که مخفف cwd دارای مقادیر متفاوتی است. بطور مثال FDستون Work Directoryاست که دستور

Manual، فایل های کد یا فایل های باینری هس]]تند. ش]]کل زی]]ر از ص]]فحه txt از نوع FDاز انجا اجرا شده است.

man یعنی lsofدستور lsof گرفته شده است که FD.ها را معرفی می کند ، برخی از مقادیر بصورت عددی باشند که به دنبال انها یکی از حروف زیر بیایند :FDدر ستون

•r یعنی فایل در حالت : Read-Only.باز شده است •w یعنی فایل در حالت write.باز شده است •u یعنی فایل در حالت read/write.باز شده است

باز می شود که می توانید از این پس]]ت مفه]]وم ای]]ن س]]ه ع]]دد را۲ تا ۰هر برنامه یا دستوری در آغاز با اعداد معن]]ی خودش]]ان را۲ ت]]ا ۰ شروع ش]]ود ول]]ی اع]]داد ۰ یا ۴بخوانید. البته برنامه ای می تواند از عددی دیگر مانند

اس]]ت، عب]]اراتی مانن]]دREG,DIR دارای مق]]ادیری مانن]]د TYPEدارند.بسته به نوع سیستم عامل یونیکسی، ستون CHR برای ابزار های کارکتری و BLK برای ابزار های بلکی استفاده می شوند. عبارت FIFO مخفف First Input

First Output.و نوعی صف در سیستم عامل است

۳۹

lsof دستور FD: ستون ۴تصویر

:lsofاستفاده از دستور ۵.۵.۲

منظور این است که لیستی از فرایند ها داشته باش]]یم ب]]رلیست کردن فرایند ها بر اساس فایل های باز شده : را باز کرده اند را نشان میدهد.syslogاساس یک فایل مشخص. مثال زیر فرایندهایی(دستورهایی) را که فایل

lsof /var/log/syslog

منظور این است که فایل های ب]]از ش]]ده تح]]تلیست کردن فایل های باز شده در زیر یک دایرکتوری :• /var/logیک دایرکتوری معین شده را فهرست کنیم. مثال زیر تمامی فایل های باز شده در زیر دایرکتوری

را فهرست می کند.lsof +D /var/log

لیست کردن فایل های بnnاز شnده توسnnط یnک فراینnدهایی کnه بnnا یnک رشnته مشnخص، شnروع مnی• منظور این است که تمامی فایل های بازشده توسط فرایندهایی که نامش با یک رشته خاص آغاز میشوند :

- استفاده می کنیم. در مثال زیر تمام فایل های باز شده برایcشوند را فهرست کنیم. برای اینکار از سوئیچ آغاز می شوند را فهرست میکند.init و sshفرایند هایی که با رشته های

lsof -c ssh -c init

منظور از نقطه اتصال یعنی اینک]]ه ی]]ک پارتیش]]نلیست کردن فایل های باز شده برای یک نقطه اتصال :• / وص]]لtmp/mountpoint/ ی]]ا ی]]ک دایرکت]]وری مانن]]د home/را به یک دایرکتوری مانند dev/sda3مانند

کنیم. این حالت مانند حالت فهرست کردن فایل های باز شده در زیر یک دایرکتوری است.lsof /home

OR

lsof +D /home

منظور این است که تمامی فایل ه]]ای ب]]از ش]]دهلیست کردن فایل های باز شده برای یک کاربر خاص :• - انج]]ام م]]ی ش]]ود و بج]]ایu) خ]]اص را فهرس]]ت کنی]]م. اینک]]ار توس]]ط س]]وئیچ USERتوسط یک کاربر(

USERNAME.نام کاربری دیلخواه را بنویسید ۴۰

lsof -u USERNAME

فراین]]د، فهرس]]تPID منظور این است ک]]ه ب]]ا لیست کردن فایل های باز شده برای یک فرایند خاص :• بایدPID- انجام می شود و بجای pتمام فایل های باز شده توسط آن فرایند را ببینیم. اینکار توسط سوئیچ

شناسه فرایند را جایگزین کنید.lsof -p PID

بصورت زیر استفاده کنید. کافیست بجایps یک فرایند(دستو) می توانید از دستور PIDاما برای بدست آوردن CMD نان دستور یا سرویس یا فرایندی را که می خواهید PIDآنرا بدست اورید بنویسید. خروجی عددی است که جایگزین کنید.lsof -p PID است که باید در دستور PIDهمان

ps aux | grep CMD

fuserدستور ۵.۵.۳

Fuserابزاری کاربردی است که نام فایل هایی که کاربران و فرایند ها در حال اس]]تفاده هس]]تند را نم]]ایش م]]ی فرایندی که در حال استفاده از یک فایل است نشان داده می ش]]ود. ه]]ر فای]]ل در خروج]]یPIDدهد. با این دستور

دستور با یک حرف آمده است که این حرف نوع دسترسی را نشان میدهد.•c دایرکتوری جاری یا : Current Directory

•e قابل اجرا یا : Executable

•f فایل باز یا : Open File

•F) باز شدن : Openفایل برای نوشتن (•r دایرکتوری : root

•m) نشانگر فایل نگاشت شده : Maped File) یا کتابخانه های اشتراکی(Shared Library( را به تنهایی اجرا کنید راهنمای دستور نشان داده خواهد شد. ولی اگر آنرا به همراه نام ی]]ک فای]]ل ی]]اfuserاگر

فرایند هایی که در حال استفاده از آن فایل یا دایرکتوری هستند را نشان م]]ی ده]]د.ش]]کلPIDدایرکتوری بیاورید،

۴۱

کلی استفاده از آن بصورت زیر است.fuser file_name

بعنوان مثال دستور زیر فرایند هایی که در حال استفاده از دایرکتوری جاری هستند را نشان می دهد.

fuser

Current در اخ]]ر آن یعن]]ی دایرکت]]وری ج]]اری ی]]ا c اس]]ت و ح]]رف ۴۶۱۶در خروجی شکل بال، شناسه فراین]]د

Directory حال با دستور.ps متعلق به چیست؟یعنی کدام فراین]]د در۴۶۱۶ می توانیم بفهمیم که فرایندی با شناسه حال استفاده از این دایرکتوری است. دستور زیر را در خط فرمان اجرا کنید.

ps | grep 4616 | grep -v grep

در حال استفاده کردن از دایرکتوری جاری که در ای]]ن مث]]الPID=۴۶۱۶ با bashهمانطور که می بینید فرایند / است.root با مسیر rootدایرکتوری خانگی کاربر

/ است را پیدا کنیم.var/log/messagesدر دستور زیر می توانیم فرایندی که در حال استفاده از فایل

۴۲

ps | grep 4616 | grep -v grep: ۵تصویر

fuser /var/log/messages

- اطلعات کاملتری مانند نام کاربر، شناسه فرایند، نوع دسترسی و دستوری که اجرا شده را ببینید.vبا سویچ fuser -v /var/log

با فرمت زیر می توانید اطلعاتی از فرایند ها و سوکت ها بدست اورید.fuser -v -n tcp_or_udp PORT_NUMBER

بطور مثال :fuser -v –n udp 53

و ب]اF در لینوکس است ب]ا م]]د دسترس]]ی DNS که بعنوان سرویس دهنده namedدر مثال بال یک دستور به نام در حال کار است.۵۳ روی پورت named و نام کاربری ۳۹۰۴شناسه

شده را نشانmount- است که فرایند هایی که در حال استفاده از یک سیستم فایل mسوئیچ مفید دیگر دستور، / را نشان می دهد.usrمی دهد. بطور مثال دستور زیر فرایند های مرتبط با دایرکتوری

fuser -m /usr

- برای از بین بردن فرایند ها در حال استفاده از یک برنامه خاص، باید از فرمت دس]]توریkبا استفاده از سوئیچ زیر استفاده کنید.

fuser -v -k PROGRAM_NAME

۴۳

fuser -v –n udp 53: ۶تصویر

از بین خواهند رفت.socket_servدر مثال زیر تمام فرایند های مرتبط با برنامه fuser -v -k socket_serv

داشته باید به این صورت که یک تاییدیه نش]]ان داده م]]ی ش]]ود وIntractive- می توانید یک حالت iبا سوئیچ -k- به هم]]راه س]]وئیچ i آنرا رد می کنید. می توانید از سوئیچ no آنرا قبول یا با وارد کردن yesشما با وارد کردن

از بین نبرید.شکل کلی آن بص]]ورت زی]]رno کنید با وارد کردن killاستفاده کنید تا فرایند هایی را که نمی خواهید است.

fuser -v -k -i PROGRAM_NAME

/ پشتیبانی کنند قابل استفاده است مانند تمامprocاین دستور در یونیکس هایی که از سیستم فایل (دایرکتوری) .FreeBSDتوزیع های لینوکسی و همچنین سیستم عامل

۵.۵.۴Mountکردن در لینوکس

mount به معنی اتصال و mount point به معنی نقطه اتصال است. عمل mountبه معنی اتصال یک پارتیشن یا یک دایرکتوری برروی یک دایرکتوری دیگر است. اگر تا به حال لینوکس را بصومرت گرافیکی نصب ک]]رده باش]]ید،

دیده اید که اول باید هارد را پارتیشن بندی کنید. مخف]]فsd و IDE مع]]رف ه]]ارد ه]]ای hd است. sdX و hdX نام هاردها با توجه به نوع و تعداد هارد بصورت

بیانگر تعداد هارد های متصل به سیستم اس]]ت ک]]ه ب]]ا ی]]ک ح]]رف نس]]ان داده م]]یX می باشد. SATAهارد های خواهی]]د داس]]ت.در مرحل]]هsdc و sdb,sda به ن]]ام ه]]ای Deviceشود.بطور مثال اگر سه هارد ساتا دارید پس سه

ی]]اext4/ اتصال دهید و نوع سیس]]تم فای]]ل مانن]]د bootبعدی باید این پارتیشن ها را به یک دایرکتوری مانند / یا UFSرا نیز برای این نقطه اتصال تعیین کنید

می توانید داشته باشید. پارتیش ها با اع]]داد نش]ان داده م]]ی ش]وند.Primary پارتیشن ۴در هر هارد می توانید sdb3 و سومین پارتیشن از دومی]]ن ه]ارد س]]اتا بص]ورت sda1بطور مثال اولین پارتیشن از اولین هارد ساتا بصورت

داشته باش]]ید و درPrimary پارتیشن ۴نشان داده می شوند. توجه داشته باشد که شما فقط می توانید در هر هارد

۴۴

ش]]دهmount محدودیتی ندارید ولی باید دق]]ت کنی]]د ک]]ه فهرس]]ت پارتیش]]ن ه]]ای Extentedتعداد پارتیشن های چهارم در لیست وجود ندارد.دلیل آن چیست؟Primary و … را نمی بینید یعنی پارتیشن sdb4 یا sda4پارتیشن

یا / و یا ب]]رای دایرکت]]وری ب]]وت ی]]اroot برای دایرکتوری های اصلی مانند دایرکتوری Primaryپارتیشن های boot استفاده می شود. وقتی سه پارتیشن اول /Primary برای اولین هارد ایج]]اد م]]ی کنی]]د س]]ه پارتیش]]نمثل� را

sda2,sda1 و sdb3 ایجاد می شوند ولی پارتیشن sda4وجود ن]]دارد و دلی]]ل آن ای]]ن اس]]ت ک]]ه ای]]ن دایرکت]]وری Logical شده و به زیر دایرکتوری های منطقی یا Extentedبصورت Directory های sda5 و sda6به بعد تب]]دیل

می شوند. را می خواندmount را در هنگام بوت شدن می خواند و لیست تمامی دایرکتوری های fstabسیستم فایلی به نام

می کند. ت]]ا زم]]انی ک]]هmount می کند. ولی پیش از این سیستم بصورت خودکار دایرکتوری / را mountو آنها را خوانده نشده هیچ سیستم فایلی جز دایرکتوری / اتصال نیافته است.fstabفایل

وجودsysfs و procfs نوع دیگری از سیستم فایل ها به نام های vfat و ext4به جز سیستم فایل های رایج مانند م]]یmountدارند که به پارتیش های همنام خودشان متصل می شوند و بصورت خودک]]ار توس]]ط گرن]]ل س]]اخته و

Restart قرار دارند و پس از خاموش یا Ramشوند. محل قرار گیری آنها در دیسک یا هارد نیست بلکه در حافضه

شدن سیستم از بین می روند. ود هر بار بوت شدن سیستم دوباره ساخته می ش]وند. ای]]ن سیس]]تم فای]]ل ه]]ا ح]]اوی اطلعات سیستمی مانند اطلعاتی از پردازنده و اطلعاتی از سخت افزار و ماژول های کرنل می باش]]ند.ج]]البی ای]]ن نوع سیستم فایل ها این است که اندازه آنها صفر است و حجمی ندارند.(می توانی]]د ی]]ک نم]]ونه از ک]]اربرد آن]]را در

بخوانید)اینجا استفاده می کنیم. تمامی کاربران می توانند اینmount کردن سیستم فایل بصورت دستی از دستور mountبرای

mountدستور را بدون هیچ گونه سوئیچی اجرا کنند و فهرستی از سیستم فایل ها و پارتیش]]ن ه]]ا و دایرکت]]وری ه]]ا

دارد.rootشده را ببینند.اما اجرای این دستور با سوئیچ هایش نیاز به دسترسی mount

- است که می توانید تعیین کنید فقط پارتیشن ها و دایرکتوری هایی از ی]]ک ن]]وعt دارای سوئیچ mountدستور ۴۵

ن]وعTYPE را لیست کن]د. در دس]تور زی]ر بج]]ای procfs و حتی سیستم فایل vfat و یا ext4 یا ext3خاص مانند سیستم فایل دلخواه را ببینید.

mount -t TYPE

شکل کلی استفاده از دستور بصورت زیر است.mount [OPTIONS] device/directory mount_point

device/directory پارتیشن یا دایرکتوری است که برروی mount_point اتصال یا mountداده می شود. یکی از ب]]ا چ]]ه ن]]وع سیس]]تم ف]]ایلی ب]]ر رویdevice/directory- است ک]]ه تعیی]]ن م]]ی کن]]د t ها OPTIONسوئیج ها یا

mount_point.اتصال پیدا کنند. فرمت استفاده از این سوئیچ بصورت زیر خواهد بود mount -t TYPE device/directory mount_point

یکی از انواع زیر را جایگزین کنید :TYPEکه باید بجای •ext2 یا ext3 یا ext4سیستم فایل رایج توزیع های لینوکسی : •iso9660 فرمت رایج برای : CDها •jfs تولید شده توسط : IBMو رایج در سیستم عامل مکینتاش •nfs سیستم فایل شبکه که مخفف : Network File Systemو برای اشتراک دایرکتوری ها در شبکه استفاده می

شود.•nfs4 از سیستم فایل ۴ : نسخه nfs

•udf رایج برای : DVDها •vfat رایج در مکینتاش برای اتصال سیستم فایل های ویندوزی و همچنین مورد استفاده در فلپی ها و : USBها •ntfs مانند : vfatرایج در مکینتاش ها برای اتصال سیستم فایل های ویندوزی

/ از متدوالترین مکان ها در یونیکس ها هستند که می توانید یک نقطه اتصال را ایجادmedia/ و mntدایرکتوری برای ساختن ی]]ک دایرکت]]وری بعن]]وان نقط]]هmkdirکنید. برای اینکار ابتدا باید نقطه اتصال را ایجاد کنید.از دستور

اتصال استفاده کنید.۴۶

mkdir /media/flashdisk

ب]]ر روی ی]کsdc1وسپس باید پارتیشن یا دایرکتوری را به آن متصل کنید. در مثال زیر یک پارتیشن ب]]ه ن]]ام اتصال داده شده است.(همانطور که گفته ش]]دvfat و از نوع flashdisk به نام mediaنقطه اتصال در زیر دایرکتوری

Flash و USB و Flopy ها از نوع vfat(هستند mount -t vfat /dev/sdc1 /media/flashdisk

اگر نقطه اتصال را از قبل ایجاد نکنید و بخواهید یک پارتیشن یا دایرکتوری را به چیزی که وجود ن]]دارد، اتص]]الدهید خطای زیر را مشاهده می کنید.

mount point /media/flashdisk does not exist

- است که گزینه هایی را برای اتصال تعیینo وجود دارد، mountاما سوئیج مهم دیگری که در ارتباط با دستور می کند.فرمت کلی آن :

mount -o OPTIONS device/directory mount_point

در دستور بال باید یکی از موارد زیر را استفاده کنید.OPTIONSبجای عبارت •async اجازه : asynchronous یا ناهمگام اعمال I/O برروی سیستم فای]]ل(ب]]رای اطلع بیش]]تر بخ]]ش asyncاز

را بخوانید.مطلب•auto اتصال خودکار سیستم فایل (برای اطلع بیشتر بخش : auto را بخوانید.). سویچ مطلب از aوجود دارد تا -

کنید. فرمت کلی استفاده از آن بصورت زیر است.mountبتوانید پارتیشن یا دایرکتوری را بصورت خودکار mount -a device/directory mount_point

قرار دارد.noauto گزینه autoنقطه مقابل

•exec اجازه اجرای فایل های باینری (برای اطلع بیشتر بخش : exec را بخوانی]]د.). نقط]]ه مقاب]]ل مطلب از exec

قرار دارد.noexecگزینه •user اجازه می دهد تا یک کاربر معمولی اقدام به : mount و unmountکردن بکنند.(برای اطلع بیش]]تر بخ]]ش

۴۷

user را بخوانید.). نقطه مقابل آن مطلب از nouser.قرار دارد •ro/rw قابلین فقط خواندنی یا خواندن و نوش]]تن را م]]ی ده]]د.(ب]]رای اطلع بیش]]تر بخ]]ش : ro/rw رامطل]]ب از

بخوانید.)•remount یک دایرکتوری یا پارتیشن را که : mount شده است را مجدد mount یا در اص]]طلح Remountم]]ی

کند.•loop یک فایل : image را بعنوان loop device.متصل می کند

متصل می کند.cdrom را در نقطه اتصال isoدر مثال زیر یک فایل mount -o ro,loop Fedora-14-x86_64-Live-Desktop.iso /media/cdrom

شدن سیستمRestartنکته مهمی که وجود دارد این است که این نقاط اتصال پایدار نیستند و پس از خاموش یا fstabاز بین می روند. اگر می خواهید این نقاط اتصال دائمی باشند باید آنها را بص]ورت ی]ک خ]ط مج]]زا در فای]ل

بنویسید.

umountدستور ۵.۵.۵

م]]ی کن]]د. ش]]کلUnmount خارج می کند که در اص]]طلح آن]]را mountاین دستور یک دایرمتوری را از حالت استفاده از آن ساده بوده و فرمت کلی زیر را دارد.

umount mount_point

است و اتصال میان نقطه اتصال و پارتیش یا دایرکتوری را قطع می کند. چندینmount عکس Unmount عمل ب]]ودن پارتیش]]ن ی]]ا دایرکت]]وریBusyدلیل وجود دارد که یک نقطه اتصال نتواند قطع شود. یکی از آنها مشغول یا

وارد آن نقطه اتصال شده و امکان قطع اتصال وجود ندارد و یا اینکه فرایند ی]]اcd با دستور مثلاست یعنی کاربری وجود دارد که در حال اس]]تفادهOpenکاربری در حال استفاده از فایلی درون آن نقطه اتصال هستند.یعنی یک فایل

شدن توسط دیگران است.

۴۸

مهم و ضروری است.fuser و lsofپیش از خواندن این مطلب، مطالعه بودن یا باز بودن ف]]ایلی در آن دایرکت]]وری، قط]]ع ی]]اBusyبطور کلی شما نمی توانید یک نقطه اتصال را بخاطر

Unmount کنید. دو دستور lsof و fuserدستور هایی هستند که می توانید توسط آنها بررسی کنید که کدام فراین]]د شده است.Unmountها و کاربران در حال استفاده چه فایل هایی هستند که باع عدم عمل

می شوند که پس از اینک]]ه تم]]ام فراین]]دUnmount شدن بصورت خودکار shutdownسیستم فایل ها در زمان خواهن]]دMountهای غیر سیستمی خاتمه یافتند، این کار انجام می شود و دوباره موقع بوت شدن، بصورت خودکار

کردن رخ دهد خطای زیر خواهد بود :Unmountشد.یکی از خطاهایی که ممکن است در هنگام

sudo umount /mnt/NAS

umount: /mnt/NAS: device is busy

بخاط این اس]]ت ک]]هBusy اشغال است. یک علت خطای NASخطای بال به این معنی است که نقطه اتصالی به نام /mnt/NAS/ قرار دارد. یعنی دایرکتوری جاری برای آن ک]]اربر، دایرکت]]وری mnt/NASشاید کاربری در دایرکتوری

برای فهمیدن دایرکتوری جاری استفاده کنید. دلیل دیگر آن این است که کاربر ی]]اpwdاست. می توانید از دستور ب]]رایlsof/) وجود دارد هس]]تند. دس]]تور mnt/NASفرایندی در حال استفاده از یک فایل که درون این دایرکتوری(

م]]ی توانی]]د بص]]ورتدر ای]]ن بخ]]ش فهرست کردن فایل های باز استفاده می شود. با توجه به مثال های گفته شده تفکیکی بررسی کنید کدام فایل ها توسط چه کاربران یا فرایند هایی در حال استفاده شدن هستند.

- است که کمک بسیاری برای کمک ک]]ردن ب]]ه عم]]لl در لینوکس، سویج umountیک سوئیچ مفید از دستور Unmount به بعد کار می کند که در توزیع های ام]]روزه۲.۴.۱۱ یک سیستم فایل می کند.البته این سوئیج با کرنل

مشکلی از نظر نسخه کرنل وجود ندارد.با این سوئیچ و به فرمت زیر یک سیستم فایل را برای جدا کردن از سلس]]ه مراتب ساختار فایل تععین می کنیم. این سوئیچ از استفاده فراین]]د ه]]ای جدی]]د از ای]]ن دایرکت]]وری و فای]]ل ه]]ایش

ش]دند) سیس]]تم فای]]ل راTerminateجلوگیری می کند و زمانی که تمام فرایند های فعلی از بین رفتن]د(خ]]اتمه ی]ا Unmount.کنند

۴۹

سیتتم فایلی است که آنرا از سلسله مراتب دایرکتوری ها جدا کرده ایم. می توانید نامfilesystemدر فرمت زیر پارتیشن یا دایرکتوری را بجای آن بیاورید.

umount -l /name/of/filesystem

mkdirبرای درک بهتر استفاده از این سوئیچ، ابتدا یک دایرکتوری با دس]]تور /mnt/NASایج]]اد کنی]]د. س]]پس استفاده کنید.NAS به نقطه اتصال sda3دستور زیر را برای اتصال پارتیش

mount /dev/sda3 /mnt/NAS

شویدNAS وارد دایرکتوری cdسپس با دستور cd /mnt/NAS

نی]]ز در فهرس]]ت دایرکت]]وری ه]]اNAS را به تنهایی اجرا کنید. مشاهده می کنید که دایرکت]]وری mountدستور mount.شده وجود دارد

حال با دستور زیر سعی کنید تا نقطه اتصال را از بین ببرید.umount /mnt/NAS

با اجرای دستور بال خطای شکل زیر یعنی اشغال بودن دایرکتوری مشاهده خواهد شد.

۵۰

cd /mnt/NAS: ۷تصویر

/ را ج]]دا از سلس]له مرات]]بmnt/NAS کردن استفاده کنید چون دایرکت]]وری Unmountولی اگر از دستور زیر برای سیستم فایل می بینید بدون خطا نقطه اتصال را قطع می کند.

umount -l /mnt/NAS

کردن Unmountرفع مشکل ۵.۵.۶

/ اتصال داده شده است و می خواهید این نقطه اتصال را قطعopt2فرض کنید یک سیستم فایل بر روی دایرکتوری وجود دارند تا بدانید چه فراین]]د ه]]ایی ب]]اfuser و lsof بودن مواجه می شوید. دو دستور Busyکنید ولی با مشکل

در ارتباط است.Deviceکدام فایل ها و در کدام دارکتوری یا / ازopt2آشنا شدید. برای فهرست کردن لیستی از فرایند های مرتبط ب]]ا دایرکت]]وری در این بخش lsofبا دستور

بصورت زیر استفاده می کنیم.lsofدستور lsof /opt2

۵۱

umount /mnt/NAS: ۸تصویر

lsof /opt2: ۹تصویر

از بین ببریم(بکشیم). فرم]]ت کل]]یkill هر یک از فرایند ها باید آنها را با دستور PIDپس از بدست آوردن شماره برای این کار بصورت زیر است.

kill -15 PID

درFD را نشان می دهند ای]]ن اس]]ت ک]]ه س]]تون moreنکته ای که درباره شکل بال و دو خط پایانی که دستور / است وopt2 آن دایرکتوری cwd یا Current Work Directoryدومین خط بیانگر این است که دایرکتوری جاری،

/ اس]]ت و ف]]ایلیopt2 در حال اجرا شدن و خواندن یک فایل در دایرکتوری moreاین به این معنی است که دستور بیانگر خواندن فایل3r از خط سوم FD نام دارد. در ستون resume.txt در حال خواندن آن است، moreکه دستور

پیشنهاد می شود)پست است.(برای اطلع بیشتر خواندن این moreتوسط دستور آن فراین]]د ه]]ا را از بی]]نkill ها را بدست بیاورید و سپس با دس]]تور PID شماره lsofبه هر حال باید با دستور

کنید.Unmount/ را opt2ببرید و در آخر با دستور زیر دایرکتوری

umount /opt2

fuser دستور دیگری است که می توانید با آن PIDفرایندهای مرتبط با دایرکتوری ها و فایل های آنه]]ا را بدس]]ت /proc گفته شد. این دستور در یونیکس هایی که از سیستم فایل (دایرکت]]وری) fuserکاربرد در این بخش بیاورید.

.FreeBSDپشتیبانی کنند قابل استفاده است مانند تمام توزیع های لینوکسی و همچنین سیستم عامل هس]]تند ازyellowmachineبطور مثال اگر بخواهیم بداینم که کدام فرایند ها در حال اس]]تفاده از ف]]ایلی ب]]ه ن]]ام

در حال استفاده از این فایل۲۳۶۹۷ و ۲۳۳۳۴ های PIDدستور زیر استفاده می کنیم و خواهیم دید که دو فرایند با هستند.

۵۲

fuser: ۱۰تصویر

دارد. یعن]]ی دو فراین]]د ک]]هlsof را در دس]]تور cwd های فراین]]د ه]]ا هم]ان مفه]]وم PID در انتهای شماره cحرف م]]ی توانی]]دkill/ است در حال استفاده از این فایل هستند. مانند قبل با استفاده از دستور mntدایرکتوری جاریشان

اس]]ت. ب]]رای اطلع بیش]]ترfuser- از دستور kفرایند های مرتبط را از بین ببرید ولی امکان دیگر استفاده از سوئیچ را بخوانید.fuserپست مزتبط با

۵.۵.۷mount کردن فايل های image) بصورت محلی locallyدر لینوکس (

مانن]]دimage/ است که می ت]]وان فای]]ل ه]]ای dev زیر دایرکتوری loop سخت افزاری Device ۸لینوکس دارای ۸ و همزم]]ان loop7 ت]]ا loop0 از loop دی]]وایس ۸ ک]]رد. mount و … را بصورت محلی img,iso,nrgفرمت های

بصورت زیر، نشان داده می شود که دیوایس هایls کرد. با استفاده از دستور mountفایل را می توان روی سیستم loop از نوع Block Device.ها هستند

*ls -l /dev/loop

brw-rw—-. 1 root disk 7, 0 Feb 3 10:39 /dev/loop0

brw-rw—-. 1 root disk 7, 1 Feb 3 10:39 /dev/loop1

brw-rw—-. 1 root disk 7, 2 Feb 3 10:39 /dev/loop2

brw-rw—-. 1 root disk 7, 3 Feb 3 10:39 /dev/loop3

brw-rw—-. 1 root disk 7, 4 Feb 3 10:39 /dev/loop4

brw-rw—-. 1 root disk 7, 5 Feb 3 10:39 /dev/loop5

brw-rw—-. 1 root disk 7, 6 Feb 3 10:39 /dev/loop6

brw-rw—-. 1 root disk 7, 7 Feb 3 10:39 /dev/loop7

ی]]اsu داشته باشید، پ]]س لزم اس]]ت ک]]ه از یک]]ی از دس]]تور ه]]ای root کردن فایل ها باید مجوز mountبرای sudo استفاده کنید. گام بعدی ایجاد یک دایرکتوری درون دایرکتوریmnt.است /

mkdir /mnt/milax04

۵۳

اس]]تoption- که مخفف o/ قرار دارد با استفاده از سوئیچ root/imageبا فرض اینکه فایل در زیر دایرکتوری می کنیم.mount- فایل را بصورت زیر o برای سوئیچ loopو مقدار

mount -o loop /root/image/milax04.iso /mnt/milax04

شده دایرکتوریmount را به تنهایی اجرا کنید در فهرست دایرکتوری ها و سیستم فایل های mountاگر دستور milax04.را خواهید دید

mount

روی دایرکت]]وریrw/ ب]]ا مج]]وز dev/loop0 و از دی]]وایس iso9660همانطور که می بینید ن]]وع سیس]]تم فای]]ل mnt/milaz04.متصل شده است /

نصب و استقرار يک فايل سیستمmountجدول دستورات ۵.۵.۸

نصب و استقرار یک فایل سیستمmount: ۵جدول mountنصب و استقرار یک فایل سیستم

fuser -km /mnt/hda2 برای خارج شدن (hda2 مجبور کردن پارتیشن

۵۴

mount: ۱۱تصویر

mountنصب و استقرار یک فایل سیستم

unmount از مسیر ( mnt/hda2 mount /dev/hda2 /mnt/hda2 در مسیرhda2 ) پارتیشن با نام mount استقرار (

mnt/hda2برای دیدن محتویات آن پارتیشن mount /dev/fd0 /mnt/floppy ) یک فلپی دیسکmount استقرار ( mount /dev/cdrom /mnt/cdrom ) یک سی دی رام یا دی وی دی رامmount استقرار ( mount /dev/hdc /mnt/cdrecorder ) یک سی دی رایتر یا دی وی دی رامmount استقرار ( mount /dev/hdb /mnt/cdrecorder ) یک سی دی رایتر یا دی وی دی رامmount استقرار ( mount -o loop file.iso /mnt/cdrom ) در مسیر موردiso ) یک فایل ایمیج ( mount استقرار (

نظرmount -t vfat /dev/hda5 /mnt/hda5 در مسیرFAT32 ) یک پارتیشن با فرمت mount استقرار (

مورد نظرmount /dev/sda1 /mnt/usbdisk ) یک حافظه فلشmount استقرار ( mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share

) یک دایرکتوری به اشتراک گذاشته شدهmount استقرار ( mnt/share ) در مسیر sambaدر شبکه ی سمبا (

umount /dev/hda2 mnt/hda2 از مسیر hda2 خارج کردن پارتیشن با نام umount -n /mnt/hda2 ) بدونunmount اجرای عمل خارج کردن پارتیشن (

etc/mtabبازنویسی فایل

فضای ديسک سخت۵.۶

duدستور ۵.۶.۱

du مخفف disk usage اگر. دستوری برای نشان داده حجم دایرکتوری ها و فایل های درون دایرکتوری ها ست

۵۵

دایرکت]]وری ه]]ا و فای]]ل ه]]ای درون) می]]زان اس]]تفاده از دیس]]ک(بدون هیچ سوئیچ و پارامتری استفاده شود، حجم ب]]رای ص]]فحه less خروجی دستور زیاد است پس بهتر است از دستورمعمول. دایرکتوری جاری را نشان می دهد

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

du OPTIONS /path/to/dir

du OPTIONS /path/to/file

خط اول دستور های بال به یک دایرکتوری ختم می شود و حجم تمامی فایل ها و دایرکتوری ه]]ای درون آن فای]]ل ی بکار نرود و مسیری هم OPTION اگر هیچ گزینه یا سوئیج یا. را نشان می دهد) درختی(بصورت سلسله مراتبی

.تعیین نشود بصورت پیش فرض دایرکتوری جاری در نظر گرفته می شود که به دو صورت زیر استفاده م]]ی ش]]ود.علمت نقطه در خط دوم نشانگر دایرکتوری جاری است

du | less

du . | less

du یعنی حج]]م. بایت است ۱۰۲۴داده ها را بر اساس بلک هایی از حجم داده ها نشان می دهد که پیش فرض خروج]]ی را ب]]ر- b و- k دو سوئیچ. ضرب می کند و عدد خروجی را نشان می دهد/تقسیم ۱۰۲۴کل داده را بر

:چند مثال زیر. اساس کیلو بایت و بایت نشان می دهدdu -k /etc/ | less

du -b /etc/ | less

البته باید برای فهرست کردن حجم دایرکتوری ها و فایل های درون آنها باید مج]وز خوان]]دن ب]]ر روی آن فای]ل راCan داشته باشید که در صورت عدم داشتن مجوز خطای not read directory بطور مث]]ال. نشان داده می شود

مجوز دارند پس مانند شکل یک کاربر معم]]ولی خط]]ا را در root فقط برای/ etc برخی از دایرکتوری های درون.یافت می کند

۵۶

ع]]دد ب]]رمثل اعداد خروجی که یا بر حسب بایت، کیلو بایت و یا مگابایت هس]]تندغیر قاب]]ل درک هس]]تند معمول –human-readable یا- h برای همین از سوئیج. است و قابل درک یا خوانا نیست ۱۰۶۶۴حسب کیلو بایت عدد

.برای مگابایت استفاده می کند m برای کیلو بایت و k استفاده می کنیم که از کاراکتر هایdu -h /etc | less

du بصورت پیش فرض فقط حجم را برای دایرکتوری ها نشان می دهد یعنی حجم کلی یک دایرکتوری بر اس]]اس فایل ها و دایرکتوری های درون آن بصورت سلسله مزاتبی نشان داده می شود و اگر بخواهی]]د حج]م ی]ک فای]]ل را

استفاده کنید تا هم- a ببینید یا باید مسیر منتهی به فایل را مانند دومین خط از اولین مثال ببینید یا اینکه از سوئیچ.حجم دایرکتوری ها و هم حجم فایل ها نشان داده شود

du -ka /etc | less

du -ba /etc | less

du -ha /etc | less

.مقایسه کنید- a را با و بدون du خروجی حج]]م ه]]ر دایرکت]]وری را ج]]دا از. بصورت پیش فرض تنها حجم دایرکتورها را نشان می دهد du خروجی دستور

.بصورت خلصه شده مجموع حجم یک دایرکتوری را نشان می دهد- s سوئیچ. دایرکتوری دیگر نشان می دهد

du -sh /etc

مانند مثال) یک مسیر استفاده کنید(البته می توانید از سوئیچ برای نشان داده همزمان حجم بیش از یک دایرکتوری :های زیر

du -k /etc /home

du -ka /etc /home

۵۷

du -b /etc /home

du -ba /etc /home

du -h /etc /home

du -ha /etc /home

du -sh /etc /home

مانند قبل لیستی از تمامی فایل ها به- c مجموع کل حجم را نشان می دهد ولی در خروجی- s نیز مانند- c سوئیچ در انته]]ای- c حجم ک]]ل در. تنها حجم کل را نشان می دهد- s همره حجمشان نشان داده می شود ولی خروجی

.لیست چاپ می شودdu -ch /etc | less

.را با هم مقایسه کنید- c و- s خروجی سوئیچ های برای زمانی استفاده می ود که می خواهید حجم یک دایرکتوری را پیدا کنی]]د ول]]ی برخ]]ی از– exclude سوئیچ

)mp3 و pdf تمامی فایل ها جز فرمت های( ها در نظر گرفته نشوند mp3 و یا pdf فرمت ها مانندdu -h –exclude=’*.pdf’ /home

du -h –exclude=’*.mp3′ /home

du -h –exclude=’*.pdf,*.mp3′ /home

جدول دستورات فضای ديسک سخت۵.۶.۲

: فضای دیسک سخت۶جدول

۵۸

فضای دیسک سختdf –h ) شدهmount نمایش لیست پارتیشن های مانت ( du -sh dir1 dir1 نمایش حجم استفاده شده توسط یک دایرکتوری با نام du -sk * | sort –rn نمایش حجم فایل ها و دایرکتوری ها که بر اساس حجم

مرتب شده اندls -lSr |more نمایش مشخصات کامل فایل ها و دایرکتوری ها که بر

اساس حجم مرتب شده اند

Ls -l یا ll با جزییات بیشترفایل هانمایش لیست

گروه هاکاربرها و ۵.۷

آشنايی با مديريت کاربران در لینوکس۵.۷.۱

چگونگی مدیریت و بدست اوردن اطلعاتی از کاربران را ش]]رح خ]]واهم در این بخش مدیریت گروه ها در لینوکس پ]]س.شما را با متغیر های محلی و فایل های و همچنین دستورات لزم برای مدیریت کاربران آشنا خواهم کرد. داد

عل]]ت.از نصب سیستم و داشتن یک نام کاربری و کلمه عبور لینوکس شما را در قالب گروه دسته بن]]دی م]]ی کن]]د عض]]و ی]]کحتم]]اش]]ما . استفاده از گرو ها برای اشتراک گذاری منابع و فایل ها به دسته های خاصی از افراد است

ف]]ایلی در.گروه هستید و از ویژگی های آن گروه بهره می بری]]د ام]]ا م]]ی توانی]]د عض]]و بی]]ش از ی]ک گ]]روه باش]]ید به ازای هر کاربر یک خ]]ط passwd در فایل.وجود دارد که این گروه ها را در خود نگاه می دارد/ etc دایرکتوری :دستور زیر را اجرا کنید.وجود دارد

cat /etc/passwd

:یک خط از آن مانند زیر استmirza:x:500:500:ehsan:/home/ehsan:/bin/bash

ehsan [شناسه گروه اصلی من ۵۰۰–ش]]نتاسه م]ن] ۵۰۰–ن]ام] کارب]ری م]ن –Mirza نام گروه اصلی من و دو فیلد ۵۹

:پس به ازای هر کاربر که در سیستم ثبت شده است خطی بصورت زیر وجود دارد. پایانی نیز مشخص استusername:password:uid:gid:user id Info:home_directory:default_shellx

shadow در بال به این معنی است که برای نام کاربری یک کلمه عبور ایجاد شده اما به دلیل استفاده از تکنیک

.جایگذین آن است x کارکتر

اطلعات کاربری۵.۷.۲

.نام کاربری شما را نشان می دهد whoami دستور.چه کسانی بر روی سیستم هستند who دستور.چه کسانی بر روی سیستم هستند و چه فعالیت هایی دارند w دستور این دستور به ص]]ورت) ورود و خروج به سیستم ( اخرین فعالیت شما را در سیستم نشان می دهد last دستور

last پیش فرض اطلعات شما را نشان می دهد اما بصورت username اطلعات کاربر تعیین شده را نش]]ان م]]ی .دهد

متغیر های محیطی ۵.۷.۳

مانند. دارای متغیر های محیطی است که برای هر کاربر اطلعات مربوط به آن کاربر را نگه می دارد bash شل.آنها را اجرا و خروجی را مشاهده کند) برای چاپ کردن مقدار متغیر ها echo دستور( دستور های زیر

• echo $HOME برای مسیر خانگی • echo $BASH شل پیش فرض • echo $UID شناسه کاربری شما • echo $USERNAME نام کاربری شما • echo $GROUPS شناسه گروه های شما • echo $PATH مسیر های اجرایی شما

مسیر هایی که حاوی$ PATH در لینوکس هر برنامه متعلق به گروهی از کاربران و یا کاربر ریشه است خروجی۶۰

از یکدیگر جدا شده اند: هر دو مسیر توسط یک . دستوراتی که شما مجاز به اجرای انها هستید را نشان می دهد هستند که می توان به) dot شروع با(این فایل ها در دایرکتوری خانگی ما و بصوورت مخفی :فایل های کاربری

فایل هایbashrc ای]]ن فای]]ل در هنگ]]ام ورود ب]]ه.که برای ذخیره سازی متغیر های محیطی و نام های مستعار به کار برد

سیستم یا اجرای یک خط فرمان خوانده می شودbash_logout با قطع ارتباط از یا خروج از bash اجرا شده و بطور پیش فرض صفحه نمایش را پاک می کند .bash_profile در ارتباط با فایل bashrc و و چند متغیر محلی را تنظیم میکند و فایل bashrc را اجرا می کند .

یک توضیح کوتاه از این فایل که مفید برای کار با متغیر های محلی است توضیح دو خط زیر که موجود در فایلاست

PATH=$PATH:$HOME/bin

export PATH

خط اول می گوید مسیر home/mirza/bin/

از هم جدا شده اند الحاق کن و با اجرای خط دم انها: که توسط یک علمت PATH را به انتهای متغیر محیطی.را ثبت کن

ب]]رای نم]]ایش history دس]]تور. حاوی اخرین دستورا اجرایی شما در خ]]ط فرم]]ان اس]]ت bash_history فایل این متغیر ها( محتویات همین فایل در خط فرمان است و حتی متغیر های محیطی برای کار با این فایل وجود دارند

)اطلعات خود را بصورت خودکار از همین فایل می خوانندecho $HISTCMD

echo $HISTFILE

echo $HISTFILESIZE

echo $HISTSIZE

۶۱

echo $HISTCONTROL

سه متغیر محیطی جالب دیگر برای هر کاربر ؛• echo $OSTYPE نوع سیستم عامل • echo $PWD دایرکتوری فعلی شما • echo $OLDPWD دایرکتوری قبل از تغییر دایرکتوری به دایرکتوری فعلی

این اطلعات برای هر کاربر یا یکسان است و یا متفاوت تنها مطل]]بی ک]ه بای]]د بدانی]]د در لین]]وکس دایرکت]]وری /است که یک زیردایرکتوزی از دایرکتوری root خانگی کاربر ریشه بر خلف تمامی کاربران یک دیرکتوری به نام

)مسیر زیر. ( استroot/

بسیار پر اهمیت خواهد بود Shell Scripting البته اهمیت متغیر های محلی در مبحث اسکریپت نویسی شل یا و یا هر دستور مجاز دیگری را اج]]را کنی]]د ای]]ن ls یا cd بعنوان مثال اگر شما در خط فرمان یک دستور مانند

دیگ]]ر ک]]اربران ذخی]]ره bash_history شما ذخیره می شود اما این دستور در فایل bash_history دستور در فایل محتویات فایل گفته شده و متغیر های محیطی مختص فعالیت های ش]]ما در ۴س نتیجه می گیریم که پنخواهد شد

.سیستم هستند

متغیر های محلی هر کاربر لینوکسی و همچنین دسته بندی کردن کاربران در غالب گروه يا۵.۷.۴گروه ها

با فایل ها و متغیر های محلی هر کاربر لینوکسی و همچنین دسته بندی کردن کاربران در غالب گروهبخش در این یا گروه ها آشنا شدیم و اهمیت گروه ها به خاطر تقسیم بندی منابع و فایل میان ک]]اربران ه]]ر گ]]روه ب]]ا ت]]وجه ب]]ه

فایلی که هر کاربر در دایرکتوری خانگی خود دارد نیز به هم]]راه دس]]تور ه]]ایی ب]]رای دری]]افت ۴. نیازهایشان است.اطلعات کاربری توضیح داده شدند

.نیاز به سطح کاربر ریشه دارند passwd و adduser دستور های۶۲

:جديد)اکانت(ايجاد يک حساب کاربری۵.۷.۵

هر کاربر در غ]]الب گ]]روه ی]ا گ]]روه.لینوکس برای به هر کاربر یک شناسه و نام کاربری مخصوص داده می شود به هر کاربر یک دایرکتوری خانگی و ی]]ک. هایی دسته بندی خواهتد شد تا از منابع و فغایل های گروه استفاده کنند

در یونیکس برای ایجاد کاربر ایجاد کاربران استفاده می شود useradd دستور.شل پیش فرض به آن داده می شود :که دارای تعدای گزینه برای همین اطلعات پیش فرض استفاده می شود که مهمترین آنها بصورت زیر هستند

•c : -شرح اطلعات اکانت جدید که اغلب نام کامل شخص است.•d : -معین کننده دیرکتوری اصلی که معمول همان دایرکتوcmری خانگی است.•e : -تاریخ انقضای اکانت یا expire

•g :- معین کننده گروه اصلی برای کاربر که اغلب شما در گروهی با نام کاربری خود خواهید بود.•G : -تعیین دیگر گروه های اکانت که گروه ها با کاما از هم جدا می شوند.•p : در ادامه با دستوری آشنا خواهیم شد ک]ه.(تعیین کننده پسورد که باید بصورت کدگذاری شده باشد-

).پسورد کدگذاری شده را ایجاد می کند و بهتر از این دستور پس از ایجاد اکانت استفاده شود•u : شناسه کاربر را تعیین می کند که اگر استفاده نشود یک بصورت خودکار ع]]دد ب]]ه ک]]اربر داده م]]ی-

معمول یک عدد پیش فرض وجود دارد که با ایجاد هر کاربر جدید یکی به این عدد اضافه می ش]]ود و.شود.به کاربر جدید داده می شود

وجود دارد که همین اطلعات پیش فرض را در خود نگه می login.defs به نام/ etc در لینوکس فایلی در مسیر است اطلعاتی مانند login defines در این فایل که مخفف.اطلعات را از آن می خواند useradd دارد و دستور

:عبارات زیر وجود داردMAIL_DIR /var/spool/mail

تعیین کننده دایرکتوری پیش فرض پست الکترونیک برای کاربران•PASS_MIN_LEN حداقل کارکتر ها برای پسورد ها•UID_MIN همانطور که گفته شد اگر از گزینه u برای تعیین شناسه کاربری اس]]تفاده نکنی]]د ی]]ک ع]]دد

۶۳

UID_MIN بصورت خودکار به آن داده می شود که مقدار اولیه این عدد بصورت پیش ف]]رض ب]]ا عب]]ارت

.معین می شود•GID_MIN مانند عبارت قبلی اما برای تعیین عدد پیش فرض برای گروه اصلی کاربر•CREATE_HOME از نام آن معلوم است و تعیین کننده اینکه ای]]ا دایرکت]]وری خ]]انگی ایج]اد ش]]ود و آن

.دارد d بعنوان دایرکتوری خانگی شما باشد که ارتباط با گزینه•UMASK یک عدد خاص دارد که تعیین می کند هرگاه کاربر یک فایل ی]]ا دایرکت]]وری ایج]]اد ک]]رد چ]]ه

پرمیشن پیش فرضی به آن داده شود بطور ساده تر این دستور یک پرمیشن پیش فرض برای فای]]ل و ی]]ک بخش پرمیشن ها را.(پرمیشن پیش فرض برای دایرکتوری های ایجاد شده توسط کاربران را معلوم می کند

)بخوانید:برای انکه محتویات این دستور را ببینید دستور زیر را در خط فرمان اجرا کنید

cat /etc/login.defs

: برای اکانت جديددتعیین پسور۵.۷.۶

به ازای هر کاربر موجود در. قرار دارد/ etc ودر مسیر passwd فایل دیگری که در ارتباط با کاربران است فایل :یک خط در ارتباط با آن کاربر وجود دارد که هر خط آن در قالب زیر است

username:password:uid:gid:user id Info:home_directory:default_shell

.معرف نام کاربری من است ehsan خط مربوط به من در این فایل کهmirza:x:500:500:ehsan:/home/ehsan:/bin/bash

ب]]رای درک.هرگاه که یک کاربر جدید به سیستم اضافه می شود یک خط برای آن در این فایل اضافه می ش]]ود برای داشتن امکانات کاربر ریشه su– دستور. اجرا کنید user1 بیشتر دستور زیر را برای ایجاد یک کاربر به نام

.از دستورهای کاربر ریشه است useradd است چون دستور -su

۶۴

useradd user1

باشد بگردید که آن خط مانند خط زیر باید user1 به دنبال خطی که حاوی cat /etc/passdw و سپس با دستورباشد

user1:x:501:501::/home/user1:/bin/bash

ش]]ده اس]]ت چ]]ونکه ۵۰۱اولی نشان دهنده شناسه کاربر و اینکه برای این ع]]دد ۵۰۱توجه کنید در خط عدد پیش از این در سیستم ثبت شده عدد ehsan بوده و چون کاربر ۵۰۰عدد login.defs در فایل UID_MIN عبارت

از دس]]تور u متعلق به آن است و همین روند افزایشی برای دیگر کاربران صادق است مگر اینکه ب]]ا گزین]]ه ۵۰۰useradd شناسه کاربر را خودتان تعیین کنید و همین توضیح برای عدد دوم که متعلق به شناسه گروه اس]]ت نی]]ز

تعلق داد اما چ]]ون g البته می توان از قبل گروهی را ایجاد کرد و ان گروه را به کاربر از طریق گزینه. صادق است.گروهی تعیین نشده پس سیستم یگ گروه همنام با نام کاربری خود کاربر جدی به کاربر جدید می دهد

بصورت زیر استفاده passwd پس از مراحل بال نوبت به دادن پسورد به کاربر است پس برای این کار از دستورمی کنیم

su

passwd username

:user1 برای کاربرpasswd user1

New Password

Retype New Password

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

passwd: all authentication tokens updated successfully

حال که شما با ایجاد یک اکانت جدید اشنا شدید اید بخواهید که کلمه عبور خود یا یک ک]]اربر خ]]اص را تغیی]]ر۶۵

:انجام خواهد شد که بصورت زیر است passwd دهید این کارر در یونیکس توسط دستور اج]]رای. را به تنه]]ایی اج]]را کنی]]د passwdشما می خواهید نام کاربری خود را عوض کنید که باید دستور - ۱

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

passwd

.یا اینکه می خواهید پسورد یک کاربر خاص تغییر دهیم که بصورت زیر خواهد بود– ۲passwd username

ی]]ک.در هردو حالت باید پسورد جدید را مانند بال یک بار وارد کنید و دوبازره برای تایید تطابق آنرا وارد کنید :مثال

:برای پایان مبحث یک مثال کلی از ایجاد تا تعیین پسورد خواهیم گفتstep 1 : Create Account

useradd -g users -c “New User” -s /bin/csh user2step 2 : Set Password for user2

passwd user2

type password and retype password

:حذف کاربر۵.۷.۷

این دستور جز دستور های کاربر ریش]]ه ب]]وده و. برای حذف یک کاربر از سیستم بکار می رود userdel دستور :برای اجرای آن نیاز به داشتن سطح کاربر ریشه دارید و بصورت زیر استفاده می شود

- su

userdel username

.بصورت زیر استفاده خواهد شد user1 برای کاربرuserdel user1

۶۶

:تغییر اطلعات اکانت کاربران۵.۷.۸

در بال به چگونگی ایجاد یک اکانت جدید و دادن اطلعات لزم و ضروری برای کار روی سیستم آشنا شدید اما می توان به غیر از اطلعات بال دیگر اطلعاتی مانند اطلعات تماس و آدرس ها را برای کاربر بعنوان پروفای]]ل آن

است وجود دارد که اطلعاتی از change fullname که مخفف chfn در لینوکس دستوری به نام. کاربر اضافه نمود اگر می خواهید برای ک]اربر فعل]]ی یعن]]ی خودت]]ان انج]]ام دهی]]د. و تلفن های تماس را دریافت می کندآدرسقبیل

را بزنید و اگر Enter را اجرا کنید و اطلعات لزم را وارد کنید و برای پر کردن اطلع بعدی chfn کافیست دستور.هم می خواهید برای دیگر کاربران انجام دهید باید بصورت زیر باشد

chfn username

البته برای انک]]ه بتوانی]]د.باید دسترسی کاربر ریشه داشته باشید) خط بال(البته توجه کنید که با انجام حالت دوم وجود دارد که عملکرد آن همان دس]]تور userinfo دستور بال را بصورت گرافیکی انجام دهید دستور دیگری به نام

chfn است اما بصورت گرافیکی و بازهم حالت تغییر اطلعات برای کاربر دیگ]]ر نی]]از ب]]ه س]]طح دسترس]]ی ریش]]ه در زیر حالت نخست برای کاربر فعلی یعنی شما و حالت دوم برای کاربری خاص بک]]ار م]]ی رود و ح]]الت دوم.دارد

.نیاز به داشتن سطح ریشه داردuserinfo

userinfo username

وجود دارد که مانند مشابه متنی خود برای دادن passwd برای انجام عمل دستور userpasswd دستور گرافیکی در زیر حالت نخست برای کاربر فعل]]ی یعن]]ی.یک پسورد به کاربر جدید و همچنین برای تغییر پسورد بکار می رود

.شما و حالت دوم برای کاربری خاص بکار می رود و حالت دوم نیاز به داشتن سطح ریشه داردuserpasswd

userpasswd username

۶۷

:مديريت گروه ها۵.۷.۹

دستور های بال برای ایجاد و مدیریت کاربران بود و همانطور که گفته شد کاربران در دسته گروه هایی قرار م]]ی قرار دارد و برای دیدین/ etc در مسیر group فایلی که بطور مستقیم با گروه ها در ارتباط است فایلی به نام. گیرند

خروجی شامل خطوطیست که هر خط متعلق به یک گروه و همراه شناسه و. را اجرا کنید cat /etc/group آن دستور.هر خط بصورت زیر خواهد بود.پسورد گروه است

groupname:password:gid:lists users

cdrom:x:24:vivek,student13,raj

cdrom نام گروه و x معرف پسورد ذخیره شده با تکنولوژی shadow معرف شناسه گروه و در نهاست ۲۴و .فهرست اخر فهرست کاربران عضو است

:ایجاد و حذف یک گروه جدید و افزودن کاربر به آن .برای حذف یک گروه از سیستم groupdel برای ایجاد یک گروه جدید یکار می رود و دستور groupadd دستور

.ایجاد می شود group به ازای ایجاد یک گروه یک خط در فایل

groupadd groupname

groupdel groupname

اما برای passwd است و مشابه group password وجود دارد که مخفف gpasswd همچنین دستوری به نام.دادن کلمه عبور جدید به گروه و یا تغییر ان بکار می رود

useradd دستور: توجه -D رو با دسترسی کاربر ریشه برای نمایش اطلعات پیش فرض گفته شده در ب]الکه .ذخیره شده اند استفاده کنید login.defs در فایل

:usermode دستور

:گزینه اساسی و کاربردی دارکه ۲دارای .برای تغییر در یک اکانت بکار می رود.کردن یا غیر فعال کردن پسورد کاربر مورد نظر و غیر فعال کردن آن کاربر بکار می رود Lock برای L گزینه

۶۸

.کردن به سیستم login کردن پسورد و فعال کردن دوبازه اکانت و اجازه دسترسی و Unlock برای U گزینه :خطوط زیر را در دسترسی کاربر ریشه وارد نمایید

useradd -mc ” Sample tutorial” -e 2011/11/8 -s /bin/tcsh user1passwd user1

NEW PASSWORD ENTER

RETYPE PASSWORD ENTER

ب]]ه سیس]]تم USER1 را فشرده تا وارد محیط ترمینال مجازی شوید و با ک]]اربر Ctrl+Alt+F2 حال کلید هایLOGIN شما می توانید وارد شوید اما در تارخ هشتم نوامبر تاریخ.شوید expire است.

.کاربر ریشه شوید و دستور زیر را اجرا کنید su– در همان ترمینال مجازی با دستورusermod -L user1

مديريت گروه ها در لینوکس۵.۷.۱۰

یکی دیگر از وظایف هر مدیر ایجاد و مدیریت گروه ها و مجوزهای آن گروه، افزودن کاربران ب]]ه و ح]]ذف از گ]]روه چگونگی ایجاد و مدیریت گروه و همچنین عضو کردن ک]اربران درر ی]ک گ]روه را نش]ان م]یدر این بخش . هاست man می توانید راهنمای هر کدام را با دستور. دستور زیر برای مدیریت و کار با گروه ها استفاده می شوند ۵.دهیم

، برای تغیی]]ر گ]]روه ازgroupdel ، برای حذف یک گروه از دستورgroupadd برای ایجاد یک گروه از دستور.بخوانید و برای نشان دادن گروهایی ک]ه ی]ک ک]]اربر عض]و آنهاس]ت از groupmem ، مدیریت اعضا ازgroupmod دستور.استفاده می شود groups دستور

۶۹

groups: ۱۲تصویر

ايجاد گروه۵.۷.۱۱

شکل کلی. از اطلعات ورودی و اطلعات پیشفرض سیستم برای ایجاد گروه استفاده می کند groupadd دستور.آن بصورت زیر است

groupadd [-g GID [-o]] [-f] [-K KEY=VALUE] GROUP_NAME

Group هر گروه دارای یک شناسه منحصر به فرد است که ID یا GID در دستور بال س]]وئیچ. می نامند g- خ]]ود) استفاده نکنی]]د- g از سوئیچ(در صورتی که شناسه ای تعیین نکیند . برای تعیین شناسه دلخواه بکار می رود login.defs از فای]]ل MAX_GID و MIN_GID سیس]]تم از پ]]ارامتر ه]]ای. سیستم یک شناسه اختصاص می دهد

.استفاده می کندless /etc/login.defs

ساده ترین شکل استفاده از دس]]تور بص]]ورت.قرار می گیرند/ etc/group گروه هایی که ایجاد می شوند در فایل.زیر است

groupadd GROUP_NAME

GID=501 اضافه ش]]ده و ۵۰۰اگر دوباره از دستور بال برای ایجاد گروه استفاده کنیم، یکی به مقدار قبلی یعنی

.دلخواهمان را به گروه بدهیم GID می توانیم- g ولی مانند مثال زیر می توانیم با استفاده از سوئیچ.خواهد شدgroupadd -g GID_NUMBER GROUP_NAME

۷۰

groupadd GROUP_NAME: ۱۳تصویر

نمايش گروه های عضو۵.۷.۱۲

با فرم]]ت زی]]ر م]]ی..برای نمایش اینکه یک کاربر عضو چه گروه هایی است استفاده می شود groups از دستور.را نشان دهید root توانید تمامی گروه های کاربر

groups USER_NAME

group root

root : root bin daemon sys adm disk wheel

.را نشان می دهد) کرده Login کاربری که(اگر نامی را تعیین نکنید بصورت پیشفرض اطلعات کاربر فعلی

حذف گروه۵.۷.۱۳

ی]ک خ]ط ب]]ه فای]]ل groupadd با اجرای دس]تور. برای حذف یک گروه استفاده می شود groupdel از دستورetc/group /اضافه می شود و با اجرای دستور groupdel تنها شکل.یم خط از آن مطابق با نام گروه پاک می شود

).یعنی سوئیچی ندارد(استفاده از دستور بصورتزیر استgroupdel GROUP_NAME

groupdel group1

groupdel group2

۷۱

groupadd -g GID_NUMBER: ۱۴تصویر

GROUP_NAME

تغییر اطلعات گروه۵.۷.۱۴

شکل کلی آن بصورت. برای تغییر شناسه یک گروه استفاده می شود- g به همراه سوئیچ groupmod از دستور.زیر است

groupmod -g NEW_GID GROUP_NAME

groupmod -g 501 group2

افزودن کاربر به گروه۵.۷.۱۵

یک کاربر جدید ایجاد useradd سپس از دستور. ایجاد می کنیم ۶۰۰با شناسه newusers ابتدا یک گروه به نام وجود دارد user1 همچنین از قبل کاربر. تعیین می کنیم newusers همان- g می کنیم و گروه اصلی آنرا با سوئیچ

.اضافه می کنیم- G با سوئیچ newusers آنرا به گروه usermod پس با دستورgroupadd -g 600 newusers

useradd -g 600 user2

usermod -G 600 user1

جدول دستورات کاربرها و گروه ها۵.۷.۱۶

: کاربرها و گروه ها۷جدول کاربرها و گروه ها

chage -E 2005-12-31 user1 user1 تعیین محدودیت زمانی برای پسورد کاربر groupadd [group] ایجاد یک گروه جدیدgroupdel [group] حذف یک گروهgroupmod -n moon sun sun به moon تغییر نام یک گروه از grpck وetc/group کنترل و بررسی گرامر و فرمت صحیح فایل

موجود بودن گروه هاnewgrp – [group] وارد شدن به یک گروه جدید و تغییر گروه پیش فرض فایل

۷۲

کاربرها و گروه ها

های ایجاد شده ی جدیدpasswd root تغییر پسورد کاربر ریشه passwd user1 user1 تغییر پسورد کاربر با نام pwck وetc/passwd کنترل و بررسی گرامر و فرمت صحیح فایل

موجود بودن کاربرانuseradd -c “User Linux” -g admin -d /home/user1 -s /bin/bash user1

admin در گروه user1 ایجاد یک کاربر جدید با نام

useradd user1 user1 ایجاد یک کاربر جدید با نام userdel -r user1 یرکتوریr حذف یک کاربر. گزینه ی دا ,

را پاک خواهد کرد !homeمتعلق به کاربر در دایرکتوری usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1

تغییر مشخصات کاربر

chmod و chownفايل ها مجوز ۵.۸

ls اگ]]ر در خ]]ط فرم]]ان دس]]تور.پس از ایجاد گروه و عضو کردن کاربران باید گروه دس]]تور را تغیی]]ر دهی]]م -l

/sbin/auditdرا اجرا کنید خط زیر را خواهید دید: r-xr-xr-x 1 root root 12336 Mar 30 2010 auditd-

در.می تواند این دستور را اجرا کنند root و دیگر اعضای گروه root است یعنی فقط کاربر root گروه این دستور اسکریپت ما بسیار.این آموزش ما یک اسکریپت بصورت زیر را خواهیم نوشت و تغییرات را روی ان انجام می دهیم

ب]]ه مس]]یر cd ابتدا ب]]ا دس]]تور).اعضای گروه.(ساده است و فقط به شما سلم ولی فقط به کسانی که حق اجرا دارنددلخواه بروید

cd /usr/local/bin

.ذخیره کنید mytset و سپس با هر وسرایشگر متنی دستورات زیر را با فایلی به نام

۷۳

/bin/bash!#

echo HELLO $USER

ابتدا با دستور ه]]ای زی]]ر گ]]روه ای]]ن.ساختید که به شما سلم می کند mytest شما با خطوط بال یک دستور به نام به این دلیل باید) خط اول شکلی کلی فرمت دستور و خط دوم یک مثال است.(قرار می دهیم appallow دستور را

Change مخفف chgrp دستور.(گروه دستور را تغییر دهیم چونکه گروه پیش فرض آن همان گروه سازنده آن است

Group است(

chgrp GROUPNAME /path/to/command

chgrp appallow /usr/local/bin/mytest

اینطور تعیین می کنی]]م ۷۵۰با پرمیشن .حال نوبت می رسد که تعیین کنیم چه افرادی حق اجرای دستور دارند )appallow گروه(را دارندف افراد عضو گروه execute و write , read مجوزهای) mytest دستور(که مالک فایل

)خط اول شکل کلی دستور و خط دوم یک مث]]ال.(را دارند ولی دیگران اصلن مجوزی ندارند execute و read حقمی توانید آموزش مجوز های لینوکسی را از اینجا بخوانید

chmod 750 /path/to/command

chmod 750 /usr/local/bin/mytset

کمک می گیریم su برای تست آن هم از دستور.با اجرای دستور های بال کار تمام شد و فقط باید امتحان کنیم که عضور گروه است برنامه را تس]]ت م]]ی کنی]]م و user01 ما یکبار با. که می توانید راهنمای آنرا از اینجا بخوانید

و خط سوم مج]]وز user01 مجوز اجرایی با کاربر su با دستور ۱خط (که عضوی از گروه نیست user04 یکبار با)را می دهد user03اجرایی با کاربر

su – user01 -c /usr/local/bin/mytest

۷۴

OUTPUTE : HELLO user01

su – user03 -c /usr/local/bin/mytest

OUTPUT : bash: /usr/local/bin/mytest: Permission denied

جدول دستورات مجوز فايل ها۵.۸.۱

: مجوز فایل ها۸جدول مجوز فایل ها

chgrp group1 file1 group1 به گروه با نام file1 تغییر گروه فایل با نام chmod ugo+rwx directory1 )w (نوشتن) , r (خواندن. تغییر مجوز یک فایل یا دایرکتوری

مالکیت کاربری) , x (اجرای فایل یا جستجوی دایرکتوری, ) u , (مالکیت کاربران گروه فایل) g , (مالکیت کاربران خارج

)o (از گروه فایل مورد نظرchmod go-rwx directory1 حذف مجوزهای یک فایل یا دایرکتوریchmod u+s /bin/file1 به کاربر جاریfile1 دادن مجوز اجرایی به فایل با نام chmod u-s /bin/file1 از کاربر جاریfile1 حدف مجوزی اجرایی یک فایل با نام chmod g+s /home/public به گروهpublic دادن مجوز اجرایی به دایرکتوری با نام

جاریchmod g-s /home/public از گروهpublic حدف مجوزی اجرایی یک دایرکتوری با نام

جاریchmod o+t /home/public دادن مجوز حذف فایل های یک دایرکتوری فقط به کاربر

جاریchmod o-t /home/public لغو مجوز حذف فایل های یک دایرکتوری از کاربر جاریchown user1 file1 user1 تغییر مالکیت یک فایل یه کاربر chown -R user1 directory1 تغییر مالکیت یک دایرکتوری و تمام محتویات آن به کاربر

user1

۷۵

مجوز فایل هاchown user1:group1 file1 وgroup1 به گروه و کاربر file1 تغییر مالکیت فایل با نام

user1 find / -perm -u+s نمایش همه ی فایل ها داخل پارتیشن لینوکس ( / ) که

دارای مجوز مورد نظر هستندls –lh نمایش مجوز فایل ها در مسیر مورد نظرls /tmp | pr -T5 -W$COLUMNS به صورت ستونی tmp نمایش فایل ها و دایرکتوری ها مسیر

ستون ۵شامل

جدول اعمال مشخصات ويژه بروی فايل۵.۹

: اعمال مشخصات ویژه بروی فایل۹جدول اعمال مشخصات ویژه بروی فایل

chattr +a file1 ف]ایل تنها در ین] ح]الت , در ا حالت الحاقی ( اضافه شدن ) قابل تغییر می باشد

chattr +c file1 اجازه فشرده سازی و باز کردن خودکار یک فایل را به کرنل می*دهد

chattr +d file1 در ه]]نگام ین] ح]الت , در ا برای گرفتن نسخه ی پشتیبانdumpاجرای ابزار سیستمی

ext3در پارتیشن های

ز ف]ایل م]ورد نظ]ر نس]]خه ی , ا پشتیبان تهیه نخواهد شد

chattr +i file1 ف]ایل ین] دس]]تور , ب]ا اج]]رای ا غیر قابل تغییر می شودrootحتی توسط کاربر

۷۶

اعمال مشخصات ویژه بروی فایلchattr +s file1 اجازه*ی امن بودن حذف یک فایل را می*دهدchattr +S file1 تغ]ییرات در ین] ح]الت , در ا

فایل همزمان بروی هارد دیسک ذخیره می شود

chattr +u file1 اجازه*ی بازیابی محتوبیات بک فایل، حتی اگر کهcancel

شده باشدlsattr نمایش مشخصات ویژه یک فایل در یک پارتیشن با سیستم

ext3فایل

فايل های فشرده و بايگانی۵.۱۰

tarآرشیو و فشرده سازی با دستور ۵.۱۰.۱

tar مخفف tape archive ابزاری خط فرمانی در تمامی سیستم عامل های مبتنی بر یونیکس برای فشرده سازی می توان بصورت خودکار از فایل ه]]ا در زم]]انی cron با استفاده از این ابزار به همراه. و آرشو فایل ها بکار می رود در این. گفته شد. zip با فرمت gzip آموزش فشرده سازی توسط دستوردر این بخش . مشخص پشتیبان تهیه کرد

چگونگی ایجاد فایل های فشرده و همچنین لیست کردن محتوای فایل ها، حذف برخی آیتم های درون فایل وبخش برای فشرده سازی یا استخراج فایل ها گفته شده tar در ادامه مهمترین سوئیج های دستور.… را آموزش می دهم

.است•c -یا create : –برای ایجاد یا Create

•d -یا diff : –برای مقایسه یا Compare کردن محتوای دو فایل tar

•delete : –برای حذف یک آیتم از درون فایل•r -یا append : –فایل هایی را به انتهای محتوای درون فایل tar الحاق می کند.•t -یا list : –بدون استخراج از حالت فشرده فقط محتوا را در. (فقط محتوای درون فایل را نشان می دهد

۷۷

)خط فرمان لیست می کند•x -یا extract : –برای استخراج کردن محتوای فایل•v -یا verbose : –استخراج را نشان می دهد/خروجی های بیشتری از فرایند انجام فشرده سازی.•C -یا directory : –شکل استفاده از این سوئیچ بصورت زیر است. برای تغییر به دایرکتوری.

tar –directory=DIR_PATH

•j : -برای ایجاد فایل های tar.bzip2 که فرمت tar.bz2 را دارند.•z : -برای ایجاد فایل های tar.gzip که فرمت tar.gz را دارند.

.خواهد بود. tar استفاده نکنید، فرمت نهایی- z یا- j توجه کنید اگر از سوئیچ•wildcards : –استخراج فایل ها بر اساس یک عبارت منطقی

ايجاد فايل۵.۱۰.۲

.استفاده کنید tar.gz و tar.bz2,tar از دستور های زیر به ترتیب برای ایجاد فایل ها با فرمت/tar cvf ARCHIVE_NAME.tar DIR_NAME

/tar cjvf ARCHIVE_NAME.tar.bz2 DIR_NAME

/tar czvf ARCHIVE_NAME.tar.gz DIR_NAME

استخراج فايل۵.۱۰.۳

.استفاده کنید tar.gz و tar.bz2,tar از دستور های زیر به ترتیب برای استخراج فایل ها با فرمت/tar xvf ARCHIVE_NAME.tar DIR_NAME

/tar xjvf ARCHIVE_NAME.tar.bz2 DIR_NAME

/tar xzvf ARCHIVE_NAME.tar.gz DIR_NAME

۷۸

فهرست کردن محتوای فايل۵.۱۰.۴

.استفاده کنید tar.gz و tar.bz2,tar از دستور های زیر به ترتیب برای فهرست کردن محتوای فایل ها با فرمت/tar tvf ARCHIVE_NAME.tar DIR_NAME

/tar tjvf ARCHIVE_NAME.tar DIR_NAME

/tar tzvf ARCHIVE_NAME.tar DIR_NAME

tar استخراج تنها یک فایل از میان تمامی فایل های درون

تنها یک فایل خاص از محت]]وای فای]]ل ه]]ا ب]]ا فرم]]ت) استخراج(از دستور های زیر به ترتیب برای خارج کردن tar.bz2,tar و tar.gz در تمامی مثال های زیر تنها فایلی که در انتهای دستور آمده است، استخراج می.استفاده کنید

)محتوای فایل را فهرست کنید- t بهتر است از قبل با سوئیچ. (شودtar xvf ARCHIVE_FILE.tar /path/to/file

tar xjvf ARCHIVE_FILE.tar.bz2 /path/to/file

tar xzvf ARCHIVE_FILE.tar.gz /path/to/file

tar استخراج تنها یک دایرکتوری از درون

تنها یک دایرکتوری خ]]اص از محت]]وای فای]]ل ه]]ا ب]]ا) استخراج(از دستور های زیر به ترتیب برای خارج کردن در تمامی مثال های زیر تنها دایرکتوری که در انتهای دستور آمده است،.استفاده کنید tar.gz و tar.bz2,tar فرمت

)محتوای فایل را فهرست کنید- t بهتر است از قبل با سوئیچ. (استخراج می شود/tar xvf ARCHIVE_FILE.tar /path/to/direcory

/tar xjvf ARCHIVE_FILE.tar.bz2 /path/to/direcory

/tar xzvf ARCHIVE_FILE.tar.gz /path/to/direcory

استخراج فایل ها بر اساس یک عبارت منطقی تنها یک فایل بر اساس یک) استخراج(و از دستور های زیر به ترتیب برای خارج کردن – wildcards با سوئیچ

بطور مثال تنها برای خارج ک]]ردن. استفاده کنید tar.gz و tar.bz2,tar عبارت منطقی از محتوای فایل ها با فرمت۷۹

.pl فایل هایی با فرمتtar xvf ARCHIVE_FILE.tar –wildcards *.pl

tar xjvf ARCHIVE_FILE.tar.bz2 –wildcards *.pl

tar xcvf ARCHIVE_FILE.tar.gz –wildcards *.pl

tar دایرکتوری به انتهای محتوای فایل/الحاق یک فایل

tar یک فایل به انته]]ای محت]]وای فای]]ل ه]ا ب]ا فرم]ت) افزودن(از دستور های زیر به ترتیب برای الحاق کردن

.استفاده کنیدtar rvf ARCHIVE_FILE.tar NEW_FILE_NAME

/tar rvf ARCHIVE_FILE.tar DIR_NAME

zip دايرکتوری ها با/فشرده سازی فايل۵.۱۰.۵

zip رایجترین فرمت بین فرمت های فشرده سازی فایل هاست که در تمامی سیستم های عامل بدون هیچ ن]]رم اگر می خواهید فایل هایی را فشرده و بین تمامی سیس]]تم ه]]ای عام]]ل. افزار خاصی برای نصب قابل پشتیبانی است

در سیستم عامل های مبتنی بر یونیکس بصورت پیش ف]]رض از. بهترین فرمت برای این کار است zip انتقال دهید ب]]رای. برای فشرده سازی و استخراج استفاده م]]ی ش]]وند unzip و zip دستور های. پشتیبانی می شود zip فرمت

.دستور ها استفاده کنید help شروع دستور های زیر برای خواندنzip –help

unzip -help

zip فشرده سازی فايل ها با۵.۱۰.۶

.شکل کلی زیر برای فشرده کردن فایل های درون یک دایرکتوری استفاده می شودzip zip_filename.zip /path/to/dir/* or /path/to/dir/filename

۸۰

zip -r zip_filename.zip /path/to/dir

اولین دستور به شکل*/path/to/dir/

تنها یک فایل خاص/ path/to/dir/filename را فشرده می کند ولی شکل dir تمامی فایل های درون دایرکتوری بصورت تمامی فایل ها و دایرکتوری های درون دایزکتوری- r را فشردهمی کند دومین دستور با استفاده از سوئیچ

dir را بصورت recursive تفاوت اولین دستور با دستور دوم در این است که در شکل. یا بازگشتی فشرده می کند dir فشرده می شوند ولی در شکل دوم به جر فایل های درون دایرکتوری dir اول فقط فایل های درون دایرکتوری

ب]]رای. نیز کپی می ش]]وند dir بصورت سلسه مراتبی تمامی فایل های درون زیر دایزکتوری های درون دایرکتوری ک]]ه httpd مثال دو دستور زیر را اجرا کنید و در خروجی می بینید که فایل های درون یک زیر دایرکتوری به ن]]ام

است در حالت دوم نسز جز فایل فشرده شده خواهد بود در صورتی ک]]ه در ش]]کل اول انط]]ور log زیر دایرکتوری.جز فایل فشرده خواهتد بود log نیست و فقط فایل های درون دایرکتوری

*/zip logs_compress.zip /var/log

/zip – r logs_compress.zip /var/log

که فقط فایل ها را ذخیره یا ۰سطح . وجود دارد zip برای استفاده فشرده سازی با دستور Level سطح یا ۱۰ استفاده ۶است که اگر ننویسید سطح ۶سطح پیش فرض . کمی حالت فشرده سازی دارد ۱آرشیو می کند و سطح

در این است که) ۶سطح (با فشرده سازی ) ۰سسطح (تفاوت آرشیو . است ۹کندترین سطح فشرده سازی . می شود ذخیره می شوند ولی فشرده سازی zip در ارشیو کردن حجم فایل ها تغییر نمی کند و تنها فایل ها را در یک فایل

.شکل کلی استفاده از سطح ها بصورت زیر است. یعنی اینکه فایل ها را با حجم کمتری ذخیره کنیمzip -lev# zip_filename.zip /path/to/dir/* or /path/to/dir/filename

zip -lev# -r zip_filename.zip /path/to/dir

ls برای مثال دو دستور زیر را اجرا کنید و سپس با دستور -lh اندازه فایل های zip در. شده را مقایسه کنی]]د .بسیار بیشتر از بقیه است ۰خروجی خواهید دید حجم فایل آرشیو شده با سطح

۸۱

zip -0 -r log_comp0.zip /var/log

zip -1 -r log_comp1.zip /var/log

zip -6 -r log_comp6.zip /var/log

zip -9 -r log_comp9.zip /var/log

.را نشان می دهد. zip دستور زیرحجم تمامی فایل ها با پسوند•ls -lh *.zip

کندترین سطح(از همه کمتر ۹و حجم سطح ) آرشیو فایل ها(از همه بیشتر ۰همانطور که می بینید حجم سطه .است) فشرده سازی

وقتی دایرکتوری یا فایلی را فشرده می کنید یک سری اطلع]]ات ک]]املتر از verbose به معنی- v سوئیچ•.فرایند را نشان می دهد

zip – v zip_filename.zip /path/to/dir/* or /path/to/dir/filename

zip -r -v zip_filename.zip /path/to/dir

: unzip استخراج فایل ها با

.شکل کلی استفاده از آن به صورت زیر است. برای استخراج فایل ها استفاده می شود unzip دستورunzip zip_filename.zip

فایل ها را ی]]ک- d با استفاده از سوئیچ. در دستور بال فایل ها در دایرکتوری فعلی استخراج و ذخیره می شوند.دایرکتوری دیگر استخراج و ذخیره می کنیم

unzip zip_filename.zip -d /path/to/dir/for/extract

.بدون استخراج آن از شکل کلی زیر استفاده کنید zip برای فهرست کردن محتوای یک فایلunzip -l zip_filename.zip

وقتی دایرکتوری یا فایلی را استخراج می کنید یک سری اطلعات کاملتر از فرایند verbose به معنی- v سوئیچ۸۲

.را نشان می دهدunzip – v zip_filename.zip

.صحت درستی داده های درون فایل تست می شوند- t با سوئیچ•unzip -t zip_filename.zip

.و به شکل کلی زیر امکان پذیر است- P با سوئیچ zip ایجاد پسورد روی فایل•zip -P YUOR_PASSWORD zip_filename.zip /path/to/dir/* or /path/to/dir/filename

zip -r -P YOUR_PASSWORD zip_filename.zip /path/to/dir

این است که پسورد واضح و آشکار- Pمشکل سوئیج. پسورد دلخواه را قرار دهید YOUR_PASSWORD بجای.شکل کلی بصورت زیر است. استفاده کنید- e است برای اینکه یک اعلن برای ورود پسورد داده شود از سوئیچ

zip -e zip_filename.zip /path/to/dir/* or /path/to/dir/filename

zip -e -r zip_filename.zip /path/to/dir

.پس از اجرای هر یک از فرمت های بال اعلن ورود پسورد و تایید پسورد داده می شودEnter password

Verify password

شده دارای پسورد را استخراج کنید یک اعلن برای ورود پسورد zip یک فایل unzip وقتی می خواهید با دستور.اعلنی شبیه به زیر داده می شود. داده خواهد شد

را در دایرکتوری که از قبل شامل همان اطلعات است استخراج کنید پیغام ZIP اگر بخواهید محتوای یک فایل فایل های جدید جایگزین ی]]ا y هشدار دهنده زیر داده می شود که فایل های همنامی از قبل وجود دارند و با ورود

overwrite روی فایل های قبلی بشوند و با ورود n به ازای هر فایل مشابه در دایرکتوری و فایل. جلوگیری می شود zip اعلن داده خواهد شد که باید y یا n را برای overwrite شدن یا نشدن هر فایل انجام دهید.

replace ../log1/var/log/cron? [y]es, [n]o, [A]ll, [N]one, [r]ename

۸۳

به معنی- o و اگر می خواهید بدون هیچ پیامی تمامی فایل های جدید جایگزین فایل های قدیم شوند از سوئیچoverwrite استفاده کنید.

unzip -o zip_filename.zip

never یا- n شنوند باید از سوئیچ overwrite و اگر می خواهید به هیچ عنوان فایل های جدید روی فایل قدیم

.بال نشان داده نمی شود replace در انصورت دیگر اعلن. استفاده کنیدunzip -n zip_filename.zip

zip ,gz ,rar , tar.bz2جدول دستورات فشرده سازی و بايگانی ۵.۱۰.۷

zip ,gz ,rar , tar.bz2: فشرده سازی و بایگانی ۱۰جدول

فایل های فشرده و بایگانیbunzip2 file1.bz2 از حالت فشردهfile1.bz2 خارج کردن فایل bzip2 file1 با فرمتfile1 ) یک فایل با نام compress فشرده کردن (

bzip2 gunzip file1.gz از حالت فشردهfile1.gz خارج کردن فایل gzip file1 با فرمتfile1 ) یک فایل با نام compress فشرده کردن (

gzip gzip -9 file1 با فرمتfile1 ) یک فایل با نام compress فشرده کردن (

gzipبا بیشترین میزان فشردگی rar a file1.rar test_file با فرمتfile1 ) یک فایل با نام compress فشرده کردن (

rar rar a file1.rar file1 file2 dir1 ) چند فایل یا دایرکتوری به طورcompress فشرده کردن (

همزمانrar x file1.rar از حالت فشردهfile1.rar خارج کردن فایل tar -cvf archive.tar file1 به صورت غیر فشردهtar ایجاد یک فایل با فرمت

۸۴

فایل های فشرده و بایگانیtar -cvf archive.tar file1 file2 dir1 یک فایل فشرده حاوی چند فایل و دایرکتوریایجاد

tar -tf archive.tar tar نمایش محتویات یک فایل فشرده با فرمت tar -xvf archive.tar tar خارج کردن یک فایل فشرده با فرمت tar -xvf archive.tar -C /tmp tmp به مسیر tar خارج کردن یک فایل فشرده با فرمت tar -cvfj archive.tar.bz2 dir1 tar.bz2 ایجاد یک فایل فشرده با فرمت tar -xvfj archive.tar.bz2 tar.bz2 خارج کردن یک فایل فشرده با فرمت tar -cvfz archive.tar.gz dir1 tar.gz ایجاد یک فایل فشرده با فرمت tar -xvfz archive.tar.gz tar.gz خارج کردن یک فایل فشرده با فرمت unrar x file1.rar از حالت فشردهfile1.rar خارج کردن فایل unzip file1.zip zip خارج کردن یک فایل فشرده با فرمت zip file1.zip file1 zip ایجاد یک فایل فشرده با فرمت zip -r file1.zip file1 file2 dir1 که حاوی تعدادی فایلzip ایجاد یک فایل فشرده با فرمت

و دایرکتوری است

)Red Hat ( فدورا و توزيع های مبتنی بر RPMبسته های ۵.۱۱

شاید اولین مشکلتی که کاربران تازه کار در دنییای لینوکس به آن بر می خورند کار با خط فرمان و ترس از ان اما آیا واقعا نصب بسته ها در لینوکس مشکل. و همچنین مشکل و سردرگمی در نصب بسته های نرم افزاری دارند

است؟ پسوند و نوع فایل های نصبی در لینوکس چیست؟ از کجا باید بسته های ن]]رم اف]]زاری را دانل]]ود کن]]]م؟چه مشکلت و یا بهتر بگویم چه نیاز هایی برای نصب نرم افزار داریم؟ معادل ویندوزی نرم افزار ها چیس]ت؟ ای]]ن ه]ا

و پست ه]]ای بع]]دی ب]]هدر این بخش برخی از سوالتی است که کاربران تازه وارد به دنیای لینوکس دارند که من .آنها پاسخ خواه داد به بررسی انواع گوناگون فایل های نرم افزاری و همچنین با مفاهیم اولی]]ه آش]]نا خ]]واهیم ش]]د و دردر این بخش

۸۵

.دیگر پست ها بطور مفصل روش نصب هریک را بررسی خواهیم کرد

:انواع بسته های نرم افزاری۵.۱۱.۱

:نوع فایل نرم افزاری زیر وجود دارند ۳در لینوکس : Source Code Package بسته نرم افزاری کد منبع یا• این همان کدهای برنامه است که معمول به

که بصورت یک فایل فشرده شده tar.bz2 ویا tar.gz هستند که با پسوند Python و یا C ++یا C زبان اگر آنها را از حالت فشرده خارج کنید چیزس جز سورس کد برنامه به زبان سی. انتشار داده می شوند

را دانل]ود کنی]]د و mplayer اگر کد منبه یا سورس کد برن]]امهمثل.یا هر زبان دیگری را نخواهید دید کنید یک کتابخانه عالی و کامل و اپن سورس به زبان سی برای فایل های چندرسانه ایی Extract آنرا

.را خواهید دید نوع دیگر و بسیار گسترده فایل های نرم افزاری : Debian Package بسته های نرم افزاری دبیان یا •

بوده و نخستین ب]]ار توس]]ط توس]]عه دهن]]دگان. deb پسوند آن. در برخی از توزیع های لینوکسی است.گفته می شوند Debian Package توزیع دبیان ایجاد شد و به همین خاطر

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

Debian

Ubuntu

Kubuntu Minit

Parsix

و نخستین بار توسط Redhat Package Managment مخفف RPM عبازت : RPM بسته های نرم افزاری– ۳ این نوع بسته ها هم فقط و فقط. ایجاد شد و امروزه در توزیع های معروف زیر استفاده می شوند RedHat شرکت

۸۶

. در ابونتو قابل نصب نیستندمثلنصب می شوند و rpm در توزیع های مبتنی بر توزیع هایی مانند

RedHat

Fedora

CenteOS

openSUSE

Mandriva

:اما در برخی از توزیع های دیگری نیز هستند که فایل نرم افزاری خود را دارند که می توان بهArch Linux با نوغ بسته نرم افزاری با پسوند tar.xz و Gentoo با نوع بسته نرم افزاری با پسوند ebuild اشاره

:اما آنچه که مهم است این است که نکات زیر را بدانیم. کرد

نصب انواع مختلف۵.۱۱.۲

تنها مختص یک توزیع نسیت بلکه در تمام توزیع های لینوکسی Source Code نوع بسته سورس کد یا • بدون استثنا قابل نصب هستند و حتی اگر بطور کاملتر بگوییم این نوع بسته ها تنها مختص لینوکس نیستند

.ها نیز قابل نصب هستند BSD و دراستفاده می کند نصب کنید و بلعکس RPM را در توزیعی که از نوع DEB شما نمی توانید یک بسته •.بسته های خاص خود را دارند Gentoo و Arch دیگر توزیع ها مانند •

چیست ؟ Dependencies وابستگی يا۵.۱۱.۳

ممکن.فرض کنید شما یک بسته نرم افزاری با هر نوع پسوندی را دانلود کرده اید و می خواهید آنرا نصب کنید است نرم افزار شما بدون هیچ مشکلی نصب شود اما شاید هم مشکلی پیش آید که این مشکل به این دلیل است که

بخواهید یک نرم اف]]زازمثل.نرم افزار شما نیاز به دیگر نرم افزار ها و کتابخانه ها برای نصب شدن نیاز داشته باشد mplayer گرافیکی برای نمایش ویدیو نصب کنید اما خود این نرم افزار برای پخش فایل نی]]از ب]]ه بس]]ته ای مانن]]د

۸۷

داشته باشد که این یک depe2 نیاز به depe1 و خود depe1 نیاز به package بطور کلی برای نصب. داشته باشد بطور مث]ال ب]]رای نص]ب بس]]ته ای. مشکل بزرگ و دردسر زاست و شما بایستی تک تک وابستگی ها را نصب کنید

.خطای زیر در خط فرمان نشان داده می شود

error: Failed dependencies:

libvlc.so.5()(64bit) is needed by vlc-devel-1.1.9-69.fc15.x86_64

libvlccore.so.4()(64bit) is needed by vlc-devel-1.1.9-69.fc15.x86_64

vlc = 1.1.9 is needed by vlc-devel-1.1.9-69.fc15.x86_64

:راه حل و پیشنهاد ام]]ا مخ]زن چیس]ت؟ بط]ور س]اده. راه حل برای رفع مشکل بال استفاده از مخازن در توزیع های لینوکسی است

مخزن یا مخازن مجموعه ای کامل از نرم افزار ها و کتابخانه های لزم برای نصب انواع نرم اف]]زار ه]]ا در لین]]وکس با مخازن پیش از اینکه شما بسته ای را که دانلود کرده اید و قصد نصب آنرا دارید می توانید تمام وابس]]تگی. است

در بال من خواستم بسته ای را نصب کنم که خطای وابستگی های لزم را داد پس من بهمثل. های آنرا نصب کنید راحتی از لیست مخازن آن وابستگی هایی که نیاز دارم را انتخاب و نصب می کنم و سپس خود نرم اف]]زار را نص]]ب

.خواهم کرد

نیاز نصب از مخازن چیست؟۵.۱۱.۴

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

دلخواه خود را از یک دسته مربوطه انتخاب یا نام آنرا جستجو کنید و به اینترنت هم اتصال داشته باشد و در نهایت.تمام وابستگی ها و خود نرم افزار بطور خود کار نصب خواهند شد. نصب را انجام دهید

ن]]ام برن]]امه. اس]]ت yum و نام دستور متنی نص]]ب از مخ]]ازن Add/Remove در فدورا نام این برنامه گرافیکی

۸۸

و در اپن سوزه نام برنامه گرافیکی آن apt-get و نام دستور متنی آن Ubuntu Software Center گرافیکی در ابونتوyast2 و نام دستور متنی آن zypper و در نهایت در مندریوا نام برنامه گرافیکی Mandriva Control Center و نام

.است urpm دستور متنی آن

راه حل مشکل اينترنت چیست؟۵.۱۱.۵

هستند به این معنی که online توجه داشته باشید مخازن پیش فرض بر روی تمامی توزیع ها معروف به مخازن لینوکس توسط برنامه گرافیکی یا دستور متنی و با بررسی کردن اتصال اینترنت شما ابتدا بس]]ته را از روی این]]ترنت

ام]]ا.دانلود و سپس آنرا نصب خواهد کرد که تمام این مراحل بصورا خودکار و به دور از دید شما انج]]ام م]]ی ش]]ود نیز باشند که دیگر نیاز به داشتن اتصال CD یا DVD که در قالب یک یا چند offline مخازن می توانند بصورت

اک]]ثر توزی]]ع ه]]ای online امروزه کاربران ایرانی تمام مخازن. اینترنت نیست و این همان پیشنهاد من به شماستمعروف لینوکسی مانند:

ابونتو • فدورا • اپن سوزه•

ب]]ه مخ]]ازن online ها نحوه تغییر مخازن DVD به شما می فروشند که همراه این DVD را در غالب چندینoffline سایت های زیر را به شما پیشنهاد می کنم..و عدم نیاز به اینترنت خواهد بود که به سود شما است فروشگاه سی تو• فروشگاه لینوکس••pkgs.org

rpmجدول دستورات نصب بسته های ۵.۱۱.۶

rpm: نصب بسته های ۱۱جدول

۸۹

)Red Hat ( فدورا و توزیع های مبتنی بر RPMبسته های rpm -ivh [package.rpm] rpmنصب یک بسته ی rpm -ivh –nodeeps [package.rpm] بدون در نظر گرفتن بسته هایrpmنصب یک بسته ی

پیش نیازrpm -U [package.rpm] بدون تغییر فایل های تنظیماتrpmآپگرید یک بسته ی

مربوط به آن بستهrpm -F [package.rpm] فقط در حالتی که آن بسته نصبrpmآپگرید یک بسته ی

شده باشدrpm -e [package] از سیستمrpmحذف یک بسته ی rpm –qa که در سیستم نصب شده اندrpm نمایش همه ی بسته های rpm -qa | grep httpd httpd با نام rpm نمایش همه ی بسته های rpm -qi [package] ] نمایش اطلعات مربوط به یک بسته ی نصب شدهrpm -qg “System Environment/Daemons مربوط به یک گروه نرم افزاریrpm” نمایش]] بس]ته ه]]ای rpm -ql [package]] نصبrpm] نمایش لیست فایل های مربوط به یک بسته ی

شدهrpm -qc [package] ] نمایش لیست فایل های تنظیمات مربوط به یک بسته ی

rpmنصب شده rpm -q [package] –whatrequires rpm نمایش لیست پیش نیاز های یک بسته ی rpm -q [package] –whatprovides rpm نمایش قابلیت های یک بسته ی rpm -q [package] –scripts نمایش اسکریپت های اجرا شده در حین عمل نصب یا

rpmحذف یک بسته ی rpm -q [package] –changelog نسبت به نسخه ی قبلیrpm نمایش تغییرات یک بسته ی rpm -qf /etc/httpd/conf/httpd.conf تعلقrpm بررسی اینکه فایل مورد نظر به کدام بسته ی

داردrpm -qp [package.rpm] –l کهrpm نمایش لیست فایل های مربوط به یک بسته ی

هنوز نصب نشده

۹۰

)Red Hat ( فدورا و توزیع های مبتنی بر RPMبسته های rpm –import /media/cdrom/RPM-GPG-KEY )key وارد کردن کلید ( rpm –checksig [package.rpm] rpmبررسی سالم بودن یک بسته ی rpm -qa gpg-pubkey نصب شدهrpm بررسی سالم بودن همه ی بسته های rpm -V [package] مجوز و سایر مشخصات یک بستهmd5 چک کردن حجم

rpmی rpm –Va مجوز و سایر مشخصات همه یmd5 چک کردن حجم

rpmبسته ها ی rpm -Vp [package.rpm] مجوز و سایر مشخصات یک بستهmd5چک کردن حجم

نصب نشدهrpmی rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm]

rpmنصب یک بسته ی ساخته شده از سورس یک بسته ی

rpm2cpio [package.rpm] | cpio –extract –make-directories *bin

rpm* استخراج فایل های اجرایی از یک بسته ی

rpmbuild –rebuild [package.src.rpm] rpm از روی سورس یک بسته ی rpmساختن یک فایل

)Red Hat ( فدورا و توزيع های مبتنی بر YUMابزار نصب ۵.۱۲

تف]]اوت ای]]ن دو در ای]]ن.در لینوکس دو نوع بسته نرم افزاری کد منبع و بسته های نرم افزاری باینری را داری]]م نشده اند ول]]ی بس]]ته ه]]ای ب]]اینری) ترجمه(کامپایل ) صفر و یک(است که بسته های کد منبع هنوز به زبان ماشین

برای نصب کد های منبع ابتدا باید آنها را به زبان ماشین ترجم]]ه کنی]]د و در نه]]ایت.تبدیل به زبان ماشین شده اند موضوع پر اهمی]]ت دیگ]]ر مفه]]وم. آنها را نصب کنید اما بسته های باینری با دوبار کلیک رویشان نصب خواهند شد

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

.نیاز ها روی سیستم موجود باشند

۹۱

:نصب از کد منبع۵.۱۲.۱

.قابل در ی]]افت هس]]تند tar.bz2 و tar.gz,tar بسته های کد منبه بصورت آرشیو شده هستند و با پسوند های مهم]]ترین موض]]وع درب]]اره. بصورت کد منبع انتشار می دهن]]دحتماتمامی سازندگان بسته های نرم افزاری خود را

بسته های کد منبع،این است که ابتدا باید آنها را روی سیستم کامپایل یا ترجمه کرد پس نتیجه این است که پی]]ش بسته به نوع زبان برنامه نویسی کد منب]]ع کامپ]]ایلر ی]]ا م]]ترجم.از نصب باید امکانات کامپایل یک برنامه مهیا باشد

C نوشته شده و اغلب یا بهتر بگوییم بیشتر برنامه ها در لینوکس به زب]]ان C هسته لینوکس با زبان. متفاوت است

و gcc است که مهمترین آنها++ C و C نوشته شده اند پس مهمترین کامپایلری که باید نصب کنیم کامپایر زبان مفسر این زب]]ان ه]]ا. اما شاید برنامه هایی که کد منبع به زبان های دیگری مانند پرل،پایتون و یا روبی باشند.هستند

روی سیس]]تم C از قبل روی سیستم نصب شده است و نیازی به نصب آن توسط شما نیشت اما شاید مترجم زبان.شما نصب نباشد که باید آنرا نصب کنید

د ارید تا بتوانید بسته های کد منبع را کامپایل و نصب کنید اما نیازی به gcc در لینوکس نیاز به نصب کامپایلر .نصب مفسر پایتون نیست چون از قبل روی سیستم عامل نصب شده است

:در لینوکس gcc نصب کامپايلر۵.۱۲.۲

:برای نصب کامپایبر در توزیع های مبتنی بر ابونتو از دستور زیر استفاده کنیدsudo apt-get install build-essential

:از دستور زیر استفاده کنید RedHat و برای نصب آن در توزیع های مبتنی بر‘yum groupinstall ‘Development Tools

:شروع به نصب کد های منبع:مرحله زیر را دنبال کنید ۴برای نصب کد های منبع باید

).با توجه به پشوند فایلشان(ابتدا باید بسته ای را از حالت فشرده با یکی از دستور های زیر خارج کنید.استفاده کنید tar xvf /path/to/filename.tar بود از دستور. tar اگر پشوند فایل•

۹۲

.استفاده کنید tar zxvf /path/to/filename.tar.gz بود از دستور. tar.gz اگر پسوند فایل•.استفاده کنید tar jxvf /path/to/filename.tar.bz2 بود از دستور. tar.bz2 اگر پسوند فایل•

وارد دایرکتوری استخراج شده که همنام همان فایل است بروید و دستور cd پس از استخراج فایل باید با دستورconfigure ./می) وابستگی ها(این دستور به بررسی سخت افزار سیستم و پیش نیاز های نرم افزاری . را اجرا کنید

یکی از ویژگی های بسته های کد منبع این است که می. پردازد و بسته را آماده مرحله بعدی یعنی کامپایل می کند بسته های نرم افزاری دارای ویژگی ها زیادی هس]]تند ک]]ه. توانید آنها را آن طوری که می خواهید پیکر بندی کنید

فعال و غیر فعال کردن این ویژگی ها فقط در هنگام کامپایل و. باید به هنگام کامپایل آنها را فعال یا غیر فعال کرد انجام می شود ولی امکان فعال و غیر فعال کردن و{یژگی ها در نصب بسته های باینری وجود/. configure با دستور

.ندارد. configure پس از اجرای دستور اگر تمام وابستگی ها موجود نباش]]د پیغ]]ام ه]]ای(و اجرای موفقیت آمیز آن /

نوبت به کامپایل بسته نرم افزاری می رشد و برای ای]]ن) خطایی نشان داده خواهد شد که باید آنها را برطرف کننید این دستور کد های منبع را تبدیل به صفر و یک و قابل درک برای ماش]]ین. استفاده می کنیم make کار از دستور

.می کند برای اجرای این مرحله نیاز به. بسته نرم افزاری را نصب می کنیم make install در گام چهارم و پایانی با دستور

.دارید root داشتن مجوز است که محل نصب بسته نرم افزاری را هنگام نص]]ب prefix یکی از ویژگی های مهم هر بسته نرم افزاری، ویژگی

.و بصورت زیر استفاده می شود/. configure این ویژگی به همراه دستور. تعیین می کند

configure –prefix=/path/to/directory ./

:طور کلی برای اطلع از ویژگی های هر بسته نرم افزاری هنگام نصب آن و با دستور زیر از آنها مطلع شویدبconfigure –help ./

root نیاز به مجوز make install ندارند اما دستور root نیازی به داشتن مجوز make و/. configure دو دستور

۹۳

.دارد

:حذف بسته نرم افزاری نصب شده از کد منبع۵.۱۲.۳

.اجرا کنید root برای حذف یک بسته نرم افزاری نصب شده از کد منبع کافیست دستور زیر را با مجوزmake uninstall PACKAGE_NAME

در این فای]]ل ی]ک. وجود دارد که خواندن آن بسیار مهم است README در هر بسته نرم افزاری فایلی به نام توضیح کلی از پروژه و مجوز آن و همچنین نیازمندی های نرم افزاری مزتبط به بسته نرم افزاری که بای]]د پی]]ش از

همچنین راهنمای نصب بسته نرم. نصب بسته نرم افزاری باید روی سیستم نصب شده باشند را فهرست کرده است توصیه می شود اول این فایل را بخوانید تا بدانید چه نیازمندی هایی لزم است و پ]]س. افزاری را توضیح داده است

را mplayer برای شروع برنامه.از نصب نیازمندی ها طبق خود آموزش فایل دستور های سه گانه بال زا اجرا کنید.نصب کنید

Binary و باينری Source Code دو فرمت کد منبعنصب دو فرمت ۵.۱۲.۴

.برای ارائه و نصب نرم افزار ها در لینوکس وجود دارد) Binary (و باینری) Source Code (دو فرمت کد منبع کد های منبع، شامل کد های خام به زبان های سی یا پ]]ایتون و پ]]رل و … هس]]تند ک]]ه ب]]رای تم]]امی توزی]]ع ه]]ای

حتی می توان این بسته های نرم افزاری را برای ویندوز و یا هر سیستم عامل دیگ]ری. لینوکسی قابل استفاده هستند در. قابل دانلود هستند tar.bz2 و یا tar.gz,tar این بسته ها بصورت فشرده با فرمت های. با تغییراتی استفاده کرد

و rpm نوع دیگر بسته ها، بسته های باینری با فرم]]ت ه]]ای. چگونگی نصب آنها اموزش داده شده استاین بخش dec هستند.rpm مخفف RedHat Package Manager و توسط شرکت Redhat ارائه شد و در توزیع های مطرحی

deb نوع دیگر بسته های. استفاده شده است Mandriva و openSUSE,SUSE,Fedora,CentOS,RedHat : مانند

ارائه شد و در توزیع هایی مانند ابونتو، پارسیکس و آری]]وس اس]]تفاده Debian و توسط توزیع Debian که مخفف را نصب کرد و بلعکس ولی در deb پشتیبانی کند نمی توان در آن توزیع بسته rpm اگر توزیعی از نوع. شده است

البته مانند بسته های کد منبع، در بسته ه]]ای ب]]اینری. تمامی توزیع ها قابلیت نصب بسته های کد منبع وجود دارد۹۴

هم مشکل وابستگی ها وجود دارد.

:rpm نصب بسته های۵.۱۲.۵

برای erase یا- e برای نصب، سوئیچ instal یا- i سوئیج. استفاده می شود rpm برای نصب بسته rpm از دستور س]]وئیچ ه]ای مه]م دیگ]]ری ک]ه. برای بروز کردن یک بسته بکار می رود Upgrade یا) بزرگ-(U حذف و گزینه

یک خروجی کامل از روند نصب، حذف و یا بروز رسانی را نشان verbose یا) کوچیک (v استفاده می شوند مانند و بصورت درص]]دی# نیز درصد تکمیل فرایند نصب، خذف و یا بروزرسانی را با علمت های - h سویچ. می دهد

.نشان می دهد وقتی یک بسته را دانلود کردید آن]]را بص]]ورت زی]]ر. از شکل دستور زیر استفاده کنید rpm برای نصب یک برنامه

یعنی بسته دانلود شده برای نصبش نیاز دارد یک بسته دیگ]]ر. البته شاید مشکل وابستگی ها پیش بیاید. نصب کنید.از قبل نصب شده باشد

rpm -ivh package_name.rpm

.برای حذف بسته ای که نصب کرده ايد از دستور زير استفاده کنید۵.۱۲.۶

rpm -evh package_name.rpm

.و از دستور زیر برای بروز کردن یک بسته نصب شده استفاده کنیدrpm -Uvh package_name.rpm

.برای نصب یا حذف یک بسته بدون توجه به وابستگی ه]]ایش اس]]تفاده م]]ی ش]]ود– force و–nodeps سوئیچ های.دستور اول یک بسته را بدون در نظر گرفتن وابستگی ها نصب و دستور دومی حذف می کند

rpm -ivh –force package_name.rpm

rpm -evh –nodeps package_name.rpm

Query. استفاده میشود queryاست که برای گرفتن- q سوئچ مهم دیگر

ها و … برای information یعنی ایتکه اطلعاتی از اینکه چه بسته های نصب شده اند، بدست اوردن اطلعات یا۹۵

و برای information یا iکامل، query و برای یک all ییا a سوئیچ های- q به همراه استفاده از سوئیچ. هر بسته ها برای بسته هستند یا بهتر اینکه بسته file برای بدست اوردن اینکه کدام fنمایش اطلعاتی از بسته نصب شده،

کدام c هایی متعلق به بسته هستند و سوئیچ directory برای اینکه چه dنرم افزاری مالک چه فایل هایی است، وقتی یک بسته را نصب می کنید تع]]دادی فای]]ل مانن]]د. متعلق به بسته هستند را نشان می دهد config فایل هایmanual ها و configuration سوئیچ. ها نصب می شوند f تمامی فایل ها و سوئیج c فایل های config را نشان می

.دهد دس]]تور اول و دوم. برای بدست اوردن یک لیست کلی از بسته های نصب شده دستور های زیر استفاده م]]ی ش]]وند

.یکسان هستند ولی دستور اول خروجی را در خط فرمان نشان می دهد و دستور دوم در یک فایل ذخیره م]]ی کن]]د.دستور سومی هم تعداد بسته های نب شده را در خروجی نشان می دهد

rpm -qa

rpm -qa > file

rpm -qa | wc -l

دستور زر بررسی می کند که ایا بسته ای نصب است یا خیر، یعنی از لیست تمامی بسته های نصب شده چ]]ک م]]ی.نصب است یا نه package_name کند که ایا بسته

rpm -qa | grep package_name

:برای بدست اوردن اطلعات از دستور زیرrpm -qi package_name

متعلق به بسته و سومین دستور config دستور اول کدام فایل ها مطعلق به بسته و دستور دومی کدام فایل های.کدام دایرکتوری ها متعلق به بسته هستند

rpm -qf package_name

rpm -qc package_name

rpm -qd package_name

۹۶

.دستور زیر اینکه چه بسته های اخیرا نصب شده اندrpm -qa -last

خط اول وابستگی های یک بسته دانلود شده را نش]]ان م]]ی. دستور زیر وابستگی های یک بسته را لیست می کند.استفاده می شود. rpm اجباری است ولی دستور دوم برای یک بسته نصب شده بدون نوشتن. rpm دهد و نوشتن

rpm -qpR package-name.rpm

rpm -qR package_name

deb نصب بسته های

install برای- i سوئیچ. استفاده می شود deb برای نصب بسته های debian package مخفف dpkg از دستور

است و با این purge مخفف P. نیز برای حذف بکار می رود) بزرگ-(P برای حذف و هچنین سوئیج- r وسوئیچ است و فهرست rpm در- q نیز مانند- l سوئیچ. سوئیج تمامی فایل ها و خود بسته بصورت کامل پاک می شوند

سات و لیست فایل های متعلق به rpm در f بزرگ مانند- L سوئیچ. تمامی بسته های نصب شده را نشان می دهد.است rpm در- i مانند) کوچیک- (p سوئیچ. بسته و مسیر آنها را نشان می دهد

دستور زیر برای نصب یک بسته نرم افزاریdpkg -i package_name

دستورهای زیر برای حذف یک بستهdpkg -r package_name

dpkg -P package-name

دستور های زیر خط اول برای لیست کردن کلیه برنامه های نصب شده و دومی برای بررسی اینک]]ه ای]]ا ی]کدرنصب شده است یا نه package_name بسته خاص به نام

۹۷

dpkg -l

dpkg -l package_name

.را نشان می دهد package_name دستور زیر جزئیاتی از بستهdpkg -p package_name

)Red Hat ( فدورا و توزيع های مبتنی بر YUMجدول دستورات نصب ۵.۱۲.۷

)Red Hat ( فدورا و توزیع های مبتنی بر YUM: ابزار نصب ۱۲جدول )Red Hat ( فدورا و توزیع های مبتنی بر YUMابزار نصب

yum -y install [package] دانلود و نصب یک بسته ی rpmاز مخازن yum localinstall [package.rpm] و تلش برای حل پیش نیاز ها باrpm نصب یک بسته ی

استفاده از مخازنyum -y update آپدیت همه ی بسته هایrpmنصب شده در سیستم yum update [package] به نسخه ی جدیدترrpm آپگرید یک بسته ی yum remove [package] yum با استفاده از ابزار rpm حذف یک بسته ی yum list نمایش لیست همه ی بسته های نصب شده در سیستمyum search [package] پیدا کردن یک بسته از مخازنyum clean [package] پاک کردنcache که شامل بسته های rpmدانلود شده

استyumتوسط ابزار yum clean headers پاک کردن همه فایل هایheaderکه سیستم برای حل

) از آنها استفاده می کندdependencyپیش نیاز ها (

۹۸

جدول دستورات مشاهده ی محتويات فايل۵.۱۳

: مشاهده ی محتویات فایل۱۳جدول مشاهده ی محتویات فایل

cat file1 نمایش محتویات یک فایل با شروع از سطر اولhead -2 file1 نمایش دو خط اول یک فایلless file1 است با این تفاوت که امکان حرکت روmore مشابه دستور

به عقب نیز وجود داردmore file1 نمایش محتویات یک فایل به صورت درصدی و رو به جلوtac file1 نمایش محتویات یک فایل با شروع از خط آخرtail -2 file1 نمایش دو خط آخر یک فایلtail -f /var/log/messages نمایش محتویات یک فایل به طوری که تغییرات صورت

گرفته در فایل به طور لحظه ای نمایش داده می شود

آنالیز و تعمیر فايل سیستم دستورات جدول ۵.۱۴

: آنالیز و تعمیر فایل سیستم۱۴جدول آنالیز و تعمیر فایل سیستم

badblocks -v /dev/hda1 بررسی کنhda1 بلوک*های خراب را بر روی dosfsck /dev/hda1 راhda1 بر روی دیسک dos درست بودن پیکربندی

بررسی یا درست کنe2fsck /dev/hda1 راhda1 بر روی دیسک ext2 درست بودن پیکربندی

بررسی یا درست کنe2fsck -j /dev/hda1 راhda1 بر روی دیسک ext3 درست بودن پیکربندی

بررسی یا درست کنfsck /dev/hda1 راhda1 بر روی دیسک linux درست بودن پیکربندی

بررسی یا درست کن

۹۹

آنالیز و تعمیر فایل سیستمfsck.ext2 /dev/hda1 راhda1 بر روی دیسک ext2 درست بودن پیکربندی

بررسی یا درست کنfsck.ext3 /dev/hda1 راhda1 بر روی دیسک ext3 درست بودن پیکربندی

بررسی یا درست کنfsck.vfat /dev/hda1 را بررسیhda1 بر روی دیسک fat درست بودن پیکربندی

یا درست کنfsck.msdos /dev/hda1 راhda1 بر روی دیسک dos درست بودن پیکربندی

بررسی یا درست کن

swapفايل سیستم دستورات جدول ۵.۱۵

swap: فایل سیستم ۱۵جدول

swapفایل سیستم

mkswap /dev/hda3 swap ایجاد یک پارتیشن با فرمت

swapon /dev/hda3 جدیدswap فعال کردن یک پارتیشن swapon /dev/hda2 /dev/hdb3 swap فعال کردن همزمان دو پارتیشن

گرفتن پشتیبان۵.۱۶

۵.۱۶.۱dd با پیوست کامل دستوری برای تبديل و کپی يک فايل به اندازه تعیین شده

dd دستوری برای تبدیل و کپی یک فایل به اندازه تعیین شده، بکار می رود .dd بجای خواندن ورودی از صفحه ف]]رض. کلید، ورودی را از یک فایل می خواند و بجای نوشتن در نمایشگر، خروجی را در یک فایل ذخیره م]]ی کن]]د

را dd برای این کار باید. کیلو بایت آنرا کپی کنید ۵۱۲کیلوبایت فقط ۸۰۰کنید می خواهید از یک فایل به اندازه به dd فرمت کلی دستور. تا بایت از آن فایل را در یک فایل جدید ذخیره کند ۵۱۲طوری تنظیم کنید که به تعداد

صورت زیر است۱۰۰

dd [OPERAND]… dd OPTION

:بصورن زير هستند dd های متداول option سوئیچ يا۵.۱۶.۲

•If=file : مخفف Input File دستور. و فایلی را مشخص که می خواهیم کپی آنرا تهیه کنیم dd از این فایل .صفحه کلید استفاده می کندبجای

•of=file : مخفف Output File را در) کپی فایل اول(و فایلی را مشخص می کند که می خواهیم خروجی .آن ذخیره کنیم

•bs=Byte : اندازه فایل جدید کخ با of در اصل به اندازه مقدار. مشخص می شود Byteاز فایل ، if فایل ، of .را می سازد

•count=Value : باشد، فایل count=1 و) بایت bs=512 (512 فرض کنید. تعداد تکرا را نشان می دهد .بایت خواهد بود ۵۱۲*۱جدید

.شکل معمول استفاده از آن بصورت زیر است

dd if=/path/to/inputfile of=/path/to/outputfile bs=Byte count=value

:کاربرد ها۵.۱۶.۳

MBR (Master Record Book)برای تهیه نسخه پشتیبان ازdd if=/dev/had of=/tmp/mbrbackup.img bs=512 count=1

بایت اول ۵۱۲. ذخیره می کند mbrbackup.img را در یک فایل به نام hda بایت اول هارد ۵۱۲دستور بال استفاده می شود به این صورت که فایلی به MBR دستور زیر برای بازیابی. است Master Record Boot هارد شامل

.ذخیره می کند hda بایت اول هارد ۵۱۲بایت در در ۵۱۲و به اندازه mbrbackup.img نام۱۰۱

dd if=/tmp/mbrbackup.img of=/dev/had bs=512 count=1

:و فلپی ها CD/DVD از image برای تهیه• و دستور دومی همان فایل را برای فلپی بازیابی می. تهیه می کند image دستور زیر از محتوای فلپی یک فایل

.کندdd if=/dev/fd0 of=/tmp/fdimagefile

dd if=/tmp/fdimagefile of=/dev/fd0

برای تهیه پشتیبان از پارتیشن ها• و از gzip در مثال زیر با دس]]تور. از این دستور و بصورت خط زیر می توان از پارتیشن، فایل پشتیبان تهیه کرد

.تهیه می شود partionbackup.gz یک فایل پشتیبان به نام/ dev/hda1 پارتیشن

dd if=/dev/hda1 | gzip –c > /tmp/partionbackup.gz

برای بازیابی آن از دستور زیر استفاده می کنیم فقط باید دقت شود که اندازه پارتیشن مقد با اندازه پارتیشن مبدا.یکسان باشد

cat /tmp/partitionbackup.gz | gzip –d | dd of=/dev/hda1

می شود، استفاده یدکی swap ایجاد یک فایل برای ساخت یک پارتیشن dd از دیگر کاربرد های دستور را در پیوست می توانید مطالعه کنید .ddجدول کامل دستورات

۵.۱۶.۴Rsync

یک برنامه ساده و کوچک، همانند یک برنامه انتقال فایل مي باشد، آخرین نسخه اي که در زمان نوش]]تن ای]]ن

۱۰۲

م]]]ي باش]]]د ک]]]ه م]]]ي توانی]]]د از س]]]ایت رس]]]مي آن ب]]]ا آدرس ۳.۰.۹مق]]]اله وج]]]ود دارد نس]]]خه http://samba.anu.edu.au/rsync دریافت کنید.

با این برنامه حتی مي توان فقط تغییراتي که بر روي یک فایل انجام شده را انتقال داد ، در نظر بگیرید ک]]ه ش]]ما سروري دارید که مدام مجبورید اطلعات آن را با سرور دیگر بروز رساني کنید، براي این کار لزم نیست ه]]ر ب]]ار

مي توان فقط فایل هایي را که در کامپیوتر مبدا و یا مقصد Rsync اطلعات مورد نظر را تماما انتقال دهید ، با کمک این کار فواید بسیاري از جمله ، آپلود سریع تر و کم تر ش]]دن ترافی]]ک ش]]بکه و ص]]رفه. تغییر کرده اند، انتقال داد

.جویي در پهناي باند مصرفي را بدنبال خواهد داشترا براي شما انجام خواهد داد Backup & Mirroring یک برنامه چند منظوره است که کارهاي Rsync در واقع

در سرور rsync کار برد های دستور.استفاده کرد rsync می توان از دستور SSH برای انتقال فایل ها در

rsync [options] source destination

:انتقال چندین فایل: مثالrsync myfile.txt [email protected] :/root

.می توانید از نام کاربری خودتان هم استفاده کنید root به جای هم دارد که بهتر است در زمان استفاده از این دستور از آن ها استفاده Option تعدادی گزینه یا rsync دستور

:شود•a -حالت Archive

•v -حالت Verbose

•z - برای انتقال سریع تر(فشرده سازی در زمان انتقال(•progress --برای نمایش فهرست موارد ارسالی

:مثالrsync -azv --progress *.tar.gz [email protected] :/home

۱۰۳

اس]]تفاده از ای]]ن گزین]]ه، م]]انع از. اس]]تفاده کنی]]د- a قطع شد، می توانید از گزینه rsync در صورتی که فرمانOverwrite شدن فایل ها می شود و فقط فایل هایی که در مقصد وجود ندارند، منتقل می شوند.

در صورتی که سرور مقصد از پورت. کار می کند SSH پروتوکل ۲۲در حالت پیش فرض با پورت rsync دستور:استفاده نمی کرد، می توانید از گزینه زیر استفاده کنید ۲۲

--rsh='ssh -p22'

.شماره پورت دلخواه خود را بگذارید ۲۲به جای در سرور مقصد، rsync اگر در زمان اجرای این دستور، خطای زیر را دریافت کردید به این علت است که بسته

.نصب نشده استrsync: Connection unexpectedly closed (0 bytes recived so for ) [Sender]

rsync: Error: Rewrote command not found (code 127/ atioc 456) [Sender]

:برای نصب این بسته نرم افزاری، کافی است دستورات زیر را وارد کنید:Debian در سرور های مبتنی بر

apt-get install rsync

:Red Hat در سرور های مبتنی برyum -y install rsync

۵.۱۶.۵scp برای کپی کردن فايل با امنیت بال

برای انتقال اطلعات استفاده می کند و به همین دلیل از تنظیمات مشخص شده در ssh از scp. به کار می رودssh برای این کار استفاده میکند.

:به صورت زیر می باشد scp فرم کلی استفاده ازscp options [user@]host:]Source-File [[user@]host:]Destination-File]

در پوشه ۱۹۲.۱۶۸.۱.۲به سیستم با آدرس local را از سیستم sample.txt فایلی به نام scpدر مثال زیر، : مثال

۱۰۴

home مربوط به myuser کپی می کند:scp sample.txt [email protected]:~/sample.txt

Options P : توسط این گزینه می توان پورت سرویس ssh مثال. سیستم دور را مشخص کرد:

scp -P 5648 sample.txt [email protected]:~/sample.txt

l : با استفاده از این گزینه می توان میزان پهنای باند مصرفی برای انتقال فایل را بر حسب کیلو بایت مشخص :مثال. کرد

scp -l 64 webuser@WebServer:/tmp/code.zip /tmp/code.zip

r : برای کپی کردن یک پوشه و محتویات آن به طور بازگشتی به کار می رود..این دستور مراجعه کنید man page می توانید به scp برای مشاهده اطلعات بیشتری در رابطه با

۵.۱۶.۶Rsync server

rsync البت]]ه ب]]ا(یک ابزار مستقل از پلتفرم است که تحت سیستم عامل های لینوکس، مک و وین]]دوز Cygwin( این موض]]وع ب]]اعث. در یک اسکریپت استفاده شود SSH و cron قابل اجراست و به راحتی می تواند در ترکیب با

می شود این برنامه، یکی از ابزارهای ضروری در جعبه ابزار هر فرد باشد؛ حتی اگر از آن برای پشتیبان گیری اس]]تفاده لینوکس بصورت پیش فرض/این است که این ابزار در اغلب توزیع های بزرگ گنو rsync یکی دیگر از مزایای. نکند

.قرار دارد با الگوریتم rsync ویژگی خاص این ابزار است و بدین معناست که) differential backup (پشتیبان گیری افتراقی

منحصر به فرد خود به شما این امکان را می دهد که به جای انتقال کل اطلعات، فقط به انتقال تغییرات رخ داده در (ای]]ن ویژگ]]ی زم]]انی اهمی]]ت خ]]ود را نش]ان می ده]]د ک]ه قص]]د همسان س]]ازی. دایرکت]]وری بپردازی]]د/یک فای]]ل

synchronization (در ای]]ن. فایل ها و یا دایرکتوری های بزرگ و سنگین، با حجم چندین گیگابایت را داشته باش]]ید فقط به انتقال بخش های تغییر یافته می پردازد و فقط تغییرات را بر روی کپی{ فایل یا ش]]اخه ی اص]]لی rsync مواقع

۱۰۵

در صورتی که می خواهید بر روی خود سیستم اصلی اق]]دام ب]]ه ایج]]اد ی]]ک نس]]خه ی. ماشین پشتیبان اعمال می کند برای انجام این کار کمک rsync می توانید از) USB مثل بر روی یک درایو جداگانه، مثل یک دیسک(پشتیبان کنید

در مجموع، از آنجا که ما حتی مجبور به نصب هیچ ابزار پشتیبان گیری پیچی]]ده ای ه]]م نیس]]تیم، اس]]تفاده از. بگیریدrsync می تواند یک راه حل ساده، راحت و موثر باشد.

نصب و پیکربندی۵.۱۶.۷

کرد، با این حال ما آن rsync معمول، می توان تنها با مشخص کردن دایرکتوری مبدا و مقصد اقدام به استفاده از به این ترتیب، ماشین مورد. به کار می گیریم) rsync server به شکل یک(را بر روی یک ماشین به حالت دیمون

این ابزار می تواند به دو صورت همسان ساز یک طرفه و ی]]ا. نظر می تواند درخواست های همسان سازی را دریافت کند انتخ]]اب پیکربن]]دی مناس]]ب ب]]ه می]]زان. راه اندازی شود inetd دوطرفه و یا بصورت دیمون مستقل، و یا وابسته به

.ترافیکی که دیمون ما قرار است دریافت کند، بستگی دارد مستقل بهتر و منطقی تر اس]]ت، در daemon برای زمانی که ترافیک عبوری زیاد و قابل توجه است، داشتن یک

همچنین واضح است که برای همگام سازی دوطرفه مجب]]ور ب]]ه. استفاده می کنیم inetd غیر این صورت از پیکربندی daemon در حالت rcync برای پیکربندی. در حالت دیمون و بر روی هر دو ماشین خواهیم بود rsync اجرا کردن

فایلetc/rsyncd.conf/

.را مطابق نمونه زیر ویرایش کنید [bash]

motd file = /etc/rsyncd.motd

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

۱۰۶

[path_1]

path = /directories/here

comment = something to comment

uid = nobody

gid = nobody

auth users = username

secrets file = /etc/rsyncd.scrt

[/bash]

تم]]امی. همان گونه که مشاهده می کنید، این فایل شامل دو بخش است؛ پارامترهای کلی و تنظیمات تعیین مس]]یر تحت عنوان پارامترهای.. و, motd file (message of the day file), log file, pid file, lock file مشخصات، نظیر

کلی قرار می گیرند و پارامترهایی که به دنبال[path_1]

).نام یک مسیر خاص است (آمده اند مربوط به تنظیمات تعیین مسیر هستند[path_1]

از آن ج]]ا ک]]ه م]]ا فق]]ط تنظیم]]ات مه]]م و. امکان قرار دادن بیش از یک مسیر نیز در فایل پیکربندی وجود دارد مرتبط را ذکر کردیم، شما می توانید برای دستیابی به لیست کامل پارامترهای کلی و تعیین مسیر، به صفحه راهنمای

man مراجعه کنید.[bash]

man rsync

[/bash]

.در هر حال، می توانید خلصه ای از آن ها را در جدول زیر بیابید۱۰۷

rsyncd.conf: پارامتر های فایل ۱۶جدول

توضیح پارامتر pathدایرکتوری فیزیکی موجود در فایل سیستم که باید در دسترس

قرار گیرد.uid کاربری که باید پروسه انتقال را اجرا کند

gid نام گروه یا شناسه ای که پارامترuid. را همراهی میکند autth users نام کاربرانی که درsecret fileمشخص شده و دارای اجازه برای

اتصال به این مسیر هستند .که مربوط به کاربران اصلی سیستمنیست

secrets file نام کاربری و کلمه عبوری که برای اتصال به کلینت مورد نیاز است را مشخص میکند

مستقل را با فرمان daemon پیکربندی شد، وقت آن رسیده تا) server (بر روی سرویس دهنده rsync اکنون کهrsync --daemon

.اجرا کنیمrsync کلینت

.می تواند توسط کلینت با استفاده از دستور زیر مورد استفاده قرار گیرد rsync حال، سرویس دهنده ی[bash]

rsync -avz host::‌path_1 /directory/at/destination

[/bash]

این دستور کلیه فایل های موجود در دایرکتوری ذکر شده در پارامترpath_1

می گویند) کشیدن (pull به این گونه دستورها، دستور. را در مسیر تعیین شده در ماشین کلینت کپی خواهد کرد.می نامند) هل دادن (push و اگر دایرکتوری مقصد بر روی ماشین پشتیبان باشد آن را

۱۰۸

.حال بیایید به یک مثال دیگر توجه کنیم، که در آن به کپی محلی فایل ها بوسیله چند سوییچ اختیاری می پردازیم[bash]

rsync –verbose –progress –stats –compress –recursive –times –perms \

–links –delete –exclude *.pdf /home/user/Folder1/ /home/user/Folder2

[/bash]

برخی از آپشن ها نظیر--progress

--verbose

--stats

rsync یکی از ویژگی هایی است که توسط–) compress (فشرده سازی. خود گویا بوده و نیازی به توضیح ندارند

remote برای افزایش سرعت انتقال فایل ها فراهم شده است که این ویژگی در حقیق]]ت در زم]]ان همسان س]]ازی ب]]ا

host در زیر توضیحات مربوط به بقیه آپشن ها را مشاهده می کنید. به کار می آید.--recursive

]]]]] برای کپی قابل برگشت تمامی زیرپوشه ها؛--times

پیشین) timestamps (]]]]] برای نگهداری برچسب های زمانی--perms

]]]]] برای بدون تغییر نگاه داشتن سطوح دسترسی--links

)نه بصورت ارجاع(]]]]] برای کپی کردن پیوندهای نمادین، بصورت لینک در این قسمت آپشن های دیگری نیز وجود دارد که می توانید از آن ها استفاده کنید؛ نظیر

--copy-links

۱۰۹

و<span style="background-color: #ccffff;">--safe-links</span>

دایرکتوری های لینک شده می کند و/اقدام به کپی کردن فایل ) لینک ها(که اولی به جای کپی کردن خود پیوندها .دومی بطور کامل از ارجاع پیوندهای خارج از شاخه مورد نظر جلوگیری می کند

آپشن{--delete

زمانی به کار می رود که مایل باشید فایل هایی که طی همسان سازی قبلی، در دایرکتوری مقصد کپی شده اند ول]]یاکنون از دایرکتوری مبدا پاک شده اند نیز حذف شوند و در نهایت،

--exclude *.pdf

.جلوگیری می کند PDF از کپی شدن هرگونه فایل با پسوند مقصد بسیار مهم است، چرا که نح]]وه ک]]پی/عقب در مسیر منبع(/) حضور یا عدم حضور کاراکتر اسلش{ : توجه

وجود کاراکتر اسلش در دایرکتوری منبع. کردن فایل ها را به کلی تغییر می دهد

باید در پوش]]ه ی Folder1 موجود در پوشه ی) فایل ها و زیرپوشه ها(، در دستور فوق بدین معناست که محتوای در دایرکتوری مقص]]د نم]]وده و Folder1 ابتدا اقدام به ایجاد پوشه ی rsyncبدون اسلش{ عقب، . مقصد کپی شوند

بطور خاص اگر می خواهید از دو ی]]ا س]]ه پوش]]ه پش]]تیبان. سپس محتوای منبع را در پوشه ی جدید کپی خواهد کرد موجود در مسیر projA، projB، projC مثل از پوشه های(بگیرید

/home/ankit/Projects

شما به شکل زیر است، به این مورد توجه ویژه داشته باشید، چرا که در صورت بی دقتی rsync و یا مثل دستور) .شما، کار به کلی به هم ریخته خواهد شد

]bash[rsync –recursive –delete /home/ankit/Projects/projA/

۱۱۰

/media/BACKUP/currentprojects

rsync –recursive –delete /home/ankit/Projects/projB/

/media/BACKUP/currentprojects

rsync –recursive –delete /home/ankit/Projects/projC /media/BACKUP/currentprojects

[/bash]

پس از اجرای دستورات بال، در پوشه یcurrentprojects

خواهید داشت که حاوی فایل ه]]ای مش]]ابه در مب]]دا projC ، شما یک پوشه با نامBACKUP موجود در درایو با یکدیگر ترکیب شده و به جای کپی شدن projB و projA است؛ ولی فایل ها و زیرپوشه های موجود در پوشه های

در پوشه های مربوط به خود، در پوشه یcurrentprojects

دلیل اصلی این آشفتگی عدم استفاده صحیح شما از اسلش عقب بوده اس]]ت… تص]]ور کنی]]د! قرار خواهند گرفت وقتی مجبور به بازگردانی فایل ها از این پشتیبان شوید، با چه آشفتگی و چ]]ه دردس]]رهایی ب]]رای مرت]]ب ک]]ردن آن

.روبرو خواهید شد

رابط های گرافیکی کاربری۵.۱۶.۸

وجود دارد که البته مشخصا انعطاف و قابلیت ه]]ای اب]]زار rsync تعدادی رابط گرافیکی برای استفاده راحت تر از بسیاری از وظایف اساسی Gadmin-Rsync و Grsync با این وجود نمونه هایی مانند. تحت خط فرمان آن را ندارند

Back in کار می کند diff و rsync، cron برنامه فوق العاده دیگری که بر اساس دستورهای. را بخوبی انجام می دهند

Time نام داشته و شبیه به ویژگی Time Machine این ابزار ویژگی های پیچیده تری. در سیستم های مکینتاش است .نیز ارائه می کند و دارای یک رابط گرافیکی مناسب و قابل درک نیز هست

۱۱۱

یک ابزار ساده و در عین حال بسیار قدرتمند است که وق]]تی در کن]]ار ابزاره]]ای rsync در نتیجه، می توان گفت استفاده ش]]ود می توان]]د انعط]]اف و عملک]]رد ب]]الیی ارائ]]ه کن]]د ک]]ه آن را ه]]م ردی]]ف ابزاره]]ای cron دیگر نظیر

.پشتیبان گیری پیچیده و حتی تجاری قرار می دهد

)back upجدول دستورات گرفتن پشتیبان(۵.۱۶.۹

)back up: گرفتن پشتیبان(۱۷جدول )back up(گرفتن پشتیبان

find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2

و ساختن یک فایلlog پیدا کردن تمامی فایل های با پسوند از آنهاbzipفشرده با فرمت

find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents

و کپی آنها از یکtxt پیدا کردن همه ی فایل های با پسوند دایرکتوری به دایرکتوری دیگر

۱۱۲

The GNOME view for Back In Time: ۱۵تصویر

Application

)back up(گرفتن پشتیبانdd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz

’ گرف]]تن پش]]تیبان از یکssh از طریق hostدیسک سخت بروی

dd if=/dev/sda of=/tmp/file1 گرفتن پشتیبان از یک پارتیشن در یک فایلdd if=/dev/hda of=/dev/fd0 bs=512 count=1 به یک فلپیMBR کپی یک نسخه از dd if=/dev/fd0 of=/dev/hda bs=512 count=1 از نسخه ی پشتیبان در داخل یک فلپیMBR بازگرداندن dump -0aj -f /tmp/home0.bak /home home گرفتن یک نسخه ی پشتیبان کامل از دایرکتوری

dump -1aj -f /tmp/home0.bak /home home گرفتن یک نسخه ی پشتیبان افزایشی از دایرکتوری

restore -if /tmp/home0.bak از طریق نسخهhome برگرداندن نسخه ی اصلی دایرکتوری ی پشتیبان

rsync -rogpav –delete /home /tmp ) بین دو دایرکتوریsynchronization یکسان سازی ( home و tmp

rsync -rogpav -e ssh –delete /home ip_address:/tmp

) بین دو دایرکتوریsynchronization یکسان سازی ( home در کامپیوتر مبدا و tmpدر دایرکتوری مقصد از sshطریق

rsync -az -e ssh –delete ip_addr:/home/public /home/local

) یک دایرکتوری محلیsynchronization یکسان سازی ( وssh ) از طریق remoteبا یک دایرکتوری از راه دور (

فشرده سازی همزمانrsync -az -e ssh –delete /home/local ip_addr:/home/public

) یک دایرکتوری از راهsynchronization یکسان سازی ( وssh ) با یک دایرکتوری محلی از طریق remoteدور (

فشرده سازی همزمانtar -Puf backup.tar /home/user گرفتن یک نسخه ی پشتیبان افزایشی از دایرکتوری مورد

نظر

)cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr

‘cd /home/share/ && tar x -p ’ کپی محتویات یک دایرکتوری در کامپیوتر مقصد (

remote از طریق ( ssh

۱۱۳

cd بر روی iso و ساخت cd از isoگرفتن ۵.۱۷

iso: ساخت ۱۸جدول

iso

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast –force

)rewritabl پاک کردن یک سی دی با قابلیت رایت مجدد (

cdrecord -v dev=/dev/cdrom cd.iso CD بر روی ISO رایت

gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom CD فشرده بر روی ISO رایت

cdrecord –scanbus scsi برای شناسایی کانالهای bus مرور

dd if=/dev/hdc | md5sum CD بر روی وسیله*ای مانند md5sum انجام دستور

mkisofs /dev/cdrom > cd.iso از یک سی دیiso گرفتن ایمیج با فرمت mkisofs /dev/cdrom | gzip > cd_iso.gz به صورت فشرده از یک سی دیiso گرفتن ایمیج با فرمت mkisofs -J -allow-leading-dots -R –V از یک دایرکتوریiso گرفتن ایمیج با فرمت mount -o loop cd.iso /mnt/iso در مسیر مورد نظرiso ) یک فایل mount استقرار (

WiFi و Lanدستورات شبکه ۵.۱۸

ifconfig دستور۵.۱۸.۱

.BSD شبکه. سیستم عامل . BSD دستور های. خط فرمان لینوکس . BSDارسال شده در ۲۰۱۲نوامبر ۱۱به دست نامی امیر نوشتن دیدگاه BSD cmd . linux cmd . linux network لینوکس. شبکه در لینوکس

ifconfig مشابه ipconfig در ویندوز و برای نمایش اطلعات کارت های شبکه و همچنین تغییر در آنهاس]]ت. نیست و بصورت یکی از root برای نشان دادن اطلعات کارت های شبکه توسط این دستور نیازی به داشتن مجوز

root حالت های زیر می توان اطلعات کارت های شبکه را دید ولی برای تغییر در کارت ه]ای ش]]بکه بای]]د مج]وز

.هر کارت شبکه یا اینترفیس شبکه دارای فایلی است که هر فایل از پارامتر هایی تش]]کیل ش]]ده اس]]ت. دشاته باشید

۱۱۴

.را بخوانید Debian و Redhat می توانید نحوه تنظیم فایل های اینترفیس را در

اگر ک]]ارت ش]]بکه ی]]ا اینترفیس]]ی. با هر یک از دستور های زیر می توانید اطلعات اینترفیس های شبکه را ببنیدdown باشد می توانید با سوئیج a -آنرا هم ببنید در غیر اینصورت با استفاده تنها از ifconfig تنها کارت ه]]ا ی]]ا

.نشان داده می شوند up اینترفیس های

ifconfig

ifconfig interface_name example ifconfig eth0

ifconfig -a

:در خروجی مواردی مانند•Link encap : که اگر اترنت باشد یعنی اینترفیس از نوع اترنت است.•HWaddr : آدرس سخت افزاری یا MAC آدرس اینترفیس•Bcast : آدرس Broadcast شبکه اینترفیس•mask : آدرس subnet mask اینترفیس•inet addr : آدرس ipv4

•inet addr6 : آدرس ipv6

هستند که به ترتیب برای فعال و غیر فعال کردن یک اینترفیس به down و up از سوئیچ های مهم این دستور .باید نام اینترفیس را بیاوری]]د interface_name شکل کلی استفاده از آنها بصورت زیر است و بجای. کار می روند

وجود دارد ولی چون ای]]ن ن]]وع این]]ترفیس ه]]ا از ن]]وع ipsec برای اتصال هایمثلالبته فایل های اینترفیس دیگر DEVICE ها نیستند نمی توانید با دستور ifconfig اطلعات بیشتر.(اطلعات آنها را مشاهده کنید(

ifconfig interface_name down

۱۱۵

ifconfig interface_name up

ها به کارت های شبکه یا دیگر اینترفیس ها بصورت زیر از Gateway و Subnet mask,IP برای اختصاص دادن) :شده ها باید مقادیر مناسب قرار بگیرند Bold بجای(دستور استفاده می کنیم

ifconfig interface_name IP_ADDRESS netmask NETMASK_ADDRESS gw

GATEWAY_ADDRESS broadcast BROADCAST_ADDRESS

:بطور مثالifconfig eth0 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255

.راهنمای استفاده را بخوانید man ifconfig با اجرای دستور

:ifdown و ifup دستور های۵.۱۸.۲

)غیر فعال (down و) فعال (up هستند و به تر تیب برای interface down و interface up این دو دستور مخفف ب]]ا down و up کردن یک اینترفیس مانند کارت های شبکه اترنت را دارند و معادل به اس]]تفاده از س]]وئیچ ه]]ای

.هستند ifconfig دستور

ifup interface_name <=> ifconfig up interface_name

ifdown interface_name <=> ifconfig down interface_name

less قرار دارند و می توانید با دس]]تور/ sbin اسکریپت هایی هستند که در مسیر ifdown و ifup دستور های

و توزیع های مبتنی بر آن دوفایل همنام با این دستور ها که لینکی Redhat البته در توزیع. محتوای آنها را بخوانید.قرار دارند/ etc/sysconfig/network-scripts به آنها هستند در مسیر

less /sbin/ifup

less /sbin/ifdown

۱۱۶

routeدستور ۵.۱۸.۳

route که توسط آن در سیستم عامل های مبتنی بر یونیکس برای نمایش و ایجاد جدولدستوری است Route یا Route Table در فضای اینترنت ماشین ها و رایانه های متصل به هم از طریق روتر ه]]ا ب]]ه ه]]م. استفاده می شود شاید برای ارسال یک بسته از سیستم شما در تهران به سیستمی دیگر در اصفهان بسته های ش]]ما از. متصل هستند

کوچک اگر دو شبکه داشته باشیم و نخ]]واهیم از روت]]ر Lan در یک شبکه. روتر هایی خارج از ایران، هم، رد بشوند های سخت افزاری استفاده کنیم، می توانیم از یک توزیع لینوکسی بعنوان یک روتر استفاده کرد، بطوریکه بسته ها از

را م]]ی route دس]]تور. یک شبکه به این سیستم فرستاده شده و این سیستم بسته ها را به شبکه دیگر م]]ی فرس]]تد اگ]]ر. ساده ترین شکل استفاده، اجرای آن به تنهایی اس]]ت.توانید برای مشاهده و تغییر در جدول روت استفاده کنید

.را اجرا کنید فهرست خروجی جدول روت است route فقط دستورroute

در. است netmask 255.255.255.0 با ۱۹۲.۱۶۸.۱.۰شبکه Destination خروجی بال نشان می دهد که مقصد یاDefault را می بینید که نشان دهنده این است* علمت Gateway زیر فیلد Gateway منظور خط ای]]ن. نداریم

است که مقصد بسته های خود شبکه مشابه آن است زیرا که برای ارسال یک بسته از ماشین های هم شبکه نی]]ازی را روی آن اجرا کردیم، route روی ماشینی که دستور ifconfigبا اجرای دستور. نیست Default Gateway به

.است ۱۹۲.۱۶۸.۱.۰آدرس های شبکه Range آن از IP آدرس• Destination : آدرس شبکه مقصد

۱۱۷

route: ۱۶تصویر

• Gateway : آدرس Gateway باشد یعنی بدون* یا اگر Gateway

• Genmask : آدرس Netmask شبکه مقصد• Flags : می تواند یکی از گزینه های زیر باشد.

• U : مسیر فعال است. Route is Up

• H : هدف یک هاست است. Target is Host

• G : استفاده Gateway

• R : reinstate route for dynamic routing

• D : dynamically installed by daemon or redirect

• M : modified from routing daemon or redirect

• A : installed by addrconf

• C : cache entry

• ! : reject route

•Metric : فرض کنید یک بسته برای. یک عدد است و نشان دهنده الویت بین روتر هاست. فاصله تا هدف بسته ها برای تصمیم گیری گ]]ذر از ک]]دام روت]]ر از. رسیدن به مقصد بعدی می تواند از چندین روتر بگذرد

.این عدد استفاده می کنند•Ref : در هسته سیستم عامل لینوکس استفاده نمی شود.•Use : مقدار جستجو برای روت.•Iface : نام اینترفیس) Interface(

ARP های هم دارند به همین خاط ماشین مبدا توسط پروتکل IP دو سیستم برای ار تباط با هم نیاز به دانستن

ماشین مقصد را پیدا IP ماشین مقصد را پیدا می کند و با این کار پی به آدرس MAC ، آدرسMAC Address و با IP نام ماشین ها می اید برای اینکه خروجی آدرس های route البته بصور پیش فرض در خروجی دستور. می کند

.استفاده کنید- n باشد ا سوئیچ۱۱۸

route -n

:به اینترفیس شبکه Default Gateway اضافه کردنDefault Gateway ب]]ه زب]]ان. برای این استفاده می شود تا بسته ها را از شبکه ای به شبکه دیگر انتقال بدهیم

هم) gw (ها Default Gateway. سپرده می شوند Default Gateway ساده بسته هایی که درون شبکه نیستند بهRange فرمت کلی افزودن. شبکه شان هستند gw به یک کارت شبکه بصورت زیر است.

route add default gw IP_ADDR Interface_name

ش]]بکه gw بط]]ور مث]]ال ب]]رای تنظی]]م. را برای کارت شبکه تنظی]]م کنی]]م gw باید آدرس IP_ADDR بجای.بصورت زیر انجام می دهیم ۱۹۲.۱۶۸.۱.۲۵۴به آدرس ۱۹۲.۱۶۸.۱.۰

route add default gw 192.168.1.254 eth0

.پس از انجام خط بال، دستور زیر را اجرا کنید تا خط اضافه شده به جدول روت را ببنیدroute -n

route

۱۱۹

route: ۱۷تصویر

یکی default و ۰.۰.۰.۰فیلد های Destination را نشان می دهد که در ستون route -n و route در خروجی ۱۹۲.۱۶۸.۱.۱۰۰اگر روی ماشینی با آدرس . همسان هستند ۰.۰.۰.۰و * فیلد های Gateway و در ستون. هستند

کنیم قطعن ping را netmask با همان ۱۹۲.۱۶۸.۲.۱۰۰بخواهیم ماشینی با آدرس netmask 255.255.255.0 با برای اینکار باید از یک روتر سخت اف]]زاری ی]]ا لین]]وکس را بعن]]وان. امکان ندارد چونکه از دو شبکه متفاوت هستند

ابتدا بسته ping دستور. انجام می شود Route Table و تغییر Static Route روتر استفاده کنیم که اینکار با نوشتن ای را به مقصد می فرستد و در صورت برقراری ارتباط بین مبدا و مقصد، پاسخی به مبدا داده م]]ی ش]]ود در ن]]تیجه

استفاده ICMP از پروتکل ping. یک ارتباط درست و بدون اشکال باید تعداد بسته های ارسالی و دریافتی یکی باشد.پورت) شماره(می کند که پروتکلی است بدون

.شکل کلی آن بصورت زیر است. را از اینترفیس پاک می کند gw است که del در دستور های بال add عکسroute del default gw IP_ADDRE Interface_name

route del default gw 192.168.1.254 eth0

اگر روی سیستمتان فقط یک کارت شبکه دارید آوردن نام اینترفیس لزم نیس]]ت ول]]ی اگ]]ر چن]]دین این]]ترفیس. باید نام کارت های شبکه آورده شوندحتما) کارت شبکه دارید(

:Cache اطلعات برای. می کند Cache را برای استفاده بعدی بصورت سریعتر Routing هسته سیستم عامل لینوکس اطلعات

.بزرگ است C دقت کنید. (استفاده کنیم- C باید از سوئیچ Cache دیدنroute -Cn

route -C

به) Source-مبدا(اضافه می شود که یعنی بسته از کجا source ستون های خروجی مانند قبل هستند تنها ستون.رفته است) Destination-مقصد(کجا

:شبکه خاص/رد کردن مسیریابی برای یک هاست .شبکه خاص رد شود یعنی بس]]ته ه]]ا ب]]ه مقص]]د نرس]]ند/گاهی اوقات می خواهیم مسیر یابی را برای یک هاست

۱۲۰

.شکل کلی اینکار بصورت خط زیر استroute add -host IP_ADDR_DESTINATION reject

route add -host 192.168.1.101 reject

مقصد خطای زیر نشان داده می IP کردن آدرس ping می کنید در صورت Reject شبکه ای را/وقتی هاست.شود

connect: Network is unreachable

)استفاده شود del باید از add بجای.(برای خنثی کردن آن باید از فرمت کلی زیر استفاده کنیدroute del -host IP_ADDR_DESTINATION reject

route del -host 192.168.1.101 reject

.را رد کنید باید از فرمت زیر استفاده کنید ۱۹۲.۱۶۸.۱.۰/۲۴یک شبکه مانند ping و اگر می خواهیدroute add -net NET_ADDR netmask SUBNETMASK reject

route add -net 192.168.1.0 netmask 255.255.255.0 reject

.برای خنثی کردن آن از فرمت زیر استفاده کنیدroute del -net NET_ADDR netmask SUBNETMASK reject

route del -net 192.168.1.0 netmask 255.255.255.0 reject

Static Route نوشتن۵.۱۸.۴

Static Route ها حالت های ثابتی هستند که به جدول Route اضافه می شوند تا توزیع لینوکسی بعنوان ی]]ک هیچ ک]]دام از. ۱۹۲.۱۶۸.۳.۰/۲۴و ۱۹۲.۱۶۸.۱.۰/۲۴فرض کنید دو شبکه داریم با آدرس های . روتر عمل کند

:ما سه شبکه داریم ۱۸تصویر طبق . یا مشاهده کنند ping ماشین های شبکه نمی توانند ماشین های شبکه دیگر را. است External Network شبکه اینترنت که• و ۱۹۲.۱۶۸.۱.۳و ۱۹۲.۱۶۸.۱.۲و ۱۹۲.۱۶۸.۱.۱که سه ماشین با آدرس ه]]ای ۱۹۲.۱۶۸.۱.۰شبکه •

۱۲۱

default gateway ۱۹۲.۱۶۸.۱.۱۰با آدرس و ۱۹۲.۱۶۸.۳.۳و ۱۹۲.۱۶۸.۳.۲و ۱۹۲.۱۶۸.۳.۱که سه ماشین با آدرس ه]]ای ۱۹۲.۱۶۸.۳.۰شبکه •

Default Gateway ۱۹۲.۱۶۸.۳.۱۰با آدرس . بعنوان روتر عمل می کند Gماشین

ی اس]]ت ح]]داقل eviceاین اس]]ت ک]]ه) سخت افزاری یا توسط یک سیستم عامل مانند لینوکس(تعریف روتر در شکل زی]]ر ماش]]ین. که بسته ها را از مبدا به مقصد می برند) مانند کارت های اترنت(دارای دو اینترفیس شبکه

Gکه بعنوان روتر عمل می کند دارای دو کارت شبکه به نام های eth0 که بعنوان ۱۹۲.۱۶۸.۱.۱۰و با آدرس gw

شبکه gw که بعنوان ۱۹۲.۱۶۸.۳.۱۰با آدرس eth1 و دارای کارت شبکه دگر به نام ۱۹۲.۱۶۸.۱.۰/۲۴شبکه ۱۹۲.۱۶۸.۳.۰/۲۴برای دسترسی به ماشین ه]]ای ۱۹۲.۱۶۸.۱.۰/۲۴ماشین های شبکه . است ۱۹۲.۱۶۸.۳.۰/۲۴ ارسال کنند چونکه این این]]ترفیس eth1 که بعنوان روتر هستند بسته های خود را به اینترفیسGباید توسط ماشین

ماشین های این شبکه نیز باید. است ۱۹۲.۶۸.۳.۰/۲۴است و همین کار برای شبکه ۱۹۲.۱۶۸.۳.۰/۲۴درون شبکه ش]]بکه gw ک]]ه آدرس]]ش eth0 باید بسته های خود را به ای]]ترفیس ۱۹۲.۱۶۸.۱.۰/۲۴برای دسترسی به شبکه

است ک]]ه متص]]ل ب]]ه eth2 دارای کارت شبکه سومی به نامGهمچنین ماشین. است بفرستند ۱۹۲.۱۶۸.۱.۰/۲۴.است ۱۲۵.۲۵۰.۶۰.۵۹اینترنت با آدرس

۱۲۲

ها را روی تمامی ماشین های شبکه ها تنظیم Default Gateway اولین کاری که باید انجام دهیم این است که انجام دهید و دومین خط را در تمامی ماشین ه]]ای ش]]بکه ۱۹۲.۱۶۸.۱.۰/۲۴اولین را در تمامی ماشین های . کنیم

.ها تنظیم شوند gw انجام دهید نا ۱۹۲.۱۶۸.۳.۰/۲۴route add default gw 192.168.1.10 eth0

route add default gw 192.168.3.10 eth0

که بعنوانGرا به جدول روت ماشین) Static Route (ها روی ماشین ها باید خط های روت gw پس از تنظیم شکل کل]]ی. بنویسیمGدر شکل بال دو شبکه داریم پس باید دو خط روت در ماشین. روتر عمل می کند اضافه کنیم

۱۲۳

: تعریف روتر۱۸تصویر

.ها بصورت زیر هستند Static Route نوشتنRoute add

-netNET_ADDR_DESTINATIONnetmaskSUBNETMASK_NET_DESTINATIONgwIP_A

DDR_GW_DESTINATION

•NET_ADDR_DESTINATION : معرف آدرس شبکه مقصد است.•SUBNETMASK_NET_DESTINATION : آدرس Subnetmask شبکه مقصد است.•IP_ADDR_GW_DESTINATION : معرف آدرس gw شبکه مقصد است.

:۱۹۲.۱۶۸.۱.۰/۲۴از ماشین های ۱۹۲.۱۶۸.۳.۰/۲۴دسترسی از شبکه کنیم ping را ۱۹۲.۱۶۸.۳.۰۲۴ماشین های شبکه ۱۹۲.۱۶۸.۱.۰/۲۴برای اینکه بتوانیم از ماشین های شبکه

Static (باید یک خط روت) دسترسی داشته باشیم( Route (در ماشینGخط زی]]ر را در ماش]]ین. بنویسیمGاج]]را .کنید

route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10

ب]]ود ۱۹۲.۱۶۸.۳.۰/۲۴تفسیر خط بال این است که هر گاه بسته هایی رسید که مقصدشان ماشین های ش]]بکه البته نباید تصور ش]]ود ک]]ه هم]]ه بس]]ته ه]]ایی ک]]ه مقصدش]]ان. بده gw=192.168.3.10 بسته ها را تحویل آدرس

هم]]انطور ک]ه. بروند/ ۱۹۲.۱۶۸.۳.۰است می توانند از هر جایی بیایند و به ماشین های شبکه ۱۹۲.۱۶۸.۳.۰/۲۴ بسته هایی را ارسال می کند و به همان تعداد بسته هایی را دریافت می کند پس لزم اس]]ت ب]]رای ping گفته شد

.دیگر لزم است Route است نیز پاسخ دهد پس یک خط/ ۱۹۲.۱۶۸.۳.۰پاسخ به ماشین های مبدا که قصدشان :۱۹۲.۱۶۸.۳.۰/۲۴از ماشین های ۱۹۲.۱۶۸.۱.۰/۲۴دسترسی از شبکه

کنیم ping را ۱۹۲.۱۶۸.۳.۰۲۴ماشین های شبکه ۱۹۲.۱۶۸.۱.۰/۲۴برای اینکه بتوانیم از ماشین های شبکه Static (باید یک خط روت) دسترسی داشته باشیم( Route (در ماشینGخط زی]]ر را در ماش]]ین. بنویسیمGاج]]را

.کنیدroute add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10

۱۲۴

ب]]ود ۱۹۲.۱۶۸.۱.۰/۲۴تفسیر خط بال این است که هر گاه بسته هایی رسید که مقصدشان ماشین های ش]]بکه پ]]س ب]]ا نوش]]تن ای]]ن دوخ]]ط ی]ک ارتب]]اط بی]]ن ش]]بکه ه]ای. ب]]ده gw=192.168.1.10 بسته ها را تحویل آدرس

.برقرار است که بسته ها را به هم ارسال و از هم تحویل می گیرند ۱۹۲.۱۶۸.۳.۰/۲۴و ۱۹۲.۱۶۸.۱.۰/۲۴ :دسترسی به اینترنت

است و ۱۲۵.۲۵۰.۶۰.۵۹آن برابر gw کارت شبکه دیگری است که به اینترنت متصل است و G روی ماشین تنظیم کنیم تا بطور مثال اگر روی ماشین ه]ای ش]]بکه gw=125.250.60.59 را روی) eth2 (کافیست کارت شبکه

بسته ها را تحویل ۱۹۲.۱۶۸.۱.۰/۲۴اجرا شد، ابتدا ماشین شبکه ping www.falearn.ir دستور ۱۹۲.۱۶۸.۱.۰/۲۴gw بدهد و سپس در ماشین ۱۹۲.۱۶۸.۱.۱۰خودش یعنی G بسته ها تحویل کارت شبکه eth2 داده شده و به

اج]]را eth2 و روی کارت ش]]بکه G لزم است دستور زیر را روی ماشین. خارج از شبکه و به اینترنت منتقل شود.کنید

route add default gw 125.250.60.56 eth2

RedHat های شبکه (کارت های اترنت) در Interfaceتنظیم ۵.۱۸.۵

های شبکه مانند کارت های اترنت و وایرلس برای برقراری ارتباط با شبکه توس]]ط س]]وئجInterfaceواسط ها یا ها استفاده می شوند. بسته به نوع سیستم عامل یونیکسی محل قرار گیری آنها متفاوت است ولی در تمامی یونیکس ها تنظیمات اینترفیس ها درون فایل هایی ذخیره می شوند و برای تغییر در اینترفیس ها باید ای]]ن فای]]ل ه]]ا تغیی]]ر کنند. تنظیمات در غالب متغیر هایی(پارامتر هایی) که دارای مقدار پیش فرض و ث]]ابت ی]]ا مق]]ادیر دلخ]]واه هس]]تند

DEVICEتنظیم می شوند. بطور مثال هر اینترفیس دارای نامی است متغیری که ن]]ام این]]ترفیس را نگ]]ه م]]ی دارد

است. تمامی این متغیر ها (پارامتر ها) با حروف بزرگ نوشته می شوند و مقادیر انتس]]ابی آنه]]ا ب]]ا ح]]روف کوچ]]ک ها و یاIP هستند و یا بصورت عددی که Boolean هستند که معروف به مقادیر yes/noهستند. مقادیر یا بصورت

Gateway ها را نشان می دهند و همچنین رشته ای که بطور مثال DEVICE.نام اینترفیس را نشان می دهد شکل کلی مقدار دهی پارامتر ها بصورت زیر خواهد بود.

۱۲۵

VARIABLE=value

سه نوع فایل در رابطه با انترفیس های شبکه وجود دارد.۱.Interface configuration files

۲.Interface control scripts

۳.Network function files

Interface configuration filesمسیر و نام فایل ها :

بسته به نوع توزیع لینوکسی مسیر متفاوتی وجود دارد اما شکل نام انها یکی است. در لینوکس فایل های مرتب]]ط ب]]ا x و ethernet مخفف eth و interface configuration مخفف ifcfg است که ifcfg-ethxکارت های اترنت بصورت

از صفر شروع می شود و بسته به تعداد کارت هایxانتهای نام فایل مرتبط با تعداد کارت های شبکه است. مقدار یا بیشتر داشته باشید. بطور مثال اگر توزیع لینوکسی هم به شبکه درون سازمان و هم به این]]ترنت۱شبکه می تواند

است یا اگر توزی]]ع لینوکس]]ی بعن]]وان روت]]رifcfg-eth1 و ifcfg-eth0متصل باشد دارای دو کارت شبکه به نام های -ifcfg-eth2,ifcfg-eth1,ifcfg ک]]ارت ش]]بکه ۴ شبکه را به عهده داشته باشد باید دارای ۴باشد و مسئول مسیر یابی

eth0 و ifcfg-eth2 خواهد بود. اینترفیس های وایرلس نیز با بصورتی مشابه و با نام های ifcfg-wlanx.وجود دارند Oracle و CentOS,Fedora و توزیع های مبتنی بر آن مانند Redhatدر توزیع Linuxمسیر ق]]رار گی]]ری ای]]ن

/ است. برای مشاهده محتوای هر یک از ای]]ن فای]]ل ه]]ا ازetc/sysconfig/network-scriptفایل ها درون دایرکتوری دستور زیر استفاده کنید.

less /etc/sysconfig/network-scripts/ifcfg-ethx

برای مشاهده اولین کارت شبکه از دستور زیر استفاده کنید.

less /etc/sysconfig/network-scripts/ifcfg-eth0

۱۲۶

پارمتر های مهم•DEVICE: نام اینترفیس را نشان می دهد. با نصب سیستم عامل و شناسایی خودکار کارت شبکه، مقدار

خواهد بود.eth0 است مقدار این پارامتر if-eth0دهی می شود. بطور مثال برای اولین کارت شبکه که •BOOTPROTO: بصورتمعمول مقدار زیر است. این پارامتر نیز در هنگام نصب سیستم عامل ۴ دارای

تعیین می شود.staticپیش فرض • none از پروتوکل های : no boot-time.استفاده می شود

•static یک آدرس : IPثابت را برای کارت شبکه تعیین می کند. بطور مثال از این حالت برای سیستم هایی را ارائه می دهند استفاده می شود.dns یا dhcpکه یک سرویس خاص مانند

•dhcp با ورود به سیستم، این کارت شبکه به دنبال یک سرویس دهنده : dhcp برای در یافت IP.می گردد •bootp از پروتکل : bootp.استفاده می شود •HWADDR: آدرس MAC بیتی سخت افزاری کارت شبکه را تنظیم می کند. این۴۸ یا همان آدرس

تنظیم کردهdhcpپارامتر نیز بصورت خودکار قدار دهی می شود. بطور مثال از مقدار این پارامتر زمانی که یک ایم و می خواهیم یک آدرس را رزرو کنیم استفاده می شود.

•IPADDR: نشان دهنده آدرس IP است. زمانی که از حالت staticاستفاده کردیم باید بصورت دستی dhcp نیازی به نوشتن این پارامتر نیست بلکه سیستم از یک سرور dhcpمقدار دهی شود وگرنه در حالت

آدرس در یافت می کندdynamicبصورت پویا یا •NETMASK: تعیین کننده Subnet Mask

•GATEWAY: تعیین کننده آدرس GateWayکارت شبکه •MAC: مانند HWADDR بیتی سخت افزارای است که به یک کارت شبکه بصورت دستی۴۸ یک آدرس

استفاده کنید.HWADDRداده می شود. وقتی از این پارامتر استفاده می کنید دیگر نباید از پارامتر •NETWORK و BROADCAST: به ترتیب آدرس شبکه و آدرس Broadcast.شبکه را نشان می دهند

پس۲۵۵.۲۵۵.۲۵۵.۰ با مقدار Subnetmask و ۱۰.۱۰.۱۰.۲۰فرض کنید کارت شبکه ای با آدرس ۱۲۷

بیت اخر۸ بیت اول برای شبکه و ۲۴است پس HostID تعیین کننده ۲۰ و NetID تعیین کننده ۱۰.۱۰.۱۰ به ترتیب تعیین کننده۱۰.۱۰.۱۰.۲۵۵ و ۱۰.۱۰.۱۰.۰برای هاست ها و می توان نتیچه گرفت که دو ادرس

است. از آدرسBROADCAST یا پارامتر broadcast) و آدرس NETWORKآدرس شبکه ( پارامتر Broadcast.برای ارسال پیام ها به تمامی هاست های درون یک شبکه استفاده می شود

•ONBOOT: پارامتری با مقادیر yes یا noکه تعیین میکند که آیا کارت شبکه در هنگام بوت شدن فعال شود یا نه

را ایج]]اد م]]ی کنی]]دIPSEC ها نیز وجود دارند که وقتی یک اتص]]ال IPSECالبته اینترفیس های دیگری مانند TYPE نیستند. پ]]ارامتر دیگ]]ری ب]]ه ن]]ام DEVICEبصورت خودکار ساخته می شوند. این نوع اینترفیس ها از نوع

ود ن]]وعEthernet آنه]]ا TYPEوجود دارد که نوع اینترفیس را معین می کند. در اینترفیس ه]]ای اترن]]ت ن]]وع ی]]ا IPSEC نوع یا TYPE آنها IPSEC.است. برای اطلع بیشتر می توانید منابع زیر را مطالع کنید

Interface Configuration On Redhat/CentOS/Fedora

.viبرای تغییر و تنظیم هر یک از این پارامتر ها باید فایل های گفته شده در بال را با ویرایشگر تغییر دهید

جدول دستورات شبکه ۵.۱۸.۶

)WiFi و Lan: دستورات شبکه ( ۱۹جدول )WiFi و Lanدستورات شبکه (

dhclient eth0 dhcp در مد eth0 فعال سازی واسط

ethtool eth0 از قبیل سرعت را نمایش می دهدeth0 امار شبکه های کارت شبکه و اینکه به جایی وصل شده باشد

host و بالعکسIPتبدیل آدرس سایت مورد نظر به آدرس های !

hostname دستگاه را نمایش می*دهدhost اسم ifconfig eth0 ethernet نمایش تنظیمات کارت شبکه*ی

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 IP تنظیم آدرس

۱۲۸

)WiFi و Lanدستورات شبکه ( ifconfig eth0 promisc برایpromiscuous ) در حالت eth0 تنظیم کارت شبکه (

جمع آوری بسته هاifdown eth0 را غیر فعال می*کندeth0 واسط ifup eth0 eth0 فعال سازی واسط

ip link show مشاهده ی وضعیت اتصال تمامی شبکه های موجودiwconfig eth1 نمایش شبکه*ی بی*سیمiwlist scan برای نمایش اتصلت بی*سیم قابل دسترسیwifi جستجوی mii-tool eth0 را نمایان کنeth0 وضعیت اتصال netstat –tup مربوط آنهاPID نمایش تمام اتصلت فعال و netstat –tupl مربوطهPID نمایش تمام سرویس های دستگاه و netstat –rn را نمایش بده، مانندrouting table جدول مسیرها

route -nدستور

nslookup و بالعکسIPتبدیل آدرس سایت مورد نظر به آدرس های route –n routing نمایش جدول

route add -net 0/0 gw IP_Gateway ) پایهgateway تغییر دروازه (route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

تنظیم مسیر ایستایی برای رسیدن به شبکه ی ۱۹۲.۱۶۸.۰.۰

route del 0/0 gw IP_gateway حذف مسیر ایستاییecho “1″ > /proc/sys/net/ipv4/ip_forward ip routing فعال سازی

tcpdump tcp port 80 را نمایش می*دهدHTTP تمام ترافیک whois Whoisجستوجو در پایگاه داده ای

۱۲۹

۵.۱۹Iptables( فايروال )

.فایروال یک راهکار برای ایمن کردن شبکه ها که به دو روش سخت افزاری و نرم افزاری پیاده سازی می ش]]ود و Checkpoint MaAfee, فایروال های سخت افزاری و شرکت های Sonicwall و Cisco,Nokia شرکت هایی مانند

Symantec ب]]رایمعم]]ولکاربرد اص]]لی ف]]ایر وال . بصورت نرم افزاری فایروال ها را پیاده سازی کرده اند Packet

Filtering بطور کلی می توان فایروال را بصورت زیر دسته بندی کرد. در شبکه بین ماشین ها است: NAT : به آدرس LAN و برای تبدیل آدرس های خصوصی شبکه Network Address Translation مخفف

زمانی که تعداد آدرس های عمومی برای اتصال به اینترنت در ش]]رکتی ب]]ا تع]]داد. عمومی اینترنت استفاده می شود و تبدیل آدرس های خصوصی به آدرس عمومی ب]]ه این]]ترنت NAT زیاد آدرس های خصوصی، کم باشد، از طریق

یعنی تمامی سیستم ها بجای داشتن آدرس های عمومی ویژه خود، از طریق یک آدرس به اینترنت. متصل می شوند دسترسی NAT با استفاده از. در فایروال لینوکس انجام می شود masquerading از طریق NAT. متصل می شوند

.کاربران به پورت های خاص از درون شبکه به بیرون و از بیرون به درون شبکه را محدود کردPacket Filtering : خروجی یک/می توان در ورودی IP های بسته های Header توسط فایر وال و از طریق

آدرس مب]]دا، آدرس مقص]]د،: شامل اطلعاتی مانن]]د IP بسته های Header. سیستم محدودیت و نظارت داشت.پورت مبدا، پورت مقصد، آدرس فیزیکی مبدا، آدرس فیزیکی مقصد و … است

در نسخه های پ]]ایینتر. فایروال در سیستم عامل گنو لینوکس، در هسته آن سیستم عامل پیاده سازی شده است پیاده سازی شده بود استفاده می شد، با ارائه Netfilter که توسط ipchains هسته لینوکس بسته نرم افزاری ۲.۴از

.ارائه شد Netfilter شد که بازهم توسط ipchains جایگزین iptables هسته لینوکس بسته نرم افزاری ۲.۴نسخه در هسته لینوکس قرار دارد و از این رو نیازی به نصب هیچ بسته ن]]رم اف]]زاری built-in بصورت iptables بسته

در توزیع های لینوکسی استفاده) iptables (بعنوان دستور خط فرمان برای کار با فایروال iptables دستور. نیستمی شود

محیط گرافیکی ب]]رای. محیط گرافیکی برای ک]]ار ب]]ا ف]]ایروال لین]]وکس وج]]ود دارد RedHat در توزیع های لینوکسی مبتنی بر

۱۳۰

.دسترسی به آن در گنوم باید از مسیر زیر آنرا اجرا کنیدSystem -> Administration -> Firewall

.یا اینکه دستور زیر را اجرا کنیدsystem-config-firewall

فعال و غیر فعال کردن فايروال۵.۱۹.۱

غیر فعال کردن فایروال دسترسی کلی. یعنی فایروال فعال است” The firewall is enabled“ در شکل بال عبارت فراهم می کند که امنیت بسیار پایین و نف]]وذ) NAT به واسطه تنظیم(به سیستم را از درون شبکه محلی یا اینترنت

یا اطمینان بین شبکه های Trust تنها زمانی می توانید فایروال را غیر فعال کنید که یک. مخرب ها را به همراه دارد.فقط محلی وجود داشته باشدFirewall“ در پنل سمت چپ پنجره Vonfiguration ”ف]]ایروال. چندین گزینه برای تنظیم فایروال وج]]ود دارد

.هایی دسته بندی می شود Table هایی تشکیل شده است که تحت جداول یا Rule از قوانین یا) iptables (لینوکس از قبل وجو دارند و می توان جداول دیگر m و filter,nat سه جدول. هر جدول برای کاربر خاصی استفاده می شود

هایی تشکبل شده است که هر خ]]ط از ای]]ن ق]]وانین را زنجی]]ره ی]]ا Rule هر جدول از قوانین یا. را نیز تعریف کردChain خ]]روج/به مح]]ض ورود. از سیستم را دارند/خروجی به/می گویند که نظارت بر عملکرد بسته های ورودی

طتبیق داده می ش]]وند و اج]]ازه ی]]ا ع]]دم اج]]ازه را ب]]رای) قوانین(از سیستم، با زنجیره ها /به) بسته(یک درخواست با استفاده از محیط گرافیکی بال و تنظیم فایروال توسط آن، تنظیماتی. از سیستم را دریافت می کنند/خروج به/ورود

.ذخیره می شوند/ etc/sysconfig/iptables شده و در فایل iptables ها در Rule که انجام داده ایم تبدیل به ساختارTrusted سرویس های•

و … که از طریق پنل سمت چپ محی]]ط گرافیک]]ی ق]]ابلیت HTTP,SSH,FTP,NFS سرویس های رایجی مانند.غیر فعال شدن را دارند/فعالOther Ports دیگر پورت ها•

۱۳۱

روی پ]]ورت Webmin بطور مثال ابزار تح]]ت وب. در این بخش می توان پورت های پیش فرضی را تعیین کرد پس می توان از طریق این بخش آنرا تعریف. وجود ندارد Trusted Services کار می کند که در لیست ۱۰۰۰۰

.لیست تمامی سرویس ها و پورت های آنها را ذخیره شده است/ etc/services در فایل. کردless /etc/services

Trusted Interfaces

می ت]]وان از بی]]ن. می توانند دسترسی داشته باشند Trusted برای انتخاب اینترفیس های شبکه ای که بصورت یا اطمینان Trust اینترفیسی که به آن. چندین اینترفیس شبکه مانند کارت های اترنت یک یا همگی را انتخاب کرد

eth0 دارید که eth1 و eth0 کارت شبکه ۲بطور مثال . ای برایش تعریف نشده است Rule می شود هیچ قانون یا

.انتخاب کرد Trusted Interface را بعنوان eth0 به اینترنت متصل است و می توان eth1 به شبکه محلی وmasquerading

IP می توان بجای اس]]تفاده از NAT با استفاده از. استفاده می شود masquerading از NAT برای پیاده سازی

برای اتصال به اینترنت برای هر سیستم درون شبکه محلی داده می شود، از یک آدرس ISP که توسط Public هایPublic در این حالت تمامی سیس]]تم ه]ا در خواس]]ت ه]ای خ]ود را ب]]ه. برای تمامی سیستم ها استفاده کرد NAT

Server ارسال می کنندو در خواست ها توسط NAT Server به اینترنت فرستاده می شوند.Port forwarding

هاست(را به یک ماشین ۸۰می توان تمامی در خواست های ورودی روی پورت Port forwarding با استفاده ازHost (برای پیاده سازی. ارسال کرد Port forwarding از masquerading از. استفاده شود Port forwarding بطور

از محیط اینترنت اس]]تفاده م]]ی) LAN (مثال برای هداست در خواست های دسترسی به وب سرور در شبکه داخلی.شود

ICMP Filter

ICMP مخخف Internet Control Message Protocol که ابزار هایی مانند Ping برای ارسال پیام ها بین دو توسط فایروال می توان کنترل بیش]]تری روی ای]]ن پروتک]]ل. استفاده می شود که دارای انواعی است) ماشین(هاست

۱۳۲

.داشت تب]]دیل م]]ی ش]]ود و در فای]]ل iptables پس از هر تنظیم توسط محیط گرافیکی این تغییرات به ساختار ق]]وانین

etc/sysconfig/iptables /برای مشاهده این فایل از دستور زیر استفاده کنید. ذخیره می شوند.less /etc/sysconfig/iptables

:خروجی

در هسته سیستم عامل لینوکس ق]]رار دارد نی]]ازی ب]]ه Built-in چون بصورت iptables فایروال لینوکس یعنیstart شدن ندارد ولی بصورت زیر بعد از هر تغییر یا به هر دلیل دیگری می توان آنرا restart کرد.

etc/init.d/iptables restart/

.در زمان بوت شدن و ورود به سطوح اجرایی فعال باشد دستور زیر را اجرا کنید iptables برای اطمینان از اینکهchkconfig –level 345 iptables on

نکت]]ه پای]انی اینک]]ه. ابتدا، اولین دستور بال را و سپس دومین دستور را اج]]را کنی]]د iptables برای شروع کار با

۱۳۳

less /etc/sysconfig/iptables: ۱۹تصویر

iptables جایگزین ipchains در نس]]خه ه]]ای قبل]]ی از. به بعد هسته سیستم عامل لینوکس است ۲.۴در نسخه ipchains استفاده می شده است که با ارتقا و کامپایل هسته به نسخه های جدیدتر می توان از iptables اس]]تفاده

.توجه کنید که دو فایروال نمی توانند بصورت همزمان استفاده شوند. کرد و یا اینکه بصورت دستی آنرا نصب کنید

۵.۱۹.۲iptables و چگونگی استفاده از دستور iptables

از iptables فایل پیش فرضی که. آشنا می شود iptables و چگونگی استفاده از دستور Iptables در این بخش فایروال ها مجموعه ای قوانین هستند. است/ etc/sysconfig/iptables آن برای ذخیره سازی قوانین استفاده می کند

.که بر بسته های ارسالی مابین دو سیستم نظارت دارند.بصورت زیر است iptables یک مثال استفاده از دستور

iptables -A chain -j target

:سه جدول از قبل تعریف شده زیر است iptables در•filter : با استفاده از سوئیچ. جدول پیش فرض است. برای کنترل و محدود کردن بر بسته های ارسالی t-

برای تعیین جدول استفاده نشود، بصورت پیش- t اگر سوئیچ. جدول را تعیین می کنیم iptables از دستور.تعیین می شود filter فرض جدول

•nat : برای پیاده سازی nat

•mangle : برای نشانه گذاری یا mangling کردن یک بسته در شبکه.•iptables مجموعه ای از قوانین که در قالب chain هر زنجیر شامل یک یا چند. ها پیاده سازی می شوند

Rule زنجیره ها در قالب جدول یا. یا قانون است Table هر ج]]دول از تع]]دادی. ها دسته بندی می شوند ت]]وجه کنی]]د ک]]ه. سه جدول پیش فرض گفته شده دارای زنجیر های زیر هستند. زنجیره تشکیل شده است

.بصورت زیر است iptables ساختار. نمی توان جدول و زنجیره های پیش فرض را پاک کردiptables -> Tables -> Chains -> Rules

filter زنجیره های جدول

۱۳۴

•INPUT : برای بسته های ورودی به سیستم از یک مقصد استفاده می شود.•OUTPUT : برای بسته های خروجی از سیستم به یک مقصد استفاده می شود.•FORWARD : برای ارسال بسته ها به واسطه NAT استفاده می شود.

nat زنجیره های جدول۵.۱۹.۳

•PREROUTING : پیش از Routing) زمانی که یک بسته از یک. بسته ها آنها را تغییر می دهد) مسیریابی .استفاده می شوند DNAT درمعمولماشین محلی می رسد می توان آدرس مقصد را تغییر داد که

•OUTPUT : ماشین که قانون در زنجیره(بسته های تولید شده در ماشین محلی OUTPUT در آن تعریف .پیش از ارسال تغییر می دهد) شده

•POSTROUTING : پس از Routing مانند زمانی که بسته سیستم را ترک می. بسته، آنرا تغییر می دهد ).روی آن قرار دارد NAT منظو سیستمی که. (کند

mangle زنجیره های جدول۵.۱۹.۴

PREROUTING

OUTPUT

FORWARD

INPUT

POSTROUTIN

کردن قانون به انتهای Append پس از. کردن قانون به انتهای جدول استفاده می شود Append برای- A سوئیج -j سوئیچ. لیست قوانین در جدول اضافه شده و به هنگام ورود یک بسته این لیست از بال به پایین خوانده می شود

:وجود دارد iptables زیر در target سه. استفاده می شود Rule برای target برای تعیینACCEPT : اگر بسته با قانونی تطلبیق پیدا کند، فایروال آنرا قبول می کند. بسته را دریافت می کند.

DROP : اگر بسته ای با قانون تطبیق پیدا کند، فایروال بدون هیچ پیغامی به مبدا آن بسته را بیرون می اندازد.۱۳۵

REJECT : مانند DROP بسته را بیرون می اندازد ولی یک پیغام خطا به فرستنده بسته ارسال می کند.

سوئیچ های پراستفاده۵.۱۹.۵

•A : -برای Append کردن یک قانون به انتهای زنجیره در جدول تعیین شده با سوئیچ t-•D : باید عینن همان خط قانونی که ب]]ه. برای حذف یک قانون از زنجیره ای که قانون در آن وجود دارد-

.زنجیره اضافه کردید را برای پاک شدن بنویسید•I : -برای Insert کردن قانون به زنجیره استفاده می شود.•R : -برای Replace کردن قانون به زنجیره استفاده می شود.•L : -برای لیست کردن قانون های یک زنجیره خاص یا تمامی زنجیره استفاده می شود.

iptables -L CHAIN_NAME

iptables -L CHAIN_NAME -t TABLE_NAME

.را نشان می دهد filter از جدول INPUT مثال زیر تمامی قوانین تعریف شده در زنجیرهiptables -L INPUT -t filter

:خروجی

anywhere منظور از. اجازه ارسال بسته ها از هر منبعی به هر مقصدی داده شده است icmp بطور مثال در خط

ب]]ا اس]]تفاده از. در مقصد اینکه شاید چندین کارت شبکه روی ماشینی که فایروالش تنظیم شده وجود داش]]ته باش]]د

۱۳۶

iptables -L INPUT -t filter: ۲۰تصویر

نش]]ان داده م]]ی mangle و filter,nat دستور های زیر فهرست قوانین تعریف شده در تمامی زنجیره های جداول:شود

iptables -t filter -L

iptables -t nat -L

iptables -t mangle -L

N : -برای تعیین یک زنجیره یا Chain جدید استفاده می شود..دستور زیر را در خط فرمان اجرا کنید iptables برای اطلع بیشتر از سوئیچ های دستور

iptables -h

.نسان داده می شود iptables نسخه- V همچنین با سوئیچiptables -V

iptables v1.4.7

.دقت کنید که نام سه جدول پیش فرض با حروف کوچک و نام زنجیره های پیش فرض با حروف بزرگ اس]]تiptables همچنین تمامی سوئیچ ها به جز. به کوچکی و بزرگی نام ها حساس است j -و t -با حروف بزرگ هستند.

iptableجدول دستورات ۵.۱۹.۶

( دیوار آتش )Iptables: ۲۰جدول Iptables( دیوار آتش )

iptables -t ****** -L تمام زنجیرهای جدول فیلتر شدن را نمایش می دهدiptables -t nat –L را نمایش می دهدnat تمام زنجیر های جدول iptables -t ****** -F تمام قوانین و شروط را از جدول فیلتر شدن پاک می*کندiptables -t nat –F پاک می*کندnat تمام قوانین و شروط را از جدول iptables -t ****** -X هر زنجیری را که توسط کاربر درست شده باشد را پاک

۱۳۷

می*کندiptables -t ****** -A INPUT -p tcp –dport telnet -j

ACCEPT اجازه*ی اتصالت telnetرا به ورودی می*دهد iptables -t ****** -A OUTPUT -p tcp –dport http -j DROP

به خروجی را قطع می*کنندHTTP اتصالت

iptables -t ****** -A FORWARD -p tcp –dport pop3 -j ACCEPT

می*دهدforward را به زنجیر POP3 اجازه*ی اتصالت

iptables -t ****** -A INPUT -j LOG –log-prefix ثبت اتفاقات بروی رشته ی ورودیiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0 بروی بسته های خروجی از PAT پیکربندی

iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination

هدایت مجدد بسته های آدرس دهی شده به۱۰.۰.۰.۲:۲۲یک میزبان به میزبان دیگر

جدول دستورات نظارت و اشکال زدائی۵.۲۰

: نظارت و اشکال زدایی ۲۱جدول نظارت و اشکال زدائی

free –m ) به مگابایتRAM نمایش وضعیت حافظه ( kill -9 process_id بستن ( از کار انداختن ) اجباری یک برنامه یا پردازشkill -1 process_id )reload مجبور کردن یک برنامه یا پردازش به بارگذاری (

مجدد تنظیمات و فایل های پیکربندیlast reboot )reboot نمایش تاریخ و زمان آخرین راه اندازی مجدد (

سیستمlsmod ) بارگذاری شده توسط هستهmodule نمایش ماژول های (

)kernel( lsof -p process_id نمایش لیست فایل های در حال استفاده به وسیله ی یک

برنامه یا پردازش

۱۳۸

نظارت و اشکال زدائیlsof /home/user1 نمایش لیست فایل های در حال استفاده در مسیر مورد نظرps –eafw نمایش برنامه های در حال اجرا در لینوکسps -e -o pid,args –forest PID نمایش برنامه های در حال اجرا بر اساس شماره ی pstree نمایش برنامه های در حال اجرا به صورت نمودار درختیsmartctl -A /dev/had کنترل و بازبینی قابلیت اطمینان دیسک سخت از طریق

SMARTویژگی smartctl -i /dev/had بروی یک دیسک سختSMART کنترل فعال بودن ویژگی strace -c ls >/dev/null نمایش ارتباط های سیستم با یک برنامه یا پردازشstrace -f -e open ls >/dev/null ) با یک برنامه یاlibrary نمایش ارتباط های کتابخانه ها (

پردازشtail /var/log/dmesg )kernel نمایش وقایع و رویدادهای بوت شدن هسته ( tail /var/log/messages نمایش وقایع و رویدادهای سیستمtop cpu نمایش برنامه های در حال اجرا که بیشترین استفاده از

را دارندwatch -n1 ‘cat /proc/inter نمایش یک دستور در لحظه

دستوراتی ديگر۵.۲۱

: دستوراتی دیگر۲۲جدول دستوراتی دیگر

را قرار hh (تاریخچه) اسم مستعار history’ ب]رای دس]]تور بده.

alias hh=’history

apropos …keyword این دستور لیست تمام دستورهایی که کلمه*ی کلیدی را داشته باشد نمایاش می دهد، وقتی که کارایی دستور را می*دانید ولی خود دستور را نمی*دانید می*توان از این

۱۳۹

دستوراتی دیگر

دستور استفاده کرد..chsh shell تغییر دادن chsh –list-shells ) های موجود در مسیرshell نمایش لیست شل (

etc/shells gpg -c file1 GNU Privacy Guard رمز گذاری یک فایل با استفاده از gpg file1.gpg GNU Privacy Guard رمز گشایی یک فایل با استفاده از ldd /usr/bin/ssh shared نمایش دهنده ی کتابخانه های مشترک (

libraries مور نیاز برنامه ی (ssh man ping برای دستورon-line نمایش دهنده*ی صفهات راهنمای

ping با استفاده از گزینه*ی kمی توان دستورات مربوطه - را نیز پیدا کردن

Rupts ) سختIRQ نمایش حال حاضر خطوط در خواست وقفه( افزار های مختلف

۶crontab برنامه ای برای زمانبدی کارها در لینوکس

انجام می شوند. وظیفه مدیریت و اجرای کار ه]]اBackground بصورت خودکار در یک زمان معین که بصورت برای گرفت]]ن فای]ل ه]]ای پش]]تیبان،crontab انجام می گیرد. می توانید از crondبرای اجرای خودکار توسط فرایند

به اینصورت است که هر دقیقه یکب]]ار فای]]ل ه]]ایcrond) و … استفاده شود. عملکرد Updateبروز کردن سیستم (Cron Table را چک می کند و اگر کاری برای انجام دادن وجود داشته باشد، انج]]ام م]]ی ده]د. (برن]]امه crontab

Cronمخفف Table است.) برای هر کاربر یک فایل crontabوجود دارد که البته م]]ی ت]]وان ب]]ا اس]]تفاده از فای]]ل etc/cron.deny.جلوگیری کرد تا کاربری نتواند کارهایی را توسط فایل خودش زمانبتدی کند /

- بصورتl را به همراه سوئیچ crontabبرای انکه بدانید که آیا کاری را برای اجرا زمانبندی کردید یا نه دستور ۱۴۰

زیر استفاده کنید.crontab -l

rootاگر کاری را زمانبندی نکرده اید باید خروجی زیر نشان داده شود. البته اجرای دستور بال در محیط ک]]اربر

انجام شده است.no crontab for root

- مخف]]فuو اگر مدیر سیستم هستید و می خواهید وضیعیت زمانبندی کاربران را تعیین کنی]]د بای]]د از س]]وئیچ user.بصورت کلی زیر استفاده کنید

crontab -l -u username

crontab -l -u pc2

و خروجی خط دوم مثال بال :no crontab for pc2

شما می شود.Cron Table- استفاده کنید. دستور زیر باعث باز شدن فایل eبرای ویرایش فایل باید از سوئیچ crontab -e

ولی اگر مدیر هستید و می خواهید فایل کاربر دیگری را وارد کنید باید بصورت کلی زیر انجام دهید.crontab -e -u username

crontab -e -u pc2

- ب]]دون هی]]چr- اس]]تفاده کنی]]د. ب]]ا اس]]تفاده rبرای پاک کردن تمامی زمانبندی های انجام شده باید از سوئیچ پاک خواهد شد. ولی برای دادن یک اعلن قبل پ]]اک ش]]دن ه]]ر زمانبن]]دیcrontabاخطاری تمامی محتوای فایل

- استفاده کنید.iدرون فایل از سوئیچ crontab -r

crontab -i -r

۱۴۱

crontab -r -u username

crontab -i -r -u username

البته چندین فایل وجود دارد که متعلق به یک کاربر خاص نیست و برای تمامی سیستم اس]]ت ول]]ی مال]]ک ای]]ن مخص]]وص خ]]ود هس]]تندcrontabهمانطور که گفته شد همه ی کاربران دارای یک فایل است. rootفایل ها کاربر

ولی چندین فایل زیر وجود دارند که متعلق به کل سیستم هستند.•etc/cron.dدایرکتوری شامل چندین فایل : /•etc/cron.dailyزمانبندی برای انجام روزانه : /•etc/cron.hourlyزمانبندی بصورت ساعتی : /•etc/cron.monthlyزمانبندی ماهانه : •etc/cron.weeklyزمانبندی هفتگی :

ه]]ر روز۱۲:۳۰/ در یک ساعت خاص : کد ش]]کل زی]]ر در س]]اعت tmpپاک کردن فایل های خالی دایرکتوری از مج]]وز ه]]ای ک]]اربرcrond برای اجرا شدن توسط find/ را پاک می کند. دستور tmpفایل های خالی دایرکتوری

root استفاده می کند. باید ابتدا دستور crontab -e را اجرا کنید تا فایل crontab.شما برای ویرایش باز شود

توسط اسکریپتی گرفته م]]ی ش]]ود. ت]]وجه کنی]]د ب]]رایbackup صبح یک ۸:۳۰ ژوئن ساعت ۱۰دستور زیر در استفاده کنید.۲۰:۳۰ شب باید از ۸:۳۰ساعت

۱۴۲

crontab -e: ۲۱تصویر

back up with corntab: ۲۲تصویر

) هر روز از دستور زیر استفاده کنید.۱۶ بعد از ظهر(۴ ظهر و ۱۱ در ساعت backupبرای گرفتن

* : یعنی هر روز•* : هر ماه•* : هر هفته•

) از دستور زیر اس]]تفاده۱۶ عصر (۶ صبح تا ۹ بین ساعت مثلبرای اجرای وظایف در یک محدوده زمانی خاص کنید.

اس]]ت و۰برای انجام در روز های خاص از هفته مثل روز دوم هفته (یک ش]]نبه روز اول هفت]]ه میلدی و ع]]دد عص]]ر انج]]ام۶ ص]]بح ت]]ا ۹ است ) تا روز ششم یعنی جمعه هر هفته بین ساعت های ۱دوشنبه روز دوم و عددش

شود.

رشته های خاص :

۱۴۳

back up with corntab: ۲۳تصویر

back up with corntab: ۲۴تصویر

back up with corntab: ۲۵تصویر

Crontab options: ۲۳جدول

Crontab options

@ : reboot.شدن اجرا شود reboot دستور در زمان

)هر روز ۰۰:۰۰ساعت (دستور یکبار در اولین دقیقه هر روز .انجام شود

daily : @

@ : midnight.هر شب انجام شود) ۰۰:۰۰(دستور یک بار در اولین دقیقه

اولین روز هفته) ۰۰:۰۰ساعت (دستور یکباردر اولین دقیقه .بصورت هفتگی انجام شود

weekly : @

@ :yearly یا@ annuall.دستور در اولین دقیقه هر سال انجام شود

@ : monthly.در اولین دقیقه هر ماه انجام می شود

اول ژانویه ۰۰:۰۰یعنی در ساعت . برای اجرای دستور در دقیقه اول هر سال باید دستور زیر را استفاده کنید .می شود انجام هر سال

به دلیل اینکه زمان های اجرا بر حسب اولین دقیقه هر روز یا ماه و … هس]]تند ی]]ا اینک]]ه در مث]]ال ه]]ای ب]]التر تم]]امی ک]]اربران راcronatb هر دقیقه فایل های crond دقیقه تنظیم می شوند این است که ۱۲:۳۰بصورت ساعت

چک می کند و امکان زمانبندی بر حسب ثانیه وجود ندارد.

VI دستورات ويراشگر ۷

Bill توس]]ط آق]]ای ۱۹۷۶/ در س]]ال viːˈaɪˈ ب]]ا تلف]]]ظ /VIادیتور Joy . نوش]]ته ش]]ده اس]]ت VIدارای دو م]]د

۱۴۴

back up wih corntab: ۲۶تصویر

Command و Insert می باشد . در هر حال فقط یک مد فعال است . یعنی یا در مد Commandهستید ی]]ا در م]]د Insert .قرار دارید VIدستورات فراوانی دارد که در این مقاله به اصلی ترین موارد و مواردی که نویسنده ی مطلب

در اثر تجربه ، بیشتر از آن ها استفاده می کند اشاره می کنیم . توصیه می کنیم در هنگام خواندن این مقاله ، یک فایل متنی بلند مثل توافقن]]امه ی ی]]ک ن]]رم اف]]زار را انتخ]]اب

باز کنید و هر دستور را بر روی فایل باز شده اجرا کنید تا م]]واردVIکنید . یک کپی از آن بگیرید . این فایل را در را به صورت عملی فرا بگیرید .

فرض بر این است که شما هم اکنون در محیط یک توزیع لینوکس به سر می برید . در این صورت ب]]ه احتم]]ال بر روی توزیع شما نصب است .VIقریب به یقین

ورود به ويرايشگر و خروج از آن۷.۱

می شوید .VI را بزنید . وارد برنامه enter را تایپ کنید و viدر خط فرمان عبارت • را بزنید .i کلید Insertبرای ورود به مد • شده اید و هر چه تایپ کنید در فایل نوشته می شود . برای نمونه بنویس]]ید:Insertهم اکنون وارد مد •

hello world

گشته اید .Command خارج شده اید و وارد مد Insert را بزنید . از مد Esc کلید• در مسیر جاری ذخیره می کندtest.txt . این دستور متن نوشته شده را تحت نام w test.txtتایپ کنید :•

. ذخیره می کن]]د یعن]]ی دس]]تور:test.txt را بنویسید فایل را تحت همین نام wاز این پس هرگاه دستور :•

w (بدون نام فایل) ، معادلsave. می باشد را بزنی]]د . در خ]]طEnter شوید . به انتهای خط اول بروید و Insert را بزنید تا وارد مد i کلیدمجددا •

! را تایپ کنید .good practiceدوم عبارت . فای]]ل تح]]تw شوید . تایپ کنی]]د :Command خارج و وارد مد Insert را بزنید تا از مد Esc کلید•

۱۴۵

ذخیره می شود .test.txtهمان نام خارج خواهی]]دVI تغییری نکرده است از save . چون فایل بعد از آخرین qبرای خروج تایپ کنید : :•

شد و به خط فرمان بر می گردید . بر می گردد.Command کنترل به مد Esc کلیدبا فشردن

می شوید . این روش تنها راه ورود به م]]دInsert وارد مد i کلید هستید با فشردن Commandزمانی که در مد Insert نیست و همین عمل ورود به مد Insert کلید به وسیله ی iمفهوم خاص]]ی دارد ک]ه در ادام]]ه ب]ه آن م]ی ،

پردازیم.

آخرين تغییراتsave خروج از ويرايشگر بدون ۷.۲

یک فایل متنی بلند را انتخاب کنید و آن را در مسیری که خط فرمان شما به آن اشاره می کن]]د ک]]پی• است .EULA.txtکنید . فرض می کنیم نام این فایل

باز خواهد شد .VI در ویرایشگر EULA.txt . فایل vi EULA.txtدر خط فرمان بنویسید : • قرار خواهید داشت .Commandدر هنگام ورود به فایل در مد • شوید و متنی را تایپ کنید .Insert را بزنید تا وارد مد i کلید• شوید .Command را بزنید تا وارد مد Esc کلید•! را تایپ کنید .q کردن تغییرات :save بدون VIبرای خروج از •

اجرا کردیم با کولن : شروع شده اند و هنگ]]ام ت]]ایپ ، دس]]تور در ن]]وارCommandدستوراتی که تا کنون در مد نمایش داده می شود .VIپایینی

viجمع بندی دستورات ۷.۳

۱۴۶

: جمع بندی دستورات بال۲۴جدول توضیحاتمحیطدستور

viطریقه ورود به خط فرمانVI. را آموختیم

:w

filename

Vi command mode

ایجاد کنیم و برای اولین بار آن را با نامVIآموختیم چگونه فایلی را در کنیم .saveدلخواه

:qVI command mode

را آموختیم .VIطریقه خروج از

می باشد .Command و Insert دارای دو مد VIآموختیم

iVI command mode

می رویم .Insert به مد Command از مد i کلیدآموختیم با زدن

EscVI insert mode

یعنی آمادهCommmand خارج و وارد مد Insert از مد Esc کلیدبا زدن پذیرش دستورات می شویم .

vi filename

باز کنیم .VIآموختیم که چگونه یک فایل موجود را در خط فرمان

:q!VI command mode

خارج شویم .VI کردن آخرین تغییرات ، از saveآموختیم چگونه بدون

:x or :wqVI command mode

کن و خارج شو !saveدستور جدید :

حرکت در داخل فايل ۷.۴

arrow ، دارای کلید های جهتی یا VIاکثر سیستم های موجود در زمان نوشتن برنامه ی keyه]]ا نبودن]]د . ب]]ه تدابیری برای حرکت در فایل اندیشیده است .VIهمین دلیل

اجرا شوند .Command می باشند و می بایست در مد VIبدیهی است که مطالب زیر جز دستورات نشانگر را به سمت چپ حرکت می دهد .در این پست h کلید• نشانگر را به خط پایین می برد .j کلید• نشانگر را به خط بالیی می برد .k کلید• (ال کوچک) نشانگر را به سمت راست حرکت می دهد .l کلید•

۱۴۷

۷.۵ cutيا حذف کردن يک يا چند خط

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید

. این کار خط فعلی را حذف می کن]]د . خ]]ط ح]]ذف ش]]ده درdd را بزنید . یعنی dدوبار پشت سر هم • جای می گیرد .clipboardداخل خط با احتساب خط فعلی ، را حذف می کن]]د .n یک عدد می باشد ، n با عنایت به اینکه dndدستور •

cut خط فعلی و خط بع]]د از آن را d2d قرار می گیرند . برابی مثال clipboardخطوط پاک شده در داخل

خط بعد از آن را حذف می کند.۹ ، خط فعلی و d10dمی کند و دستور

۷.۶ paste کردن محتوا و undoنمودن تغییرات

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید . این کار خط فعلی را پاک می کند . خط پاک شده در داخلdd را بزنید . یعنی dدوبار پشت سر هم •

clipboard. جای می گیرد درcursor را در خط بعد از خطی که clipboard محتوای p را بزنید . p کلیدبه خط دلخواهی بروید و •

می کند .pasteآن قرار دارد ، ش]]دن تغیی]]رات ت]]اundo ب]]اعث u را انجام می دهد . فشردن متوالی undo عمل u را بزنید . u کلید•

لحظه ی بازگشت به نسخه اصلی فایل می شود .

۷.۷ cut يا حذف کردن باقیمانده خط ، از نقطه فعلی cursor

۱۴۸

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید ) به ابتدای جایی که می خواهید از آن نقطه تا انتهای خط حذفh, j, k, lبا استفاده از کلید های جهتی (•

بشود ، بروید . ق]]رار خواه]]دclipboard خواه]]د ش]]د و در cut تا انتهای خط cursor را بزنید . از نقطه فعلی D کلید•

گرفت . ویرایش یک یا چند خط

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید م]]ی رود وInsert . این کار خط فعلی را کامل پاک می کند و به م]]د cc را دو بار بزنید . یعنی c کلید•

را بزنید .Esc کلیدآماده ورود کاراکترهای بعدی می شود . بعد از اتمام ورود متن دلخواه ، •cnc با عنایت به اینکه n یک عدد است با احتساب خط فعلی n خط را پاک می کند و ب]]ه م]]د Insert

. اولین دس]]تور دو خ]]ط وc5c یا c2cمی رود تا کاراکترهای جایگزین این خطوط را بخواند . به عنوان مثال می رود . بدیهی است بعد از اتمام ورود کاراکترها می بایس]]تInsert خط را پاک می کند و به مد ۵دومی

Esc.را بزنید ویرایش باقیمانده خط فعلی

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید,hبا استفاده از کلیدهای جهتی (• j, k, lبه ابتدای جایی که می خواهید از آن بعد را ویرای]]ش کنی]]د (

بروید . Insert تا انتهای خط پاک می شود و ادیتور به م]]د cursor بزرگ) . کاراکتر زیر C را بزنید . (C کلید•

را بزنید .Esc کلیدمی رود . بعد از اتمام ویرایش

و تفاوتهای آنInsertراههای مختلف ورود به مد ۷.۸

هستید .Command را بزنید تا اطمینان حاصل کنید در مد Esc کلید

۱۴۹

درج می کند .cursor : کاراکترهای ورودی را در مکان i کلید• است .append اول کلمه a درج می کند . cursor : کاراکترهای ورودی را در نقطه بعد از a کلید• : کاراکترهای ورودی را در ابتدای خط فعلی درج می کند .I کلید• یا درج می کند .Append : کاراکترهای ورودی را در انتهای خط فعلی A کلید•

دستورات فوق علی رغم عجیب به نظر رسیدنشان ، بسیار ساده و قابل فهم هستند . فایل تست خود را باز کنید ودستورات را روی آن اجرا کنید تا تفاوت های ساده آن ها را متوجه شوید.

پرش به نقاط مختلف يک خط ۷.۹

Esc را بزنید تا اطمینان حاصل کنید که در مد Command. هستید را به ابتدای خط فعلی می برد .cursor می باشد . Home کلید) : معادل ۰ (تنها ۰•) : مع]]ادل • نها $(ت . را به انتهای خط فعلی می برد cursor می باشد . End کلید$ •w تنها) w نشانگر یا : (cursorرا به ابتدای کلمه بعدی منتقل می کند . در صورت رسیدن به آخری]]ن

به ابتدای اولین کلمه خط بعد منتقل می شود .cursorکلمه خط جاری ، در صورت فشردن مجدد ، •b تنها) b نشانگر یا : (cursorرا به ابتدای کلمه قبلی می برد . در صورت رسیدن به ابتدای اولین کلمه

به ابتدای آخرین کلمه ی خط قبلی می رود .cursorخط جاری ، در صورت تکرار دستور ، کاراکترreplace پاک کردن و

Esc را بزنید تا اطمینان حاصل کنید که در مد Command. هستید •x تنها) x کاراکتری که : (cursor. روی آن قرار گرفته است را پاک می کند •nx تنها) nx با عنایت به اینکه : (n ، یک عدد می باشد n کاراکتر از نقطه فعلی cursorبه بعد پاک را

کاراکتر بعد از آن حذف می کند .۴ را به همراه cursor ، کاراکتر زیر 5xپاک می کند . مثل :

۱۵۰

•r تنها) r برای : (replace . کاراکتر به کار می رود cursorرا روی کاراکتری که می خواهی]]د آن را ب]]ا را فشار دهید و بلفاصله کاراکتر جایگزین را بزنید .rچیز دیگری جایگزین کنید قرار دهید . حال

ویرایش یک یا چند کلمهEsc را بزنید تا اطمینان حاصل کنید که در مد Command. هستید

) به ابتدای کلمه ای که می خواهید وبرایش کنید بروید .h, j, k, l های جهتی (کلیدبا •change اختصار عبارت cw را بزنید (یعنی w و سپس c کلید• word کلمه بعد از . (cursorپاک م]]ی

می رود و آماده دریافت کاراکترهای ورودی م]]ی ش]]ود . بع]]د ازInsert به طور اتوماتیک به مد VIشود و را بزنید .Esc کلیداتمام نوشتن

تا انتهای کلمه را پاک می کند .cursor از نقطه فعلی VI ویرایشگر cwدر واقع با زدن

را پاک م]]یcursor کلمه بعد از n یک عدد می باشد ، تعداد n با عنایت به این نکته که cnwعبارت • و آماده گرفتن کاراکترهای ورودی می شود . طبیعی است بعد ازInsertکند و به صورت اتوماتیک وارد مد ب]]رایc2w را بزنید . مث]]ال ه]]ایی از ای]]ن م]]ورد م]]ی توان]]د Esc کلیداتمام ویرایش و ورود کاراکترها باید

باشد .cursor کلمه از نقطه فعلی ۵ برای ویرایش c5w یا cursor کلمه از نقطه فعلی ۲ویرایش پرش به خط دلخواه

هستید .Insert را بزنید تا اطمینان حاصل کنید که در مد Esc کلید را به خط اول فایل می برد .cursor : این دستور ۰ :•: ا]ین] دس]]تور • : $cursor. را به خط آخر فایل می برد •: n با عنایت به این نکته که : n یک عدد است cursor را به خط n. می برد

پرش صفحه ای هستید .Insert را بزنید تا اطمینان حاصل کنید که در مد Esc کلید

•CTRL+f کلید : عملکرد آن مشابه page downمی باشد . به اندازه یک صفحه به پایین پ]]رش م]]ی ۱۵۱

کند .•CTRl+b مشابه : page up. عمل می کند . به اندازه یک صفحه به بال پرش می کند •CTRL+d. به اندازه نیم صفحه به پایین پرش می کند : •CTRL+u. نیم صفحه به بال پرش می کند :

cutیا پاک کردن یک یا چند کلمه هستید .Insert را بزنید تا اطمینان حاصل کنید در مد Esc کلید

) به ابتدای کلمه ای که می خواهید آنرا پاک کنید بروید .h, j, k, lبا استفاده از کلیدهای جهتی (•delete اختصار عبارت dw را بزنید ، یعنی w و سپس d کلیدابتدا • wordکاراکترهای کلم]]ه فعل]]ی ،از .

های بعد از این کلمه و قبل از کلمه بعدی جذف میspace تا انتهای کلمه به همراه کلیه cursorنقطه زیر قرار می گیرند .clipboardشوند و در داخل

به بعد را حذف می کندcursor کلمه از نقطه زیر n یک عدد است ، n با عنایت به اینکه dnwدستور • قرار می دهد .clipboardو در داخل

کپی کردن یک یا چند خط هستید .Insert را بزنید تا اطمینان حاصل کنید که در مد Esc کلید

) به خطی که می خواهید آنرا کپی کنید بروید .h, j, k, lبا استفاده از کلیدهای جهتی (• clipboard را بزنید . این دس]]تور خ]]ط فعل]]ی را در داخ]]ل y کلید را وارد کنید . یعنی دوبار yyدستور •

متنp کلیدقرار می دهد . حال می توانید با استفاده از کلیدهای جهتی به نقطه ی دلخواه بروید و با فشردن کنید .pasteکپی شده را در خط بعد از نشانگر

خ]]ط را در داخ]]لn یک عدد می باشد ، با احتساب خط فعلی ، تعداد n با عنایت به اینکه ynyدستور •clipboard قرار می دهد تا در جای دلخواه آنرا paste. کنید

راه های ایجاد خط جدید را بزنید تا خط جدید ایجاد شود!Enter در پایان خط Insertبدیهی ترین راه اینست که در مد •

۱۵۲

•o تنها) o کوچک) : خطی جدید در زیر خط فعلی ایجاد می کند و به صورت اتوماتیک ب]]ه م]]د Insert

می رود و آماده ورود کاراکترها می شود .•O تنها) O بزرگ) : مانند oکوچک با این تفاوت که خطی جدید در بالی خط فعلی ایجاد م]]ی کن]]د و

می رود .Insertبه مد جستجو در داخل فایل

Esc را بزنید تا اطمینان حاصل کنید در مد Command. هستید •/search از محل قرار گیری : cursorبه سمت انتهای فایل به جستجوی عبارت وارد ش]]ده (در اینج]]ا

search ، می پردازد . در صورت یافتن موردی (cursor. به ابتدای عبارت ی]]افت ش]]ده منتق]]ل م]]ی ش]]ود جهت این جستجو از بال به پایین می باشد .

•? search از محل قرار گیری : cursorبه سمت ابتدای فایل به دنبال عبارت وارد شده می گ]]ردد و به ابتدای عبارت یافت شده منتقل م]]ی ش]]ود . جه]]تcursorمانند دستور قبلی در صورت یافتن موردی ،

این جستجو از پایین به بال می باشد .

مورد بعدی در جهتn استفاده کنید . N و n های کلیدبرای یافتن موارد بعدی در جستجوی انجام شده از مورد بعدی در خلف جهت جستجو را نشان می دهد .Nجستجو را نشان می دهد در حالیکه

یافتن تعداد کل خطوط فایل و شماره خط فعلیEsc را بزنید تا اطمینان حاصل کنید در مد Command. هستید

:= : تعداد کل خطوط فایل را نمایش می دهد .• در آن قرار گرفته را نمایش می دهد .cursor :-= : شماره خط فعلی که •

دندانه دادن و دندانه گرفتن خطوطEsc را بزنید تا اطمینان حاصل کنید در مد Command. هستید

خواندن فایل دیگر در فایل موجود و ذخیره سازی•: r filename محتوای فایل نام برده شده را در خط بعد از خط فعلی : cursor. اضافه می کند

۱۵۳

•: w filename مشابه دستور : save as مرسوم در برنامه ها می باشد . فایل موجود را با نام filename

ذخیره می کند . توجه کنید چنانچه قبل از اجرای این دستور فایلی که بر روی آن کار می کردید دارای نام بوده است ، شما همچنان در حال کار بر روی آن فایل باقی می مانید. در صورتی که فای]]ل دیگ]]ری ب]]ا ن]]ام

filename. وجود داشته باشد ذخیره سازی انجام نمی شود و برنامه خطا می دهد •: w! filename فایل موجود را تحت نام : filenameذخیره می کند . اگر فایل دیگری با این نام وجود

داشته باشد ، فایل موجود رونویسی می شود .•: w مشابه دستور : save. در برنامه ها می باشد . فایل باز شده را تحت همان نام قبلی ذخیره می کند •: i,jw filename با عنایت به این نکته که : i و jعددهایی حاوی شماره خط آغاز و شماره خط پایان

filenameمی باشد ، محتوای دو خط نام برده شده و خطوط مابین آن ه]]ا را در فای]]ل جدی]]دی تح]]ت ن]]ام

ذخیره می کند .

vi جدول کلیه دستورات ۷.۱۰

جدول زیر فشرده شده ی دستورات فوق می باشد .vi: کلیه دستورات ویرایشگر ۲۵جدول

دستورShell مد بعدی

/ command line VIتوضیحات

iInsert ورود به مدInsert کاراکترهای ورودی در نقطه فعلی . cursor. اضافه می شوند

aInsert ورود به مدInsert کاراکترهای ورودی بعد از . cursor. اضافه می شوند

IInsert ورود به مدInsert. کاراکترهای ورودی به ابتدای خط فعلی اضافه می شوند .

AInsert ورود به مدInsert کاراکترهای ورودی به انتهای خط فعلی . Append. می شوند

hCommand نشانگر یاcursor. را یک کاراکتر به سمت چپ می برد

jCommand نشانگر یا همانcursor. را یک خط پایین می برد

kCommand. نشانگر را یک خط به بال می برد

۱۵۴

دستورShell مد بعدی

/ command line VIتوضیحات

lCommand. نشانگر را یک کاراکتر یه سمت راست می برد

:wq Shell command

lineviذخیره فایل فعلی و خروج از

:x Shell command

lineviذخیره فایل فعلی و خروج از

:q / Command Shell

command line

خارج می شود . در غیرviدر صورتی که فایل از لحظه آخرین ذخیره تغییر نکرده باشد از این صورت پیغام خطا می دهد .

: !q Shell command

line خارج می شود ولو اینکه آخرین تغییرات ذخیره نشده باشد .viاز

wCommand. نشانگر را به ابتدای کلمه ی بعدی منتقل می کند

bCommand نشانگر یاcursor. را به ابتدای کلمه قبلی منتقل می کند

0Command نشانگر را به ابتدای خط فعلی می برد . مشابه کلیدHome.

$Command نشانگر یاcursor را به انتهای خط فعلی می برد . مشابه کلید End. عمل می کند

uCommand عملundo. را انجام می دهد

pCommand محتوایclipboard را در خط بعد از خط فعلی نشانگر paste. می کند

xCommand کاراکتر زیرcursor. را پاک می کند

nxCommand تعدادn کاراکتر از نقطه زیر cursorبه بعد را پاک می کند

<<Command) خط موجود را یکبار به سمت راست دندانهindent. می دهد (

>>Command) در صورت وجود دندانه در خط موجود یک دندانهindent. را حذف می کند (

oInsert به مدvi در آن قرار می گیرد و cursorیک خط بعد از خط فعلی ایجاد می کند و

Insert. می رود

OInsert به آن منتقل می شود و ادیتور در مدcursorیک خط در بالی خط فعلی ایجاد می کند و

Insert. آماده دریافت کاراکترهای ورودی می شود

rCommand کاراکتر زیرcursor را با کاراکتری که بعد از r. خواهد خواند جایگزین می کند

۱۵۵

دستورShell مد بعدی

/ command line VIتوضیحات

:0Command. نشانگر را به خط اول منتقل می کند

:nCommand نشانگر را به خطn. می برد

:$command. نشانگر را به خط آخر می برد

cwInsert در آن قرار گرفته است را پاک می کند و به مدcursorکلمه فعلی از نقطه ای که

Insert. می رود و آماده ورود کارکترهای جایگزین می شود

cnwInsert کلمه را پاک می کند و با ورود اتوماتیک به مدn قرار گرفته است cursorاز نقطه ای که

Insert. آماده دریافت کاراکترهای جدید می شود ،

ddCommand. خط فعلی را به طور کامل حذف می کند

dndCommand با احتساب خط فعلیn. خط را حذف می کند

DCommand کاراکترهای موجود در خط ، از نقطهcursor. به بعد را حذف می کند

CInsert Insert به بعد پاک می کند و به مد cursorکاراکترهای موجود در خط فعلی را از نقطه می رود تا کاراکترهای جایگزین را بخواند .

ccInsert می رود وInsertکل محتوای خط فعلی را پاک می کند و به طور اتوماتیک به مد

کاراکترهای ورودی را جایگزین کاراکترهای قبلی می کند .

cncInsert با احتساب خط فعلیn. خط را پاک می کند تا محتوای جدیدی را جایگزین نماید

dwCommand کلمه فعلی از نقطهcursor. به بعد را حذف می کند

dnwCommand تعدادn کلمه از نقطه فعلی cursor. به بعد را حذف می کند

yyCommand محتوای خط فعلی را در داخلclipboard. کپی می کند

ynyCommand با احتساب خط فعلی ، محتوایn خط در داخل clipboard. کپی می شود

/searchCommand به سمت پایین جستجو می کند . برای موردcursor را از نقطه فعلی searchلغت

را بزنید .N و برای مورد قبلی nبعدی

?searchCommand به سمت بال جستجو می کند . برای مورد بعدیcursor را از نقطه فعلی searchلغت

n و برای مورد قبلی N. را بزنید

:=Command. تعداد کل خط های فایل را می دهد

۱۵۶

دستورShell مد بعدی

/ command line VIتوضیحات

:-=Command. شماره خط فعلی را می دهد

: rfilenam

e

Command قرار میcursor را می خواند و آنرا در خط بعد از خط فعلی filenameمحتوای فایل

دهد .

: w

filenam

e

Command معادل save as فایل را تحت نام . filename. ذخیره می کند

:wCommand معادلsave. فایل را تحت نام فعلی ذخیره می کند .

, i jw

filenam

e

Command از خطi تا خط j فایل فعلی را در فایل filename. ذخیره می کند

: ! w

filenam

e

Command ذخیره می کند . اگر فایلی هم اکنون به آن نام وجودfilenameفایل فعلی را تحت نام

داشت آن را رونویسی می کند .

+CTRL fCommand معادل کلید page down. به اندازه یک صفحه به پایین پرش می کند .

+CTRL bCommand معادل page up. به اندازه یک صفحه به بال می رود .

+CTRL dCommand. به اندازه نیم صفحه به پایین پرش می کند

+CTRL uCommand. به اندازه نیم صفحه به بال پرش می کند

۱۵۷

منابع۸[1] Linux-101-Hacks (book)

[2] The-Linux-Command-Line (book)

[3] http://www.Falearn.ir

[4] ssh64.com

[5] http://www.die.net/

[6] http://linuxcommand.org/

[7] http://linuxreview.ir/

[8] http://en.wikipedia.org/wiki/Dd_(Unix)

[9] http://www.linuxquestions.org

[10] http://30li.ir/bash/commands

[11] http://how-to.linuxcareer.com/learning-linux-commands-dd

[12] http://www.libooks.ir/

[13] http://ashiyane.org/forums/

۱۵۸

ddجدول مرجع کامل دستورات

File systems Linux command syntax Linux command description

dd if=/dev/urandom of=/dev/sda bs=4k Fills the drive with random data

dd if=/dev/sda of=/dev/sdb bs=4096 Drive-to-drive duplication

dd if=/dev/zero of=/dev/sda bs=4k Clean up a hard drive (may need to be

repeated(dd if=inputfile of=/dev/st0 bs=32k conv=sync Copy from file to tape device

dd if=/dev/st0 of=outfile bs=32k conv=sync The above, reversed

dd if=/dev/sda | hexdump -C | grep [^00 [ Check if drive is really zeroed out

dd if=/dev/urandom of=/home/$user/hugefile\ bs=4096

Fills out a partition (careful with system partitions(!

ls -l myfile-rw-r--r-- 6703104 Oct 31 18:25 myfile

dd if=/dev/urandom of=myfile bs=6703104 count=1

Scramble a file (maybe before deleting it(

dd if=/dev/sda3 of=/dev/sdb3 bs=4096\ conv=notrunc,noerror

Copy a partition to another partition

dd if=/proc/filesystems | hexdump -C | less View available filesystems

dd if=/proc/partitions | hexdump -C | less View availble partitions in kb

dd if=/dev/sdb2 ibs=4096 | gzip > partition.image.gz\

conv=noerror

Creates a gzipped image of the second partition

of the second disk

dd bs=10240 cbs=80 conv=ascii,unblock\ if=/dev/st0 of=ascii.out

Copy the contents of a tape drive to a file, convertingfrom EBCDIC to ASCII

۱۵۹

File systems dd if=/dev/st0 ibs=1024 obs=2048 of=/dev/st1 Copy from 1KB block device to 2KB block

device

dd if=/dev/zero of=/dev/null bs=100M count=100۱۰۰+۰ records in

۱۰۰+۰ records out

۱۰۴۸۵۷۶۰۰۰۰ bytes (10 GB) copied,

۵.۶۲۹۵۵ s, 1.9 GB/s

Copy 10 GB of zeros to the garbage can.

dd if=/dev/zero of=/dev/sda bs=512 count=2fdisk -s /dev/sda

dd if=/dev/zero of=/dev/sda seek\=)number_of_sectors - 20) bs=1k

Erase GPT from disk. Since GPT writes data at the beginningAND at the end of the drive, after

erasing from the beginning, we need to find out

the number of sectors (second command), then erase the last 20 sectors.

dd if=/home/$user/bootimage.img of=/dev/sdc Create bootable USB drive (here shown as

/dev/sdc(

dd if=/dev/sda of=/dev/null bs=1m A good way to check for bad blocks

Backup and system-related

dd if=/dev/sda of=/dev/fd0 bs=512 count=1 Copies the MBR to a floppy

dd if=/dev/sda1 of=/dev/sdb1 bs=4096 Drive-to-drive duplication

dd if=/dev/sr0 of=/home/$user/mycdimage.iso\ bs=2048 conv=nosync

Create an image of a CD

mount -o loop /home/$user/mycdimage.iso\ Mount said image locally

۱۶۰

Backup and system-related

/ mnt/cdimages/dd if=/dev/sda of=/dev/sdb bs=64k conv=sync Useful when replacing a disk with another of

identical size

dd if=/dev/sda2 of=/home/$user/hddimage1.img\ bs=1M count=4430

dd if=/dev/sda2 of=/home/$user/hddimage2.img\ bs=1M count=8860

[...]

Create DVD images of a partition (useful for backing up(

dd if=/$location/hddimage1.img of=/dev/sda2\ bs=1M

dd if=/$location/hddimage2.img of=/dev/sda2\ seek=4430 bs=1M

dd if=/$location/hddimage3.img of=/dev/sda2\ seek=8860 bs=1M

]and so on[...

Restore from above backup

dd if=/dev/zero count=1 bs=1024 seek=1 of=/dev/sda6

Destroy the superblock

dd if=/dev/zero count=1 bs=4096 seek=0

of=/dev/sda5 Another way to destroy the superblock

dd if=/home/$user/suspicious.doc | clamscan- Check file for viruses (needs ClamAV(dd if=/home/$user/binary file | hexdump -C | less Look at the contents of a binary file (needs

hexdump(dd if=/home/$user/bigfile of=/dev/null

dd if=/dev/zero of=/home/$user/bigfile\ bs=1024 count=1000000

Benchmarks hard drive for read/write speed

dd if=/dev/sda of=/dev/sda Gives new life to older hard drives that haven't

been used for a while (disk must be unmounted(

dd if=/dev/mem | strings | grep 'string_to_search' Examine memory contents (human-readable,

۱۶۱

Backup and system-related

that is(

dd if=/dev/fd0 of=/home/$user/floppy.image\ bs=2x80x18b conv=notrunc

Copy a floppy disk

dd if=/proc/kcore | hexdump -C | less View virtual memory

dd if=/proc/filesystems | hexdump -C | less View available filesystems

dd if=/proc/kallsyms | hexdump -C | less View loaded modules

dd if=/proc/interrupts | hexdump -C | less View interrupt table

dd if=/proc/uptime | hexdump -C | less View uptime in seconds

dd if=/proc/partitions | hexdump -C | less View availble partitions in kb

dd if=/proc/meminfo | hexdump -C | less View memstats

dd if=/dev/urandom of=/home/$user/myrandom\ bs=100 count=1

Creates a 1kb file of random gibberish

dd if=/dev/mem of=/home/$user/mem.bin\ bs=1024

Creates an image of the actual state of your system memory

dd if=/home/$user/myfile Prints the file to stdout

dd if=/dev/sda2 bs=16065 | hexdump -C\ | grep 'text_to_search'

Search an entire partition for a string; even if

it's secured,you can boot a liveCD

dd if=/home/$user/file.bin skip=64k bs=1\ of=/home/$user/convfile.bin

Copy file.bin to convfile.bin skipping the first 64 kB

dd if=/home/$user/bootimage.img of=/dev/sdc Create bootable USB drive (here shown as

/dev/sdc(

dd if=/dev/mem bs=1k skip=768 count=256\ ۲/<dev/null | strings -n 8

Read BIOS.

۱۶۲

Backup and system-related

dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300k

Convert Nero image into ISO standard image. This is possible because the only difference between

the two is a 300 kB header Nero adds to a

standard ISO file.

echo -n "hello vertical world" | dd cbs=1\ conv=unblock 2> /dev/null

Try it, it's safe(-: .

dd if=/dev/sda1 | gzip -c | split -b 2000m\ - /mnt/hdc1/backup.img.gz

Create a gzipped image of a partition using split

cat /mnt/hdc1/backup.img.gz.* | gzip -dc\| dd of=/dev/sda1

Restore above backup

dd if=/dev/zero of=myimage bs=1024 count=10240

Create an empty disk image

dd ibs=10 skip=1

Strip first 10 bytes of stdin

dd bs=265b conv=noerror if=/dev/st0\ of=/tmp/bad.tape.image

Make image of a tape drive with bad spots

dd if=/dev/sda count=1 | hexdump -C

View your MBR

۱۶۳

Backup and system-related

dd if=/dev/sda | nc -l 10001 nc $system_to_backup_IP 10001 | dd\

of=sysbackupsda.img

Fast network backup using netcat

dd if=/dev/zero of=/dev/sdX\ bs=1024000 count=1

Clear first 10MB of the partition

dd if=/dev/zero of=tmpswap bs=1k\ count=1000000

chmod 600 tmpswapmkswap tmpswapswapon tmpswap

Create temporary swap space

dd if=/dev/sda of=/dev/null bs=1024k\ count=1024

۱۰۷۳۷۴۱۸۲۴ bytes (1.1 GB) copied ,۲۴.۱۶۸۴ s, 44.4 MB/s

Determine sequential I/O speed of your drive. Reading 1GB file

dd if=/dev/random count=1 2>/dev/null | od -t u1 \|

awk '{ print $2}' | head -1

Generate random number

dd if=/dev/mem of=myRAM bs=1024 Copy RAM memory to a file

dd if=/dev/sda bs=512 count=1 | od -xa See content of your MBR in hex and ASCII format

dd if=/my/old/mbr of=/dev/sda bs=446 count=1 Restore MBR without disturbing partition table

record which is between 447 - 511 bytes

dd if=/dev/sda1 | split -b 700m - sda1-image Create a partition copy and save images where maximumvolume size is 700MB

۱۶۴

Text manipulation

ls -l | dd conv=ucase Convert the output of a command to uppercase

echo "MY UPPER CASE TEXT" | dd conv=lcase Convert any text to lowercase

dd if=/etc/passwd cbs=132 conv=ebcdic of=/tmp/passwd.ebcdic

Convert the system password file to fixed-length EBCDIC-format file

dd if=text.ascii of=text.ebcdic conv=ebcdic Convert from ASCII to EBCDIC

dd if=myfile of=myfile conv=ucase Convert a file to uppercase (simple sed or tr

replacement(

خلصه دستورات در قالب يک تصوير

این تصویر به صورت جداگانه با کیفیت بال قابل دانلود می باشد

۱۶۵

۱۶۶