ניהול בסיסי של מערכות לינוקס

מבוא

לינוקס היא מערכת הפעלה התומכת בריבוי משתמשים ומשימות, כלומר מספר רב של משתמשים יכולים לעשות שימוש באותו מחשב בעת ובעונה אחת. למען שמירת הסדר במערכת, והבטחת עבודתה התקינה, מרבית המשתמשים מוגבלים לטיפול בקובציהם בלבד, והמערכת מונעת מהם ביצוע שינויים ופעולות אשר עלולים להשפיע על משתמשים אחרים. יחד עם זאת, מפעם לפעם יש צורך לבצע שינויים כאלה (לדוגמה, התקנת תכנה או חומרה חדשים, או לצורך תחזוקה של המערכת). על מנת לבצע פעולות שכאלה, במערכת לינוקס קיים חשבון מיוחד, ששמו root (משתמש השורש), והוא החשבון היחיד המסוגל לבצע פעולות שכאלה.

יחד עם זאת, שימוש בחשבון זה טומן בחובו סיכון מסוים - ניתן בעזרת הקשות שגויות ספורות למחוק את כל תכולת המחשב. על כן, מומלץ להימנע ככל הניתן משימוש בחשבון זה, ולהשתמש בו, בזהירות רבה, רק כאשר הדבר הכרחי.

ובכן, איפה מתחילים?

ראשית, נלמד כיצד להפוך את עצמנו למשתמש השורש, כך שנוכל לבצע פעולות תחזוקה. לשם כך, נפתח, כמשתמש רגיל, מסוף, ונקליד בו את הפקודה su (קיצור ל-"Switch User" או "Super User"). כעת אנו נדרשים להקליד את ססמת משתמש השורש, אותה קבענו במנהל ההתקנה הראשונית.

[alon@localhost alon]$ su
Password:
[root@localhost alon]#

שימו לב לסימן הסולמית (#), שבד"כ מסמן חשבון של משתמש שורש.

הגדרות כלליות

מרבית ההפצות כוללות כלי קונפיגורציה גרפיים לסיוע בביצוע משימות ניהול נפוצות. במערכת מנדריבה (עליה גם מבוססת "אחד") קיים מרכז הבקרה אשר מאפשר לבצע פעולות ניהול מערכת רבות, כגון הגדרת חומרה, אפשור שליטה גרפית מרחוק. מומלץ מאד לנסות להשתמש בכל הקונפיגורציה לפני שכותבים פקודות מורכבות בשורת הפקודה.

חיבור לאינטרנט

בהנחה שהחומרה שאתם משתמשים בה מזוהה על ידי ההפצה, חיבור לאינטרנט בלינוקס הוא פעולה קלה. במקרה זה, חיבור לאינטרנט הנו פשוט כמו לעקוב אחר המסכים של תכנת ההתקנה או במרכז הבקרה. 

הבעיה היא במקרה של חומרה בעייתית שאינה נתמכת כראוי, וסומכת על התכנה לבצע את כל החיבור. שימו לב שחומרה כזו היא בדרך כלל פחות אמינה ואם תחליפו אותה תשפרו ביצועים בצורה נמדדת. דוגמה לחומרה כזו הם מודמי ADSL המתחברים באמצעות USB ובראשם מדומים מסוג ALE. המלצתי למי שיש ברשותו מודם כזה בהשאלה מבזק היא לגשת לחנות בזקסטור הקרובה ולבקש להחליף את המודם למודם רשת בטענה שאין לכם חיבור USB במחשב. אם אין לכם כרטיס רשת במחשב יש לרכוש בנוסף כרטיס רשת פשוט בכ- 30 ש"ח.

אם בכל זאת אתם מעדיפים להשתמש במודם USB ניתן להתקין את הדרייברים מאתר זה. את ההתקנה יש לבצע מקוד מקור והיא אינה מומלצת למשתמשים מתחילים. עם זאת, אני מקווה שבסיום הרצאה זו יהיו בידיכם את הכלים הדרושים להתקין את הדרייבר.

התקנת תכנות

בעולם הלינוקס, ניתן להתקין תכנות בארבע דרכים (בסדר יורד של עדיפות):

מנהל חבילות

מנהל החבילות שלכם (במנדריבה - urpmi) מאפשר להתקין תכנות באופן גרפי ופשוט ישירות מתוך שולחן העבודה. המערכת יודעת לטפל באופן אוטומטי בתלויות (dependencies) בין חבילות ולהתקין את כל החבילות הנדרשות על ידי חבילה מסוימת שבחרתם להתקין.

התקנת תכנות

כדי לאפשר את מנהל החבילות יש צורך בתקליטורי התקנה או בחיבור לרשת. להגדרת התקנה מהרשת עבור מנדריבה (ו"אחד לינוקס") יש להקיש מספר פקודות בשורת הפקודה בתור root. את הפקודות האלה ניתן להשיג באמצעות Easy URPMI ו- אתר המראה של עמותת "המקור", או להשתמש בפקודות שרשומות כאן. קיים גם ממשק גרפי להגדרת המקורות.

urpmi.addmedia plf-free ftp://plf.time4t.net/pub/plf/mandrake/free/2006.0 with hdlist.cz
urpmi.addmedia plf-nonfree ftp://plf.time4t.net/pub/plf/mandrake/non-free/2006.0 with hdlist.cz
urpmi.addmedia --update updates \
 http://mirror.hamakor.org.il/pub/mirrors/mandriva/official/updates/2006.0/main_updates \
 with media_info/hdlist.cz
urpmi.addmedia main \
http://mirror.hamakor.org.il/pub/mirrors/mandriva/official/2006.0/i586/media/main \
 with media_info/hdlist.cz
urpmi.addmedia contrib \
 http://mirror.hamakor.org.il/pub/mirrors/mandriva/official/2006.0/i586/media/contrib \
 with media_info/hdlist.cz
urpmi.addmedia jpackage \
 http://mirror.hamakor.org.il/pub/mirrors/mandriva/official/2006.0/i586/media/jpackage \
 with media_info/hdlist.cz

ניתן לבצע התקנת חבילות גם משורת הפקודה על ידי הקלדת urpmi packagename, לדוגמה:

[root@localhost alon]# urpmi locales-ru
Please insert the medium named "disc 1 Download Edition Installation CD (x86)
(cdrom1)" on device [/dev/scsi/host0/bus0/target0/lun0/cd]
Press Enter when it's done...
installing /mnt/cdrom/Mandrake/RPMS/locales-ru-2.3.1.2-8mdk.i586.rpm
Preparing... ##################################################
locales-ru ##################################################
[root@localhost alon]#

בשביל להסיר חבילה, ניתן להשתמש בפקודה rpm -e packagename. לדוגמה:

[root@localhost alon]# rpm -e locales-ru
[root@localhost alon]#

פקודה זאת לא תאפשר לנו להסיר חבילה, כל עוד מותקנות חבילות אשר משתמשות בחבילה זאת.

במערכות מבוססות APT (למשל, אובונטו), מנהל החבילות הגרפי נקרא synaptic.

RPM - RPM Packaging Manager

אם לא מצאתם את החבילה שברצונכם להתקין במנהל החבילות, לפעמים ניתן למצוא קובץ חבילה (RPM) שאינו חלק מההפצה. שיטה זו פחות מומלצת כי היא אינה מטפלת בתלויות באופן אוטומטי.

בשביל להתקין חבילה, יש להקיש את הפקודה הבאה rpm -Uvh packagename.rpm, לדוגמה:

[root@localhost alon]# rpm -Uvh foobar-1.0-3mdk.i586.rpm
Preparing... ########################################### [100%]
1:foobar ########################################### [100%]
[root@localhost alon]#

במערכות מבוססות APT (למשל, אובונטו) הפקודה להתקנת חבילות deb היא dpkg -i file.deb.

התקנה מקוד המקור

לעתים, ניתן למצוא תכנה רק כקוד מקור, או שהגרסה שזמינה בפורמט קוד מקור עדיפה על החבילות המוכנות מראש. בד"כ קוד המקור הוא בשפות C או ++C, ארוז ודחוס לקובץ אחד גדול. במערכות לינוקס, נהוג להשתמש באחת משתי מתכונות דחיסה שונות: gzip או bzip2, כאשר קודם לכן הקבצים אוחדו לקובץ אחד בעזרת התכנה tar. תכנה זאת מכילה תמיכה מובנית בפתיחת קבצים דחוסים שכאלה. כדי לפתוח קובץ tar.gz או tgz , יש להשתמש בפקודה "tar -xzvf file.tar.gz". בשביל לפתוח קובץ tar.bz2 , יש להשתמש בפקודה "tar -xjvf file.tar.bz2".

בדרך כלל, הקובץ הדחוס מכיל מדריך בעל שם זהה, ובתוכה נמצאים כל קבצי קוד המקור והתיעוד של התכנה. בתוך המדריך בד"כ יהיה קובץ בשם README . מאוד חשוב לקרוא קובץ זה. בנוסף, לעתים קרובות יהיה קובץ בשם INSTALL , המכיל הוראות בנוגע לאופן התקנת התכנה. באופן כללי מומלץ להסתכל בכל הקבצים ששמותיהם כתובים באותיות ראשיות.

שימו לב: לא כל קבצי ה-tar בנויים נכון - חלק מהם יפרסו כך שהקבצים שבתוכם ייווצרו במדריך הנוכחי, מבלי ליצור מדריך קודם. על מנת למנוע אבדן מידע ותאונות מצערות, מומלץ להתרגל לפתוח קבצים אלה במדריך חדש וריק. ניתן להזיז את הקבצים מאוחר יותר למדריך אחר.

מרבית התכנות כיום משתמשות במערכת הנקראת autoconf, המפשטת את תהליך הקומפילציה של תכנות ללינוקס. בשביל להתקין תכנה שמנגנון הבניה שלה מבוסס על autoconf, יש לבצע את הפעולות הבאות כמשתמש רגיל:

[alon@localhost ~]$ tar -xzvf foobar-1.0.tar.gz
[alon@localhost ~]$ cd foobar-1.0
foobar-1.0/
foobar-1.0/README
foobar-1.0/Makefile
(... lots of output ...)
[alon@localhost foobar-1.0]$ ./configure
(... lots of output ...)
[alon@localhost foobar-1.0]$ make
(... lots of output ...)
[alon@localhost foobar-1.0]$ su
Password:
[root@localhost foobar-1.0]# make install
(... lots of output ...)
[root@localhost foobar-1.0]# exit
[alon@localhost foobar-1.0]$

מבנה תיקיות המערכת

מדריך תוכן
/bin
קבצי הרצה חיוניים, המשמשים את כל משתמשי המערכת.
/boot
קבצים הנחוצים לשם אתחול המערכת. בין קבצים אלו, יש את ליבת המערכת
/dev
אוסף קבצים וירטואליים, המשמשים כממשקים להתקני חומרה
/etc
קבצי קונפיגורציה, לכלל המערכת ולרוב התכנות (שקול ל-registry בחלונות)
/home
תיקיות הבית של המשתמשים, המכילות את הקבצים שלהם
/lib
ספריות (DLL-ים) חיוניות ומודולים (מנהלי התקנים) בשביל ליבת המערכת.
/mnt
נקודות עגינה (mount) למערכות קבצים זרות (שאינן חלק מעץ התיקיות של לינוקס). עוד על עגינה, בהמשך.
/media
נקודת עגינה להתקנים ניתנים להסרה (תקליטור, דיסקט וכו')
/opt
קבצים ותכנות אופציונליים (בד"כ ריק)
/proc
מערכת קבצים וירטואלית, המתפקדת כממשק לליבת המערכת ולתהליכים הרצים
/root
תיקיית הבית של המשתמש root.
/sbin
קבצי הרצה חיוניים, המשמשים בעיקר את משתמש השורש, וכן נעשה בהם שימוש בתהליך האתחול
/tmp
מקום אחסון קבצים זמניים. ניתן לכתיבה על ידי כל המשתמשים במערכת.
/usr
כל התכניות והמידע שאינם חיוניים לצורך אתחול המערכת.
/var
קבצי מערכת שונים, כדוגמת לוגים, דואר אלקטרוני ועבודות הדפסה בתור.

/usr

המדריך usr/ גם כן מחולקת בהתאם לשימוש של הקבצים השונים המאוחסנים בה:

מדריך תוכן
/usr/bin
קבצי הרצה של תכנות מותקנות
/usr/doc
דוקומנטציה ותיעוד של המערכת. מסמכים נוספים מאוחסנים ב- usr/share/doc/
/usr/games
קבצים השייכים למשחקים שונים
/usr/include
קבצי כותרות (ב-C++/C) עבור התכנות והספריות המותקנות
/usr/lib
ספריות וקבצים אחרים, שהנם בינריים אך לא נועדו להרצה ישירה
/usr/local
תכנות שהותקנו באופן מקומי (מקוד מקור, ולא מ-RPM)
/usr/man
דפי מדריך בשביל הפקודה man
/usr/sbin
קבצי הרצה של תכנות מותקנות, שנועדו בעיקר לשימוש משתמש השורש
/usr/share
מידע של תכנות, שיכול להיות משותף בין התכנות השונות, כגון תמונות, מסמכים וצלילים
/usr/src קוד מקור. בד"כ יכיל את קוד המקור של ליבת המערכת.
/usr/X11R6
קבצים הקשורים למערכת X Windows (הממשק הגרפי)

טיפול במערכות קבצים ועגינה

ביוניקס, בניגוד לחלונות, יש רק עץ תיקיות אחד, המתחיל ממדריך השורש (/). מדריך השורש ממופה (או מעוגן - mounted) למחיצה מסוימת בדיסק. מחיצות אחרות עשויות להיות מעוגנות בתור כל מדריך קיים (אך בד"כ ריק) במערכת הקבצים. עגינה עשויה לשמש בכדי לפרוס את תיקיות המערכת לדיסקים שונים, או בשביל לגשת למערכות קבצים זרות (חלונות, דיסקט, תקליטור ואפילו רשתות שיתוף קבצים). מערכות קבצים זרות בד"כ עגונות תחת mnt/ או media/.

מקומות העגינה הרגילים של המדריכים מוגדרים בקובץ בשם etc/fstab/ (קיצור ל- file-system table). הקובץ בעל מבנה כדלהלן:

/dev/hda8 / reiserfs notail 1 1
none /dev/pts devpts mode=0620 0 0
none /dev/shm tmpfs defaults 0 0
/dev/cdrom /mnt/cdrom auto user,umask=0,exec,ro,noauto 0 0
/dev/fd0 /mnt/floppy auto user,umask=0,sync,exec,noauto 0 0
/dev/hda1 /mnt/win_c vfat defaults 0 0
/dev/hda5 /mnt/win_d vfat defaults 0 0
none /proc proc defaults 0 0
none /tmp tmpfs defaults 0 0
/dev/hda6 /usr ext3 defaults 1 2
/dev/hda7 swap swap defaults 0 0

העמודה הראשונה היא ההתקן (או המחיצה) אותה אנו מעוניינים לעגון, או none בשביל מערכות קבצים מיוחדות. dev/hda/ הוא הכונן הקשיח הראשון, והמספר הוא מספר המחיצה. בכדי לברר את רשימת המחיצות שבכונן מסוים, ניתן להשתמש בפקודה fdisk -l. בכדי לערוך את המחיצות, מומלץ להשתמש ב-parted. שימו לב: עריכת מחיצות היא פעולה מסוכנת, שעלולה להביא לאבדן כל המידע שעל המחשב. יש לבצע פעולות אלו בזהירות מרובה.

העמודה השנייה היא התיקייה אליה אנו מעוניינים לעגון את המחיצה, כלומר מהי נקודת ההתחלה של מערכת הקבצים המאוחסנת במחיצה העגונה בתוך מערכת הקבצים של כלל המערכת. swap היא נקודת עגינה וירטואלית, שמשמשת לצורך זיכרון וירטואלי.

העמודה השלישית מתארת את סוג מערכת הקבצים, או auto שמנחה את המערכת לנסות לזהות בעצמה את סוג מערכת הקבצים.

העמודה הרביעית מכילה פרמטרים לעגינה. למידע נוסף על תוכן עמודה זאת והעמודות הבאות ראו את דפי המדריך עבור mount ו-fstab.

עגינה ידנית של מערכות קבצים

בלינוקס, ניתן לשנות את עגינת מערכות הקבצים בזמן ריצה. יכולת זאת שימושית לצורך עגינת התקני אחסון ניתנים להסרה כגון תקליטורים ודיסקטים. שימו לב כי עליכם לבטל את עגינת מערכת הקבצים לפני שתוכלו להסיר את המדיה. אם לא תעשו כך, קיים סיכון לאבדן מידע.

מצב העגינה הנוכחי מאוחסן ב-etc/mtab/ וב- proc/mounts/, וניתן לבחון אותו על ידי הרצת mount ללא פרמטרים. הפורמט של הקבצים דומה לפורמט של etc/fstab/.

בשביל לעגון מערכת קבצים המצוינת ב- etc/fstab/ יש להקליד (כמשתמש השורש): mount mountpoint. בשביל לבטל עגינה, הקלד: umount mountpoint.לדוגמה, בשביל לגשת לתקליטור:

[root@localhost alon]# mount /mnt/cdrom # Mount the CD-ROM and lock the drive
[root@localhost alon]# ls /mnt/cdrom # List files on CD-ROM
Mandrake/
[root@localhost alon]# umount /mnt/cdrom # Unmount CD-ROM (drive unlocked)
[root@localhost alon]# eject /mnt/cdrom # Open CD-ROM tray

הערה: מרבית מנהלי ממשקי המשתמש הגרפיים יעגנו תקליטורים שהוכנסו לכונן התקליטורים באופן אוטומטי, לנוחותכם. כמו כן, בדרך כלל ניתן לבטל עגינה באמצעות הקשת מקש ימני על ההתקן ובחירת האפשרות "נתק".

פקודות נפוצות

להלן טבלה של פקודות שימושיות ביוניקס ומה הפעולה שהן מבצעות. מומלץ לקרוא את דפי המדריך המתאימים לכל פקודה לפני שימוש בה.

פקודה שימוש
cd
מחליפה את מדריך העבודה
pwd
מציגה את מדריך העבודה הנוכחית
ls
מציגה את התוכן של מדריך
cp
מעתיקה קובץ או מדריך
mv
מזיזה קובץ או מדריך
rm
מוחקת קובץ או מדריך
mkdir
יוצרת מדריך
rmdir
מסירה מדריך
grep
מוצאת קבצים המכילים טקסט מסוים או תבנית מסוימת
ps
מציגה את התהליכים הרצים (התכניות הרצות)
top
מציגה את ניצול במעבד באופן אינטראקטיבי
kill
מפסיקה ("הורג") תהליך רץ, או שולח לו איתות
df
מראה את שטח הדיסק המנוצל והזמין
du
מראה את ניצול הדיסק של מדריך מסוים ותת המדריכים שלו
which
מאתרת תכנית תוך שימוש במסלול (path)
locate
מוצאת קבצים בכונן הקשיח של המחשב
less לצפייה בקבצי טקסט

הרשאות ובעלות על קבצים

במערכות יוניקס, לכל קובץ יש משתמש וקבוצה שמוגדרים כבעלים של הקובץ. בד"כ הבעלים הוא המשתמש שיצר את הקובץ והקבוצה שאליה הוא משתייך. המשתמש שהוא הבעלים של הקובץ, וכן משתמש בשורש, יכולים לשנות את ההרשאות של הקובץ, ולציין מה מותר למשתמשים לעשות עם הקובץ.

ניתן להציג את ההרשאות של קובץ בעזרת ls -l. הפלט נראה כך:

-rwxr-xr-x 1 root root 579384 Feb 25 2002 /bin/bash
-r-------- 1 root root 1594 Aug 25 23:09 /etc/shadow
drwxr-xr-x 18 root root 4096 Sep 1 14:41 /usr
drwx--x--x 212 alon alon 28816 Sep 19 00:47 /home/alon/

העמודה הראשונה מתארת את ההרשאות של הקובץ, ואילו העמודות הרביעית והחמישית מפרטות את המשתמש והקבוצה להן שייך הקובץ.

האות הראשונה בהרשאות מתארת את סוג הקובץ: "-" מסמן קובץ רגיל, "d" מסמן מדריך. שלוש האותיות הבאות מסמנות את הרשאות הקריאה (r), כתיבה (w) והרצה (x) של המשתמש שהוא בעל הקובץ. שלוש האותיות שאחריהן מפרטות את ההרשאות למשתמשים השייכים לקבוצה שיש לה את הבעלות על הקובץ, ושלוש האותיות האחרונות מסמנות את ההרשאות שיש לשאר המשתמשים במערכת. שימו לב שהרשאות הרצה לגבי מדריך מסמנות למעשה הרשאה להיכנס למדריך ולמדריכי המשנה שלו.

ניתן לשנות את הרשאות של קובץ או מדריך בעזרת הפקודה chmod, וניתן לשנות בעלות בעזרת הפקודה chown . ניתן לקבוע את ברירת המחדל של ההרשאות עבור קבצים חדשים בעזרת הפקודה umask. למידע נוסף על פקודות אלה, ראו את דפי המדריך המתאימים (או בואו להרצאה עליהם).

איך להשיג עזרה

עיקר הפרטים - בהרצאה הבאה.

לעתים אנו רוצים לעשות דברים מסוימים, ואיננו יודעים כיצד לעשותם. מה עלינו לעשות אז?

איך לשאול שאלות

מומחי לינוקס בד"כ שמחים לעזור למתחילים. יחד עם זאת, המומחים לא יהיו מסוגלים לענות על שאלתך ועלולים להתרגז עליך אלא אם תעקבי אחרי העקרונות הבאים:

נכתב על ידי אלון אלטמן, גיא קרן, ושחר ריינדלValid HTML 4.01!