תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

מערכת הקבצים של Linux - מה שרצית לדעת ולא העזת לשאול

מחבר:
בתאריך:

במדריך זה תקבלו הסבר על התיקיות העיקריות המרכיבות את מערכת הקבצים (file system) של לינוקס שכדאי להכיר.

נתחיל במבט כללי על מערכת הקבצים:

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

כל תיקייה נקראת directory, ובתוך התיקיות ניתן למצוא תיקיות משנה מה שיוצר היררכיה (עץ) של תיקיות. שמם של התיקיות נגזר ממיקומם בהיררכיה.

כל מערכת הקבצים קיימת בתוך תיקייה אחת מיוחדת ששמה root - תיקיית השורש אליה ננווט על ידי הקלדה בטרמינל של הפקודה cd (change directory) ואחריה קו נטוי /.

$ cd /

 

תיקיות שנמצאות ישירות מתחת ל- root (top level directories)

בתוך תיקיית השורש קיימות כמה תיקיות top level. דוגמת: home, boot ו-usr. לינוקס משתמש בתיקיות אילה בתהליך האתחול.

כדי להגיע לכל אחת מהתיקיות אנחנו יכולים להשתמש בקו נטוי ואח"כ שם התיקייה.

ננווט לתיקייה /bin:

$ cd /bin

bin הוא קיצור של binaries שאילו קבצים הכתובים בקוד מכונה. מבחינתנו, binaries הם תוכנות ניתנות להרצה. הסיבה שהתיקייה נמצאת ישירות בתוך תיקייה השורש היא שאתחול המחשב boot דורש תוכנות שונות שנמצאות בתיקייה.

נצפה ברשימת הקבצים בתיקייה:

$ ls

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

  • cat - לקריאת קבצים.
  • pwd - לאיתור מיקום התיקייה הנוכחית (באיזה תיקייה אני נמצא עכשיו?)
  • less - דפדוף בתוך קבצים ארוכים.
  • grep - איתור טקסטים בתוך קבצים.
  • sh - מוציא לפועל פקודות (מתוך הטרמינל או מקובץ).

התיקייה /sbin דומה ל-bin בגלל שהיא כוללת קבצים הכתובים בשפת מכונה binaries הדרושים לתהליך האתחול. בניגוד ל-bin, כדי להשתמש בפקודות שקיימות בתיקייה נצטרך רמת הרשאה של superuser.

בניגוד למערכת ההפעלה Windows, שבה התוכנות מותקנות בתיקיות Program Files, בלינוקס קבצי התוכנות יושבים בתיקיות /bin או /sbin וקבצי הקונפיגורציה בתיקייה ששמה /etc.

 

תיקיות נוספות שנמצאות ישירות בתוך תיקיית השורש root הם:

תיקיית /boot - מכילה קבצי kernel - ליבת מערכת ההפעלה - שמתווכת בין החומרה לפעולות שמבצעת המערכת וקבצים נוספים שהכרחיים ל - booting - אתחול המערכת.

תיקיית /dev - מכילה את הקבצים של המכשירים devices כי בלינוקס הכול הוא קובץ. כולל התיקיות והחומרה (דיסק קשיח, מקלדת, מוניטור, מדפסת, וכיו"ב). בהתאם, התיקייה כוללת תיקיות משנה ששמם: disk cpu log ואפילו null שאליו אנחנו מתעלים פלטים שלא מעניינים אותנו. לדוגמה, הודעות שגיאה מינוריות.

תיקיות המשתמשים, כולל המשתמש שלנו, נמצאות בתוך התיקייה /home, ומיד נחזור אליה.

התיקייה /lib מכילה ספריות libraries של הדרייברים הנדרשים לאתחול מערכת ההפעלה.

התיקייה /opt מכילה קבצים של תוכנות נוספות optional שאנחנו מתקינים. לדוגמה, google או zoom.

בתיקיית /proc נמצאים כל התהליכים processes שרצים על מערכת ההפעלה.

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

התיקייה /var מכילה דברים שהגודל שלהם משתנה. דוגמת: גיבויים, קבצי לוג וקאש (זיכרון מטמון).

התיקייה /usr מכילה תוכנות נוספות, פקודות, תיעוד וספריות. היא מתפצלת לתת תיקיות. לדוגמה:

  • /usr/bin
  • /usr/sbin
  • /usr/lib

שמם של חלק מהתיקיות זהה לתיקיות top level אבל הם בדרך כלל לא דרושות לאתחול המערכת.

 

תיקיית הבית שלך

בכל פעם שתפתח את הטרמינל תגלה שאתה נמצא בתיקיית הבית שלך - התיקייה שבה נמצאים הקבצים האישיים שלך.

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

$ cd ~

תגיע לתיקיית המשתמש שלך.

בתוך התיקייה הקלק את הפקודה pwd כדי לברר היכן אתה נמצא.

$ pwd

התוצאה במקרה שלי היא:

/home/joe

זה מפני ששם המשתמש שלי הוא joe. אצלך יופיע שם המשתמש שלך.

נשתמש בפקודה ls כדי לראות את רשימת הקבצים בתיקיית הבית:

$ ls
_a.index                     hello.py
Android                      logs
AndroidStudioProjects        Music
atom_projects                Pictures
backups                      projects
bash_scripts                 Public
composer.phar                python_projects
dead.letter                  python_scripts
Desktop                      scripts
docker                       seashell.py
Documents                    snap
Downloads                    Templates
ebook_the_essentials_oo_php  tools
examples.desktop             Videos
Templates

התיקיות צבועות בכחול.

   

הפקודה which

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

לדוגמה, אנחנו משתמשים בפקודה ping בשביל לברר האם כתובת IP של שרת פעילה.

כדי לברר האם הפקודה ping קיימת במערכת נריץ בטרמינל:

$ which ping

התוצאה אצלי במערכת היא:

/usr/bin/ping
  • שימו לב שהפקודה נמצאת בתוך תיקייה ששמה bin שמכילה קבצים בינאריים של פקודות.

המערכת יודעת לחפש את קובץ הפקודה בתוך תיקיות המכילות קבצים בינאריים כיוון שהנתיבים לתיקיות מוגדרים בתוך משתנה המערכת בשם $PATH.

נבדוק אילו תיקיות מוגדרות בתוך משתנה המערכת:

echo $PATH

התוצאה על המחשב שלי:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
  • מספר נתיבים מופרדים בנקודתיים.

   

אולי גם זה יעניין אותך:

חיפוש בתוך קבצים עם GREP

ניהול הרשאות, משתמשים וקבוצות בלינוקס

לינוקס - צינורות והפניות

 

לכל המדריכים בסדרת הלינוקס

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

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

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

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

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

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

מתי הוקמה המדינה?

 

תמונת המגיב

ברוך בתאריך: 20.11.2020

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