كيفية استخدام الأمر yes على نظام Linux
فاطماواتي أحمد زينوري / Shutterstock.com
يبدو الأمر 'نعم' بسيطًا جدًا بحيث لا يمكن استخدامه عمليًا ، ولكن في هذا البرنامج التعليمي ، سنعرض لك تطبيقه وكيفية الاستفادة من إيجابيته المكبوتة في Linux و macOS.
الأمر نعم
ال yes
يعد الأمر أحد أبسط الأوامر في Linux وغيره أنظمة تشغيل شبيهة بيونكس مثل macOS. وببساطة ، نعني البساطة في استخدامه وتنفيذه الأولي. الكود المصدري للإصدار الأصلي — تم إصداره في System 7 Unix ومن تأليفه كين طومسون —يمثل مجرد ستة أسطر من التعليمات البرمجية .
لكن لا تشطبها لكونها أمرًا بسيطًا. يمكن استخدامه ببعض الطرق الشيقة والمفيدة.
ماذا تفعل نعم؟
يتم استخدامه بدون أي معلمات سطر أوامر ، yes
يتصرف الأمر كما لو كنت تكتب y وتضغط على Enter ، مرارًا وتكرارًا (مرارًا وتكرارًا) مرة أخرى. سريع جدا. وسيستمر في القيام بذلك حتى تضغط على Ctrl + C لمقاطعته.
yes
في الحقيقة ، yes
يمكن استخدامها لتوليد أي رسالة تختارها بشكل متكرر. ما عليك سوى كتابة yes
، مسافة ، السلسلة التي ترغب في استخدامها ، ثم الضغط على Enter. غالبًا ما يستخدم هذا للتسبب في yes
لتوليد دفق إخراج من سلاسل نعم أو لا.
yes
yes
ولكن ما فائدة هذا؟
الإخراج من long_script.sh
يمكن نقلها إلى برامج أو نصوص أخرى.
هل هذا يبدو مألوفا؟ تبدأ عملية طويلة قيد التشغيل وتبتعد ، وتتركها تعمل. عندما تعود إلى جهاز الكمبيوتر الخاص بك ، فإن العملية لم تكتمل على الإطلاق. في غيابك طرح عليك سؤالاً وجلس بانتظار إجابة بنعم أو لا.
إذا كنت تعلم مسبقًا أن جميع إجاباتك ستكون إيجابية (نعم أو نعم) أو سلبية (لا أو لا) ، يمكنك استخدام chmod
لتقديم هذه الردود لك. ستستمر عمليتك الطويلة حتى الاكتمال دون مراقبة مع yes
تقديم إجابات لأية أسئلة تطرحها العملية.
باستخدام نعم مع البرامج النصية
انظر إلى نص Bash shell التالي. (نحتاج أن نتخيل أن هذا جزء من نص أكبر بكثير وسيستغرق وقتًا طويلاً للتشغيل).
yes
هذا السيناريو يطرح سؤالاً وينتظر الرد. يتم تحديد التدفق المنطقي داخل البرنامج النصي من خلال المدخلات من المستخدم.
- نعم أو ص يشير إلى استجابة إيجابية.
- أي مدخلات أخرى تعتبر استجابة سلبية.
- الضغط على Enter بدون إدخال نص لا يفعل شيئًا.
لاختبار ذلك ، انسخ البرنامج النصي إلى ملف واحفظه باسم yes
. استخدم yes
لجعلها قابلة للتنفيذ.
yes
الإعلانات قم بتشغيل البرنامج النصي باستخدام الأمر التالي. حاول تقديم نعم ، y وأي شيء آخر كمدخلات ، بما في ذلك الضغط على Enter بدون إدخال نص.
yes
للحصول على apt-get
لتقديم ردنا على سؤال البرنامج النصي ، أرسل الإخراج من yes
إلى البرنامج النصي.
-y
بعض البرامج النصية أكثر صرامة في متطلباتها وتقبل فقط الكلمة الكاملة 'نعم' كرد إيجابي. يمكنك تقديم 'نعم' كمعامل لـ apt-get
، على النحو التالي:
apt-get
لا تقل نعم دون التفكير في الأمر
يجب أن تكون على يقين من أن الإدخال الذي ستقوم بإدخاله في البرنامج النصي أو البرنامج سيعطيك بالتأكيد النتيجة التي تتوقعها. لتتمكن من اتخاذ هذا القرار ، يجب أن تعرف الأسئلة وما يجب أن تكون ردودك.
قد لا يتطابق المنطق في النص أو الأمر أو البرنامج مع توقعاتك. في البرنامج النصي المثال الخاص بنا ، قد يكون السؤال هو هل ترغب في التوقف؟ [ذ ، لا]. إذا كان الأمر كذلك ، فإن الرد السلبي كان سيسمح للبرنامج النصي بالمتابعة.
أنت يجب كن على دراية بالنص أو الأمر أو البرنامج قبل أن تقوم بتوجيه dnf
بداخله.
باستخدام نعم مع الأوامر
في مهدها yum
سيتم استخدامه مع أوامر Linux الأخرى. منذ ذلك الحين ، أصبح لمعظم أوامر Linux الأخرى طريقتها الخاصة في العمل دون تدخل بشري. dnf
لم يعد مطلوبًا لتحقيق ذلك.
لنأخذ مدير حزم Ubuntu -y
كمثال. لتثبيت تطبيق دون الحاجة إلى الضغط على y حتى منتصف التثبيت ، cp
من الممكن أن تستخدم على النحو التالي:
fsck
يمكن تحقيق نفس النتيجة باستخدام rm
(افترض نعم) الخيار في -f
:
-y
سترى أن yes
لم تسأل حتى من المعتاد هل تريد الاستمرار؟ [نعم / لا] سؤال. لقد افترضت أن الإجابة ستكون نعم.
في توزيعات Linux الأخرى ، الوضع هو نفسه. في Fedora كنت ستستخدم هذا النوع من أوامر مدير الحزم في وقت واحد:
yes
ال seq
استبدل مدير الحزم sleep
و yes
لها ls
(افترض نعم) الخيار.
wc
الإعلانات الأمر نفسه ينطبق على head
و -50
و head
. لكل من هذه الأوامر test.txt
الخاصة به (قوة) أو test.txt
(افترض نعم) الخيارات.
فهل يبدو أن wc
تم إهماله للعمل مع البرامج النصية فقط؟ ليس تماما. هناك بعض الحيل الأخرى في الكلب العجوز حتى الآن.
بعض الحيل نعم أخرى
يمكنك استخدام yes
بتسلسل من الأرقام تم إنشاؤه بواسطة
yesللتحكم في حلقة من الإجراءات المتكررة.
يردد هذا الخط الأحادي صدى الأرقام التي تم إنشاؤها في النافذة الطرفية ثم يستدعي
yes yesلثانية واحدة.
بدلاً من مجرد تكرار الأرقام في النافذة الطرفية ، يمكنك استدعاء أمر أو برنامج نصي آخر. لا يحتاج هذا الأمر أو البرنامج النصي حتى إلى استخدام الأرقام ، وهم موجودون فقط لبدء كل دورة من الحلقة.
yes anything you like
في بعض الأحيان يكون من المفيد أن يكون لديك ملف كبير للاختبار معه. ربما تريد التدرب على استخدام أمر مضغوط ، أو تريد أن يكون لديك ملف كبير الحجم لاختباره تحميلات FTP مع.
الإعلاناتيمكنك إنشاء ملفات كبيرة بسرعة باستخدام
#!/bin/bash # ... # in the middle of some long script # obtain a response from the user # ... echo 'Are you happy to proceed? [y,n]' read input # did we get an input value? if [ '$input' == '' ]; then echo 'Nothing was entered by the user' # was it a y or a yes? elif [[ '$input' == 'y' ]] || [[ '$input' == 'yes' ]]; then echo 'Positive response: $input' # treat anything else as a negative response else echo 'negative response: $input' fi. كل ما عليك فعله هو إعطائها سلسلة طويلة من النص للعمل معها وإعادة توجيه الإخراج إلى ملف. لا تخطئ ستنمو هذه الملفات بسرعة. كن مستعدًا للضغط على Ctrl + C في غضون ثوانٍ قليلة.
chmod +x long_script.sh
./long_script.sh
yes | ./long_script.sh
استغرق الملف الذي تم إنشاؤه هنا حوالي خمس ثوانٍ على جهاز الاختبار المستخدم لبحث هذه المقالة.
yes yes | ./long_script.shتشير إلى أن حجمها 557 ميغا بايت ، و
yes | sudo apt-get install fortune-modأخبرنا أن هناك 12.4 مليون سطر فيه.
يمكننا تحديد حجم الملف بتضمين
sudo apt-get -y install fortune-modفي سلسلة الأوامر لدينا. نخبرها بعدد الأسطر المراد تضمينها في الملف. ال
yes | yum install fortune-modيعني
dnf -y install fortune-modسيسمح لـ 50 سطرًا فقط بالمرور إلى
yes '$(seq 1 20)' | while read digit; do echo digit; sleep 1; doneملف.
yes long line of meaningless text for file padding > test.txt
بمجرد وجود 50 سطرًا في
ls -lh test.txtملف ، ستتوقف العملية. لا تحتاج إلى استخدام Ctrl + C. إنها تتوقف بشكل رشيق بمحض إرادتها.
wc test.txtيشير إلى وجود 50 سطرًا بالضبط في الملف ، و 400 كلمة وحجمها 2350 بايت.
على الرغم من أنه لا يزال مفيدًا لتغذية الاستجابات في البرامج النصية طويلة المدى (وبعض الحيل الأخرى) ، فإن
yes long line of meaningless text for file padding | head -50 > test.txtالأمر لن يكون جزءًا من مجموعة أدواتك اليومية من الأوامر. ولكن عندما تحتاج إليها ، ستجد أنها البساطة بحد ذاتها - وكل ذلك في ستة أسطر من الشفرة الذهبية.
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين
اقرأ التالي- & [رسقوو] ؛ كيفية استخدام الأمر Yes على جهاز Mac
- & [رسقوو] ؛ كيفية استخدام الأمر rev على لينكس
- & [رسقوو] ؛ مجلد الكمبيوتر هو 40: كيف أنشأت شركة Xerox Star سطح المكتب
- & [رسقوو] ؛ الدالات مقابل الصيغ في Microsoft Excel: ما الفرق؟
- & [رسقوو] ؛ Cyber Monday 2021: أفضل عروض Apple
- & [رسقوو] ؛ 5 مواقع ويب يجب على كل مستخدم Linux وضع إشارة مرجعية عليها
- & [رسقوو] ؛ كيفية البحث عن ملف Spotify 2021 الخاص بك
- & [رسقوو] ؛ Cyber Monday 2021: أفضل العروض التقنية
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة