29Jul

מה זה "הכל קובץ" אומר בלינוקס?

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

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

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

/ proc

לדוגמה, נניח שאתה רוצה למצוא מידע על המעבד שלך.הספריה / proc כוללת קובץ מיוחד - /proc/ cpuinfo - המכיל מידע זה.

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

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

המדריך / proc מכיל גם קבצים דומים אחרים, לדוגמה:

  • /proc/ uptime - מציג את זמן הפעילות של ליבת הלינוקס שלך - במילים אחרות, כמה זמן המערכת שלך פועלת ללא כיבוי.גירסת
  • /proc/ - מציג את גירסת הליבה של לינוקס.

/ dev

בספריה / dev, תמצאו קבצים המייצגים התקנים - כמו גם קבצים המייצגים דברים מיוחדים אחרים.לדוגמה, /dev/ cdrom הוא כונן התקליטורים./dev/ sda מייצג את הכונן הקשיח הראשון שלך, בעוד ש- /dev/ sda1 מייצג את המחיצה הראשונה בכונן הקשיח הראשון.

רוצה לעלות את התקליטור שלך?הפעל את הפקודה הר וציין את /dev/ cdrom כמכשיר שברצונך לטעון.רוצה לחלק את הכונן הקשיח הראשון?הפעל כלי דיסק למחיצות וציין את /dev/ sda בתור הדיסק הקשיח שברצונך לערוך.רוצה לעצב את המחיצה הראשונה בכונן הקשיח הראשון?הפעל פקודת עיצוב ואמור לה לעצב /dev/ sda1.

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

/dev/ null, /dev/ אקראי, /dev/ אפס

מערכת הקבצים / dev אינו מכיל רק קבצים המייצגים התקנים פיזיים.הנה שלושה מן המכשירים המיוחדים המיוחדים ביותר שהיא מכילה:

  • /dev/ null - מחיקת כל הנתונים שנכתבים אליו - חשבו על זה כעל פח אשפה או חור שחור.אם אי פעם אתה רואה תגובה אומר לך לשלוח התלונות על /dev/ null - זוהי דרך חנון לומר "לזרוק אותם לתוך האשפה."
  • /dev/ אקראי - מפיק אקראיות באמצעות רעש סביבתי.זה מחולל מספרים אקראיים אתה יכול להתחבר.
  • /dev/ אפס - מייצר אפסים - זרם קבוע של אפסים.

אם אתה חושב על אלה שלושה קבצים, אתה לא תראה להשתמש בהם.במקום זאת, לחשוב עליהם כעל כלים.

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

& gt;/dev/

אם אתה רוצה מקור של אקראיות - לומר, ליצירת מפתח הצפנה, אתה לא צריך לכתוב גנרטור מספר אקראי משלך - אתה יכול להשתמש /dev/ אקראי.

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

אזהרה /dev/D : הפקודה הזו תמחק את כל הנתונים במחיצה הראשונה שלך אם אתה מפעיל את זה, רק הפעל את הפקודה אם אתה רוצה להרוס נתונים.)

dD if = /dev/ אפס = /dev/ sda1

כאן אנו משתמשים ב- ddעם קבצים מיוחדים( /dev/ אפס /dev/ sda1), אבל אנחנו יכולים גם להשתמש dd לקרוא וכתוב קבצים בפועל.אותה פקודה פועלת הן עבור מניפולציה ישירה של מכשירים ועבודה עם קבצים.למעשה, זה מדויק יותר לומר כי "הכל הוא זרם של בתים" מאשר "הכל הוא קובץ." /dev/ אקראי אינו קובץ, אבל זה בהחלט זרם של בתים.ולמרות שהדברים האלה אינם קבצים, הם נגישים במערכת הקבצים - מערכת הקבצים היא "מרחב שם" אוניברסלי שבו הכל נגיש.רוצה לגשת מחולל מספרים אקראיים או לקרוא ישירות מתוך התקן?תמצא את שניהם במערכת הקבצים;אין צורך בסוג אחר של טיפול.

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