سایر طرحبندی های سیستم فایل

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

layout.jpg

شکل فوق طرحبندی سیستم ردهت رانشان می دهد.این طرحبندی بسته به مدیر سیستم و وظیفه ماشین یونیکس، ممکن است تغییر کند. و یا دایرکتوری ها ممکن است کم یا زیاد شوند.اسامی نیز لزوما مانند فوق نیستند،و تنها قراردادی هستند.
درخت سیستم فایل از /(سلش) اغاز می شود.این دایرکتوری تمام زیر دایرکتوری ها و فایل ها را شامل می شود و دایرکتوری ریشه یا به اختصار ریشه سیستم فایل نامیده می شود.
معمولا قبل از دایرکتوری هایی که تنها یک سطح پایین تر از ریشه اند، یک سلش قرار میگیرد تا مکانشان مشخص شود و مانع اشتباه گرفته شدن انها با سایر دایرکتوری ها با اسامی مشابه گردد. همیشه خوب است زمان شروع با یک سیستم جدید، نگاهی به دایرکتوری ریشه بیندازیم:
زیر دایرکتوری های ریشه را در زیر مشاهده می کنید.

/binبرنامه های عمومی که توسط سیستم توزیع شده اند،مدیر سیستم و کاربران.
/bootفایل های راه اندازی و هسته،vmlinuz.و همچنین داده هایGRUB
(GR and Unified Boot Loader).GRUB تلاشی است برای رهایی از راه انداز_بارکننده هایی که امروزه میشناسیم.
/devشامل مراجعاتی به کلیه سخت افزار های فرعی CPU،که به صورت فایل هایی با خصوصیات ویژه ارائه می شوند.
/etcمهمترین فایل های پیکربندی سیستم در این دایرکتوری قرار دارند.داده های این دایرکتوری مشابه با داده های موجود در control panel ویندوز می باشد.
/homeدایرکتوری های home کاربران معمولی.
/initrd(در برخی توزیع ها)اطلاعات برای راه اندازی.این دایرکتوری را پاک نکنید!
/libفایل های کتابخانه ای، شامل فایل های کلیه برنامه هایی که مورد نیاز کاربران و سیستم است.
/lost+foundهمه پارتیشن ها lost_found را در دایرکتوری بالاتر خود دارند.فایل هایی که در حین خرابی ذخیره می شوند، در این محل هستند.
/miscبرای اهداف متفرقه.(miscellaneous)
/mntنقطه اتصال استاندارد (mount point) فایل های خارجی سیستم.برای مثال CD_ROM یا دوربین دیجیتال.
/netبرای قرارگرفتن کلیه فایلهایی که روی سایر کامپیوتر ها در شبکه قرار دارند.
/optنوعا شامل نرم افزار های شخص ثالث (منظور نرم افزارهای تولید شده توسط سایر شرکتهاست.) می باشد.
/procیک سیستم فایل مجازی است که شامل اطلاعاتی راجع به منابع سیستم می باشد.اطلاعات بیشتر راجع به مفهوم فایل ها درproc با وارد کردن دستور man proc به دست می اید.فایل proc.txt سیستم فایل مجازی را با جزئیات بیشتر مطرح می کند.
/rootدایرکتوریhome کاربر مدیر.به تفاوت بین /،دایرکتوری ریشه و /root ، دایرکتوری خانه کاربر ریشه توجه داشته باشید.
/sbinبرنامه های مورد استفاده سیستم و مدیر سیستم.
/tmpفضایی موقت برای استفاده توسط سیستم که پس از راه اندازی مجدد پاک می شود پس از ان برای ذخیره هیچ کاری استفاده نکنید.
/usrبرنامه ها،کتابخانه ها،مستندات و غیره.برای تمامی برنامه های مربوط به کاربران.
/varمخزنی برای تمامی فایل های متغیر و موقت ایجاد شده توسط کاربر.مانند فایل هایی که از اینترنت download شده اند و یا برای نگهداری image از یک CD قبل از رایت شدن ان.

چگونه متوجه می شوید که یک دایرکتوری به کدام پارتیشن تعلق دارد؟
استفاده از دستور df با نقطه (.) به عنوان انتخاب نشان می دهد که دایرکتوری جاری به کدام پارتیشن متعق است و در مورد مقدار فضایی که پارتیشن استفاده می کند اطلاع می دهد.
Sandra:/lib> df –h .
Filesystem size Used Avail Use% Mounted on
/dev/hda7 980M 163M 767M 18% /
به عنوان یک اصل کلی،هر دایرکتوری در زیر دایرکتوری ریشه، در پارتیشن ریشه قرار دارد،مگر اینکه در یک لیست کامل df یک ورودی مجزا داشته باشد.
اصل سیستم فایل
برای بسیاری از کاربران و برای بسیاری از اعمال مدیریت سیستم،کافیست بپذیرند که فایل ها و دایرکتوری ها در یک ساختار درخت مانند مرتب شده اند.اگرچه کامپیوتر چیزی در مورد درخت ها و یا ساختار های درختی نمی داند.
هر پارتیشن، سیستم فایل خاص خودش را دارد.با در نظر گرفتن کلیه سیستم های فایل با هم،می توانیم نظریه ساختار درختی کل سیستم را شکل دهیم، اما کار به همین سادگی هم نیست.در سیستم فایل هر فایل با یک inode نشان داده می شود، که نوعی شماره سریال است که شامل اطلاعاتی راجع به داده های واقعیی است که فایل را ایجاد کرده اند:فایل به چه کسی متعلق است، و در کجای هارد دیسک قرار دارد.
هر پارتیشن مجموعه inode های خودش را دارد.در سیستمی با پارتیشن های متعدد،فایل هایی با شماره inode های یکسان وجود دارند.
هر inode یک ساختار داده را بر روی هارد دیسک شرح می دهد،که ویژگی های فایل را ذخیره کرده،و شامل محل فیزیکی داده های فایل می باشد.زمانی که هارد دیسک برای پذیرفتن منبع داده ها مقدار دهی اولیه می شود،معمولا در حین فرایند نصب سیستم اولیه یا هنگام افزودن دیسک های اضافی به سیستم موجود،تعداد ثابتی از enode ها در پارتیشن ایجاد می شوند.این تعداد بیشترین مقدار فایل ها از هر نوعی(از جمله دایرکتوری ها،فایل های خاص،پیوند ها و...) که می توانند در یک زمان روی پارتیشن باشند، خواهد بود.ما نوعا روی داشتن 1 inode در فضایی بین 2 تا 8 کیلوبایت فضا حساب می کنیم.
زمانی که فایل جدیدی ایجاد شد،یک inode ازاد را اختیار می کند.در این inode اطلاعات زیر موجود
می باشد:
صاحب (owner)و گروه دارنده فایل.
نوع فایل(نرمال،دایرکتوری و...).
اجازه دسترسی به فایل.
تاریخ و ساعت ایجاد،اخرین خواندن و تغییر.
تاریخ و ساعتی که این اطلاعات در inode تغییر کرده اند.
تعداد پیوند ها به این فایل.
اندازه فایل.
ادرسی که محل واقعی داده های فایل را تعریف می کند.

تنها اطلاعاتی که inode شامل ان نمی شود،نام فایل و دایرکتوری می باشد.این اطلاعات در داخل دایرکتوری های خاص فایل ذخیره می شوند.با مقایسه اسامی فایل ها و شماره های inode ها،سیستم قادر به ایجاد ساختار درختی است که کاربر آن را درک می کند.کاربران می توانند شماره inode ها را با استفاده از گزینه –i در دستور ls نمایش دهند.inode ها فضای مجزای مختص خودشان را بر روی دیسک دارند.
آشنایی با سیستم فایل
مسیر
زمانی که شما از سیستم می خواهید که دستوری را اجرا کند،معمولا مجبور نیستید که مسیر کامل ان دستور را بدهید.به عنوان مثال، ما می دانیم که دستور ls در دایرکتوری /bin قرار دارد،اما برای اینکه کامپیوتر محتوای دایرکتوری جاری را لیست کند،نیاز نیست که فرمان /bin/ls را وارد کنیم.
متغیر محیطی PATH از این ویژگی حمایت می کند.این متغیر دایرکتوری هایی در سیستم را که فایل های اجرایی در ان جا پیدا می شوند،فهرست می کند.وبنابراین از بسیاری از انواع و مکانهای حفاظت شده دستورات کاربر نگهداری می کند.پس مسیر به طور طبیعی شامل دایرکتوری های بسیاری است که هر یک مکانی از اسمشان شاملbin می باشند،همانگونه که در ادامه نشان داده شده است.فرمانecho برای نشان دادن محتوای (یا $) متغیرpath استفاده شده است:

Rogier:> echo $PATH
/opt/local/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin/:/bin

در این مثال دایرکتوری های /opt/local/bin،/usr/X11R6/bin،/usr/bin،/usr/sbinو/bin متعاقبا برای برنامه مورد نیاز جستجو می شوند.به محض پیدا شدن، جستجو متوقف می شود حتی اگر جستجو در همه دایرکتوری های مسیر صورت نگرفته باشد.این حالت می تواند منجر به وضعیت غریبی شود.در اولین مثال زیر کاربر می داند که برنامه ای به نام sendsms برای فرستادن SMS وجود دارد و کاربر دیگری روی همان سیستم قادر است از ان استفاده کند،اما نمی تواند.تفاوت در پیکر بندی متغیر PATH است:
[jenny@blob jenny]$ sendsms
bash:sendsms: command not found
[jenny@blob jenny]$ echo $PATH
/bin:/usr/bin:/usr/bin/x11:/usr/X11R6/bin:/home/jenny/bin
[jenny@blob jenny]$ su – tony
Password:
Tony:~>which sendsms
Sendsms is /user/local/bin/sendsms

Tony:~echo $PATH
/home/tony/bin.Linux:/home/tony/bin:/usr/local/bin:/usr/local/sbin:
/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin

توجه کنید که استفاده ازابزار su (switch user) به شما این امکان را می دهد که در شرایطی که کلمه عبور کاربری را می دانید،پوسته(shell) (در مورد shell در قسمت های اینده توضیح خواهیم داد.)را در محیط ان کاربر اجرا کنید.
نشان دهنده ادامه خط است، بدون اینکهenter یک خط را از بقیه جدا کند.
در مثال بعد،کاربر مایل است با فراخوان دستور wc (word count) تعداد خطوط یک فایل را بررسی کند،اما هیچ اتفاقی رخ نمی دهد و مجبور می شود که این عمل را با استفاده از کلید های ترکیبی CTRL+C متوقف کند:
Jumper:~> wc –l test
(ctrl-c)
Jumper:~> which wc
wc is hashed (/home/jumper/bin/wc)

jumber:~> echo $PATH
/home/jumper/bin:/usr/local/bin:/usr/local/sbin:/usr/x11R6/bin:
/usr/bin:/usr/sbin:/bin:/sbin
استفاده از فرمان wich به ما نشان می دهد که این کاربر در دایرکتوریhome خود یک دایرکتوری bin دارد که شامل برنامه ایست که ws را فراخوانی کرده است.از انجاییکه هنگام جستجوی مسیرها برای فراخوانیwc ،ابتدا برنامه در دایرکتوری home کابر پیدا شده است،این برنامه اجرا شده است،احتمالا با ورودی متوجه نمی شود، پس مجبوریم ان را متوقف کنیم.برای حل این مسئله راه های بسیاری هست(همیشه برای حل مسائل در لینوکس یا یونیکس راه های بسیاری وجود دارد):یک پاسخ میتواند نامگذاری مجدد برنامه ws کاربر باشد، و یا کاربر می تواند مسیر کامل را به فرمانی که قصد اجرای انرا دارد، بدهد که می تواند با استفاده از –a به دستورwich به دست اید:
Jumper:~> /usr/bin/wc –l test
10 test
اگر کاربر بیشتر از برنامه هایی در دیگر دایرکتوری ها استفاده می کند،می تواند مسیرش را تغییر دهد تا دایرکتوری های خویش را ببیند:
Jumper:~> export PATH=/usr/local/bin:/usr/local/sbin:/usr/x11R6/bin:
/usr/bin:/usr/sbin:/bin:/sbin:/home/jumper/bin

تغییرات ثابت نیستند!
توجه داشته باشید که زمانی که از دستور export در پوسته(shell) استفاده می کنید،تغییرات موقتی هستند و تنها در همان زمان معتبر هستند(تا زمانی که log out می کنید).
مسیرهای مطلق و نسبی
مسیر، یعنی راهی که احتیاج دارید انرا در ساختار درختی دنبال کنید تا به فایل داده شده برسید،می تواند به عنوان اغاز تنه درخت( / یا دایرکتوری ریشه) توصیف شود.در این حالت مسیر با / اغاز شده و مسیر مطلق نامیده می شود،چرا که امکان هیچ گونه خطایی وجود ندارد: تنها یک فایل در سیستم می تواند یافت شود.
در حالتی دیگر، مسیر با / اغاز نمی شود و امکان اشتباه گرفتن ~/BIN/WC (در دایرکتوری home کاربر)باbin/wc در /usr از مثال قبل وجود دارد.مسیر هایی که با / اغاز نمی شوند همواره نسبی هستند.
در مسیر های نسبی ما همچنین از علامات .(نقطه) و ..(2 نقطه) برای دایرکتوری جاری و دایرکتوری والد استفاده می کنیم.مجموعه ای از مثال های عملی:
• زمانی که قصد ترجمه کد مبدا را دارید،معمولا مستندات نصب همزمان که از اجرای برنامه پیکربندی دیگری در محل دیگری از سیستم ممانعت می کند، شما را راهنمایی می کند تا فرمان ./configure را اجرا کنید،که برنامه پیکربندی را که در دایرکتوری جاری قرار دارد اجرا کند.
• در فایل های HTML مسیر های نسبی معمولا برای ساختن مجموعه ای از صفحات که به اسانی قابل انتقال به مکانی دیگر باشند مورد استفاده قرار می گیرند:
• یکبار دیگر به تفاوت توجه کنید:
Theo:~> ls/mp3
Is: /mp3: no such file or directory
Theo :~>s mp3/
Oriental/ pop/ sixties/

کاربرد های Linux


از Red Hat Linux می توان به عنوان یک ابزار میز کار، یک سرور شبکه و دروازه اینترنت، یک دیواره اتشین (Firewall)، پایگاه یک سیستم از پیش تعبیه شده (مانند یک VCR هوشمند یا یک ربات) و یا حتی به صورت یک سوپر کامپیوتر چند پردازنده ای استفاده کرد.
ابزار های پر مصرف میز کار : در Red Hat نرم افزار های دیگر مانند مجموعه برنامه های OpenOffice برای سهولت کار کاربران قرار داده شده است. مجموعه برنامه های OpenOffice شامل یک واژه پرداز کامل، صفحه های گسترده، برنامه نمایش محتویات، یک برنامه رسم گرافیک و ابزارهای ساخت صفحات وب می باشد. با نصب Red Hat Linux، مجموعه OpenOffice نصب شده و نشانه های مربوط به برنامه های ان برای سهولت دستیابی به انها در نوار منو قرار داده می شوند.
مطالب مربوط به چند رسانه ای ها: Red Hat Linux برای استفاده شما ابزار های متعدد چند رسانه ای را در یک بسته قرار داده است. به کمک این بسته می توان موسیقی پخش کرده و به منابع چند رسانه ای مانند ایستگاه های رادیو یی در اینترنت گوش داد.در لینوکس میتوان عکس و دیگر اقلام را از دوربین و دستگاه پخش MP3 به کامپیوتر منتقل کرد.
خدمات شبکه ای: Red Hat Linux به عنوان سرور مبتنی بر شبکه نیز به کار می رود.محبوبیت اولیه Linux مدیون ارائه خدمات وب و اشتراک گذاری پرونده ها و چاپگر به طور کامل است.

Redhat

استفاده از ابزارها و خدمات شبکه ای
سرور وب Apache: بیشتر سرورهای وب در اینترنت، توسط سرور وب Open Source Apache اداره
می شوند. شما می توانید یک سرور وب ساده را با نصب نرم افزار Apache دایر کنید.
OpenSSH : نسخه منبع ازاد secure Shell امکان برقراری یک ارتباط امن در اینترنت را فراهم می سازد. secure Shell به مراتب امن تر از telnet می باشد. تحت OpenSSH می توانید بدون اینکه فرد دیگری قادر به شنیدن مکالمات شما باشد با دیگران ارتباط برقرار کنید.
VPN (Virtual Private Network) : VPN ارتباطات در یک شبکه نا امن، مثل اینترنت را در ساخت شبکه های شخصی، رمز نویسی می کند. وجود بسته های نرم افزار Red Hat Linux و ابزار های ان برای برقراری یک ارتباط امن بین دو کامپیوتر یا شبکه های خصوصی در اینترنت لازم می باشد.
دیواره های اتشین (Firewalls): برای دور نگه داشتن نفوذ گران، Red Hat Linux با ارائه ابزار های حفاظتی به شما امکان می هد تا بتوانید یک دیواره اتشین برای سیستم خود بسازید.از لحاظ اعمال این دیواره اتشین، Red Hat Linux از انعطاف پذیری کاملی بر خوردار است.
موارد فوق نمونه ای از کارهایی است که می توانید تحت Red Hat Linux انجام دهید.
در قسمتهای بعدی بیشتر با این سیستم عامل اشنا خواهیم شد.
References:
1.Linux RedHat 9
Authors: Jon Hall & Paul Sery
2.Linux for windows NT/2000 Administrators
Authors: Mark Minasi with Dan York & Craig Hunt
3. http://www.kitex.ir/ict/weblog.asp
4.http://offline.roshd.ir

March 03, 2004

چگونه MAC آدرس را تغییر دهیم - change MAC address - لینوکس

MAC آدرس نشانه شناسایی یکتا برای رابط های شبکه می باشد.این امکان وجود دارد تا شما این آدرس را به صورت موقت (و امکان دارد با دسترسی به EEPROM به صورت دائم) تغییر دهید .

برای تغییر دادن MAC آدرس در لینوکس می توانید از امکاناتی که ifconfig در اختیار شما قرار می دهد استفاده کنید.
توضیح : به جز استفاده از این روش می توان از ابزاری به نام
MAC Changer که برای محیط های GNU توسعه داده شده است استفاده کرد/.بعد از این که ازش جواب گرفتم در باره اون هم مینویسم/

نحوه کار به این صورت می باشد :


# /sbin/ifconfig eth0 down
# /sbin/ifconfig eth0 hw ether 00:00:00:00:00:00
# /sbin/ifconfig eth0 up


شما باید 00:00:00:00:00:00 را با آدرس دلخواه خود عوض کنید.همان طور که می دانید این قالب باید در حالت HEX باشد.در ضمن برای جلوگیری از هر گونه مشکل آدرسی که شما نسبت می دهید باید مجاز باشد.همچنین باید توجه داشته باشید آدرسی که نسبت می دهید یکتا باشد،در غیر این صورت در شبکه ای که سیستم شما در آن قرار دارد مشکلات زیادی را ایجاد خواهید کرد.
علاوه بر این آدرسی که انتخاب می کنید نباید از نوع Multicast Addresses باشد،برای دیدن یک لیست از آدرس های Multicast Addresses
اینجا را ببنید.


http://www.iana.org/assignments/ethernet-numbers


این تغییرات موقت خواهد بود و هر بار که سیستم شما دوباره راه اندازی شود اطلاعات اصلی جایگزین MAC آدرس مجازی شما می شوید.برای رفع این مشکل می توانید هر بار که سیستم بوت شد این دستورات را انجام دهید.برای این کار می توانید از /etc/rc.local استفاده کنید.کافی است این دستورات را بعد از لود شدن سایر سرویس ها قرار دهید.