ورودی، خروجی و خطای استاندارد
بسیاری از برنامه هایی که ما تاکنون استفاده کرده ایم به نوعی خروجی تولید می کنند. این خروجی اغلب از دو نوع تشکیل شده است. اول، ما نتایج برنامه را داریم. یعنی دادههایی که برنامه برای تولید طراحی شده است، و دوم، وضعیت و پیامهای خطا داریم که به ما میگوید برنامه چگونه پیش میرود. اگر به دستوری مانند نگاه کنیم ls، می بینیم که نتایج و پیام های خطای خود را روی صفحه نمایش می دهد.
با توجه به موضوع یونیکس "همه چیز یک فایل است"، برنامه هایی مانند ls در واقع نتایج خود را به یک فایل خاص به نام ارسال می کنند خروجی استاندارد (اغلب به صورت بیان می شود stdout) و پیام های وضعیت آنها به فایل دیگری به نام sخطای استاندارد (استدرر). بهطور پیشفرض، خروجی استاندارد و خطای استاندارد به صفحه متصل میشوند و در فایل دیسک ذخیره نمیشوند.
علاوه بر این، بسیاری از برنامه ها ورودی را از یک مرکز به نام دریافت می کنند ورودی استاندارد (stdin) که به طور پیش فرض به صفحه کلید متصل است.
تغییر مسیر ورودی/خروجی به ما اجازه میدهد تا جایی که خروجی میرود و ورودی از کجا میآید را تغییر دهیم. به طور معمول، خروجی به صفحه نمایش می رود و ورودی از صفحه کلید می آید، اما با تغییر مسیر I/O، می توانیم آن را تغییر دهیم.