99fb7f0e82
- 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.
54 lines
3.2 KiB
Markdown
54 lines
3.2 KiB
Markdown
# درسنامه ۱۰: استاندارد استریمها در لینوکس
|
|
|
|
## آشنایی با سه جریان اصلی
|
|
برنامههای خط فرمان معمولاً با سه جریان ورودی/خروجی کار میکنند:
|
|
|
|
- `STDIN` (Standard Input) با شمارهٔ فایل ۰، ورودی پیشفرض برنامه است که اغلب از صفحهکلید دریافت میشود.
|
|
- `STDOUT` (Standard Output) با شمارهٔ فایل ۱، خروجی معمولی برنامه است.
|
|
- `STDERR` (Standard Error) با شمارهٔ فایل ۲، پیامهای خطا و هشدار را نگه میدارد.
|
|
|
|
درک این جریانها کمک میکند رفتار برنامهها را بهتر کنترل کنید و خروجی مورد نیاز را به فایلها یا دستورات دیگر هدایت کنید.
|
|
|
|
## تغییر مسیر خروجی
|
|
با عملگر `>` میتوان خروجی استاندارد را در فایل ذخیره کرد. اگر فایل موجود باشد بازنویسی میشود؛ برای افزودن به انتهای فایل از `>>` استفاده کنید.
|
|
|
|
```bash
|
|
$ ls > listing.txt
|
|
$ ls -a >> listing.txt
|
|
```
|
|
|
|
برای هدایت خروجی خطا به فایل دیگر از `2>` استفاده کنید، زیرا عدد فایل ۲ نمایندهٔ `STDERR` است.
|
|
|
|
```bash
|
|
$ ls /nonexistent 2> errors.log
|
|
```
|
|
|
|
اگر میخواهید خروجی عادی و خطا در یک فایل قرار بگیرند، یکی را به دیگری هدایت کنید:
|
|
|
|
```bash
|
|
$ make > build.log 2>&1
|
|
```
|
|
|
|
## تغییر مسیر ورودی
|
|
با استفاده از `<` میتوانید ورودی برنامه را از فایل تأمین کنید. برنامههای تعاملی که در حالت عادی منتظر تایپ کاربر هستند، در این حالت دادهها را از فایل میخوانند.
|
|
|
|
```bash
|
|
$ sort < unsorted-names.txt
|
|
```
|
|
|
|
این تکنیک در خودکارسازی فرایندها و تست برنامهها بسیار کاربردی است.
|
|
|
|
## استفاده از `tee` برای تقسیم خروجی
|
|
دستور `tee` خروجی برنامه را همزمان روی صفحه نمایش میدهد و داخل فایل ذخیره میکند. این کار زمانی مفید است که بخواهید خروجی را در لحظه ببینید و نسخهٔ ثبتشده هم داشته باشید.
|
|
|
|
```bash
|
|
$ ls -l | tee listing.txt
|
|
```
|
|
|
|
گزینهٔ `-a` به `tee` میگوید که به انتهای فایل اضافه کند.
|
|
|
|
## جمعبندی
|
|
- استریمها واحدهای پایهٔ انتقال داده هستند؛ با شناخت آنها رفتار برنامههای خط فرمان قابل پیشبینی میشود.
|
|
- ترکیب درست عملگرهای تغییر مسیر (`>`, `>>`, `<`, `2>`, `&>`) به شما اجازه میدهد خروجیها را جدا کنید، ذخیره کنید یا به برنامههای دیگر بدهید.
|
|
- حتی در اسکریپتهای پیچیده، این اصول ساده به شما کمک میکنند خطاها را ثبت و فرایندها را عیبیابی کنید.
|