- Created a new sitemap.xml file for better SEO. - Added a compressed version of the sitemap as sitemap.xml.gz. - Introduced extra.css for custom styles, including Persian font support (IRANSansX). - Defined font-face rules for regular and bold styles of IRANSansX. - Implemented various text styles and layout adjustments for better readability. - Enhanced Mermaid diagram styles to support Persian text rendering.
3.2 KiB
درسنامه ۱۰: استاندارد استریمها در لینوکس
آشنایی با سه جریان اصلی
برنامههای خط فرمان معمولاً با سه جریان ورودی/خروجی کار میکنند:
STDIN(Standard Input) با شمارهٔ فایل ۰، ورودی پیشفرض برنامه است که اغلب از صفحهکلید دریافت میشود.STDOUT(Standard Output) با شمارهٔ فایل ۱، خروجی معمولی برنامه است.STDERR(Standard Error) با شمارهٔ فایل ۲، پیامهای خطا و هشدار را نگه میدارد.
درک این جریانها کمک میکند رفتار برنامهها را بهتر کنترل کنید و خروجی مورد نیاز را به فایلها یا دستورات دیگر هدایت کنید.
تغییر مسیر خروجی
با عملگر > میتوان خروجی استاندارد را در فایل ذخیره کرد. اگر فایل موجود باشد بازنویسی میشود؛ برای افزودن به انتهای فایل از >> استفاده کنید.
$ ls > listing.txt
$ ls -a >> listing.txt
برای هدایت خروجی خطا به فایل دیگر از 2> استفاده کنید، زیرا عدد فایل ۲ نمایندهٔ STDERR است.
$ ls /nonexistent 2> errors.log
اگر میخواهید خروجی عادی و خطا در یک فایل قرار بگیرند، یکی را به دیگری هدایت کنید:
$ make > build.log 2>&1
تغییر مسیر ورودی
با استفاده از < میتوانید ورودی برنامه را از فایل تأمین کنید. برنامههای تعاملی که در حالت عادی منتظر تایپ کاربر هستند، در این حالت دادهها را از فایل میخوانند.
$ sort < unsorted-names.txt
این تکنیک در خودکارسازی فرایندها و تست برنامهها بسیار کاربردی است.
استفاده از tee برای تقسیم خروجی
دستور tee خروجی برنامه را همزمان روی صفحه نمایش میدهد و داخل فایل ذخیره میکند. این کار زمانی مفید است که بخواهید خروجی را در لحظه ببینید و نسخهٔ ثبتشده هم داشته باشید.
$ ls -l | tee listing.txt
گزینهٔ -a به tee میگوید که به انتهای فایل اضافه کند.
جمعبندی
- استریمها واحدهای پایهٔ انتقال داده هستند؛ با شناخت آنها رفتار برنامههای خط فرمان قابل پیشبینی میشود.
- ترکیب درست عملگرهای تغییر مسیر (
>,>>,<,2>,&>) به شما اجازه میدهد خروجیها را جدا کنید، ذخیره کنید یا به برنامههای دیگر بدهید. - حتی در اسکریپتهای پیچیده، این اصول ساده به شما کمک میکنند خطاها را ثبت و فرایندها را عیبیابی کنید.