فهرست مطالب

    بخش اول :   مقدمه
    1. برنامه نویسی پوسته!
    2. شروع با یک Sha-Bang
    بخش دوم : مبانی
    1. کاراکترهای خاص
    2. مقدمه‌ای بر متغیرها و پارامترها
    3. نقل قول
    4. خروج و وضعیت خروج
    5. تست‌ها
    6. عملکردها و مباحث مربوطه
    بخش سوم : افزون بر مبانی
    1. یک نگاه دیگر به متغیرها
    2. دستکاری متغیرها
    3. حلقه‌ها و انشعاب‌ها
    4. جایگزینی فرمان
    5. بسط حسابی
    6. زنگ تفریح
    بخش چهارم : فرمانها
    1. فرمانهای داخلی و Builtinها
    2. فرمان‌ها، برنامه‌ها و فیلترهای خارجی
    3. فرمانهای سیستم و مدیریت
    بخش پنجم : موضوعات پیشرفته
    1. عبارتهای منظم
    1. Here Documentها
    2. تغییر مسیر ورودی-خروجی
    3. پوسته‌های فرعی
    4. پوسته‌های محدود شده
    5. جایگزینی پردازش
    6. توابع
    7. مستعارها
    8. ساختارهای لیست
    9. آرایه‌ها
    10. ارجاع‌های غیرمستقیم
    11. ‎/dev‎ و ‎/proc‎
    12. برنامه‌نویسی شبکه
    13. در مورد Zeroها و Nullها
    14. اشکالزدایی
    15. گزینه‌ها
    16. Gotchas
    17. اسکریپت‌نویسی با سلیقه
    18. گوناگون
    19. Bash نگارش ‏2، 3 و 4
  1. نکات پایانی
    1. یادداشت مؤلف
    2. در باره مؤلف
    3. برای کمک کجا بروید
    4. ابزارهای مورد استفاده برای تهیه این کتاب
    5. قدردانی‌ها
    6. رفع مسؤلیت
  2. فهرست کتاب‌ها

پیوست‌ها

  1. اسکریپت‌های اهداء شده
  2. برگه‌های مرجع
  3. پیش درآمدی بر Sed Awk
    1. Sed
    2. Awk
  4. مدیریت و تجزیه نام‌های مسیر
  5. کدهای خروج با معانی خاص
  6. یک مقدمه مشروح بر ورودی-خروجی و تغییر مسیر ‎I/O‎
  7. گزینه‌های خط فرمان
    1. گزینه‌های استاندارد خط فرمان
    2. گزینه خط فرمان Bash
  8. فایلهای مهم
  9. دایرکتوری‌های مهم سیستم
  10. مقدمه‌ای بر تکمیل قابل برنامه‌ریزی
  11. محلی‌سازی
  12. فرمان‌های تاریخچه
  13. نمونه فایلهای ‎.bashrc‎ و ‎.bash_profile‎
  14. تبدیل فایلهای دسته‌ای DOS به اسکریپت‌های پوسته
  15. تمرین‌ها
    1. تجزیه تحلیل اسکریپت‌ها
    2. نوشتن اسکریپت‌ها
  16. تاریخچه بازنگری
  17. دانلود و سایت‌های Mirror
  18. کارهایی برای انجام
  19. حق تألیف
  20. جدول ASCII
  21. Index

فهرست جدول‌ها

  1. 8-1. اولویت عملگر
  2. 15-1. تعیین هویت کننده‌های Job
  3. 33-1. گزینه‌های Bash
  4. 36-1. اعداد نماینده رنگها در رشته‌های Escape
  5. B-1. متغیرهای خاص پوسته
  6. B-2. عملگرهایTEST: مقایسه دوتایی
  7. B-3. عملگرهایTEST: فایلها
  8. B-4. جایگزینی پارامترها و بسط‌
  9. B-5. عملیات رشته‌ای
  10. B-6. ساختارهای متفرقه
  11. C-1. عملگرهای اصلی sed
  12. C-2. مثالهای عملگرهای sed
  13. E-1. کدهای خروج رزرو شده
  14. N-1. کلید واژه‌های - متغیرها - عملگرهای فایل دسته‌ای، و معادل‌های آنها در پوسته
  15. N-2. فرمانهای DOS و معادلهای UNIX آنها
  16. P-1. تاریخچه بازنگری

فهرست مثال‌ها

    2-1. cleanup: اسکریپتی برای پاکسازی فایلهای داخل ‎/var/log
    2-2. cleanup: یک اسکریپت پاکسازی بهبود یافته
    2-3. cleanup: یک نگارش ارتقاء یافته و کلی از اسکریپت‌های فوق.
    3-1. بلوک‌های کد و تغییر مسیر ‎I/O
    3-2. ذخیره خروجی استاندارد یک قطعه کد در یک فایل
    3-3. اجرای یک حلقه در پس‌زمینه
    3-4. پشتیبان‌گیری پایان روز از تمام فایلهای تغییر یافته
    4-1. تخصیص متغیر و جایگزینی
    4-2. تخصیص ساده متغیر
    4-3. تخصیص متغیر، ساده و تفننی
    4-4. عدد صحیح یا رشته؟
    4-5. پارامترهای مکانی
    4-6. wh، مراجعه به نام دامنه whois
    4-7. کاربرد shift
    5-1. نشان دادن متغیرهای غیرعادی
    5-2. کاراکترهای گریز یافته
    5-3. تشخیص ضربه-کلیدها
    6-1. خروج - وضعیت خروج
    6-2. منفی کردن شرط با کاربرد !
    7-1. کدام صحیح است؟
    7-2. همانندی test و ‎/usr/bin/test‎ و  ‎[‎ ‎]‎و  ‎/usr/bin/‎[‎‎
    7-3. تست‌های حسابی با کاربرد ‎(( ))‎
    7-4. بررسی پیوندهای ناقص
    7-5. مقایسه‌های حسابی و رشته‌ای
    7-6. بررسی آنکه آیا یک رشته تهی است
    7-7. zmore
    8-1. بزرگترین مقسوم علیه مشترک
    8-2. کاربرد عملگرهای حسابی
    8-3. تست‌های شرطی مرکب با استفاده از && و ‎||
    8-4. نمایش ثابت‌های عددی
    8-5. دستکاری متغیرها به شیوه C
    9-1. ‎$IFS‎ و فضای سفید
    9-2. زمانبندی ورودی
    9-3. زمانبندی ورودی، یکی دیگر
    9-4. زمانبندی read
    9-5. آیا من root هستم؟
    9-6. arglist: لیست کردن شناسه‌ها با ‎$*‎ و ‎$@‎
    9-7. ناهمانندی رفتار ‎$*‎ و ‎$@‎
    9-8. ‎$*‎ و ‎$@‎ هنگامی که ‎$IFS‎ تهی باشد
    9-9. متغیر Underscore (خط زیر)
  9-10. کاربرد declare برای نوع متغیرها
  9-11. تولید اعداد تصادفی
  9-12. گزینش یک کارت از یک دسته ورق
  9-13. شبیه‌سازی حرکت Brownian (مترجم: جنبش تصادفی ذرات ریز معلق در یک مایع یا گاز)
  9-14. عدد تصادفی بین مقادیر معین
  9-15. انداختن یک طاس منفرد با RANDOM
  9-16. بنیاد کردن دوبارهِ RANDOM
  9-17. اعداد شبه تصادفی با کاربرد awk
  10-1. درج یک سطر خالی میان پاراگراف‌ها در یک فایل متن
  10-2. تولید یک رشته ۸ کاراکتری «تصادفی»
  10-3. تبدیل قالب فایل‌های گرافیکی، با تغییر نام فایل
  10-4. تبدیل فایلهای صوتی جریانی به ogg
  10-5. تقلید کردن از getopt
  10-6. روشهای جایگزین استخراج و تعبیه زیر رشته‌ها
  10-7. کاربرد جایگزینی پارامتر و پیغام خطاها
  10-8. جایگزینی پارامتر و پیغام‌های «نحوه کاربرد»
  10-9. طول یک متغیر
10-10. انطباق الگو در جایگزینی پارامتر
10-11. تغییر پسوند نام فایلها:
10-12. کاربرد انطباق الگو برای تجزیه رشته‌های دلخواه
10-13. انطباق الگوها بر پیشوند یا پسوند رشته
  11-1. حلقه‌های ساده for
  11-2. حلقه for با دو پارامتر در هر عضو [لیست]
  11-3. Fileinfo: عمل روی یک لیست فایل گنجانده شده در یک متغیر
  11-4. عملیات روی یک لیست فایل که به عنوان پارامتر بیان شده
  11-5. عمل روی فایلها با یک حلقه for
  11-6. فقدان in [list]‎ در یک حلقه for
  11-7. تولید ‎[list]‎ در یک حلقه for با جایگزینی فرمان
  11-8. یک جایگزینی grep برای فایلهای باینری
  11-9. لیست کردن تمام کاربران سیستم
11-10. بررسی تمام فایلهای باینری یک دایرکتوری برای نویسنده آنها
11-11. فهرست کردن پیوندهای نمادین در یک دایرکتوری
11-12. لینک‌های نمادین در یک دایرکتوری، ذخیره شده در یک فایل
11-13. یک حلقه for به سبک C
11-14. کاربرد efax در وضعیت دسته‌ای
11-15. حلقه ساده while
11-16. یک حلقه while دیگر
11-17. حلقه while با شرط‌های چندگانه
11-18. ترکیب دستوری سبک C در یک حلقه while
11-19. حلقه until
11-20. حلقه تو در تو
11-21. اثرات break و continue در یک حلقه
11-22. بیرون رفتن از سطوح چندگانه حلقه
11-23. ادامه دادن در یک سطح بالاتر حلقه
11-24. کاربرد ‎continue N‎ در یک وظیفه واقعی
11-25. کاربرد case
11-26. ایجاد منوها با استفاده از case
11-27. کاربرد جایگزینی فرمان برای تولید متغیر case
11-28. انطباق رشته ساده
11-29. کنترل الفبایی ورودی
11-30. تولید منوها با استفاده از select
11-31. تولید منوها در یک تابع با استفاده از select
  12-1. ترفندهای اسکریپت نابخردانه
  12-2. تولید متغیر از یک حلقه
  12-3. پیدا کردن anagramها
  15-1. اسکریپتی که چند نمونه از خودش را تولید مثل می‌کند
  15-2. ‎printf در عمل
  15-3. تخصیص متغیر، کاربرد ‎read
  15-4. موقعی که ‎read متغیر ندارد چه اتفاقی رخ می‌دهد
  15-5. ورودی چندسطری برای ‎read
  15-6. تشخیص کلیدهای جهت‌نما
  15-7. کاربرد ‎read با تغییر مسیر فایل
  15-8. مشکلات خواندن از یک لوله
  15-9. تغییر دایرکتوری کاری فعلی
15-10. به کاربردن ‎let برای انجام محاسبه.
15-11. نشان دادن تأثیر ‎eval
15-12. کاربرد ‎eval برای انتخاب از میان متغیرها
15-13. نشان دادن پارامترهای سطر فرمان
15-14. اجبار به قطع اتصال
15-15. یک نگارش از rot13
15-16. کاربرد ‎set با پارامترهای مکانی
15-17. معکوس کردن پارامترهای مکانی
15-18. تخصیص مجدد پارامترهای مکانی
15-19. ‎Unset کردن یک متغیر
15-20. کاربرد ‎export برای عبور دادن یک متغیر به یک اسکریپت تعبیه شده ‎awk
15-21. کاربرد ‎getopts برای خواندن گزینه‌ها و شناسه‌های عبور داده شده به اسکریپت
15-22. «پیوست کردن» یک فایل داده‌ای
15-23. یک اسکریپت (بیفایده) که خودش را منبع می‌کند
15-24. اثرات ‎exec
15-25. اسکریپتی که خودش را ‎exec می‌کند
15-26. قبل از پیشروی، منتظر ماندن جهت پایان یافتن یک پردازش
15-27. اسکریپتی که خودش را می‌کشد
  16-1. کاربرد ‎ls برای ایجاد یک جدول محتویات جهت نوشتن در یک دیسک CDR
  16-2. Hello یا Good-bye
  16-3. نام بد، به حساب نیاوردن نام فایلهایی از دایرکتوری جاری که شامل کاراکترهای نامناسب و فاصله‌ها هستند .
  16-4. حذف کردن یک فایل توسط شماره inode آن
  16-5. Logfile: کاربرد xargs برای دیده‌بانی log سیستم
  16-6. کپی فایلهای دایرکتوری جاری به یک شاخه دیگر
  16-7. کشتن پردازشها توسط نام
  16-8. کاوش تکرار کلمه با استفاده از xargs
  16-9. کاربرد expr
16-10. کاربرد date
16-11. محاسبات تاریخ
16-12. کاوش تکرار کلمات
16-13. کدام فایلها اسکریپت هستند؟
16-14. تولید اعداد تصادفی ۱۰ رقمی
16-15. کاربرد tail برای دیده‌بانی log سیستم
16-16. چاپ سطرهای From پیغام‌های ایمیل ذخیره شده
16-17. شبیه‌سازی grep در یک اسکریپت
16-18. حل کننده پازل جدول کلمات
16-19. جستجوی تعاریف در فرهنگ لغات Webster سال 1913
16-20. کنترل صحت کلمات در یک فهرست
16-21. toupper: تبدیل تمام فایل به حروف بزرگ.
16-22. lowercase: تغییر نام تمام فایلهای دایرکتوری جاری به حروف کوچک.
16-23. du: تبدیل فایل متن DOS به UNIX
16-24. rot13: رمزبندی ultra-weak
16-25. تولید پازل‌های "Crypto-Quote"
16-26. فهرست فایل قالب‌بندی شده.
16-27. کاربرد column برای قالب‌بندی فهرست یک دایرکتوری
16-28. nl: یک اسکریپت خود شماره گذاری.
16-29. manview: نمایش صفحه‌های man قالب‌دهی شده
16-30. کاربرد cpio برای انتقال یک درخت دایرکتوری
16-31. باز کردن یک بسته rpm
16-32. زدودن توضیحات از فایلهای برنامه‌ای C
16-33. پویش کردن ‎/usr/X11R6/bin‎‎
16-34. یک فرمانstrings «بهبود یافته»
16-35. کاربرد cmp داخل یک اسکریپت برای مقایسه دو فایل.
16-36. basename و dirname
16-37. اسکریپتی که بخش‌های خودش را کپی می‌کند
16-38. کنترل یکپارچگی فایل
16-39. رمزگشایی فایلهای رمزنگاری‌شده یونیکس به یونیکس
16-40. یافتن جایی برای گزارش کردن spammer
16-41. تجزیه تحلیل یک قلمرو spam
16-42. دریافت قیمت سهام
16-43. به روزرسانی FC4
16-44. کاربرد ssh
16-45. اسکریپتی که خودش را ایمیل می‌کند
16-46. تولید اعداد اول
16-47. اقساط ماهانه یک وام
16-48. تبدیل پایه اعداد
16-49. فراخوانی bc و استفاده از here document
16-50. محاسبه عدد پی
16-51. تبدیل یک عدد دهدهی به عدد مبنای شانزده
16-52. تجزیه عدد به ضرایب
16-53. محاسبه وتر مثلث
16-54. کاربرد seq برای تولید شناسه های حلقه
16-55. تعداد حرف
16-56. کابرد getopt در تجزیه گزینه‌های سطرفرمان
16-57. اسکریپتی که خودش را کپی می‌کند
16-58. به‌کارگرفتن dd
16-59. تصرف ضربه‌کلیدها
16-60. آماده‌سازی یک کارت SD قابل بوت شدن برای Raspberry Pi
16-61. حذف مطمئن یک فایل
16-62. تولید کننده نام فایل
16-63. تبدیل متر به مایل
16-64. به کار بردن m4
  17-1. تنظیم کلمه عبور جدید
  17-2. تنظیم یک کاراکتر erase
  17-3. secret password: خاموش کردن نمایش ترمینال
  17-4. تشخیص ضربه‌کلید
  17-5. بررسی یک میزبان ‌راه‌دور برایidentd
  17-6. pidof به کشتن یک پردازش کمک می‌کند
  17-7. بررسی یک ‎CD image‎
  17-8. ایجاد یک سیستم‌فایل در یک فایل
  17-9. افزودن یک دیسک سخت جدید
17-10. استفاده از umask برای پنهان کردن فایل خروجی از چشمان کنجکاو
17-11. Backlight: روشنایی صفحه نمایش ‎(laptop)‎ را تغییر می‌دهد
17-12. killall، از /etc/rc.d/init.d
  19-1. broadcast: به هر شخص متصل به سیستم پیغام می‌فرستد
  19-2. dummyfile: یک فایل دو سطری بیفایده تولید می‌کند
  19-3. پیغام چندسطری با استفاده از cat
  19-4. پیغام چندسطری، جداشده با tabها
  19-5. Here document با پارامترهای قابل تعویض
  19-6. بارگذاری یک جفت فایل به دایرکتوری incoming در Sunsite
  19-7. جایگزینی پارامتر غیر فعال شده
  19-8. اسکریپتی که اسکریپت دیگری تولید می‌کند
  19-9. Here documentها و توابع
19-10. Here Document ‎«بی‌نام»
19-11. به صورت توضیح درآوردن یک قطعه از کد
19-12. یک اسکریپت خود مستندساز
19-13. افزودن یک سطر به ابتدای فایل
19-14. تجزیه یک صندوق پستی
  20-1. تغییر مسیر دادن stdin با استفاده از exec
  20-2. تغییر مسیر دادن stdout با کاربرد exec
  20-3. تغییر مسیر دادن stdin و stdoutهر دو در یک اسکریپت با استفاده از exec
  20-4. پرهیز از یک پوسته فرعی
  20-5. حلقه while تغییر‌مسیر یافته
  20-6. شکل جایگزین حلقه while تغییرمسیر یافته
  20-7. حلقه until تغییرمسیر‌یافته
  20-8. حلقه for تغییرمسیر‌یافته
  20-9. حلقه for تغییرمسیر‌یافته ( stdin و stdout هر دو تغییر مسیر یافته‌اند)
20-10. بررسی if/then تغییرمسیر‌یافته
20-11. فایل داده‌ای names.data برای مثال‌های فوق
20-12. رویدادهای لاگین کردن
  21-1. محدوده متغیر در پوسته فرعی
  21-2. لیست کردن Profile کاربران
  21-3. اجرای موازی پردازش‌ها در پوسته‌های فرعی
  22-1. اجرای یک اسکریپت در وضعیت محدود شده
  23-1. تغییرمسیر قطعه کد بدون انشعاب کردن
  23-2. تغییرمسیر خروجی جایگزینی پردازش به داخل یک حلقه.
  24-1. توابع ساده
  24-2. تابع گیرنده پارامترها
  24-3. توابع و شناسه‌های سطرفرمان عبور داده شده به اسکریپت
  24-4. عبور دادن یک مرجع غیرمستقیم به یک تابع
  24-5. دسترسی به محتوای پارامتر عبور داده شده به یک تابع
  24-6. بار دیگر، دسترسی به محتوای پارامتر عبور داده شده به یک تابع
  24-7. عدد بزرگتر بین دو عدد
  24-8. تبدیل اعداد به ارقام رومی
  24-9. بررسی کمیت‌های بزرگ برگشتی از تابع
24-10. مقایسه دو عدد صحیح بزرگ
24-11. نام حقیقی از نام کاربری
24-12. میدان دید متغیر محلی
24-13. نمایش تجربی یک تابع بازگشتی ساده
24-14. یک نمایش ساده دیگر
24-15. بازگشت، با کاربرد متغیر محلی
24-16. رشته فیبوناچی
24-17. برج هانوی
  25-1. مستعارها در داخل اسکریپت
  25-2. unalias: برقراری و لغو یک مستعار
  26-1. به کار بردن یک لیست and برای بررسی شناسه‌های سطرفرمان
  26-2. یک بررسی دیگر شناسه‌های سطرفرمان با استفاده از یک لیست and
  26-3. استفاده از لیست‌های or در ترکیب با یک لیست and
  27-1. کاربرد آرایه ساده
  27-2. قالب‌بندی یک شعر
  27-3. عملیات گوناگون آرایه
  27-4. عملیات رشته‌ای روی آرایه‌ها
  27-5. بارگیری محتویات یک اسکریپت به داخل یک آرایه
  27-6. برخی خصوصیات ویژه آرایه‌ها
  27-7. از آرایه‌های تهی و عناصر تهی
  27-8. مقداردهی اولیه آرایه‌ها
  27-9. رونوشت‌برداری و به هم متصل کردن آرایه‌ها
27-10. بیشتر در باره الحاق آرایه‌ها
27-11. مرتب‌سازی حبابی
27-12. آرایه‌های جاسازی شده و مرجع‌های غیرمستقیم
27-13. غربال اراتوستن
27-14. غربال Eratosthenes، بهینه شده
27-15. شبیه‌سازی یک پشته push-down
27-16. عملیات پیچیده آرایه: کاوش یک سری مرموز ریاضی
27-17. شبیه‌سازی کردن یک آرایه دوبعدی، سپس کج کردن آن
  28-1. متغیرهای مرجع غیرمستقیم
  28-2. عبور دادن یک مرجع غیرمستقیم به awk
  29-1. استفاده از ‎/dev/tcp‎ برای عیب‌یابی
  29-2. نواختن موزیک
  29-3. پیدا کردن پردازش وابسته به یک PID
  29-4. وضعیت اتصال On-line
  30-1. چاپ محیط سرویس‌دهنده
  30-2. آدرس‌های IP
  31-1. پنهان‌سازی فضای ذخیره کوکی‌ها
  31-2. برقراری یک فایل swap با استفاده از ‎/dev/zero‎
  31-3. ایجاد کردن یک ramdisk
  32-1. یک اسکریپت دارای باگ
  32-2. فقدان کلیدواژه
  32-3. test24: یک اسکریپت دیگر دارای باگ
  32-4. بررسی یک شرط با یک ادعا
  32-5. Trap کردن در خروج
  32-6. پاکسازی بعد از ‎Control-C‎
  32-7. یک پیاده‌سازی ساده از نوار پیشروی
  32-8. پیگردی یک متغیر
  32-9. اجرای پردازش‌های چندگانه(روی یک ‎SMP box‎)
  34-1. مقایسه عددی و رشته‌ای معادل هم نیستند
  34-2. دام‌های پوسته فرعی
  34-3. لوله‌کشی خروجی یک echo به یک read
  36-1. wrapper شل
  36-2. یک wrapper پوسته به طور جزیی پیچیده‌تر
  36-3. یک wrapper پوسته عمومی که در یک فایل ثبت وقایع می‌نویسد
  36-4. یک wrapper پوسته پیرامون یک اسکریپت awk
  36-5. یک wrapper پوسته پیرامون یک اسکریپت دیگر awk
  36-6. Perl جاسازی شده در یک اسکریپت Bash
  36-7. اسکریپت‌های Bash و Perl ترکیب شده
  36-8. Python جاسازی شده در یک اسکریپت Bash
  36-9. اسکریپتی که صحبت می‌کند
36-10. یک اسکریپت(بدون استفاده) که به طور بازگشتی خودش را فراخوانی می‌کند
36-11. یک اسکریپت(مفید) که به طور بازگشتی خودش را فراخوانی می‌کند
36-12. یک اسکریپت دیگر(سودمند) که خودش را به طور بازگشتی فراخوانی می‌کند
36-13. یک بانک اطلاعات آدرس«رنگی شده»"
36-14. ترسیم یک جعبه
36-15. نمایش متن رنگی
36-16. یک بازی «اسبدوانی»
36-17. یک نوار پیشروی
36-18. برگشت دادن مهارت‌آمیز کمیت
36-19. برگشت دادن کمیت حتی بیشتر ماهرانه
36-20. عبور دادن و برگشت دادن آرایه‌ها
36-21. بازی با لغات
36-22. Widgetهای احضار شده بواسطه اسکریپت پوسته
36-23. مجموعه Test
  37-1. بسط رشته
  37-2. ارجاع‌های متغیر غیرمستقیم - روش جدید
  37-3. بانک اطلاعات کاربردی ساده، با استفاده از ارجاع به متغیر غیرمستقیم
  37-4. استفاده از آرایه‌ها و سایر شگردهای متفرقه برای توزیع تصادفی یک دست ورق بین چهار نفر
  37-5. یک بانک اطلاعات آدرس ساده
  37-6. یک بانک آدرس تا اندازه‌ای استادانه‌تر
  37-7. بررسی کاراکترها
  37-8. خواندن N کاراکتر
  37-9. به کار بردن یک here document برای تنظیم یک متغیر
37-10. لوله‌کشی ورودی به یک read
37-11. شاخص‌های منفی آرایه
37-12. پارامتر منفی در ساختار استخراج رشته
مثالهای ضمیمه
1. mailformat: قالب‌بندی یک پیغام ‎e-mail‎
2. rn: یک برنامه کم استعداد تغییرنام فایل
3. blank-rename: تغییر نام‌فایلهای دارای کاراکتر فاصله
4. encryptedpw: بارگذاری در یک سایت ftp، با استفاده از یک کلمه‌عبور رمزبندی شده به طور محلی
5. copy-cd: رونوشت‌برداری از CD داده‌ای
6. سری‌های Collatz
7. days-between: تعداد روزهای بین دو تاریخ
8. ساختن یک dictionary
9. تبدیل به کد Soundex
10. بازی Life
11. فایل داده برای ‎بازی Life‎
12. behead: حذف سرآیند پیغام‌های پستی و خبرها
13. password: تولید کردن کلمه‌عبورهای تصادفی ۸ کاراکتری
14. fifo: ایجاد پشتبان‌های روزانه، با استفاده از لوله‌های بانام
15. تولید اعداد اول با استفاده از عملگر modulo
16. tree: نمایش یک درخت دایرکتوری
17. tree2: اسکریپت جایگزین درخت دایرکتوری
18. string functions: توابع رشته‌ای سبک C
19. اطلاعات دایرکتوری
20. کتابخانه توابع hash
21. متن رنگی با استفاده از توابع hash
22. بیشتر در باره توابع hash
23. سوار کردن دستگاه‌های ذخیره USB
24. تبدیل به HTML
25. حفاظت از وبلاگ‌ها
26. محافظت رشته‌های لفظی
27. عدم حمایت از رشته‌های لفظی
28. تعیین هویت Spammer
29. شکار کردن Spammer
30. آسان‌تر ساختن کاربرد wget
31. یک اسکریپت podcasting
32. پشتیبان‌گیری شبانه به یک دیسک سخت firewire
33. یک فرمان cd توسعه‌یافته
34. یک اسکریپت تنظیم کارت صوتی
35. مشخص کردن پاراگراف‌های منقطع در یک فایل متن
36. مرتب‌سازی درجی
37. انحراف استاندارد
38. یک تولید کننده فایل pad برای مولفین آزمون‌افزار
39. یک ویرایشگر صفحه man
40. گلبرگ‌ها پیرامون گل‌سرخ
41. Quacky: یک نوع بازی لغت Perquackey
42. Nim
43. یک زمان سنج خط فرمان
44. یک راه حل همه منظوره تکلیف منزل اسکریپت‌نویسی پوسته
45. گردش مهره اسب در صفحه
46. مربع‌های جادویی
47. پازل پانزده خانه
48. برج هانوی، نگارش گرافیکی
49. برج هانوی، نگارش گرافیکی جایگزین
50. یک نگارش جایگزین برای اسکریپت getopt-simple.sh
51. نگارشی از مثال UseGetOpt.sh به کار رفته در پیوست بسطTab
52. گردش در تمام رنگ‌های ممکن پس‌زمینه
53. طرز کار کد مورس
54. کدنگاری و کدگشایی Base64
55. درج متن در یک فایل با استفاده از sed
56. رمزنگاری Gronsfeld
57. تولید کننده شماره Bingo
58. مبانی بازبینی شده
59. بررسی زمان اجرای فرمانهای مختلف
60. آرایه‌های انجمنی در مقابل آرایه‌های معمولی ( زمان اجرا)
C-1. شمارش تعداد کاراکتر
J-1. اسکریپت تکمیل برای UseGetOpt.sh
M-1. نمونه فایل ‎.bashrc‎
M-2. فایل ‎.bash_profile‎
N-1. فایل دسته‌ای VIEWDATA.BAT داس
N-2. اسکریپت پوسته ‎viewdata.sh‎: برگردان فایل ‎VIEWDATA.BAT‎
T-1. اسکریپتی که یک جدول ASCII تولید می‌کند
T-2. یک اسکریپت دیگر جدول ASCII
T-3. سومین اسکریپت جدول ASCII، با استفاده از awk