כל תהליך ב- Linux מייצר שלושה זרמי נתונים, stdin, stdout ו- stderr:
- stdin : לוקח קלט מהמשתמש באמצעות מקלדת
- stdout : מציג פלט על המסך
- stderr : מציג פרטי שגיאה על המסך
לכל זרם נתונים יש מזהה מספרי:
מזהה מספרי | שֵׁם |
0 | stdin |
1 | stdout |
2 | stderr |
בואו להסביר את ההפניה קצת יותר בפירוט:
כיצד לנתב פלט רגיל ושגיאת תקן ב- Bash:
כדי לנתב את הפלט הסטנדרטי של הפקודה, נשתמש ב -1 עם אופרטור ניתוב גדול מהסימן>:
$ls 1>stdout.txtהפקודה לעיל תיצור קובץ ותמקם את הפלט הסטנדרטי של הפקודה ls בקובץ stdout.txt.
כדי לקרוא את הקובץ stdout.txt, השתמש ב:
$חתולstdout.txt
אנו יכולים להפנות שגיאת תקן גם לקובץ באמצעות הפקודה:
$חתולmyfile.txt2>stderr.txt
לצפייה בקובץ stderr.txt, השתמש ב:
$חתולstderr.txt
ודא ששימוש 2 יהיה גדול מהסימן>. מכיוון שאין קובץ myfile.txt בספרייה, הפקודה cat תיתן שגיאה שתצורף בקובץ stderr.txt.
ניתן להפנות את הפלטים הסטנדרטיים האלה באמצעות פקודה אחת בלבד, השתמש ב:
$ls 1>stdout.txt2>stderr.txt
הפלט של הפקודה ls ייכתב ב- stdout.txt קובץ, אבל stderr.txt יישאר ריק כי לא תהיה שגיאה.
עכשיו בואו נעשה עבור stderr.txt:
$חתולmyfile.txt1>stdout.txt2>stderr.txt
השתמש בפקודה המוזכרת למטה כדי לקרוא stderr.txt.
$חתולstderr.txt
וכמובן, stdout.txt יהיה ריק.
סיכום :
פקודת Linux בעת ביצוע נותנת פלט סטנדרטי שיכול להיות פלט הצלחה או פלט שגיאה. באופן כללי, לא ניתן להפנות פלטים אלה באמצעות אופרטורים של ניתוב מחדש; עלינו להשתמש במזהים מספריים ספציפיים עם הסימן>. במדריך זה למדנו כיצד להשתמש במקשים מספריים אלה כדי להפנות פלט סטנדרטי לקובץ עם דוגמאות.