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

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

יוניקס ו פייפס

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

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

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

תוכלו גם לבוא על פני המפעיל |& . זה עובר גם פלט שגיאות לפקודה הבאה.

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

להכין

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

 sudo mkdir Fail1 sudo mkdir Fail2 sudo chmod 000 Fail1 sudo chmod 000 Fail2 

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

הפניה מחדש של פלט ללא שגיאות

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

מפעיל את הפלט מחדש לקובץ ומחליף את תוכן הקובץ.

 du -h ./*> folder-size.txt 

לעומת זאת, האופרטור >> פועל באופן דומה, אך מוסיף את הפלט לסוף הקובץ.

 du -h ./* >> folder-size.txt 

שמירת טעויות בלבד

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

שימוש במפעיל 2> שולח את השגיאות מפקודה לקובץ יומן, מחליף אותה. התפוקה הרגילה עדיין תוצג במסוף.

 du -h ./* 2> errors.log 

כדי להשיג את אותן תוצאות מבלי להחליף, השתמש 2>> .

 du -h ./* 2 >> errors.log 

שמור הכל, לא הראה כלום

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

האופרטור &> מפנה מחדש פלט ושגיאות לקובץ ומחליף אותו.

 du -h ./** &> disk_use.log 

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

 du -h ./* & >> disk_use.log 

הצג הכל, שמור פלט

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

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

 du -h ./** tee output.txt 

כברירת מחדל, tee מחליפה. כדי לשמור את הקובץ הקיים, הוסף את הדגל.

 du -h ./** tee -a output.txt 

הצג ושמור הכל

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

 du -h ./** | & tee output.txt 

כדי להימנע מחליפה, הוסף את הדגל ל- tee .

 du -h ./* | & tee -a output.txt 

לעטוף

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