إذا قمت بضبط سلوك Bash shell باستخدامه shopt
، فيمكنك التحكم في أكثر من 50 إعدادًا. سنوضح لك كيفية تصميم نظام Linux الخاص بك بالطريقة التي تريدها.
المتجر المدمج
يعد shopt
المضمن جزءًا من جميع إصدارات Bash shell ، لذلك لا داعي لتثبيت أي شيء. زاد عدد الخيارات المتاحة shopt
بشكل مطرد على مر السنين. لذلك ، كلما كان إصدار Bash لديك أقدم ، كلما كانت قائمة shopt
الخيارات أقصر .
إذا بدا أن هناك شيئًا لا يعمل على جهازك ، فتحقق من man
إدخال الصفحة لـ Bash وتحقق من توفر هذا الخيار في إصدارك من shopt
.
نحن نغطي جميع shopt
الخيارات أدناه. وصفنا أيضًا كيفية استخدامه ونشارك بعض الأمثلة. من هناك ، يمكنك التحقق من صفحة Bash man أو دليل GNU Bash المرجعي لمعرفة ما إذا كان أي من هذه الخيارات يبدو مفيدًا أو جذابًا.
shopt
يتم تمكين بعض الخيارات افتراضيًا وتشكل جزءًا من سلوك Bash الافتراضي. يمكنك تمكين shopt
خيار كتغيير قصير المدى إلى Bash. سيعود بعد ذلك إلى السلوك الافتراضي عند إغلاق الصدفة.
ومع ذلك ، إذا كنت تريد إتاحة سلوك معدل كلما قمت بتشغيل Bash shell ، فيمكنك إجراء التغييرات بشكل دائم.
خيارات shopt
يوجد 53 shopt
خيارًا. إذا كنت تستخدم shopt
الأمر بدون أي خيارات ، فإنه يسردها. إذا قمنا بتوجيه الإخراج من خلال wc
الأمر ، فسيحسب لنا الأسطر والكلمات والأحرف . نظرًا لأن كل shopt
خيار في السطر الخاص به ، فإن عدد الأسطر هو عدد الخيارات.
نكتب ما يلي:
shopt | wc
لرؤية جميع الخيارات ، يمكننا تمرير الإخراج عبر column
الأمر لعرض أسماء الخيارات في أعمدة ، أو يمكننا توجيهها إلى less
.
نكتب ما يلي:
shopt | column
العثور على shopt في دليل Linux
القسم الذي يناقش shopt
وخياراته موجود في قسم Bash في دليل Linux. يبلغ طول قسم Bash أكثر من 6000 سطر. يمكنك العثور على وصف shopt
مع الكثير من التمرير ، أو يمكنك فقط البحث عنه في الدليل.
للقيام بذلك ، افتح الدليل في قسم Bash:
man bash
في الدليل ، اضغط /
لبدء البحث. اكتب ما يلي ، ثم اضغط على Enter:
assoc_expand_once
shopt
ستظهر بداية قسم الخيار في man
النافذة.
ضبط وعدم ضبط الخيارات
لتعيين shopt
الخيارات وإلغاء ضبطها ، استخدم الأوامر التالية:
- -s : تعيين أو تمكين.
- -u : غير مضبوط أو تعطيل.
نظرًا لأن بعض الخيارات يتم تمكينها افتراضيًا ، فمن السهل أيضًا التحقق من الخيارات قيد التشغيل. يمكنك أن تفعل ذلك مع -s
و -u
الخيارات دون استخدام اسم الخيار. يؤدي هذا shopt
إلى سرد الخيارات التي يتم تشغيلها وإيقاف تشغيلها.
اكتب ما يلي:
shopt -s
shopt -u | column
يمكنك استخدام shopt
خيار بدون أوامر -s
أو -u
لرؤية حالة التشغيل أو الإيقاف لكل خيار.
على سبيل المثال ، يمكننا كتابة ما يلي للتحقق من إعداد histverify
الخيار:
shopt histverify
يمكننا كتابة ما يلي لضبطه على:
shopt -s histverify
بعد ذلك ، يمكننا كتابة ما يلي للتحقق منه مرة أخرى:
shopt histverify
و histverify
يتغير الخيار طريقة جانبا واحدا من history
يعمل الأوامر. عادةً ، إذا طلبت history
تكرار أمر من خلال الرجوع إليه بالرقم ، مثل !245
، يتم استرداد الأمر من محفوظات الأمر ويتم تنفيذه على الفور.
إذا كنت تفضل مراجعة أمر ما للتأكد من أنه الأمر الذي توقعته وقم بتحريره ، إذا لزم الأمر ، فاكتب ما يلي لتعيين shopt histverify
الخيار على تشغيل:
245
يتم استرداد الأمر وتقديمه في سطر الأوامر. يمكنك إما حذفه أو تحريره أو تنفيذه بالضغط على Enter.
خيار autocd
مع autocd
ضبط الخيار على تشغيل ، إذا قمت بكتابة اسم دليل في سطر الأوامر وضغطت على Enter ، فسيتم التعامل معه كما لو كنت قد كتبت cd
أمامه.
نكتب ما يلي لتشغيل autocd
الخيار:
shopt -s autocd
ثم نكتب اسم الدليل:
Documents
خيار cdspell
عند تشغيل cdspell
الخيار ، سيقوم Bash تلقائيًا بتصحيح الأخطاء الإملائية البسيطة والأخطاء المطبعية في أسماء الدلائل.
نكتب ما يلي لتعيين cdspell
الخيار:
shopt -s cdspell
لمحاولة التغيير إلى دليل بأحرف صغيرة يجب أن يحتوي على حرف أولي كبير ، نكتب ما يلي:
cd documents
بعد ذلك ، يمكننا كتابة ما يلي لتجربة اسم دليل يحتوي على حرف “t” إضافي في اسمه:
cd ../Picttures
يتغير Bash في كل دليل ، بغض النظر عن الأخطاء الإملائية.
خيار xpg_echo
عند ضبط xpg_echo
الخيار على تشغيل ، سيتبع أمر echo الأحرف التي تم تجاوزها ، مثل \n
السطر الجديد \t
وعلامة التبويب الأفقية.
أولاً ، نكتب ما يلي للتأكد من تعيين الخيار:
shopt -s xpg_echo
ثم ندرج \n
في سلسلة سنقوم بتمريرها إلى echo
:
echo "This is line one\nThis is line two"
يفرض حرف السطر الجديد المتسرب فاصل سطر في الإخراج.
ينتج عن ذلك نفس سلوك خيار -e
( تمكين تفسير الهروب ) echo
، ولكنه xpg_echo
يسمح له أن يكون الإجراء الافتراضي.
خيار dotglob
و dotglob
ينبغي أن يعامل الخيار مع قليل من الحذر. يسمح .
بتضمين الملفات والمجلدات التي تبدأ بنقطة ( ) في توسعات الاسم أو “globbing”. تسمى هذه “ملفات نقطية” أو “أدلة نقطية” وعادة ما تكون مخفية. و dotglob
يتجاهل الخيار النقطة في بداية أسمائهم.
أولاً ، سنقوم بالبحث عن الملفات أو الدلائل التي تنتهي بكلمة “geek” بكتابة ما يلي:
ls *geek
تم العثور على ملف واحد وسرده. بعد ذلك ، سنقوم بتشغيل dotglob
الخيار عن طريق كتابة ما يلي:
shopt -s dotglob
نصدر نفس ls
الأمر للبحث عن الملفات والمجلدات التي تنتهي بـ “geek”:
ls *geek
هذه المرة تم العثور على ملفين وإدراجهما ، أحدهما ملف نقطي. عليك أن تكون حذرا مع rm
و mv
عندما كنت قد حصلت على dotglob
مجموعة خيار جرا.
خيار nocaseglob
و nocaseglob
الخيار يشبه dotglob
الخيار، باستثناء nocaseglob
الخلافات الأسباب في رسائل العلوية والصغيرة في أسماء الملفات والدلائل لا يمكن تجاهله في التوسعات الاسم.
نكتب ما يلي للبحث عن الملفات أو الدلائل التي تبدأ بـ “كيف”:
ls how*
تم العثور على ملف واحد وسرده. نكتب ما يلي لتشغيل nocaseglob
الخيار:
shopt -s nocaseglob
ثم نكرر ls
الأمر:
ls how*
تم العثور على ملفين ، أحدهما يحتوي على أحرف كبيرة.
جعل التغييرات دائمة
ستستمر التغييرات التي أجريناها فقط حتى نغلق غلاف Bash الحالي. لجعلها دائمة عبر جلسات شل المختلفة ، نحتاج إلى إضافتها إلى ملف “.bashrc” الخاص بنا.
في الدليل الرئيسي ، اكتب الأمر التالي لفتح ملف “.bashrc” في محرر نصوص Gedit الرسومي (أو قم بتغييره وفقًا للمحرر الذي تفضله):
gedit .bashrc
و gedit
سيفتح محرر مع ملف “.bashrc” تحميل. سترى بعض shopt
الإدخالات موجودة بالفعل فيه.
يمكنك إضافة خياراتك الخاصة shopt
هنا أيضًا. عند إضافتها ، احفظ التغييرات وأغلق المحرر. الآن ، عندما تفتح Bash shell جديدًا ، سيتم تعيين خياراتك لك.
خيارات بقدر ما تراه العين
صحيح أن shopt
الأمر يحتوي على الكثير من الخيارات ، لكن لا يتعين عليك التعامل معها جميعًا مرة واحدة ، إن وجدت. نظرًا لوجود الكثير ، فمن المحتمل أن يكون هناك البعض الذي لن يهمك.
على سبيل المثال ، هناك مجموعة تجبر Bash على العمل بطرق متوافقة مع إصدارات معينة أقدم. قد يكون هذا مفيدًا لشخص ما ، لكنها حالة مناسبة إلى حد ما.