מה זה הכל קובץ?
אחד המאפיינים המגדירים של לינוקס ומערכות הפעלה אחרות של UNIX הוא ש"הכל הוא קובץ ". זהו פשטנות יתר, אך הבנה של משמעות הדבר תעזור לכם להבין כיצד פועלת לינוקס.
הרבה דברים על לינוקס מופיעים במערכת הקבצים שלך, אבל הם לא קבצים ממש. הם קבצים מיוחדים המייצגים התקני חומרה, מידע על המערכת ודברים אחרים - כולל מחולל מספרים אקראי.
קבצים מיוחדים אלה עשויים להימצא במערכות קבצים פסאודו או וירטואליות כגון / dev, המכיל קבצים מיוחדים המייצגים התקנים ו / proc, המכילים קבצים מיוחדים המייצגים מידע על המערכת והתהליך.
/ proc
לדוגמה, נניח שברצונך לחפש מידע על המעבד שלך. הספריה / proc כוללת קובץ מיוחד - / proc / cpuinfo - המכיל מידע זה.
אתה לא צריך פקודה מיוחדת שאומרת לך את פרטי המעבד שלך - אתה יכול פשוט לקרוא את התוכן של קובץ זה באמצעות כל פקודה סטנדרטית שעובדת עם קבצי טקסט רגיל. לדוגמה, תוכל להשתמש בפקודה חתול / פרוק / cpuinfo כדי להדפיס את תוכן הקובץ למסוף - הדפסת מידע המעבד שלך למסוף. אתה יכול אפילו לפתוח / proc / cpuinfo בעורך טקסט כדי להציג את תוכנו.
זכור, / proc / cpuinfo אינו למעשה קובץ טקסט המכיל מידע זה - הליבה של Linux ומערכת הקבצים proc חושפים מידע זה אלינו כקובץ. זה מאפשר לנו להשתמש בכלים מוכרים כדי להציג ולעבוד עם המידע.
המדריך / proc מכיל גם קבצים דומים אחרים, לדוגמה:
- / proc / uptime - מציג את uptime של ליבת לינוקס שלך - במילים אחרות, כמה זמן המערכת שלך כבר על מבלי לכבות.
- / proc / version - מציג את גירסת ליבת הלינוקס שלך.
/ dev
בספריה / dev תמצא קבצים המייצגים התקנים - כמו גם קבצים המייצגים דברים מיוחדים אחרים. לדוגמה, / dev / cdrom הוא כונן התקליטורים. / dev / sda מייצג את הכונן הקשיח הראשון שלך, ואילו dev / sda1 מייצג את המחיצה הראשונה בכונן הקשיח הראשון.
רוצה לעלות את התקליטור שלך? הפעל את הפקודה הר וציין / dev / cdrom כמכשיר שברצונך לטעון. רוצה לחלק את הכונן הקשיח הראשון? הפעל כלי שירות למחיצת דיסק וציין / dev / sda בתור הדיסק הקשיח שברצונך לערוך. רוצה לעצב את המחיצה הראשונה בכונן הקשיח הראשון? הפעל פקודת עיצוב וספר זאת לפורמט / dev / sda1.
כפי שניתן לראות, חשיפת התקנים אלה כחלק ממערכת הקבצים יש יתרונות. מערכת הקבצים מספקת "מרחב שם" עקבי שכל היישומים יכולים להשתמש בו כדי לטפל בהתקנים ולגשת אליהם.
/ dev / null, / dev / אקראי, ו / dev / אפס
מערכת הקבצים / dev אינה מכילה רק קבצים המייצגים התקנים פיזיים. הנה שלושה מן המכשירים המיוחדים המיוחדים שהוא מכיל:
- / dev / null - מחקה את כל הנתונים שנכתבו על זה - לחשוב על זה כמו פח אשפה או חור שחור. אם אי פעם אתה רואה תגובה אומר לך לשלוח מתלונן ל / dev / null - זו דרך חנון לומר "לזרוק אותם לפח".
- / dev / random - מפיק אקראיות באמצעות רעש סביבתי. זה מחולל מספרים אקראיים אתה יכול להתחבר.
- / dev / אפס - מייצר אפסים - זרם קבוע של אפסים.
אם אתה חושב על שלושת אלה כמו קבצים, אתה לא תראה להשתמש בהם. במקום זאת, לחשוב עליהם כעל כלים.
לדוגמה, כברירת מחדל, פקודות לינוקס מפיקות הודעות שגיאה ופלט אחר שהן מדפיסות לפלט הסטנדרטי, בדרך כלל הטרמינל. אם אתה רוצה להפעיל פקודה ולא אכפת הפלט שלה, אתה יכול לנתב מחדש את הפלט ל / dev / null. הפניה מחדש של הפלט של הפקודה אל / dev / null מיד משליכה אותו. במקום שיש כל פקודה ליישם משלה "מצב שקט", אתה יכול להשתמש בשיטה זו עם כל פקודה.
הפקודה> / dev / null
אם אתה רוצה מקור של אקראיות - לומר, עבור יצירת מפתח הצפנה, אתה לא צריך לכתוב גנרטור מספר אקראי משלך - אתה יכול להשתמש / dev / אקראי.
כדי למחוק תוכן של הכונן הקשיח על ידי כתיבת 0 של זה, אתה לא צריך כלי מיוחד המוקדש לאפס של כונן - אתה יכול להשתמש בכלי עזר סטנדרטיים ו / dev / אפס. לדוגמה, ד הפקודה קוראת ממיקום וכותבת למיקום אחר. הפקודה הבאה תקרא אפסים מ- / dev / zero ותכתוב אותם ישירות למחיצת הדיסק הקשיח הראשונה במערכת שלך, ותמחק לחלוטין את התוכן שלה.
(אזהרה: פקודה זו תמחק את כל הנתונים במחיצה הראשונה שלך אם תפעיל אותה. הפעל רק את הפקודה הזו אם ברצונך להרוס נתונים.)
dd if = / dev / zero of = / dev / sda1
כאן אנו משתמשים ב- dd עם קבצים מיוחדים (/ dev / אפס ו / dev / sda1), אבל אנחנו יכולים גם להשתמש dd לקרוא ולכתוב קבצים בפועל. אותה פקודה פועלת הן עבור מניפולציה של התקנים ישירות ועבודה עם קבצים.
הבהרה
בפועל, זה מדויק יותר לומר כי "הכל הוא זרם של בתים" מאשר "הכל הוא קובץ." / Dev / אקראיות הוא לא קובץ, אבל זה בהחלט זרם של בתים. ולמרות שהדברים האלה אינם קבצים, הם נגישים במערכת הקבצים - מערכת הקבצים היא "מרחב שם" אוניברסלי שבו הכל נגיש. רוצה לגשת מחולל מספר אקראי או לקרוא ישירות מתוך התקן? תמצא את שניהם במערכת הקבצים; אין צורך בסוג אחר של טיפול.
כמובן, כמה דברים הם לא קבצים בפועל - תהליכים פועל על המערכת שלך הם לא חלק של מערכת הקבצים. "הכל תיק" הוא לא מדויק, אבל הרבה דברים מתנהגים כמו קבצים.