.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "FISH-DOC" "1" "Sep 07, 2026" "4.9" "fish-shell" .SH "نام (NAME)" fish\-doc \- مستندات و راهنمای جامع پوسته فیش .SH "توضیحات (DESCRIPTION)" این سند راهنما و مستندات مربوط به .B fish (پوسته تعاملی و کاربرپسند) است. .sp پوسته برنامه‌ای است که با اجرای برنامه‌های دیگر به شما در کاربری رایانه کمک می‌کند. .B fish رابط خط فرمانی با تمرکز بر کاربردپذیری و تعامل آسان ارائه می‌دهد. .sp برخی از ویژگی‌های برجسته fish عبارتند از: .INDENT 0.0 .IP \(bu 2 \fBرابط کاربری پیشرفته\fP: برجسته‌سازی نحو (Syntax highlighting)، پیشنهادهای خودکار (Autosuggestions)، تکمیل خودکار با کلید تب (Tab completion) و فهرست‌های انتخابی قابل پیمایش و فیلتر. .IP \(bu 2 \fBبدون نیاز به پیکربندی اولیه\fP: fish به گونه‌ای طراحی شده است که بلافاصله پس از نصب و بدون نیاز به پیکربندی‌های پیچیده آماده استفاده باشد. .IP \(bu 2 \fBاسکریپت‌نویسی آسان\fP: امکان تعریف توابع جدید به‌سرعت و در لحظه فراهم است. نحو آن برای یادگیری و استفاده بسیار ساده است. .UNINDENT .sp این صفحه نحوه نصب، راه‌اندازی و پیکربندی fish و همچنین مراجع دریافت اطلاعات بیشتر را شرح می‌دهد. .SH "از کجا شروع کنیم؟ (WHERE TO GO?)" .sp اگر برای نخستین بار است که از fish استفاده می‌کنید، راهنمای آموزشی را در .BR fish\-tutorial (1) مشاهده کنید. .sp اگر پیش‌تر با پوسته‌های دیگری چون bash کار کرده‌اید و مایل به بررسی تفاوت‌های اسکریپت‌نویسی هستید، به .BR fish\-for\-bash\-users (1) مراجعه فرمایید. .sp برای مرور کلی زبان اسکریپت‌نویسی fish، به .BR fish\-language (1) نگاه کنید؛ تمامی موارد مورد نیاز برای فایل‌های اسکریپت در آنجا گردآوری شده است. .sp جهت کسب اطلاعات درباره کاربرد تعاملی fish، به .BR fish\-interactive (1) مراجعه کنید که مباحثی چون کلیدهای میانبر، برجسته‌سازی نحو و سایر قابلیت‌های نشست تعاملی پایانه را پوشش می‌دهد. .sp چنانچه ابتدا نیازمند نصب fish هستید، ادامه این سند چگونگی دریافت، نصب و پیکربندی fish را بیان می‌کند. .SH "راه‌اندازی و نصب (SETUP)" .sp این بخش نحوه نصب، حذف، شروع و خروج از .B fish را شرح می‌دهد. همچنین روش تعیین fish به عنوان پوسته پیش‌فرض بررسی شده است. .SS "نصب (Installation)" .sp دستورالعمل‌های به‌روز برای نصب جدیدترین نسخه fish در وبگاه رسمی پروژه در دسترس است: .sp جهت نصب نسخه توسعه fish، راهنمای مخزن گیت‌هاب پروژه را مشاهده کنید: .SS "شروع و خروج (Starting and Exiting)" .sp پس از نصب fish، یک پایانه باز کنید. اگر fish پوسته پیش‌فرض شما نیست: .INDENT 0.0 .IP \(bu 2 عبارت \fBfish\fP را برای شروع پوسته وارد کنید: .INDENT 2.0 .INDENT 3.5 .sp .EX > fish .EE .UNINDENT .UNINDENT .IP \(bu 2 عبارت \fBexit\fP را برای پایان نشست تایپ کنید: .INDENT 2.0 .INDENT 3.5 .sp .EX > exit .EE .UNINDENT .UNINDENT .UNINDENT .SS "پوسته پیش‌فرض (Default Shell)" .sp روش‌های متعددی برای تغییر پوسته پیش‌فرض به fish (یا هر پوسته دیگر) وجود دارد. .sp ساده‌ترین روش این است که شبیه‌ساز پایانه خود (مانند GNOME Terminal، Konsole یا Terminal.app) را طوری تنظیم کنید که مستقیماً fish را اجرا کند. وارد بخش تنظیمات شبیه‌ساز پایانه شوید و برنامه شروع را بر روی \fB/usr/local/bin/fish\fP یا \fB/usr/bin/fish\fP قرار دهید (مسیر دقیق به شیوه نصب fish بستگی دارد). .sp همچنین می‌توانید fish را به‌عنوان پوسته ورود (login shell) خود تنظیم نمایید تا در تمام ورودهای پایانه، از جمله اتصالات SSH، اجرا شود. .sp \fBهشدار:\fP .INDENT 0.0 .INDENT 3.5 تنظیم fish به عنوان پوسته ورود ممکن است مشکلاتی نظیر نادرست بودن متغیر \fBPATH\fP ایجاد کند. برخی سیستم‌عامل‌ها، از جمله شماری از توزیع‌های لینوکس، نیازمند آن هستند که پوسته ورود با Bourne سازگار باشد و فایل‌های پیکربندی را از \fB/etc/profile\fP بخواند. ممکن است fish برای ایفای نقش پوسته ورود روی این سیستم‌ها مناسب نباشد. .UNINDENT .UNINDENT .sp برای تغییر دادن پوسته ورود به fish: .INDENT 0.0 .IP 1. 3 پوسته را به \fB/etc/shells\fP بیفزایید: .INDENT 3.0 .INDENT 3.5 .sp .EX > command \-v fish | sudo tee \-a /etc/shells .EE .UNINDENT .UNINDENT .IP 2. 3 پوسته پیش‌فرض خود را تغییر دهید: .INDENT 3.0 .INDENT 3.5 .sp .EX > chsh \-s "$(command \-v fish)" .EE .UNINDENT .UNINDENT .UNINDENT .sp برای بازگرداندن پوسته به حالت قبل، در دستور بالا نام \fBfish\fP را با \fBbash\fP، \fBtcsh\fP یا \fBzsh\fP جایگزین نمایید. .SS "حذف (Uninstalling)" .sp جهت حذف fish، به پرسش‌های متداول در .BR fish\-faq (1) مراجعه کنید. .SS "خط شِبَنگ (Shebang Line)" .sp از آنجا که اسکریپت‌های پوسته به زبان‌های متفاوتی نوشته می‌شوند، باید مشخص کنند که کدام مفسر برای اجرای آن‌ها استفاده شود. به این منظور، نخستین خط آن‌ها خط شِبَنگ (Shebang) است که فایل اجرایی مفسر را تعیین می‌کند. .sp اسکریپتی که در \fBbash\fP نوشته شده است به خط نخستینی بدین صورت نیاز دارد: .INDENT 0.0 .INDENT 3.5 .sp .EX #!/bin/bash .EE .UNINDENT .UNINDENT .sp هنگامی که پوسته به هسته سیستم دستور اجرای فایل را می‌دهد، از مفسر \fB/bin/bash\fP استفاده خواهد شد. .sp برای اسکریپتی که به زبان دیگر نوشته شده است، کافی است \fB/bin/bash\fP را با مفسر آن زبان جایگزین کنید؛ به عنوان نمونه: \fB/usr/bin/python\fP برای اسکریپت پایتون، یا \fB/usr/bin/fish\fP برای اسکریپت fish. .sp اگر مایلید اسکریپت خود را با دیگران به اشتراک بگذارید، پیشنهاد می‌شود از دستور \fBenv\fP استفاده کنید تا مفسر در مکان‌های نصب مختلف نیز به درستی اجرا شود؛ به عنوان مثال: .INDENT 0.0 .INDENT 3.5 .sp .EX #!/usr/bin/env fish echo Hello from fish $version .EE .UNINDENT .UNINDENT .sp این دستور برنامه \fBenv\fP را فراخوانی می‌کند که مسیرهای متغیر محیطی \fBPATH\fP را برای یافتن برنامه‌ای به نام \(dqfish\(dq جستجو می‌نماید. در نتیجه تفاوتی ندارد که fish در \fB/usr/local/bin/fish\fP، \fB/usr/bin/fish\fP یا \fB~/.local/bin/fish\fP نصب شده باشد؛ تا زمانی که آن پوشه در \fBPATH\fP وجود داشته باشد، اسکریپت به درستی کار خواهد کرد. .sp خط شبنگ تنها زمانی استفاده می‌شود که اسکریپت‌ها بدون ذکر مفسر اجرا شوند. برای توابع درون fish یا هنگام اجرای اسکریپت با دستور \fBfish /path/to/script\fP نیازی به خط شبنگ نیست (گرچه درج آن مشکلی ایجاد نمی‌کند). .sp در زمان اجرای فایل‌های بدون مفسر، fish نیز مانند سایر پوسته‌ها، پوسته سیستمی معمولاً \fB/bin/sh\fP را فراخوانی می‌کند. این ویژگی به این دلیل لازم است که برخی اسکریپت‌ها فاقد خط شبنگ ارائه می‌شوند. .SH "پیکربندی (CONFIGURATION)" .sp جهت ذخیره پیکربندی‌های سفارشی، آن‌ها را در فایلی به نام \fB~/.config/fish/config.fish\fP ذخیره نمایید. .sp اسکریپت‌های دارای پسوند \fB.fish\fP در پوشه \fB~/.config/fish/conf.d/\fP نیز پیش از \fBconfig.fish\fP به‌طور خودکار اجرا می‌شوند. .sp این فایل‌ها هنگام راه‌اندازی هر نشست پوسته، اعم از تعاملی یا ورود، خوانده می‌شوند. از دستورهای \fBstatus \-\-is\-interactive\fP و \fBstatus \-\-is\-login\fP برای انجام عملیات به ترتیب فقط در نشست‌های تعاملی یا نشست‌های ورود استفاده کنید. .sp اگر مایلید تغییرات اعمال‌شده خود را نسبت به مقادیر پیش‌فرض fish مشاهده کنید، به راهنمای \fBfish_delta\fP مراجعه نمایید. .SS "مثال‌ها (Examples)" .sp جهت افزودن مسیر \fB~/linux/bin\fP به متغیر محیطی PATH در نشست‌های ورود، خطوط زیر را به فایل \fB~/.config/fish/config.fish\fP بیفزایید: .INDENT 0.0 .INDENT 3.5 .sp .EX if status \-\-is\-login set \-gx PATH $PATH ~/linux/bin end .EE .UNINDENT .UNINDENT .sp این تنها یک مثال است؛ استفاده از دستور کمکی \fBfish_add_path\fP به‌صورت \fBfish_add_path ~/linux/bin\fP که مسیر را تنها در صورت عدم وجود قبلی اضافه می‌کند، بسیار ساده‌تر و بهینه‌تر خواهد بود. .sp برای اجرای دستورات هنگام خروج، از یک گرداننده رویداد (Event Handler) که با رویداد خروج پوسته برانگیخته می‌شود استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX function on_exit \-\-on\-event fish_exit echo fish is now exiting end .EE .UNINDENT .UNINDENT .SH "منابع (RESOURCES)" .INDENT 0.0 .IP \(bu 2 صفحه پروژه در مخزن گیت‌هاب: .IP \(bu 2 اتاق گفتگوی رسمی در شبکه ماتریکس: .IP \(bu 2 فهرست پستی رسمی کاربران: .UNINDENT .sp اگر پیشنهاد یا بهبودی برای پوسته fish دارید، می‌توانید آن را از طریق مخزن گیت‌هاب پروژه ارسال کنید. .SH "سایر صفحات راهنما (OTHER HELP PAGES)" .sp مستندات کامل پوسته fish شامل بخش‌های تخصصی گوناگونی است که هر یک در صفحه راهنمای اختصاصی خود مستند شده‌اند: .INDENT 0.0 .IP \(bu 2 .BR fish (1) \- مرجع فراخوانی، گزینه‌های خط فرمان و حالت‌های اجرایی پوسته fish .IP \(bu 2 .BR fish\-tutorial (1) \- راهنمای آموزشی گام‌به‌گام برای تازه‌کاران .IP \(bu 2 .BR fish\-faq (1) \- پرسش‌های پرتکرار، تنظیم متغیرها، پرامپت و ترفندهای کاربردی .IP \(bu 2 .BR fish\-for\-bash\-users (1) \- مقایسه جامع تفاوت‌های نحو و سازوکارهای fish در مقایسه با bash .IP \(bu 2 .BR fish\-interactive (1) \- ویژگی‌های نشست‌های تعاملی، میانبرهای صفحه‌کلید، تکمیل خودکار و رنگ‌بندی .IP \(bu 2 .BR fish\-language (1) \- دستور زبان، توابع، حلقه‌ها، شرط‌ها و اصول اسکریپت‌نویسی در fish .IP \(bu 2 .BR fish_indent (1) \- ابزار قالب‌بندی و تورفتگی خودکار کدهای fish .IP \(bu 2 .BR fish_key_reader (1) \- ابزار شناسایی و خواندن کدهای کلیدهای فشرده‌شده در پایانه .UNINDENT .sp همچنین راهنمای کلیه دستورات توکار (Builtin Commands) به‌صورت صفحات مجزای بخش 1 در دسترس هستند (مانند .BR set (1) , .BR status (1) , .BR test (1) , .BR string (1) و غیره). .SH "همچنین ببینید (SEE ALSO)" .sp .BR fish (1) , .BR fish\-tutorial (1) , .BR fish\-faq (1) , .BR fish\-for\-bash\-users (1) , .BR fish\-interactive (1) , .BR fish\-language (1) , .BR fish_indent (1) , .BR fish_key_reader (1) .sp مستندات وب کامل: .SH "نویسندگان (AUTHORS)" .sp توسعه‌دهندگان پوسته fish (fish\-shell developers). .SH "حق نشر (COPYRIGHT)" .sp 2026, fish\-shell developers. تحت مجوز عمومی گنو (GNU General Public License). .\" End of generated man page.