دستور shopt در لینوکس
در این بخش به بررسی دستور shopt در لینوکس می پردازیم، در سیستمعاملهای مبتنی بر لینوکس و بهطور خاص در محیطهای شل (Shell)، کاربران برای مدیریت تنظیمات و بهینهسازی رفتار شل از ابزارهای مختلفی استفاده میکنند. یکی از این ابزارها، دستور shopt
است که در شل Bash کاربرد گستردهای دارد. این دستور به کاربران اجازه میدهد تا ویژگیها و گزینههای متعددی را برای مدیریت رفتار شل فعال یا غیرفعال کنند. اگر شما با Bash کار میکنید و به دنبال بهینهسازی و شخصیسازی بیشتر محیط کاری خود هستید، آشنایی با دستور shopt
میتواند به شما کمک کند تا بسیاری از عملکردهای پیشفرض شل را تغییر دهید و به نحو بهتری از آن بهرهبرداری کنید.
در این مقاله، بهطور جامع به بررسی دستور shopt
خواهیم پرداخت. ابتدا با اصول و کاربردهای آن آشنا میشویم و سپس به معرفی ویژگیهای مختلفی که این دستور مدیریت میکند میپردازیم. همچنین نمونه کدها و مثالهای عملی ارائه میشود تا مفهوم هر ویژگی بهتر درک شود. در نهایت، این مقاله به شما کمک میکند تا از Bash بهصورت حرفهایتری استفاده کنید و تجربه کاری خود را بهینهتر کنید.
دستور shopt در لینوکس چیست؟
shopt
مخفف “shell options” است و به عنوان یک ابزار داخلی در Bash استفاده میشود. این دستور به کاربران اجازه میدهد تا مجموعهای از گزینهها و تنظیمات مربوط به رفتار Bash را فعال یا غیرفعال کنند. این گزینهها تأثیر مستقیمی بر نحوه تعامل شما با Bash و نحوه اجرای دستورات در شل دارند.
دستور shopt
میتواند گزینههای مربوط به تکمیل دستورات، مدیریت فایلها، دسترسی به تاریخچه دستورات، و بسیاری از ویژگیهای دیگر را کنترل کند. با استفاده از این دستور، شما میتوانید تصمیم بگیرید که آیا برخی ویژگیهای Bash فعال باشند یا نه، و این به شما انعطافپذیری بالایی در تنظیم شل میدهد.
ساختار دستور shopt
ساختار کلی دستور shopt
به این صورت است:
shopt [گزینه] [ویژگی]
- [گزینه]: میتواند شامل
-s
(برای فعال کردن یک ویژگی) یا-u
(برای غیرفعال کردن یک ویژگی) باشد. - [ویژگی]: نام ویژگی یا گزینهای است که قصد مدیریت آن را دارید.
برای مشاهده تمامی گزینهها و ویژگیهایی که میتوان با shopt
کنترل کرد، کافی است دستور زیر را اجرا کنید:
shopt
این دستور لیستی از ویژگیها را به همراه وضعیت فعلی آنها (فعال یا غیرفعال) نمایش میدهد.
فعالسازی و غیرفعالسازی ویژگیها
برای اینکه یک ویژگی خاص را فعال کنید، از گزینه -s
استفاده میشود. بهعنوان مثال، اگر بخواهید ویژگی nocaseglob
را فعال کنید که جستجوی فایلها را بدون حساسیت به حروف بزرگ و کوچک انجام میدهد، میتوانید دستور زیر را وارد کنید:
shopt -s nocaseglob
در مقابل، برای غیرفعال کردن یک ویژگی از گزینه -u
استفاده میشود. بهعنوان مثال، برای غیرفعال کردن همان ویژگی:
shopt -u nocaseglob
ویژگی nocaseglob
یکی از گزینههای محبوب Bash است که اجازه میدهد در هنگام استفاده از الگوهای تطبیق، حروف بزرگ و کوچک نادیده گرفته شوند.
ویژگیهای پرکاربرد در دستور shopt
۱. nocaseglob
همانطور که در مثال قبل اشاره شد، ویژگی nocaseglob
به شما اجازه میدهد تا در جستجوی فایلها، حساسیت به حروف بزرگ و کوچک نادیده گرفته شود. این ویژگی برای زمانی که قصد دارید فایلهایی با نامهای ترکیبی از حروف کوچک و بزرگ را پیدا کنید بسیار مفید است.
بهعنوان مثال، اگر این ویژگی فعال باشد:
shopt -s nocaseglob
سپس جستجوی زیر:
ls *.txt
میتواند تمامی فایلهای .txt
را بدون توجه به اینکه نام آنها شامل حروف بزرگ است یا نه، نمایش دهد.
۲. nullglob
ویژگی nullglob
زمانی مفید است که بخواهید الگوهای جستجویی که به هیچ فایلی مطابقت ندارند، حذف شوند و باعث بروز خطا نشوند. اگر این ویژگی فعال نباشد، و شما از الگویی استفاده کنید که به هیچ فایلی مطابقت ندارد، الگو به عنوان خود رشته در خروجی ظاهر میشود.
بهعنوان مثال، فرض کنید که این ویژگی غیرفعال است و شما از دستور زیر استفاده میکنید:
echo *.jpg
اگر هیچ فایل .jpg
وجود نداشته باشد، خروجی این دستور به شکل *.jpg
خواهد بود. اما اگر nullglob
فعال باشد:
shopt -s nullglob
در این صورت، خروجی دستور هیچ مقداری نخواهد بود و الگوی جستجو در خروجی ظاهر نمیشود.
۳. histappend
ویژگی histappend
تعیین میکند که آیا دستورات جدید به تاریخچه (History) شل اضافه شوند یا اینکه تاریخچه قدیمی با دستورات جدید جایگزین شود. با فعال کردن این گزینه، دستورات جدید به تاریخچه اضافه میشوند و تاریخچه قبلی نیز حفظ میشود.
برای فعال کردن این ویژگی:
shopt -s histappend
با فعال بودن این ویژگی، اگر شما چندین پنجره شل باز کنید، تاریخچه دستورات شما بین آنها یکپارچه خواهد بود و دستورات جدید در هر پنجره به تاریخچه کلی اضافه میشوند.
۴. dotglob
ویژگی dotglob
تعیین میکند که آیا فایلها و پوشههایی که نام آنها با نقطه (.
) شروع میشود (مانند فایلهای مخفی در لینوکس)، در جستجوها گنجانده شوند یا نه. بهطور پیشفرض، این فایلها در جستجوهای فایل نادیده گرفته میشوند.
برای فعال کردن این ویژگی:
shopt -s dotglob
پس از فعالسازی، زمانی که از الگوهای جستجو استفاده میکنید، فایلهای مخفی نیز نمایش داده میشوند.
۵. extglob
ویژگی extglob
امکان استفاده از الگوهای تطبیقی پیشرفتهتر را فراهم میکند. این ویژگی به شما اجازه میدهد تا از الگوهایی پیچیدهتر برای تطبیق فایلها استفاده کنید. به عنوان مثال، با فعال کردن این ویژگی میتوانید الگوهایی مانند @(pattern)
یا ?(pattern)
را برای تطبیق استفاده کنید.
برای فعال کردن این ویژگی:
shopt -s extglob
دستور shopt
یکی از ابزارهای کاربردی و انعطافپذیر در Bash است که به کاربران اجازه میدهد تا رفتار شل خود را بهطور دقیق کنترل و سفارشیسازی کنند. با استفاده از این دستور، میتوان عملکردهای مختلف شل را بهینهسازی کرد و تجربه کار با Bash را بهبود بخشید. با شناخت دقیق ویژگیهای shopt
و استفاده از آنها، شما میتوانید محیط کاری خود را به شکل بهتری تنظیم کنید و از Bash به شکلی حرفهایتر بهره ببرید.
منابع
- Bash Reference Manual
- Linux Command Line and Shell Scripting Bash
آیا این مطلب برای شما مفید بود ؟