دستور fg در لینوکس
در این بخش به بررسی دستور fg در لینوکس می پردازیم، لینوکس به عنوان یکی از محبوبترین سیستمعاملهای متنباز، قابلیتهای متعددی برای مدیریت فرآیندها (Processes) ارائه میدهد. یکی از مهمترین این قابلیتها، مدیریت فرآیندها در حالتهای پیشزمینه (Foreground) و پسزمینه (Background) است. هنگامی که کاربری با دستورات مختلف در لینوکس کار میکند، امکان دارد نیاز داشته باشد که برخی از فرآیندها را از حالت پسزمینه به پیشزمینه بیاورد تا بتواند کنترل کامل آن فرآیند را به دست گیرد. در چنین شرایطی، دستور fg به کار میآید.
دستور fg در لینوکس به کاربر این امکان را میدهد تا فرآیندهای پسزمینه یا متوقفشده را به حالت پیشزمینه بازگرداند و به صورت مستقیم با آنها تعامل کند. این دستور برای کاربرانی که به مدیریت همزمان چندین فرآیند نیاز دارند بسیار کاربردی است. در این مقاله، به بررسی عمیق و جامع دستور fg، نحوه عملکرد آن، و ارائه مثالهایی عملی خواهیم پرداخت.
فرآیندهای پیشزمینه و پسزمینه در لینوکس
قبل از پرداختن به جزئیات دستور fg، لازم است تفاوت بین فرآیندهای پیشزمینه و پسزمینه را در لینوکس مرور کنیم. فرآیندهای پیشزمینه، همان فرآیندهایی هستند که به طور مستقیم در ترمینال اجرا میشوند و تا زمانی که به پایان نرسند، کاربر نمیتواند دستور دیگری را اجرا کند. در این حالت، فرآیند به طور کامل کنترل ترمینال را در اختیار دارد.
از طرف دیگر، فرآیندهای پسزمینه، فرآیندهایی هستند که بدون اشغال کردن ترمینال به کار خود ادامه میدهند و به کاربر اجازه میدهند تا دستورات دیگر را همزمان اجرا کند. این ویژگی به کاربران این امکان را میدهد که چندین کار را به طور همزمان انجام دهند. دستور fg در مواقعی که کاربر نیاز به بازگرداندن کنترل یک فرآیند پسزمینه به پیشزمینه دارد، به کار میآید.
متوقف کردن فرآیندها و اجرای آنها در پسزمینه
قبل از اینکه فرآیندی را به پیشزمینه بیاورید، لازم است بدانید چگونه فرآیندها را به حالت پسزمینه منتقل کنید یا متوقف کنید. یکی از روشهای ساده متوقف کردن یک فرآیند در حال اجرا استفاده از ترکیب کلیدهای Ctrl + Z است. این ترکیب باعث میشود فرآیند متوقف (Stopped) شود. به عنوان مثال:
ping google.com
Ctrl + Zبا این کار، فرآیند ping متوقف میشود. سپس میتوان با استفاده از دستور bg آن فرآیند را به پسزمینه فرستاد:
bgحال اگر بخواهید این فرآیند را مجدداً به پیشزمینه بازگردانید، از دستور fg استفاده خواهید کرد.
دستور fg در لینوکس چیست؟
دستور fg (که مخفف Foreground است) در لینوکس برای بازگرداندن یک فرآیند متوقف شده یا در حال اجرا در پسزمینه به پیشزمینه به کار میرود. با استفاده از این دستور، فرآیند به پیشزمینه باز میگردد و کنترل کامل ترمینال به آن فرآیند اختصاص مییابد.
نحوه استفاده از دستور fg
برای استفاده از دستور fg، تنها کافی است آن را بدون هیچ آرگومانی اجرا کنید. این دستور آخرین فرآیند متوقف شده یا پسزمینه را به پیشزمینه بازمیگرداند. به عنوان مثال:
fgاین دستور، آخرین فرآیند متوقف شده را به پیشزمینه منتقل کرده و آن را ادامه میدهد. اگر چندین فرآیند متوقف شده دارید، میتوانید با مشخص کردن شماره فرآیند (job number) فرآیند خاصی را به پیشزمینه منتقل کنید.
مشاهده فرآیندهای متوقفشده و در پسزمینه
برای مشاهده لیست فرآیندهای متوقف شده یا در پسزمینه، میتوانید از دستور jobs استفاده کنید. این دستور فهرستی از فرآیندهایی که در حال حاضر در پسزمینه اجرا میشوند یا متوقف شدهاند را نمایش میدهد. به عنوان مثال:
jobsنتیجه این دستور ممکن است چیزی مشابه زیر باشد:
[1]+ Stopped ping google.com
[2]- Running top &در اینجا، دو فرآیند در حال اجرا و متوقف شده وجود دارند. فرآیند شماره 1 متوقف شده است، و فرآیند شماره 2 در پسزمینه اجرا میشود. شما میتوانید هر یک از این فرآیندها را با استفاده از دستور fg به پیشزمینه بازگردانید.
استفاده از fg با شماره فرآیند
اگر چندین فرآیند متوقف شده دارید و میخواهید فرآیند خاصی را به پیشزمینه منتقل کنید، باید از شماره فرآیند یا job number استفاده کنید. برای این کار، ابتدا شماره فرآیند مورد نظر را با استفاده از دستور jobs پیدا کنید و سپس با استفاده از fg آن فرآیند را به پیشزمینه ببرید:
fg %1در این مثال، فرآیند شماره 1 که با دستور jobs مشخص شده است، به پیشزمینه منتقل میشود.
مثالهای کاربردی دستور fg
مثال ۱: مدیریت چندین فرآیند
فرض کنید شما در حال اجرای چندین برنامه در ترمینال هستید و نیاز دارید که یکی از این برنامهها را موقتاً متوقف کنید و سپس دوباره به آن بازگردید. برای این کار، ابتدا برنامه را اجرا کرده و سپس با استفاده از Ctrl + Z آن را متوقف کنید:
nano file.txt
Ctrl + Zسپس میتوانید با استفاده از دستور fg به آن برنامه بازگردید:
fgبا این دستور، برنامه nano به پیشزمینه بازمیگردد و شما میتوانید به ویرایش فایل ادامه دهید.
مثال ۲: بازگرداندن یک فرآیند خاص به پیشزمینه
مثال ۳: بازگرداندن فرآیندهای متوقفشده پس از ریستارت
یکی از کاربردهای جالب دستور fg زمانی است که پس از متوقف کردن فرآیندها، سیستم ریستارت میشود و فرآیندها همچنان متوقف میمانند. در این شرایط، میتوانید با دستور jobs وضعیت فرآیندهای متوقف شده را مشاهده کرده و با استفاده از fg فرآیندهای مورد نظر را به پیشزمینه بازگردانید.
تفاوت دستور fg و bg
در حالی که دستور fg فرآیند متوقف شده یا در پسزمینه را به پیشزمینه منتقل میکند، دستور bg برای ادامه دادن یک فرآیند متوقف شده در پسزمینه به کار میرود. به طور خلاصه، fg فرآیند را به پیشزمینه آورده و کنترل کامل آن را به ترمینال میدهد، در حالی که bg تنها فرآیند را بدون اشغال ترمینال به پسزمینه میفرستد.
مثال: استفاده همزمان از fg و bg
فرض کنید برنامهای را متوقف کردهاید و حالا میخواهید آن را در پسزمینه اجرا کنید. ابتدا با Ctrl + Z برنامه را متوقف میکنید، سپس با استفاده از bg آن را به پسزمینه میفرستید:
Ctrl + Z
bgاکنون اگر بخواهید دوباره به فرآیند دسترسی پیدا کنید و آن را به پیشزمینه بیاورید، از دستور fg استفاده میکنید:
fgدستور fg یکی از ابزارهای مهم در مدیریت فرآیندهای لینوکسی است که به کاربران این امکان را میدهد تا فرآیندهای متوقف شده یا در پسزمینه را به پیشزمینه منتقل کنند. با استفاده از این دستور، کاربران میتوانند کنترل کاملی بر روی فرآیندها داشته باشند و در صورت نیاز، آنها را به صورت مستقیم مدیریت کنند. آشنایی با دستور fg و تفاوت آن با bg برای کاربران حرفهای لینوکس ضروری است و به بهبود بهرهوری و مدیریت بهتر فرآیندها کمک میکند.
منابع
- Official GNU Documentation
- Linux man page for fg command
- Linux Process Management
آیا این مطلب برای شما مفید بود ؟



