مقدمات لینوکس
از فارسیوب
فهرست مندرجات |
مقدمه
در طراحی سیستمعامل لینوکس از سیستمعامل یونیکس (Unix)، که در سال ۱۹۶۹طراحی شد، الهام گرفته شده است. نوشتن هستهٔ اصلی این سیستمعامل در سال ۱۹۹۱ میلادی توسط شخصی بنام لینوس توروالدز شروع شد و از آن پس توسط علاقهمندان دیگری بر روی اینترنت گسترش مییابد.
در سیستمعامل لینوکس تمامی کارها توسط خط فرمان (Command Line) قابل انجام است و هنگاهی که در محیط گرافیکی در حال کار هستیم، دستورات و درخواستهای ما ابتدا به دستورات خط فرمان تبدیل میشود و سپس اجرا میشود.
سیستم پروندهها و شاخهها
در لینوکس هر چیزی بصورت یک پرونده است. یعنی دیسکِ سخت شما و یا حتی سیدی و دوربین دیجیتال شما بصورت یک پرونده در سیستم پروندههای لینوکس قرار دارد. تمامی پروندهها و شاخهها (پوشهها) بصورت سلسلهمراتبی در زیرِ شاخهٔ / قرار دارند. بطور مثال /home/messi/persian.php آدرس پروندهای بنام persian.php است که در زیرشاخهٔ messi در شاخهٔ home قرار دارد.
شاخههای مهم سیستم پروندهای لینوکس عبارتند از:
- /bin
- /boot
- /dev
- /etc
- /home
- /lib
- /lost+found
- /media
- /mnt
- /opt
- /proc
- /root
- /sbin
- /sys
- /tmp
- /usr
- /var
اجازهها
هر پروندهای در لینوکس دارای مجوزهایی است که این مجوزها به افراد حق خواندن، نوشتن و یا حتی اجرا کردن پرونده را میدهند (و یا این حق را میگیرند) البته به استثنای کاربر ریشه (root) که در هر شرایطی به همه پروندههای سیستم دسترسی دارد. نحوه دسترسی به پروندهها در سه مجموعه مجوز تعیین میشود:
- مالک (u): برای مجموعه دسترسیها و مجوزهای صاحب پرونده استفاده میشود.
- گروه (g): برای مجموعه دسترسیها و مجوزهای گروهی که این پرونده به آن وابسته است استفاده میشود.
- دیگران (o): برای مجموعه دسترسیها و مجوزهای دیگر کاربران استفاده میشود.
برای هریک از سه مجموعه بالا، سه نوع اجازه مختلف وجود دارد که عبارتند از:
- خواندن (r): اجازه بازکردن و خواندن پرونده، و یا اجازه نمایش محتویات شاخه (پوشه).
- نوشتن (w): اجازه ویرایش و حذف پرونده، و یا اجازه ویرایش محتویات شاخه (پوشه).
- اجرا (x): اجازه اجرا کردن پرونده، و یا اجازه ورود به شاخه (پوشه).
مشاهده مالک، گروه و اجازههای یک پرونده
به پوشهای که پرونده مورد نظر در آن قرار دارد رفته، بر روی آن پرونده کلیک راست کرده و ویژگیها را انتخاب کنید. در قسمت اجازهها میتوانید مالک پرونده، گروه پرونده و اجازههای خواندن، نوشتن و اجرا را برای مالک، گروه و دیگران مشاهده کنید (و یا حتی در صورتیکه مجاز به این کار باشید، آنها را تغییر دهید).
تصویر پنجره مربوط به «ویژگیهای پرونده file1» | تصویر پنجره مربوط به «ویژگیهای پوشه myfiles» |
مشاهده مالک، گروه و اجازههای یک پرونده از طریق خط فرمان
ابتدا پایانه را اجرا کنید و سپس با اجرای دستورات زیر در خط فرمان، اطلاعات پرونده و یا پوشه مورد نظر را مشاهده کنید.
[messi@host ~]$ ll total 8 drwxrwxr-x 2 messi messi 4096 May 10 16:58 myfiles [messi@host ~]$ cd myfiles [messi@host myfiles]$ ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1
همانطور که در بالا مشاهده میکنید، برای شاخه myfiles مالک و گروه messi است و برای پرونده file1 مالک messi و گروه root است.
در سمت چپ خروجی برای پوشه و یا پرونده ۱۰ حرف وجود دارد که معنی آنها به ترتیب از چپ عبارتند از:
- حرف اول (---------*) نشانده پرونده یا پوشه بودن است. (d برای پوشه و - برای پرونده)
- سه حرف بعد (------***-) به ترتیب دسترسی خواندن، نوشتن و اجرا برای مالک است. (rwx برای اجازه و - در جای هر یک از حروف برای عدم اجازه آن مورد)
- سه حرف بعد (---***----) به ترتیب دسترسی خواندن، نوشتن و اجرا برای گروه است. (rwx برای اجازه و - در جای هر یک از حروف برای عدم اجازه آن مورد)
- سه حرف بعد (***-------) به ترتیب دسترسی خواندن، نوشتن و اجرا برای دیگران است. (rwx برای اجازه و - در جای هر یک از حروف برای عدم اجازه آن مورد)
در نتیجه کاربر messi به پوشه myfiles اجازه نمایش محتویات شاخه، ویرایش محتویات شاخه و ورود به شاخه را دارد. و برای پرونده file1 اجازه بازکردن، خواندن، ویرایش و حذف را دارد.
تغییر مالک و گروه یک پرونده
ابتدا با استفاده از su به عنوان کاربر ریشه (root) وارد شوید و سپس برای تغییر مالک از دستور chown به روش زیر استفاده کنید.
[messi@host ~]$ su Password: [root@host messi]# cd myfiles [root@host myfiles]# ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1 [root@host myfiles]# chown root file1 [root@host myfiles]# ll file1 -rw-rw-r-- 1 root root 24 May 10 16:49 file1
برای تغییر گروه یک پرونده مجددا با استفاده از su به عنوان کاربر ریشه (root) وارد شوید و سپس برای تغییر گروه از دستور chgrp به روش زیر استفاده کنید.
[messi@host ~]$ su Password: [root@host messi]# cd myfiles [root@host myfiles]# ll file1 -rw-rw-r-- 1 root root 24 May 10 16:49 file1 [root@host myfiles]# chgrp messi file1 [root@host myfiles]# ll file1 -rw-rw-r-- 1 root messi 24 May 10 16:49 file1
برای تغییر همزمان مالک و گروه یک پرونده مجددا با استفاده از su به عنوان کاربر ریشه (root) وارد شوید و سپس برای تغییر همزمان مالک و گروه از دستور chown به روش زیر استفاده کنید.
[messi@host ~]$ su Password: [root@host messi]# cd myfiles [root@host myfiles]# ll file1 -rw-rw-r-- 1 root messi 24 May 10 16:49 file1 [root@host myfiles]# chown messi:root file1 [root@host myfiles]# ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1
تغییر مجوز دسترسی
برای تغییر مجوز دسترسی به یک پرونده (یا پوشه) میتوانید به روش زیر عمل کنید:
[messi@host ~]$ cd myfiles [messi@host myfiles]$ ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod a=rwx file1 [messi@host myfiles]$ ll file1 -rwxrwxrwx 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod o=r file1 [messi@host myfiles]$ ll file1 -rwxrwxr-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod ug-wx file1 [messi@host myfiles]$ ll file1 -r--r--r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod u+w file1 [messi@host myfiles]$ ll file1 -rw-r--r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod g=rw file1 [messi@host myfiles]$ ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1
همانطور که در بالا مشاهده شد a بیانگر همه (مالک، گروه و دیگران)، o و g و u معادل دیگران، گروه و مالک است. همچنین rwx هم نشان دهنده خواندن، نوشتن و اجرا است.
علاوه بر روش فوق میتوان با استفاده از اعداد هم این کار را انجام داد.
[messi@host ~]$ cd myfiles [messi@host myfiles]$ ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod 777 file1 [messi@host myfiles]$ ll file1 -rwxrwxrwx 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod 774 file1 [messi@host myfiles]$ ll file1 -rwxrwxr-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod 444 file1 [messi@host myfiles]$ ll file1 -r--r--r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod 644 file1 [messi@host myfiles]$ ll file1 -rw-r--r-- 1 messi root 24 May 10 16:49 file1 [messi@host myfiles]$ chmod 664 file1 [messi@host myfiles]$ ll file1 -rw-rw-r-- 1 messi root 24 May 10 16:49 file1
توجه داشته باشید که خواندنمعادل عددی ۴، نوشتن معادل عددی ۲ و اجرا معادل عددی ۱ دارد. به این معنی که اجازه خواندن و نوشتن (بدون اجازه اجرا) برابر ۶ است. کافی است که این اجازه را برای کاربر،گروه و دیگران محاسبه کنید و از ترکیب این سه عدد، معادل عددی مربوط به آن را بدست آورید. بطور مثال ۷۳۴ بیانگر اجازه خواندن، نوشتن و اجرا برای مالک، نوشتن و اجرا برای گروه و خواندن برای دیگران است.
اطلاعات بیشتر
برای اطلاعات بیشتر دربارهی هرکدام از دستورات بالا و یا مفاهیم مربوط به دسترسیها میتوانید از راهنمای آنها در سیستم استفاده کنید. برای این کار دستورات زیر را در خط فرمان (پایانه) اجرا کنید.
man chmod man chown man chgrp info chmod info chown info chgrp
کاربر ریشه (root)
در لینوکس، کاربر ریشه (که به آن root هم میگویند) کاربری است با دسترسی مدیریتی (دسترسی کامل) به سیستم و معمولاً دیگر کاربران چنین دسترسی ندارند. این کاربر مانند کاربر Administrator در ویندوز و یا Supervisor در ناول است.
توجه داشته باشید که بطور معمول اکیدا توصیه میشود که برای کارهای عادی خود از کاربری غیر از کاربر ریشه استفاده کنید. ورود به سیستم با کاربر ریشه میتواند موجب افزایش بسیار زیاد خطر نفوذ به سیستم و یا امکان بروز اشکالات غیر قابل جبران به دلیل اشتباهات شما در کار با سیستم شود. بنابراین:
هیچگاه با کاربر ریشه وارد سیستم نشوید. برای دسترسی به اختیارات کاربر ریشه از روشهای زیر استفاده کنید
درصورتیکه برنامه یا دستوری را اجرا کنید که نیاز به اختیارات مدیریتی داشته باشد، پنجرهای باز میشود و گذرواژه root را از شما میپرسد. بطور مثال میتوانید رومیزی --> تنظیمات سیستم --> شبکه را اجرا کنید (و یا در خط فرمان دستور system-config-network را اجرا کنید).
اگر بخواهید در پایانه دارای اختیارات مدیریتی باشید، میتوانید از دستور «su -» (برای اینکه به عنوان کاربر ریشه در خط فرمان وارد شوید و دستورات را اجرا کنید) و یا «sudo» (برای آنکه فقط یک دستور را با اختیارات کاربر ریشه اجرا کنید) استفاده کنید.
پایانه (Terminal)
خط فرمان لینوکس محیط بسیار غنی و سریعی را برای انجام امور مربوط به مدیریت سیستم برای شما فراهم میکند. برای آنکه بهتر و سریعتر بتوانید با سیستمعامل لینوکس کار کنید بهتر است تا با این محیط آشنا شوید.
همانطور که گفته شد، تمامی کارها در لینوکس در خط فرمان قابل اجرا است. برای آنکه شما دستوری را در خط فرمان اجرا کنید، لازم است که پایانه را اجرا کنید. برای اجرای پایانه میتوانید در هر قسمت خالی صفحه (پسزمینه) کلیک راست کنید و گزینه باز کردن پایانه را انتخاب کنید و یا از طریق نوار منوی بالای صفحه برنامهها --> ابزارهای سیستم --> پایانه آن را اجرا کنید.
دستورات متعارف در خط فرمان
- نمایش لیست پروندهها و پوشهها:
ls
- نمایش لیست پروندهها و پوشهها به همراه اطلاعات تکمیلی (مانند تاریخ، حجم، مجوزهای دسترسی، مالک و گروه).
ls -l (و یا ll)
- ساختن پوشه.
mkdir directoryname
- تغییر شاخهای که در آن هستید.
cd directoryname
- نسخهبرداری از پرونده (پروندهها).
cp source destination
- نسخهبرداری بطور بازگشتی (نسخهبرداری از پوشه و پروندههای درون آن).
cp -r source destination
- حذف پرونده (پروندهها).
rm filename(s)
- حذف بطور بازگشتی (حذف پوشه و پروندههای درون آن).
rm -r directory
- جابجایی پرونده (پوشه).
mv source destination
- پیدا کردن یک پرونده (و یا پوشه).
locate filename
- بههنگامسازی فهرستی که دستور locate برای پیدا کردن پرونده (و یا پوشه) از آن استفاده میکند. برای اجرای این دستور به اختیارات مدیریتی نیاز است.
updatedb
- نمایش صفحهٔ راهنمای دستور مربوطه.
man commandname
- نمایش محتویات پرونده (پروندهها).
cat filename(s)
پیشانه (Console)
روش معمول برای اجرای دستورات خط فرمان استفاده از پایانه (Terminal) است. اما در بعضی از مواقع لازم میشود که از پیشانه (Console) استفاده کنید. برای این منظور دگرساز، مهار و F1 را فشار دهید (Ctrl-Alt-F1) تا به پیشانه اول بروید. شش پیشانه وجود دارد که برای دسترسی به آنها از F1 تا F6 به همراه دگرساز و مهار (Ctrl-Alt-F1 تا Ctrl-Alt-F6) استفاده کنید.
برای بازگشت به محیط گرافیکی رومیزی از دگرساز، مهار و F7 استفاده کنید. (Ctrl-Alt-F7)
ویرایش متن
تمامی پیکربندی و تنظیمات لینوکس بصورت پروندههای متنی ذخیره میشوند ولی با وجود برنامههای گرافیکی موجود، نیازی به ویرایش آنها بصورت دستی نیست. با این وجود در صورتیکه نیاز به ویرایش یک پرونده متنی داشتید میتوانید از ویرایشگر متن جیادیت استفاده کنید. برای اجرای آن میتوانید از طریق نوار منوی بالای صفحه برنامهها --> لوازم --> ویرایشگر متن آن را اجرا کنید و یا در خط فرمان دستور gedit را اجرا کنید. البته توجه کنید که معمولا برای تغییر در پروندههای پیکربندی سیستم به دسترسی کاربر ریشه نیاز دارید. بنابراین برای استفاده از gedit برای تغییر این پروندهها میتوانید در پایانه با دستور su به حالت کاربر ریشه بروید و سپس دستور زیر را وارد کنید:
gedit <config-file>
برای مثال برای تغییر در پروندهی مربوط به تنظیمات کارت گرافیکی و صفحهی نمایش از دستور زیر استفاده کنید:
gedit /etc/X11/xorg.conf
و یا برای تغییر در پروندهی مربوط به افرازهای سیستم و محل بارگزاری آنها از دستور زیر استفاده کنید:
gedit /etc/fstab
در صورتیکه در خط فرمان به یک ویرایشگر متن نیاز داشتید، میتوانید از برنامههایی چون nano و vi (یا vim) و joe استفاده کنید. (برای اطلاعات بیشتر در مورد nano و vim و joe به سایتهای http://www.nano-editor.org و http://www.vim.org و http://joe-editor.sourceforge.net و یا صفحهٔ راهنمای مربوط به آن دستور - Man Page - مراجعه کنید.)
