מערכת הקבצים בלינוקס מוסברת¶
אם באתם מווינדוס, אתם מתרגלים ל-C: ול-D:, לכוננים נפרדים עם אותיות. בלינוקס אין כלום מזה. יש עץ אחד, שמתחיל בשורש בודד, ומשם הכל מסתעף. זה נראה מוזר בהתחלה, אבל ברגע שתבינו את ההיגיון, תגלו שהוא בעצם הרבה יותר עקבי ונקי משיטת הכוננים של ווינדוס.
הכל מתחיל מ-root¶
בראש כל מערכת קבצים בלינוקס יושבת תיקייה אחת שנקראת פשוט /, ונקראית root - לא להתבלבל עם המשתמש הראשי של המערכת, שגם הוא נקרא root, זה שם שחוזר על עצמו בשני הקשרים שונים. כל תיקייה ותיקיית משנה בכל המערכת נמצאת איפשהו מתחת ל-/. כשאתם כותבים נתיב מלא, כמו /home/user/documents, אתם בעצם מתארים דרך מהשורש ועד היעד.
זה ההבדל המהותי מווינדוס - אין "כונן D", יש רק מבנה עץ אחד, ואם יש לכם דיסק נוסף, הוא פשוט "מחובר" (mounted) לאיזושהי תיקייה בתוך העץ הזה, בלי שאתם צריכים לדעת או להתעניין באיזה דיסק פיזי הוא באמת יושב.
התיקיות שכדאי להכיר¶
עץ הקבצים של לינוקס עוקב אחר תקן שנקרא FHS, ולכן כמעט בכל הפצה תמצאו אותן תיקיות עיקריות עם אותו תפקיד בדיוק:
/binו-/usr/bin- קבצי הרצה של פקודות בסיסיות שכולם משתמשים בהן, כמוlsו-cp./etc- קבצי הגדרות (configuration) של המערכת ושל כמעט כל תוכנה מותקנת. כשמשהו מתנהג מוזר,/etcהוא לרוב המקום הראשון לחפש בו את הסיבה./home- כאן יושבות תיקיות הבית של כל משתמש במערכת, בדומה ל-Usersבווינדוס. התיקייה שלכם היא/home/שם-המשתמש./var- קיצור של variable, תיקייה שמכילה נתונים שמשתנים כל הזמן, ובעיקר לוגים תחת/var/log. זה המקום הראשון שבודקים כשמחפשים למה שירות נכשל./tmp- קבצים זמניים, שבדרך כלל נמחקים אוטומטית בכל הפעלה מחדש של המחשב./root- תיקיית הבית של משתמש root, נפרדת לגמרי מ-/home.
לא צריך לשנן את כל הרשימה, אבל שווה להכיר את חמש שש התיקיות האלה, כי אתם תפגשו אותן שוב ושוב.
נתיב מוחלט מול נתיב יחסי¶
יש שתי דרכים לתאר איפה קובץ נמצא. נתיב מוחלט מתחיל תמיד מה-/ ומתאר את המיקום המלא, כמו /home/user/documents/file.txt. נתיב יחסי מתאר את המיקום ביחס למקום שאתם נמצאים בו כרגע - אם אתם כבר בתוך /home/user, אז documents/file.txt מספיק כדי להגיע לאותו קובץ בדיוק.
ההבדל הזה חשוב במיוחד כשכותבים סקריפטים - סקריפט שמשתמש בנתיב יחסי עלול להתנהג אחרת בהתאם למקום שממנו הריצו אותו, ולכן ברוב המקרים עדיף להשתמש בנתיבים מוחלטים כשרוצים ודאות.
הכל הוא קובץ¶
יש עיקרון שמלווה את לינוקס מהיסוד שלה, ומי שמפנים אותו מבין הרבה יותר טוב איך המערכת עובדת - כמעט הכל מיוצג כקובץ. לא רק מסמכים ותמונות, אלא גם התקנים כמו כונן קשיח, ואפילו תהליכים שרצים במערכת, מיוצגים כקבצים בתיקיות מיוחדות כמו /dev ו-/proc. זה נשמע מוזר בהתחלה, אבל זו בעצם הסיבה שכל כך הרבה פעולות בלינוקס עובדות באותה שיטה בדיוק, בין אם אתם קוראים מסמך טקסט או בודקים סטטוס של רכיב חומרה.
למה זה בעצם נוח¶
אחרי שמתרגלים למבנה העץ האחיד הזה, מגלים שהוא הרבה יותר צפוי מהשיטה של כוננים נפרדים. כל תוכנה יודעת בדיוק איפה לחפש קבצי הגדרות, כל מנהל מערכת יודע בדיוק איפה לחפש לוגים, וכל מפתח שעובד על שרת לינוקס אחר, בכל מקום בעולם, יודע בדיוק לאיזו תיקייה להסתכל. זו עקביות שחוסכת המון זמן ברגע שמכירים אותה.
איך תופסים את זה בפועל¶
הדרך הכי טובה להפנים את המבנה הזה היא לשוטט בו בעצמכם - לפתוח טרמינל, ולהריץ cd ו-ls בתיקיות השונות שהזכרתי, ולראות מה באמת יושב שם. זה נטמע הרבה יותר מהר ככה מאשר מקריאה בלבד.
בקורס לינוקס הבסיסי שלנו יש פרק מלא שמסביר את מערכת הקבצים לעומק, עם תרגילים שגורמים לכם להרגיש בבית בכל תיקייה חשובה במערכת.
למדו על מערכת הקבצים בקורס לינוקס הבסיסי
ואם אתם מתלבטים לאיזו תיקייה שייך קובץ מסוים, תשאלו בדיסקורד, זו בדיוק השאלה שכולנו שאלנו פעם.