8 أخطاء مطبعية تحتاج حقًا إلى تجنبها على نظام Linux

نشرت: 2023-01-15
لقطة مقربة لمفتاح لوحة مفاتيح باسم "عفوًا!"
Redpixel.pl/Shutterstock
تحقق جيدًا من كتابة الأمر بشكل صحيح قبل الضغط على "Enter". في نظام Linux ، يمكن أن يكون للخطأ المطبعي تداعيات مدمرة. استخدم إكمال علامة التبويب للملء التلقائي لأكبر قدر ممكن من إدخال سطر الأوامر. تعتبر الأسماء المستعارة للأوامر الطويلة والمعقدة فكرة رائعة أيضًا.

يوفر سطر أوامر Linux قوة كبيرة. المشكلة هي أن الاستخدام الصحيح لتلك القوة يتوقف على دقة كتابتك. فيما يلي ثمانية أخطاء مطبعية لا تريد القيام بها أبدًا.

جدول المحتويات

سطر أوامر Linux
1. لا تنسى -a
2. استخدام معرف محرك خاطئ مع dd
3. استخدام معرف محرك خاطئ مع mkfs
4. لا تحذف ملف crontab الخاص بك
5. تكرار التاريخ
6. مصيبة المساحات
7. استخدام> بدلاً من >>
8. إعادة التوجيه في الاتجاه الخاطئ
كيفية تجنب الأخطاء المطبعية في سطر الأوامر

سطر أوامر Linux

سطر أوامر Linux هو بوابة لقوة عظيمة ، ولكن خطأ مطبعي واحد هو كل ما يتطلبه الأمر لكي تنقلب هذه القوة ضدك. لقد سمعنا جميعًا عن الأمر الذي يجب ألا تشغله أبدًا. ما نتحدث عنه هنا هو الأوامر التي تريد تشغيلها ، ولكن يمكن أن يؤدي الخطأ فيها إلى كارثة.

عندما تضغط على "Enter" ، تتم معالجة كل ما كتبته بواسطة shell. يتم توسيع الأسماء المستعارة والمتغيرات. يتم تحديد الأوامر والخيارات والمعلمات. هذا يسمى الاعراب. تقوم الخطوة التالية بتسليم الإدخال الذي تم تحليله إلى الأوامر التي ستنفذ تعليماتك.

إذا قمت بخطأ ما عند كتابة أوامرك ، فقد يتم حصرها كخطأ في بناء الجملة. ولكن إذا تسبب خطأك في إنشاء سطر أوامر صالح آخر ، فسيتم تنفيذه.

يمكن أن يكون الخطأ المطبعي البسيط مدمرًا حقًا. مستوى الدمار يعتمد على الأمر والخطأ. قد تضيع الوقت. قد تفقد ملف. قد تفقد نظام ملفات كامل.

ذات صلة: ما هي Bash Shell ، ولماذا هي مهمة جدًا لنظام Linux؟

1. لا تنسى -a

قد تحتاج إلى إضافة شخص ما إلى مجموعة للسماح له ، على سبيل المثال ، باستخدام برنامج معين. على سبيل المثال ، يتطلب برنامج VirtualBox من المستخدمين أن يكونوا جزءًا من مجموعة "vboxusers". يمكننا أن نفعل ذلك مع usermod .

يسرد أمر groups المستخدم.

 مجموعات 

سرد مجموعات المستخدم مع أمر المجموعات

سنضيف المستخدم dave إلى مجموعة جديدة. يضيف -a (إلحاق) المجموعة الجديدة إلى قائمة المجموعات الموجودة التي ينتمي إليها المستخدم. يحدد الخيار -G (المجموعات) المجموعة.

 sudo usermod -a -G vboxusers ديف 

إضافة مستخدم إلى مجموعة جديدة باستخدام الأمر usermod

يتم رؤية المجموعة الجديدة بعد قيام المستخدم بتسجيل الدخول والخروج.

 مجموعات 

مجموعة vboxusers التي تظهر في قائمة المجموعات التي ينتمي إليها هذا المستخدم

إنه الآن في مجموعة "vboxusers". ومع ذلك ، إذا نسيت استخدام الخيار -a (إلحاق) ، فستتم إزالة جميع مجموعات المستخدم الحالية. المجموعة الوحيدة التي سيكونون فيها هي المجموعة الجديدة.

هذا هو الأمر غير الصحيح :

 sudo usermod -G vboxusers ديف 

إضافة مستخدم إلى مجموعة بدون استخدام خيار الإلحاق -a

عندما يسجلون الدخول بعد ذلك ، سيجدون أنهم في مجموعة واحدة فقط.

 مجموعات 

المستخدم الآن في مجموعة واحدة

إذا كان لديك مستخدم واحد تم تكوينه ، وقمت بذلك به ، فستواجه مشكلات خطيرة. لسبب واحد ، لم يعد المستخدم عضوًا في مجموعة "sudo" ، لذلك لا يمكنك استخدام sudo لبدء تصحيح الأشياء.

ذات صلة: أضف مستخدمًا إلى مجموعة (أو مجموعة ثانية) على نظام Linux

2. استخدام معرف محرك خاطئ مع dd

يقوم الأمر dd بكتابة كتل من البيانات إلى أنظمة الملفات. غالبًا ما يستخدم لكتابة صور ISO على بطاقات ذاكرة USB.

يستخدم نظام تسمية Linux لأجهزة التخزين حرفًا واحدًا للتعريف. القرص الصلب الأول يسمى “/ dev / sda” ، والثاني هو “/ dev / sdb” ، والثالث “/ dev / sdc” ، وهكذا. يتم تحديد الأقسام حسب الرقم. القسم الأول على القرص الصلب الأول هو “/ dev / sda1” ، والثاني هو “/ dev / sda2” ، وهكذا.

إذا قمت بنسخ صورة على شريحة ذاكرة USB ، فأنت بحاجة إلى معرفة معرف محرك الأقراص الخاص بشريحة ذاكرة USB. سنجد ذلك من خلال lsblk عبر grep ، للبحث عن الإدخالات التي تحتوي على "sd".

 lsblk | grep sd 

استخدام grep للبحث عن سطور بها "sd" ، في إخراج الأمر lsblk

يمكننا أن نرى أن القرص الصلب "/ dev / sda" هو محرك أقراص بسعة 32 جيجابايت مع ثلاثة أقسام. أحد الأقسام هو قسم "/ boot" ، ويتم تثبيت القسم "/ dev / sda3" في "/" ، وهو جذر نظام الملفات.

تم الإبلاغ عن القرص الصلب "/ dev / sdb" كمحرك سعة 7.5 جيجابايت. يتم تثبيته في "/ media / dave / Pink." من الواضح أن محرك الأقراص "/ dev / sda" هو محرك الأقراص الثابتة الرئيسي على هذا الكمبيوتر ، و "/ dev / sdb" هو محرك أقراص ذاكرة USB.

أمر كتابة ملف ISO موجود في دليل "~ / Downloads" إلى ذاكرة USB الخاصة بنا هو:

 sudo dd bs = 4M if = التنزيلات / distro-image.iso من = / dev / sdb conv = حالة fdatasync = تقدم 

كتابة صورة على ذاكرة USB باستخدام الأمر dd

يُطلب منا إدخال كلمة المرور الخاصة بنا ، ثم يبدأ dd في العمل. لا يوجد "هل أنت متأكد؟" تحذيرات أو فرص للتراجع. تبدأ الكتابة على الفور.

عرض تقدم dd أثناء قيامه بكتابة صورة على شريحة ذاكرة USB

ومع ذلك ، إذا قمت بكتابة الحرف الخطأ لمعرف محرك الأقراص وكان يتطابق مع محرك أقراص ثابت موجود ، فستستبدل محرك الأقراص هذا بدلاً من شريحة الذاكرة.

هذا هو الأمر غير الصحيح :

 sudo dd bs = 4M if = التنزيلات / distro-image.iso من = / dev / sda conv = fdatasync status = progress 

تنتهي كتابة صورة عن طريق الخطأ على القرص الصلب الرئيسي برسالة خطأ

طلبنا من dd استخدام "/ dev / sd a " ، لذلك فعلت. يكون إجراء الكتابة أسرع بكثير ، لكنه ينتهي بتحذير. لقد قمت للتو بإهمال تثبيت Linux الخاص بك.

تحقق من معرفات محرك الأقراص وتحقق منها جيدًا قبل الضغط على "Enter".

ذات صلة: كيفية نسخ ملف ISO على محرك أقراص USB في Linux

3. استخدام معرف محرك خاطئ مع mkfs

هناك أوامر أخرى تأخذ معرّفات محرك الأقراص كجزء من سطر الأوامر ، مثل أدوات mkfs . محركات التنسيق هذه عن طريق إنشاء أنظمة ملفات على أقسام.

على هذا الكمبيوتر لدينا محرك 25 جيجابايت ومحرك 10 جيجابايت.

يتم إخراج lsblk عبر الأنابيب من خلال grep ، ويعرض محركات الأقراص الثابتة في الكمبيوتر

إذا أردنا إنشاء نظام ملفات Ext4 على القسم الأول من محرك الأقراص سعة 10 جيجابايت ، فسنستخدم هذه الأوامر.

 sudo umount / dev / sdb1
 sudo mkfs.ext4 / dev / sdb1 

إنشاء نظام ملفات ext4 على ذاكرة USB

ولكن إذا ارتكبنا خطأ استخدام "a" بدلاً من "b" في معرف محرك الأقراص ، فسنقوم بمسح أحد الأقسام الموجودة على محرك الأقراص سعة 25 جيجابايت وجعل جهاز الكمبيوتر الخاص بنا غير قابل للتمهيد.

هذا هو الأمر غير الصحيح :

 sudo umount / dev / sda1
 sudo mkfs.ext4 / dev / sda1 

تنسيق محرك الأقراص الرئيسي للكمبيوتر عن طريق الخطأ

هذا الحرف الصغير يحزم لكمة ، لذا تأكد من أنك تصل إلى محرك الأقراص الصحيح.

ذات صلة: كيفية استخدام أمر mkfs على نظام Linux

4. لا تحذف ملف crontab الخاص بك

يدير عفريت cron المهام في أوقات محددة مسبقًا لك. يأخذ تكوينه من ملف crontab . يمكن لكل مستخدم - بما في ذلك الجذر - الحصول على ملف crontab . لتعديل crontab الخاص بك ، استخدم هذا الأمر:

 كرونتاب -e 

أمر تحرير ملف crontab الخاص بك: crontab -e

يتم فتح ملف crontab في محرر. يمكنك إجراء تغييرات وإضافة أوامر جديدة.

تم فتح ملف crontab في محرر

ولكن إذا أخطأت في كتابة الأمر وضغطت على "r" بدلاً من "e" ، فستزيل ملف crontab - كما هو الحال في delete .

هذا هو الأمر غير الصحيح :

 كرونتاب -ر 

الأمر الذي يحذف ملف crontab الخاص بك: crontab -r

في المرة التالية التي تستخدم فيها الأمر crontab -e ، سترى ملفًا افتراضيًا فارغًا.

من السهل ارتكاب هذا الخطأ ، لأن الحرفين "e" و "r" متجاورين في معظم لوحات المفاتيح. إعادة إنشاء ملف crontab معقد ليس بالأمر الممتع.

ذات صلة: ما هي وظيفة كرون ، وكيف تستخدمها؟

5. تكرار التاريخ

يعد استخدام أمر history أمرًا رائعًا عندما تحاول تقليل ضغطات المفاتيح وتوفير الوقت. إذا تمكنت من سحب أمر طويل الأمد من التاريخ ، فإنك تكتسب السرعة والدقة. طالما قمت بتحديد الأمر الصحيح من السجل الخاص بك.

يسرد أمر history أوامرك السابقة في نافذة المحطة الطرفية. هم معدودون. لإعادة استخدام أمر ما ، اسبق رقمه بعلامة تعجب “ ! "، واضغط على مفتاح" Enter ".

 التاريخ 

لنفترض أننا قمنا باستنساخ مستودع Git ، ودخلنا في حالة من الفوضى معه ، وقمنا بحذفه. نحن بحاجة إلى استنساخه مرة أخرى. من خلال التمرير في نافذة المحطة ، يمكننا قريبًا تحديد أمر git clone . يمكننا إعادة تشغيله عن طريق كتابة:

 ! 60

ولكن إذا ألقينا نظرة خاطفة على الشاشة وأخطأنا في قراءة الرقم ، فقد نختار الرقم التالي عن طريق الخطأ:

 61

يؤدي ذلك إلى تشغيل الأمر التالي في القائمة ، rm * . هذا يحذف جميع الملفات في دليلك الحالي.

يمكنك أيضًا استخدام " ! "علامة تعجب بسلسلة نصية. يتم تنفيذ الأمر المطابق الأول من أجلك. لا يتم عرضه بحيث يمكنك التحقق من أنه الشخص الذي كنت تفكر فيه ، ويتم تنفيذه على الفور.

تخيل السيناريو حيث يكون لديك نص برمجي يسمى "reset.sh". يفترض هذا البرنامج النصي افتراضيًا مجموعة من ملفات التكوين لبعض البرامج التي تكتبها. بشكل دوري ، أثناء قيامك بالتطوير والاختبار ، تحتاج إلى مسح اللوح حتى يتم استدعاء البرنامج النصي الخاص بك.

يجب أن يكون هذا الأمر كافيًا للعثور على الأمر ومطابقته في سجلك وتنفيذه.

 !يكرر

ولكن إذا كنت قد استخدمت أمر reboot منذ آخر مرة استخدمت فيها البرنامج النصي الخاص بك ، فسيتم العثور على أمر reboot وتنفيذه على الفور.

يتم تشغيل الأمر rm * عن طريق الخطأ

على الكمبيوتر المنزلي لمستخدم واحد ، ربما يكون ذلك مجرد إزعاج. على خادم مشترك ، يعد هذا مصدر إزعاج للعديد من الأشخاص الآخرين أيضًا.

ذات صلة: كيفية استخدام أمر المحفوظات على نظام Linux

6. مصيبة المساحات

يمكن أن تسبب المسافات في أسماء الملفات ومسارات الدليل فوضى. لهذا السبب يجب الهروب منها أو الاقتباس منها دائمًا.

كيفية التعامل مع المسافات في أسماء الملفات على نظام Linux
ذات صلة كيفية التعامل مع المسافات في أسماء الملفات على نظام Linux

يمكن تجنب المشكلات المتعلقة بالمسافات باستخدام إكمال علامة التبويب. اضغط على مفتاح "Tab" عندما تكتب اسم ملف أو مسار دليل وسيقوم shell تلقائيًا بإكمال أكبر قدر ممكن من المسار أو اسم الملف. قد تحتاج إلى كتابة حرف للتمييز بين الملف الذي تريده وأي ملفات أخرى تشترك في جزء من نفس الاسم ، ولكن الضغط مرة أخرى على مفتاح "Tab" سيكمل باقي اسم الملف نيابة عنك.

هذا يحفظ ضغطات المفاتيح ، ويمنع المسافات من الزحف بسبب الأخطاء الإملائية ، ويهرب بشكل صحيح من أي مسافات شرعية حتى لا تسبب مشاكل.

لنفترض أن لدينا دليل "تطوير" يحتوي على دليلين آخرين ، "المكود الجغرافي" و "bin". يوجد أيضًا دليل "bin" داخل دليل "المكود الجغرافي".

لحذف الملفات الموجودة في دليل "geocoder / bin" وإزالة الدليل ، يمكنك استخدام هذا الأمر.

 rm -r المكود الجغرافي / بن 

حذف دليل المكود الجغرافي / bin

تخيل الآن أنك أضفت مسافة بدون قصد بعد "Geocoder /" ، مثل هذا.

هذا هو الأمر غير الصحيح :

 rm -r المكود الجغرافي / بن 

حذف دليل المكود الجغرافي و bin عن طريق الخطأ

فقاعة. دليل "التطوير" فارغ الآن. تم محو أدلة "التطوير / المكود الجغرافي" و "التطوير / المكود الجغرافي / الصندوق" و "التطوير / الصندوق" بالكامل.

تذكر ، إكمال علامة التبويب هو صديقك.

ذات صلة: استخدم Tab Completion لكتابة الأوامر بشكل أسرع على أي نظام تشغيل

7. استخدام> بدلاً من >>

ترسل إعادة التوجيه إخراج العملية إلى ملف. نستخدم علامة أكبر من " > " لالتقاط مخرجات عملية. إذا كان الملف موجودًا ، فسيتم إفراغه أولاً.

لنفترض أننا نحقق في تسرب للذاكرة. لدينا نص يسمى "memlog.sh". يعرض إحصائيات الذاكرة مرة واحدة في الثانية. سنقوم بإعادة توجيه ذلك إلى ملف يسمى "memory.txt" لتحليله لاحقًا.

 memlog.sh> memory.txt
 ذاكرة الرأس. txt 

التقاط وعرض الإخراج من البرنامج النصي memlog.sh

في اليوم التالي ، نريد أن نواصل التحقيق ، ونعيد تشغيل النص البرمجي. هذه المرة نحتاج إلى استخدام علامتين أكبر من " >> " حتى يتم إلحاق البيانات الجديدة بالملف.

 memlog.sh >> memory.txt 

إلحاق بيانات جديدة بنهاية ملف موجود

إذا استخدمنا علامة واحدة أكبر من ">" ، فسوف نفقد بيانات الأمس لأن الملف يتم إفراغه أولاً.

ذات صلة: ما هي stdin و stdout و stderr على Linux؟

8. إعادة التوجيه في الاتجاه الخاطئ

يمكن أن تستخدم إعادة التوجيه محتويات ملف كمدخل إلى برنامج.

لدينا ملف يسمى "placenames.sql" نريد استيراده إلى sqlite3 . يصف ملف المخطط كيفية إعادة إنشاء جداول قاعدة البيانات. كما أنه يحتوي على البيانات التي نريد تخزينها في قاعدة البيانات. بسعة 1.3 جيجا بايت وأكثر من 11 مليون سطر ، إنه ملف كبير.

 ls -hl placenames.sql
 wc placenames.sql 

التحقق من حجم الملف باستخدام ls و wc

يمكننا إنشاء قاعدة بيانات جديدة تسمى "places.sqlite3" باستخدام هذا الأمر.

 sqlite3 places.sqlite3 <placenames.sql 

استيراد مخطط من ملف إلى sqlite3

في أغلب الأحيان ، عندما نعيد التوجيه ، نستخدم الحرف ">". يجب عليك التركيز لتجنب كتابة ">" بدافع العادة. إذا قمت بذلك ، تتم كتابة أي إخراج يولده sqlite3 إلى ملف المخطط الخاص بك ، مما يؤدي إلى محوه.

هذا هو الأمر غير الصحيح :

 sqlite3 places.sqlite3> placenames.sql 

إعادة التوجيه عن طريق الخطأ إلى ملف مخطط من sqlite3

تم إتلاف ملف المخطط الخاص بنا ، وتم استبداله برسالة الترحيب من صدفة sqlite3 .

 أسماء أماكن القطط 

ملف المخطط الذي تم الكتابة فوقه والذي يحتوي على رسالة ترحيب sqlite3

وداعا ، 1.3 جيجا بايت من البيانات.

كيفية تجنب الأخطاء المطبعية في سطر الأوامر

هناك عادات جيدة يمكنك اتباعها للمساعدة في تجنب ارتكاب هذه الأنواع من الأخطاء.

استخدم إكمال علامة التبويب حيثما أمكن ذلك. ستتجنب المشكلات المتعلقة بالمسافات في مسارات الدليل وأسماء الملفات.

أنشئ أسماء مستعارة قصيرة لا تُنسى لأوامر طويلة ومعقدة تحتاج إلى استخدامها أحيانًا. بهذه الطريقة ، لن تخطئ باستخدام الخيارات والمعلمات الخاطئة.

كيفية كتابة أقل والعمل بشكل أسرع في Linux Terminal
ذات صلة كيفية كتابة أقل والعمل بشكل أسرع في Linux Terminal

من المعروف أنه من الصعب تدقيق كتاباتك ، ولكن هذا ما عليك القيام به في سطر الأوامر. اقرأ ما هو موجود بالفعل. لا تنظر إليها فقط وتعتقد أنها توضح ما تعنيه كتابته. ماذا تقول حقا؟ لأن هذا ما ستفعله حقًا.

ذات صلة: 8 أوامر مميتة لا يجب عليك تشغيلها على نظام Linux