ينقسم هذا الكتاب إلى خمسة أجزاء، والذي يقدم مهارات برمجة الصدفة وأوامر UNIX المتنوعة وتركيب الجملة بالتفصيل، ويتضمن أيضًا معالجة النصوص في نظام UNIX وعددًا صغيرًا من مشكلات إدارة النظام. هذا الكتاب شامل في المحتوى وموجز وسلس في النص، مما يجعله مناسبًا لمبرمجي شل للتعلم والرجوع إليه.
جدول المحتويات مقدمة المترجم الجزء الأول الفصل 1 أمن الملفات والأذونات 1 1.1 الوثيقة 1 1.2 نوع الملف 2 1.3 إذن 2 1.4 تغيير بت الإذن 4 1.4.1 وضع الرمز 4 1.4.2 مثال أمر chmod 5 1.4.3 الوضع المطلق 5 1.4.4 أمثلة أخرى للأمر chmod 6 1.4.5 يمكنك اختيار استخدام الوضع الرمزي أو الوضع المطلق 7 1.5 المحتويات 7 1.6 سويد/دليل 7 1.6.1 لماذا نستخدم suid/guid 8 1.6.2 مثال على ضبط suid/guid 8 1.7 تشاون و chgrp 9 1.7.1 المثال الموضح 9 1.7.2 مثال chgrp 9 1.7.3 اكتشف مجموعات المستخدمين التي تنتمي إليها 9 1.7.4 تعرف على المجموعات التي ينتمي إليها المستخدمون الآخرون10 1.8القناع 10 1.8.1 كيفية حساب قيمة أوماسك 10 1.8.2 قيمة umask شائعة الاستخدام 11 1.9 الروابط الرمزية 12 1.9.1 استخدام الروابط الإلكترونية لحفظ صور متعددة للملف 12 1.9.2 مثال الارتباط الرمزي 12 1.10 ملخص 13 الفصل 2 استخدام البحث وxargs 14 2.1 البحث عن خيارات الأمر 14 2.1.1 استخدام خيار الاسم 15 2.1.2 استخدام الخيار بيرم 16 2.1.3 تجاهل الدليل 16 2.1.4 استخدام خيارات المستخدم والمستخدم 16 2.1.5 استخدام خيارات المجموعة وعدم المجموعة 16 2.1.6 البحث عن الملفات بناءً على وقت التغيير 17 2.1.7 البحث عن الملفات الأحدث أو الأقدم من ملف معين 17 2.1.8 استخدام خيار الكتابة 17 2.1.9 استخدام خيار الحجم 18 2.1.10 استخدام خيار العمق 18 2.1.11 استخدام خيار التثبيت 18 2.1.12 استخدام خيار cpio رقم 18 2.1.13 استخدم exec أو ok لتنفيذ أوامر shell 19 2.1.14 المثال 20 لأمر البحث 2.2 اكسار 20 2.3 ملخص 21 الفصل 3 تنفيذ الأوامر في الخلفية 22 3.1 كرون وكرونتاب 22 3.1.1 نطاق كرونتاب 22 3.1.2 أمثلة على إدخالات crontab 23 3.1.3 خيار أمر crontab رقم 23 3.1.4 إنشاء ملف crontab جديد 24 3.1.5 قائمة ملفات crontab 24 3.1.6 تحرير ملف crontab 24 3.1.7 حذف ملف crontab 25 3.1.8 استعادة ملفات crontab المفقودة 25 3.2 في الأمر 25 3.2.1 استخدم الأمر at لإرسال الأوامر أو البرامج النصية 26 3.2.2 قائمة المهام المقدمة 27 3.2.3 مسح الوظيفة 27 3.3 والأمر 27 3.3.1 إرسال الأمر إلى الخلفية 28 3.3.2 استخدم الأمر ps لعرض العملية 28 3.3.3 قتل العمليات الخلفية 28 3.4 الأمر nohup 29 3.4.1 استخدم الأمر nohup لإرسال الوظائف 29 3.4.2 تقديم عدة وظائف دفعة واحدة 29 3.5 ملخص 30 الفصل 4 استبدال اسم الملف 31 4.1 الاستخدام* 31 4.2 الاستخدام؟ 32 4.3 استخدام [...] و[!...] 32 4.4 ملخص 33 الفصل الخامس المدخلات والمخرجات 34 5.1 صدى 34 5.2 قراءة 35 5.3 القط 37 5.4 خط الأنابيب 38 5.5 نقطة 39 5.6 المدخلات والمخرجات والأخطاء القياسية 40 5.6.1 المدخلات القياسية 40 5.6.2 الإخراج القياسي 40 5.6.3 الخطأ المعياري 40 5.7 إعادة توجيه الملف 40 5.7.1 إعادة توجيه المخرجات القياسية 41 5.7.2 إعادة توجيه المدخلات القياسية 42 5.7.3 إعادة توجيه الخطأ المعياري 42 5.8 استخدام المخرجات القياسية والخطأ القياسي معًا 43 5.9 دمج المخرجات القياسية والخطأ المعياري 43 5.10 إكس 44 5.11 استخدام واصفات الملفات 44 5.12 ملخص 45 الفصل السادس تسلسل تنفيذ الأوامر 46 6.1 استخدام && 46 6.2 الاستخدام ||46 6.3 استخدم () و { } لدمج الأوامر 47 6.4 ملخص 48 الجزء 2 تصفية النص الفصل 7 مقدمة للتعبيرات العادية 49 7.1 استخدام الفترات لمطابقة الأحرف الفردية 50 7.2 قم بمطابقة سلسلة أو تسلسل أحرف مع ^ في بداية السطر 50 7.3 قم بمطابقة السلسلة أو الحرف 51 مع $ في نهاية السطر 7.4 استخدم * لمطابقة حرف واحد أو تسلسله المتكرر في سلسلة 51 7.5 استخدم لإخفاء معنى الحرف الخاص 52 7.6 استخدم [] لمطابقة نطاق أو set52 7.7 استخدم {} لمطابقة عدد مرات ظهور نتيجة النمط 53 7.8 ملخص 55 الفصل 8 عائلة جريب 56 8.1 جريب 57 8.1.1 علامات الاقتباس المزدوجة 57 8.1.2 خيار grep رقم 57 8.1.3 الاستعلام عن ملفات متعددة 57 8.1.4 مطابقة الخط 57 8.1.5 عدد الخطوط 58 8.1.6 عرض الخطوط غير المتطابقة 58 8.1.7 المطابقة التامة 58 8.1.8 حساسية الحالة58 8.2 grep والتعبيرات العادية 58 8.2.1 نطاق الوضع 59 8.2.2 لا يتطابق مع بداية السطر 59 8.2.3 تعيين الحالة 59 8.2.4 تطابق أي شخصية 59 8.2.5 الاستعلام عن التاريخ 59 8.2.6 مجموعة النطاق 60 8.2.7 احتمالية ظهور النمط 60 8.2.8 استخدم grep لمطابقة أنماط "AND" أو "OR" 61 8.2.9 سطر فارغ 61 8.2.10 مطابقة الأحرف الخاصة 61 8.2.11 اسم الملف المنسق للاستعلام 61 8.2.12 الاستعلام عن عنوان IP 61 8.3 اسم الفئة 62 8.4 أمر grep للنظام 62 8.4.1 جدول المحتويات 63 8.4.2 ملف المرور 63 8.4.3 استخدام الأمر ps 63 8.4.4 استخدام grep 64 على سلسلة 8.5 جيجا 64 8.6 ملخص 65 الفصل 9 مقدمة إلى AWK 66 9.1 الاتصال بـ awk 66 9.2 البرنامج النصي AWK 67 9.2.1 الأنماط والإجراءات 67 9.2.2 المجالات والسجلات 67 9.2.3 التعابير العادية وعملياتها في awk 70 9.2.4 الحروف الأولية 70 9.2.5 العوامل الشرطية 70 9.2.6 awk المتغيرات المضمنة 73 9.2.7 NF وNR واسم الملف 74 9.2.8 عامل awk 75 9.2.9 وظائف السلسلة المضمنة 78 9.2.10 تسلسل إخفاء السلسلة 80 9.2.11 وظيفة الإخراج AWK printf 81 9.2.12 معدّل printf 81 9.2.13 مصفوفة awk 86 9.3 ملخص 88 الفصل 10 مقدمة لاستخدام sed 89 10.1 كيفية قراءة البيانات باستخدام sed 89 10.2 الاتصال بـ 89 10.2.1 توفير مخرجات sed 90 10.2.2 كيفية استخدام sed للاستعلام عن نص في ملف 90 10.2.3 أوامر التحرير الأساسية 90 10.3 السيد والتعبيرات العادية 91 10.4 أمثلة برمجة Sed الأساسية 91 10.4.1 استخدام p(rint) لعرض السطر 91 10.4.2 نطاق الطباعة 91 10.4.3 وضع الطباعة 92 10.4.4 الاستعلام باستخدام الأنماط وأرقام الأسطر 92 10.4.5 مطابقة الأحرف الأولية 92 10.4.6 عرض الملف بأكمله 92 10.4.7 أي حرف 92 10.4.8 السطر الأول 92 10.4.9 السطر الأخير 93 10.4.10 طباعة السطر رقم 93 10.4.11 نص إضافي 93 10.4.12 إنشاء ملف البرنامج النصي sed 94 10.4.13 إدراج النص 94 10.4.14 تعديل النص 95 10.4.15 حذف النص 96 10.4.16 النص البديل 96 10.5 تعديل السلاسل باستخدام الاستبدال 97 10.6 اكتب نتائج sed إلى ملف الأمر 97 10.7 قراءة النص من ملف 98 10.8 الخروج 98 بعد المطابقة 10.9 عرض أحرف التحكم في الملفات 99 10.10 استخدام نظام sed 99 10.10.1 التعامل مع أحرف التحكم 99 10.10.2 معالجة مخرجات الرسالة 101 10.10.3 إزالة الرقم 101 في بداية السطر 10.10.4 نص إضافي 102 10.10.5 تمرير القيمة 102 من Shell إلى sed 10.10.6 ضبط متغيرات الصدفة من مخرج sed 102 10.11 أوامر سريعة من سطر واحد 102 10.12 ملخص 103 الفصل 11 الاندماج والانقسام 104 11.1 استخدام الفرز 104 11.1.1 نظرة عامة 104 11.1.2 خيارات الفرز 104 11.1.3 توفير المخرجات 105 11.1.4 طريقة بدء التشغيل 105 11.1.5 كيف يشير الفرز إلى المجالات 105 11.1.6 ما إذا كان الملف قد تم تصنيفه105 11.1.7 الفرز الأساسي 106 11.1.8 تصنيف التصنيف العكسي 106 11.1.9 التصنيف حسب المجال المعين 106 11.1.10 التصنيف الميداني العددي 106 11.1.11 تصنيف التفرد 107 11.1.12 طرق فرز أخرى باستخدام k 108 11.1.13 استخدام k لفرز مفاتيح التصنيف 108 11.1.14 حدد تسلسل الفرز 108 11.1.15 استخدام نقاط البيع 108 11.1.16 تصنيف المخرجات باستخدام الرأس والذيل 109 11.1.17 awk يستخدم الفرز لإخراج النتائج 109 11.1.18 دمج ملفي تصنيف 110 11.2 فرز النظام 110 11.3 الاستخدام الفريد 111 11.4 الانضمام إلى الاستخدام 112 11.5 قطع الاستخدام 114 11.5.1 استخدام فواصل المجال 115 11.5.2 قطع الحقل المحدد 115 11.6 استخدام اللصق 116 11.6.1 تحديد الأعمدة 116 11.6.2 استخدام محددات الحقول المختلفة 116 11.6.3 لصق إدخال خط الأوامر 117 11.7 الاستخدام المقسم 117 11.8 ملخص 118 الفصل 12 ط الاستخدام 119 12.1 حول آر 119 12.1.1 نطاق الأحرف 119 12.1.2 توفير المخرجات 120 12.1.3 إزالة الأحرف المتكررة 120 12.1.4 حذف الأسطر الفارغة 120 12.1.5 من الأحرف الكبيرة إلى الأحرف الصغيرة 121 12.1.6 من الأحرف الصغيرة إلى الأحرف الكبيرة 121 12.1.7 حذف الأحرف المحددة 121 12.1.8 تحويل أحرف التحكم 122 12.1.9 التحويل السريع 122 12.1.10 مطابقة أكثر من حرف 123 12.2 ملخص 123 الجزء 3 بيئة تسجيل الدخول الفصل 13 بيئة تسجيل الدخول 125 13.1 / الخ / الملف الشخصي 125 13.2 الملف الشخصي للمستخدم $HOME.128 13.3 استخدام ستي 129 13.4 إنشاء ملف تسجيل الخروج 131 13.5 ملخص 131 الفصل 14 البيئة ومتغيرات شل 132 14.1 ما هي متغيرات الصدفة132 14.2 المتغيرات المحلية 132 14.2.1 عرض المتغيرات 133 14.2.2 مسح المتغيرات 133 14.2.3 عرض جميع متغيرات الصدفة المحلية 133 14.2.4 الجمع بين القيم المتغيرة 134 14.2.5 اختبار ما إذا كان قد تم تعيين متغير 134 14.2.6 استخدام المتغيرات لحفظ معلمات أوامر النظام 135 14.2.7 تحديد متغيرات للقراءة فقط 135 14.3 متغيرات البيئة 136 14.3.1 ضبط متغيرات البيئة 136 14.3.2 عرض متغيرات البيئة 136 14.3.3 مسح متغيرات البيئة 137 14.3.4 تضمين متغيرات الصدفة 137 14.3.5 متغيرات البيئة الأخرى 139 14.3.6 تعيين الأمر 140 14.3.7 تصدير المتغيرات إلى العمليات الفرعية 140 14.4 المعلمات المتغيرة الموضعية 141 14.4.1 استخدام المعلمات الموضعية في البرامج النصية 142 14.4.2 تمرير المعلمات إلى أوامر النظام 142 14.4.3 معلمات متغيرة محددة 143 14.4.4 حالة الخروج النهائي 144 14.5 ملخص 145 الفصل 15 يقتبس 146 15.1 ضرورة الاستشهاد 146 15.2 علامات الاقتباس المزدوجة 146 15.3 الاقتباسات الفردية 147 15.4 العلامات الخلفية147 15.5 شرطة مائلة عكسية 148 15.6 الملخص 149 الجزء الرابع برمجة شل الأساسية الفصل 16 مقدمة لبرامج شل النصية 151 16.1 أسباب استخدام نصوص شل 151 16.2 محتوى البرنامج النصي 151 16.3 تشغيل البرنامج النصي 152 16.4 ملخص 153 الفصل 17 الاختبار المشروط154 17.1 حالة ملف الاختبار 154 17.2 استخدام العوامل المنطقية عند الاختبار 155 17.3 اختبار السلسلة 155 17.4 قيمة الاختبار 156 17.5 الاستخدام السريع 157 17.5.1 العد التزايدي 158 17.5.2 الاختبارات العددية 158 17.5.3 مطابقة الأنماط 158 17.6 الملخص 159 الفصل 18 هياكل التحكم في التدفق 160 18.1 حالة الخروج 160 18.2 هيكل التحكم 160 18.2.1 التحكم في التدفق 161 18.2.2 الحلقات 161 18.3 إذا كان الأمر كذلك، بيان 161 18.3.1 بيان إذا بسيط 162 18.3.2 اختبار القيمة المتغيرة 162 18.3.3 فحص مخرجات grep 163 18.3.4 اختبار مخرجات grep مع المتغيرات 163 18.3.5 فحص إخراج نسخة الملف 164 18.3.6 اختبار الدليل الحالي 164 18.3.7 اختبار إذن الملف 165 18.3.8 تمرير معلمات الاختبار إلى البرامج النصية 165 18.3.9 تحديد ما إذا كان البرنامج النصي في الوضع التفاعلي165 18.3.10 بيان بسيط إذا كان غير ذلك 166 18.3.11 اختبار الإعداد المتغير 166 18.3.12 اكتشاف المستخدم الذي يقوم بتشغيل البرنامج النصي 166 18.3.13 تمرير معلمات البرنامج النصي إلى أوامر النظام 167 18.3.14 فارغ: استخدام الأمر 167 18.3.15 نتائج إنشاء دليل الاختبار 168 18.3.16 مثيل نسخة آخر 169 18.3.17 عبارات if المتعددة 169 18.3.18 اختبار وتحديد متغيرات البيئة 169 18.3.19 الكشف عن حالة الأمر الأخيرة 170 18.3.20 إضافة وتدقيق القيم الصحيحة 171 18.3.21 البرنامج النصي البسيط لتسجيل الدخول الآمن 172 18.3.22 استخدام إليف 173 18.3.23 استخدام elif للكشف عن الحالات المتعددة 173 18.3.24 الكشف عن مواقع الملفات المتعددة 174 18.4 بيان الحالة 175 18.4.1 بيان الحالة البسيطة 175 18.4.2 استخدام أنماط المطابقة | 18.4.3 المطالبة بكتابة y أو n 177 18.4.4 الحالة ومعلمة الأمر التي تمر بـ 177 18.4.5 التقاط المدخلات وتنفيذ أمر فارغ 178 18.4.6 قيم المتغيرات الافتراضية 179 18.5 للحلقة 180 18.5.1 حلقة بسيطة 181 18.5.2 طباعة قائمة السلاسل 181 18.5.3 استخدام الأمر ls مع حلقة for 181 18.5.4 استخدام المعلمات مع الحلقات 182 18.5.5 استخدام حلقة for للاتصال بالخادم 183 18.5.6 استخدام حلقة for لعمل نسخة احتياطية من الملفات 183 18.5.7 تحويل الملفات المتعددة 183 18.5.8 عمليات الحذف المتعددة 184 18.5.9 عدد الحلقات 184 18.5.10 للحلقات والوثائق المحلية 184 18.5.11 لتضمين الحلقة 185 18.6 حتى الحلقة 186 18.6.1 بسيطة حتى الحلقة 186 18.6.2 ملفات المراقبة 187 18.6.3 مراقبة مساحة القرص 187 18.7 أثناء الحلقة 188 18.7.1 حلقة بسيطة 188 18.7.2 استخدم أثناء الحلقة لقراءة إدخال لوحة المفاتيح 188 18.7.3 قراءة البيانات من ملف باستخدام حلقة while 189 18.7.4 قراءة الملفات باستخدام IFS 189 18.7.5 معالجة الملفات مع شروط الاختبار 190 18.7.6 مسح أسطر الملف للعدد 191 18.7.7 قراءة زوج من السجلات في وقت واحد 193 18.7.8 تجاهل الحرف # 193 18.7.9 معالجة التقارير المنسقة 194 18.7.10 أثناء الحلقات وواصفات الملفات 196 18.8 استخدام الفواصل والاستمرار في حلقات التحكم 197 18.8.1 استراحة 197 18.8.2 القفز من بيان الحالة 197 18.8.3 تابع 197 18.8.4 تصفح خطوط الملفات 198 18.9 القائمة 199 18.10 ملخص 201 الفصل 19 وظائف شل 202 19.1 تحديد الوظائف في البرامج النصية 203 19.2 استخدام الوظائف في البرامج النصية 203 19.3 تمرير المعلمات إلى الوظائف 203 19.4 إرجاع 203 من وظيفة الاستدعاء 19.5 اختبار القيمة المرتجعة للوظيفة 204 19.6 استخدام الوظائف في الصدفة 204 19.7 إنشاء ملفات الوظائف 204 19.8 تحديد موقع الملفات 205 19.9 فحص وظائف التحميل 205 19.10 تنفيذ وظائف الصدفة 205 19.10.1 حذف وظيفة الصدفة 206 19.10.2 تحرير وظائف الصدفة 206 19.10.3 أمثلة الوظائف 207 19.10.4 تجميع الوظائف معًا 219 19.11 استدعاءات الوظائف 219 19.11.1 وظائف الاتصال في البرامج النصية 219 19.11.2 استدعاء الوظائف من ملفات الوظائف 220 19.12 تحديد موقع الملفات لا يقتصر فقط على الوظائف 222 19.13 ملخص 223 الفصل 20 تمرير المعلمات إلى البرامج النصية224 20.1 أمر التحول 225 20.1.1 الاستخدام البسيط لأمر التحول 225 20.1.2 آخر معلمة تم إدخالها في سطر الأوامر 225 20.1.3 استخدام Shift لمعالجة تحويل الملفات 226 20.2 الحصول على 229 20.2.1 مثال البرنامج النصي getopts 229 20.2.2 كيفية استخدام getopts 231 20.2.3 استخدم getopts لتحديد القيم المتغيرة 231 20.2.4 طريقة قيمة الوصول 232 20.2.5 استخدام getopts للتعامل مع تحويل الملفات 233 20.3 الملخص 235 الفصل 21 إنشاء إخراج الشاشة 236 21.1 استخدام 236 21.1.1 إخراج السلسلة 236 21.1.2 الإخراج الرقمي 237 21.1.3 الناتج المنطقي 237 21.2 استخدام 237 21.2.1 ضبط الأمر tput 237 21.2.2 استخدام المخرجات المنطقية 237 21.2.3 استخدام tput في البرامج النصية 237 21.2.4 توليد تسلسلات الهروب 238 21.2.5 موضع المؤشر 239 21.2.6 عرض النص في وسط الشاشة 240 21.2.7 العثور على سمات المحطة الطرفية 240 21.2.8 استخدام مفاتيح الوظائف في البرامج النصية 241 21.2.9 استخدام اللون 242 21.2.10 توليد اللون 243 21.2.11 إنشاء قائمة رائعة 246 21.3 ملخص 251 الفصل 22 إنشاء إدخال الشاشة 252 22.1 إضافة السجلات 252 22.2 حذف السجلات 262 22.3 سجلات التعديل 266 22.4 عرض السجلات 270 22.5 الملخص 273 الفصل 23 تصحيح البرامج النصية274 23.1 الأخطاء العامة 274 23.1.1 خطأ الحلقة 274 23.1.2 علامات الاقتباس المفقودة النموذجية 274 23.1.3 خطأ الاختبار 274 23.1.4 حالة الأحرف 275 23.1.5 للحلقة 275 23.1.6 صدى 275 23.2 تعيين الأمر 275 23.3 الملخص 276 الفصل 24 أوامر تضمين Shell 277 24.1 قائمة كاملة بأوامر الصدفة المضمنة 277 24.1.1 الأشخاص 277 24.1.2 مجموعة 278 24.1.3 مرات 278 24.1.4 النوع 278 24.1.5 الحد 279 24.1.6 انتظر 279 24.2 الملخص 279 الجزء الخامس تقنيات برمجة شل المتقدمة الفصل 25 مناقشة متعمقة