Files
khorasan-doc/docs/lesson10.md
T
nearology 99fb7f0e82 Add sitemap and styles for Persian font integration
- 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.
2026-04-28 15:27:18 +03:30

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>`, `&>`) به شما اجازه می‌دهد خروجی‌ها را جدا کنید، ذخیره کنید یا به برنامه‌های دیگر بدهید.
- حتی در اسکریپت‌های پیچیده، این اصول ساده به شما کمک می‌کنند خطاها را ثبت و فرایندها را عیب‌یابی کنید.