| FISH(1) | fish-shell | FISH(1) |
نام (NAME)
fish - پوسته تعاملی و کاربرپسند خط فرمان
خلاصه دستور (SYNOPSIS)
fish [گزینهها] [پرونده [آرگومان ...]] fish [گزینهها] [-c دستور [آرگومان ...]]
توضیحات (DESCRIPTION)
fish یک پوسته خط فرمان است که عمدتاً با تمرکز بر استفاده تعاملی طراحی و نوشته شده است. این صفحه بهطور خلاصه گزینههای مربوط به فراخوانی fish را شرح میدهد. راهنمای کامل از طریق دستور help درون fish بهصورت HTML و همچنین در صفحه راهنمای fish-doc(1) در دسترس است. آموزش گامبهگام بهصورت HTML از طریق help tutorial یا در man fish-tutorial در دسترس قرار دارد.
گزینهها (OPTIONS)
گزینههای زیر در دسترس هستند:
- -c یا --command=COMMAND
- دستورات مشخصشده را بهجای خواندن از خط فرمان ارزیابی و اجرا میکند. هرگونه آرگومان موضعی اضافی بهعنوان $argv استفاده میشود.
- -C یا --init-command=COMMANDS
- دستورات مشخصشده را پس از خواندن فایلهای پیکربندی، اما پیش از اجرای دستور تعیینشده با -c یا دریافت ورودی تعاملی، ارزیابی و اجرا میکند.
- -d یا --debug=DEBUG_CATEGORIES
- خروجی اشکالزدایی (دیباگ) را فعال کرده و یک الگو برای تطبیق دستهبندیهای اشکالزدایی مشخص میکند. برای جزئیات بیشتر به بخش اشکالزدایی در ادامه مراجعه کنید.
- -o یا --debug-output=DEBUG_FILE
- مسیر فایلی را برای دریافت خروجی اشکالزدایی، از جمله دستهبندیها و fish_trace، تعیین میکند. پیشفرض خروجی خطای استاندارد (stderr) است.
- -i یا --interactive
- پوسته بهصورت تعاملی اجرا میشود.
- -l یا --login
- طوری عمل میکند که گویی بهعنوان یک پوسته ورود (login shell) فراخوانی شده است.
- -N یا --no-config
- فایلهای پیکربندی را نمیخواند.
- -n یا --no-execute
- هیچ دستوری را اجرا نمیکند؛ تنها بررسی درستی نحو (syntax checking) را انجام میدهد.
- -p یا --profile=PROFILE_FILE
- هنگام خروج fish، اطلاعات زمانبندی تمام دستورات اجراشده را در فایل مشخصشده ذخیره میکند. این زمان شامل زمان صرفشده برای راهاندازی اولیه و خواندن پیکربندی نمیشود.
- --profile-startup=PROFILE_FILE
- زمانبندی مربوط به راهاندازی اولیه fish را در فایل مشخصشده ذخیره میکند.
- -P یا --private
- حالت خصوصی را فعال میکند: fish به تاریخچه پیشین دسترسی نخواهد داشت و تاریخچه جدیدی را نیز ذخیره نمیکند.
- --print-rusage-self
- هنگام خروج fish، آمار مصرف منابع سیستم را از getrusage چاپ میکند.
- --print-debug-categories
- تمام دستهبندیهای اشکالزدایی را چاپ کرده و سپس خارج میشود.
- -v یا --version
- نسخه برنامه را چاپ کرده و خارج میشود.
- -f یا --features=FEATURES
- یک یا چند نشانگر ویژگی (feature flag) که با کاما از هم جدا شدهاند را فعال میکند.
وضعیت خروج (exit status) پوسته fish بهطور کلی برابر با وضعیت خروج آخرین دستور پیشزمینه است.
اشکالزدایی (DEBUGGING)
اگرچه fish پشتیبانی گستردهای برای اشکالزدایی اسکریپتهای fish فراهم میکند، امکان اشکالزدایی و بررسی سازوکارهای داخلی آن نیز وجود دارد. اشکالزدایی را میتوان با استفاده از گزینه --debug فعال کرد. بهعنوان مثال، دستور زیر علاوه بر دستهبندیهای پیشفرض یعنی debug، error، warning و warning-path، اشکالزدایی مربوط به رویدادهای رشتههای ورودی/خروجی پسزمینه (background IO thread) را فعال میکند:
> fish --debug=iothread
دستهبندیهای در دسترس با دستور fish --print-debug-categories فهرست میشوند. گزینه --debug فهرستی از دستهبندیها را که با کاما از هم جدا شدهاند میپذیرد و از نحو الگو (glob) پشتیبانی میکند. دستور زیر اشکالزدایی برای complete، history، history-file و profile-history را به همراه دستهبندیهای پیشفرض فعال میکند:
> fish --debug='complete,*history*'
پیامهای اشکالزدایی بهطور پیشفرض در stderr چاپ میشوند. توجه داشته باشید در صورتی که fish_trace تنظیم شده باشد، ردگیری اجرای دستورات نیز بهطور پیشفرض در stderr خروجی داده میشود. با استفاده از گزینه --debug-output میتوانید این خروجی را در یک فایل ذخیره کنید:
> fish --debug='complete,*history*' --debug-output=/tmp/fish.log --init-command='set fish_trace on'
این گزینهها همچنین از طریق متغیرهای FISH_DEBUG و FISH_DEBUG_OUTPUT قابل تغییر هستند. دستهبندیهای فعالشده از طریق --debug به دستهبندیهای فعالشده توسط $FISH_DEBUG اضافه میشوند؛ بنابراین با قرار دادن پیشوند - در ابتدای آنها میتوان غیرفعالشان کرد (برای نمونه، reader-*,-ast* اشکالزدایی reader را فعال و اشکالزدایی ast را غیرفعال میکند).
فایل مشخصشده در --debug-output نسبت به فایل تعیینشده در FISH_DEBUG_OUTPUT اولویت دارد.
مثالها (EXAMPLES)
برای اجرای ساده fish:
fish
برای اجرای یک فایل اسکریپت با fish:
fish /path/to/script.fish
برای اجرای چند دستور با fish:
fish -c 'echo Hi there!'
همچنین میتوانید آرگومانهایی را به آن دستورات ارسال کنید:
> fish -c 'printf %s\n $argv' "first line" "second line" first line second line
برای اجرای یک اسکریپت پس از اجرای یک فایل اولیه:
fish --init-cmd "source otherfile" script.fish
برای پروفایلکردن زمان راهاندازی fish و پیدا کردن بخشی از پیکربندی که بیشترین زمان را میگیرد:
fish --profile-startup /tmp/start.prof -ic exit sort -nk2 /tmp/start.prof
همچنین ببینید (SEE ALSO)
fish-doc(1), fish-tutorial(1), fish-faq(1), fish-for-bash-users(1), fish-terminal-compatibility(1), fish_indent(1), fish_key_reader(1)
وبسایت رسمی: https://fishshell.com
حق نشر (COPYRIGHT)
توسعهدهندگان fish-shell
| September 7, 2026 | 4.9 |