همانطور که تاکنون از لینوکس استفاده کرده اید، ممکن است با ارجاعاتی به “I/O in Linux” برخورد کرده باشید.
ورودی استاندارد یا I/O اصطلاحی برای ورودی یا ورودی هایی است که یک برنامه مبتنی بر دستور خط فرمان دریافت می کند. در فرآیند استفاده تعاملی، این ورودی معمولاً از صفحه کلید بدست می آید، اما همانطور که بعداً خواهید دید، می تواند از یک فایل نیز به دست بیاید.
در حالی که این روز ها صفحهکلید معمولاً به صورت مستقیم به دستگاه وصل می شود، زمانی که استفاده از خطوط متنی فرمان رایج تر بودند، ورودی استاندارد از صفحه کلید متصل به یک رایانه کوچک متصل به رایانه اصلی گرفته می شد. سیستم های لینوکس مدرن از شبیه ساز های خط فرمان یا کنسول سیستم به عنوان ورودی استاندارد استفاده می کنند.
خروجی استاندارد نیز همانند ورودی استاندارد، جایی است که یک برنامه خروجی متن خود را به آن جا ارسال می کند. باز هم، این روالی معمول در یک شبیه ساز خط فرمان در سیستم های مدرن است، اما در گذشته روی پایانه های فیزیکی نیز وجود داشت، یا در روشی دیگر در ساختار کلاسیک با نمایشگر های CRT به نمایش در می آمد و یا با استفاده از تله تایپ بر روی کاغذ چاپ می شد.
ترمینال های Teletype نیز در زمانی که جد لینوکس یعنی یونیکس، در آزمایشگاه های بل در اواخر دهه ۱۹۶۰ و اوایل دهه ۱۹۷۰ در حال توسعه بود، بیشتر مورد استفاده بودند.
یکی از قدرتمندترین ویژگی های سیستم های عامل لینوکس و یونیکس امکان تغییر مسیر ورودی و خروجی به فایل ها و برنامه های دیگر بوده و هست.
پرکاربرد ترین روش ارسال خروجی از یک دستور به جایی دیگر یا یک “pipeline” است. به عنوان مثال، برای اینکه ببینید چند فایل لینوکس دارای پسوند “sh” در نام خود هستند، می توانید خروجی دستور ls را با grep به صورت زیر ترکیب کنید.
ls /bin | grep 'sh'
در ادامه بحث I/O in Linux برای تغییر مسیر خروجی به یک فایل، از عملگر > استفاده کنید. به عنوان مثال، برای ارسال خروجی دستور ls به لیست فایل همانند زیر در خط فرمان دستور را وارد کنید:
ls > filelist
عملگر >> خروجی را به فایل موجود اضافه می کند یا در صورت عدم وجود آن را ایجاد می کند. برای جلوگیری از بازنویسی تصادفی یک فایل، می توانید گزینه “noclobber” را در Bash وارد کنید:
همچنین می توانید با عملگر < یک برنامه ورودی از یک فایل داشته باشید. برنامه cat می تواند محتویات یک فایل را با گرفتن ورودی از فایل و ارسال آن به خروجی استاندارد چاپ کند.
cat < file
حتی در خصوص I/O in Linux می توانید خطای های استاندارد را با استفاده از یک توصیفگر فایل و یا عددی که مخفف یکی از اشکال استاندارد ورودی و خروجی است تغییر مسیر دهید. با توصیفگر های فایل، ۰ ورودی استاندارد، ۱ خروجی استاندارد و ۲ خطای استاندارد است. در تمامی مراحل استفاده I/O in Linux برای خلاص شدن از شر خطاها، هدایت خطای استاندارد به /dev/null مفید خواهد بود:
linux_command 2> /dev/null
حتی در خصوص I/O in Linux می توانید خطای های استاندارد را با استفاده از یک توصیفگر فایل و یا عددی که مخفف یکی از اشکال استاندارد ورودی و خروجی است تغییر مسیر دهید. با توصیفگر های فایل، ۰ ورودی استاندارد، ۱ خروجی استاندارد و ۲ خطای استاندارد است. در تمامی مراحل استفاده I/O in Linux برای خلاص شدن از شر خطاها، هدایت خطای استاندارد به /dev/null مفید خواهد بود:
میتوانید خروجی و ورودی استاندارد را بهطور همزمان با &> تغییر مسیر دهید، که در صورت نیاز به ارسال ایمیل یا ایجاد یک پست در تالار گفتگو در مورد مشکلی که با یک برنامه دارید، بسیار مفید خواهد بود:
linux_command &> file
یادگیری کار با خط فرمان لینوکس می تواند در کنار کارایی بی نظیر آن برای مشاغلی که در حوزه فناوری اطلاعات و توسعه نرم افزار برای هر کاربر غیر تخصصی کامپیوتر که علاقه به دانستن بیشتر در خصوص آن دارد جذاب و کاربردی باشد.
برای دانستن بیشتر در خصوص موضوع I/O in Linux و بسیاری موضوعات دیگر می توانید کتاب زیر را لینک زیر دانلود نمایید:
William E. Shotts, Jr. – The Linux Command Line_ A Complete Introduction-No Starch Press (2012)