כיצד להשתמש בפקודת Tee בלינוקס

Verwendung des Tee-Befehls unter Linux
⏱️ 1 min read

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

פארק הוד השרון
פארק הוד השרון

מה טי עושה?

פקודה כמו

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

פקודה כמו

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

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

למה להשתמש ב-Tee אם אתה יכול להפעיל פקודה דומה פעמיים?

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

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

אז, אתה עשוי לחשוב, “ובכן, כמובן, פשוט השתמש בסודו!” ותתפלאו לגלות שגם זה לא עובד:

זה בגלל שאחרי sudo blkid פועל, עדיין תהיו מחוברים כמשתמש שאינו שורש רגיל. והקליפה שלך (בדרך כלל bash), מנסה לכתוב ל /root/somefile עם אישורי המשתמש הרגילים שלך. כדי לפתור את זה אתה יכול להשתמש טי:

הוסף שגיאות טקסט והפניה מחדש

tee היא פקודה שימושית אך פשוטה; בסיסי command | tee somefile יספיק רוב הזמן. עם זאת, אתה עלול להיתקל בשני תרחישים שידרשו את הטיפים האלה.

הדבר הראשון שצריך לדעת הוא ש-te, כברירת מחדל, תמיד מחליף קובץ. אם אתה רץ

ואז

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

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

זה יציג משהו כמו התמונה הבאה.

הרשאה נדחתה הודעות נכתבות ל-stderr. הדבר היחיד שנכתב ל-stdout הוא הטקסט המודגש. לכן תשים לב שהתוכן של “קובץ כלשהו” הוא מה שמוצג בתמונה למטה.

תוכן קובץ Tee Grep

במקרה זה, כאשר grep משמש לחיפוש טקסט, כדאי שהודעות שגיאה לא יופנו לקובץ. הם פשוט היו ממלאים את הקובץ בזבל מיותר. אתה רק רוצה לראות את התוצאות שנמצאו. אבל כאשר אתה צריך את הודעות השגיאה, השתמש 2>&1שמפנה מחדש את stderr ל-stdout.

עם פקודה זו תבחין שקובץ כלשהו מכיל כעת גם את הודעות השגיאה.

סיכום

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

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x