8 أخطاء مطبعية تحتاج حقًا إلى تجنبها على نظام Linux
نشرت: 2023-01-15يوفر سطر أوامر 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 ديف
يتم رؤية المجموعة الجديدة بعد قيام المستخدم بتسجيل الدخول والخروج.
مجموعات
إنه الآن في مجموعة "vboxusers". ومع ذلك ، إذا نسيت استخدام الخيار -a
(إلحاق) ، فستتم إزالة جميع مجموعات المستخدم الحالية. المجموعة الوحيدة التي سيكونون فيها هي المجموعة الجديدة.
هذا هو الأمر غير الصحيح :
sudo usermod -G vboxusers ديف
عندما يسجلون الدخول بعد ذلك ، سيجدون أنهم في مجموعة واحدة فقط.
مجموعات
إذا كان لديك مستخدم واحد تم تكوينه ، وقمت بذلك به ، فستواجه مشكلات خطيرة. لسبب واحد ، لم يعد المستخدم عضوًا في مجموعة "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
يمكننا أن نرى أن القرص الصلب "/ 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 = تقدم
يُطلب منا إدخال كلمة المرور الخاصة بنا ، ثم يبدأ dd
في العمل. لا يوجد "هل أنت متأكد؟" تحذيرات أو فرص للتراجع. تبدأ الكتابة على الفور.
ومع ذلك ، إذا قمت بكتابة الحرف الخطأ لمعرف محرك الأقراص وكان يتطابق مع محرك أقراص ثابت موجود ، فستستبدل محرك الأقراص هذا بدلاً من شريحة الذاكرة.
هذا هو الأمر غير الصحيح :
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 جيجابايت.
إذا أردنا إنشاء نظام ملفات Ext4 على القسم الأول من محرك الأقراص سعة 10 جيجابايت ، فسنستخدم هذه الأوامر.
sudo umount / dev / sdb1
sudo mkfs.ext4 / dev / sdb1
ولكن إذا ارتكبنا خطأ استخدام "a" بدلاً من "b" في معرف محرك الأقراص ، فسنقوم بمسح أحد الأقسام الموجودة على محرك الأقراص سعة 25 جيجابايت وجعل جهاز الكمبيوتر الخاص بنا غير قابل للتمهيد.
هذا هو الأمر غير الصحيح :
sudo umount / dev / sda1
sudo mkfs.ext4 / dev / sda1
هذا الحرف الصغير يحزم لكمة ، لذا تأكد من أنك تصل إلى محرك الأقراص الصحيح.
ذات صلة: كيفية استخدام أمر mkfs على نظام Linux
4. لا تحذف ملف crontab الخاص بك
يدير عفريت cron
المهام في أوقات محددة مسبقًا لك. يأخذ تكوينه من ملف crontab
. يمكن لكل مستخدم - بما في ذلك الجذر - الحصول على ملف crontab
. لتعديل crontab
الخاص بك ، استخدم هذا الأمر:
كرونتاب -e
يتم فتح ملف crontab
في محرر. يمكنك إجراء تغييرات وإضافة أوامر جديدة.
ولكن إذا أخطأت في كتابة الأمر وضغطت على "r" بدلاً من "e" ، فستزيل ملف crontab
- كما هو الحال في delete .
هذا هو الأمر غير الصحيح :
كرونتاب -ر
في المرة التالية التي تستخدم فيها الأمر crontab -e
، سترى ملفًا افتراضيًا فارغًا.
من السهل ارتكاب هذا الخطأ ، لأن الحرفين "e" و "r" متجاورين في معظم لوحات المفاتيح. إعادة إنشاء ملف crontab
معقد ليس بالأمر الممتع.
ذات صلة: ما هي وظيفة كرون ، وكيف تستخدمها؟
5. تكرار التاريخ
يعد استخدام أمر history
أمرًا رائعًا عندما تحاول تقليل ضغطات المفاتيح وتوفير الوقت. إذا تمكنت من سحب أمر طويل الأمد من التاريخ ، فإنك تكتسب السرعة والدقة. طالما قمت بتحديد الأمر الصحيح من السجل الخاص بك.
يسرد أمر history
أوامرك السابقة في نافذة المحطة الطرفية. هم معدودون. لإعادة استخدام أمر ما ، اسبق رقمه بعلامة تعجب “ !
"، واضغط على مفتاح" Enter ".
التاريخ
لنفترض أننا قمنا باستنساخ مستودع Git ، ودخلنا في حالة من الفوضى معه ، وقمنا بحذفه. نحن بحاجة إلى استنساخه مرة أخرى. من خلال التمرير في نافذة المحطة ، يمكننا قريبًا تحديد أمر git clone
. يمكننا إعادة تشغيله عن طريق كتابة:
! 60
ولكن إذا ألقينا نظرة خاطفة على الشاشة وأخطأنا في قراءة الرقم ، فقد نختار الرقم التالي عن طريق الخطأ:
61
يؤدي ذلك إلى تشغيل الأمر التالي في القائمة ، rm *
. هذا يحذف جميع الملفات في دليلك الحالي.
يمكنك أيضًا استخدام " !
"علامة تعجب بسلسلة نصية. يتم تنفيذ الأمر المطابق الأول من أجلك. لا يتم عرضه بحيث يمكنك التحقق من أنه الشخص الذي كنت تفكر فيه ، ويتم تنفيذه على الفور.
تخيل السيناريو حيث يكون لديك نص برمجي يسمى "reset.sh". يفترض هذا البرنامج النصي افتراضيًا مجموعة من ملفات التكوين لبعض البرامج التي تكتبها. بشكل دوري ، أثناء قيامك بالتطوير والاختبار ، تحتاج إلى مسح اللوح حتى يتم استدعاء البرنامج النصي الخاص بك.
يجب أن يكون هذا الأمر كافيًا للعثور على الأمر ومطابقته في سجلك وتنفيذه.
!يكرر
ولكن إذا كنت قد استخدمت أمر reboot
منذ آخر مرة استخدمت فيها البرنامج النصي الخاص بك ، فسيتم العثور على أمر reboot
وتنفيذه على الفور.
على الكمبيوتر المنزلي لمستخدم واحد ، ربما يكون ذلك مجرد إزعاج. على خادم مشترك ، يعد هذا مصدر إزعاج للعديد من الأشخاص الآخرين أيضًا.
ذات صلة: كيفية استخدام أمر المحفوظات على نظام Linux
6. مصيبة المساحات
يمكن أن تسبب المسافات في أسماء الملفات ومسارات الدليل فوضى. لهذا السبب يجب الهروب منها أو الاقتباس منها دائمًا.
يمكن تجنب المشكلات المتعلقة بالمسافات باستخدام إكمال علامة التبويب. اضغط على مفتاح "Tab" عندما تكتب اسم ملف أو مسار دليل وسيقوم shell تلقائيًا بإكمال أكبر قدر ممكن من المسار أو اسم الملف. قد تحتاج إلى كتابة حرف للتمييز بين الملف الذي تريده وأي ملفات أخرى تشترك في جزء من نفس الاسم ، ولكن الضغط مرة أخرى على مفتاح "Tab" سيكمل باقي اسم الملف نيابة عنك.
هذا يحفظ ضغطات المفاتيح ، ويمنع المسافات من الزحف بسبب الأخطاء الإملائية ، ويهرب بشكل صحيح من أي مسافات شرعية حتى لا تسبب مشاكل.
لنفترض أن لدينا دليل "تطوير" يحتوي على دليلين آخرين ، "المكود الجغرافي" و "bin". يوجد أيضًا دليل "bin" داخل دليل "المكود الجغرافي".
لحذف الملفات الموجودة في دليل "geocoder / bin" وإزالة الدليل ، يمكنك استخدام هذا الأمر.
rm -r المكود الجغرافي / بن
تخيل الآن أنك أضفت مسافة بدون قصد بعد "Geocoder /" ، مثل هذا.
هذا هو الأمر غير الصحيح :
rm -r المكود الجغرافي / بن
فقاعة. دليل "التطوير" فارغ الآن. تم محو أدلة "التطوير / المكود الجغرافي" و "التطوير / المكود الجغرافي / الصندوق" و "التطوير / الصندوق" بالكامل.
تذكر ، إكمال علامة التبويب هو صديقك.
ذات صلة: استخدم Tab Completion لكتابة الأوامر بشكل أسرع على أي نظام تشغيل
7. استخدام> بدلاً من >>
ترسل إعادة التوجيه إخراج العملية إلى ملف. نستخدم علامة أكبر من " >
" لالتقاط مخرجات عملية. إذا كان الملف موجودًا ، فسيتم إفراغه أولاً.
لنفترض أننا نحقق في تسرب للذاكرة. لدينا نص يسمى "memlog.sh". يعرض إحصائيات الذاكرة مرة واحدة في الثانية. سنقوم بإعادة توجيه ذلك إلى ملف يسمى "memory.txt" لتحليله لاحقًا.
memlog.sh> memory.txt
ذاكرة الرأس. txt
في اليوم التالي ، نريد أن نواصل التحقيق ، ونعيد تشغيل النص البرمجي. هذه المرة نحتاج إلى استخدام علامتين أكبر من " >>
" حتى يتم إلحاق البيانات الجديدة بالملف.
memlog.sh >> memory.txt
إذا استخدمنا علامة واحدة أكبر من ">" ، فسوف نفقد بيانات الأمس لأن الملف يتم إفراغه أولاً.
ذات صلة: ما هي stdin و stdout و stderr على Linux؟
8. إعادة التوجيه في الاتجاه الخاطئ
يمكن أن تستخدم إعادة التوجيه محتويات ملف كمدخل إلى برنامج.
لدينا ملف يسمى "placenames.sql" نريد استيراده إلى sqlite3
. يصف ملف المخطط كيفية إعادة إنشاء جداول قاعدة البيانات. كما أنه يحتوي على البيانات التي نريد تخزينها في قاعدة البيانات. بسعة 1.3 جيجا بايت وأكثر من 11 مليون سطر ، إنه ملف كبير.
ls -hl placenames.sql
wc placenames.sql
يمكننا إنشاء قاعدة بيانات جديدة تسمى "places.sqlite3" باستخدام هذا الأمر.
sqlite3 places.sqlite3 <placenames.sql
في أغلب الأحيان ، عندما نعيد التوجيه ، نستخدم الحرف ">". يجب عليك التركيز لتجنب كتابة ">" بدافع العادة. إذا قمت بذلك ، تتم كتابة أي إخراج يولده sqlite3
إلى ملف المخطط الخاص بك ، مما يؤدي إلى محوه.
هذا هو الأمر غير الصحيح :
sqlite3 places.sqlite3> placenames.sql
تم إتلاف ملف المخطط الخاص بنا ، وتم استبداله برسالة الترحيب من صدفة sqlite3
.
أسماء أماكن القطط
وداعا ، 1.3 جيجا بايت من البيانات.
كيفية تجنب الأخطاء المطبعية في سطر الأوامر
هناك عادات جيدة يمكنك اتباعها للمساعدة في تجنب ارتكاب هذه الأنواع من الأخطاء.
استخدم إكمال علامة التبويب حيثما أمكن ذلك. ستتجنب المشكلات المتعلقة بالمسافات في مسارات الدليل وأسماء الملفات.
أنشئ أسماء مستعارة قصيرة لا تُنسى لأوامر طويلة ومعقدة تحتاج إلى استخدامها أحيانًا. بهذه الطريقة ، لن تخطئ باستخدام الخيارات والمعلمات الخاطئة.
من المعروف أنه من الصعب تدقيق كتاباتك ، ولكن هذا ما عليك القيام به في سطر الأوامر. اقرأ ما هو موجود بالفعل. لا تنظر إليها فقط وتعتقد أنها توضح ما تعنيه كتابته. ماذا تقول حقا؟ لأن هذا ما ستفعله حقًا.
ذات صلة: 8 أوامر مميتة لا يجب عليك تشغيلها على نظام Linux