کتاب Effective Shell: A Practical User’s Guide to Working Smarter on the Command Line (شل اثربخش: راهنمای عملی برای کار هوشمندانهتر در خط فرمان)، همانطور که از نامش پیداست، یک منبع کاربردی برای هر کسی است که میخواهد بهرهوری خود را در خط فرمان افزایش دهد.
کتاب Effective Shell فراتر از اصول اولیه بوده و به شما میآموزد که چگونه با استفاده از تکنیکها و ابزارهای پیشرفته، کارهای خود را سریعتر و هوشمندانهتر انجام دهید. چه یک کاربر مبتدی باشید که به دنبال درک عمیقتر از شل هستید و چه یک کاربر باتجربه که میخواهد ترفندهای جدیدی یاد بگیرد، این راهنما نکات، ترفندها و بهترین شیوههایی را ارائه میدهد که به شما کمک میکند تا به یک کاربر ماهر خط فرمان تبدیل شوید و زمان بیشتری را ذخیره کنید.
در ادامه مقدمهای از کتاب Effective Shell را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Effective Shell:
من این خوششانسی را داشتهام که سالهای زیادی را بهعنوان مهندس نرمافزار کار کنم و در این مسیر با دانشمندان داده، مهندسان داده، مهندسان پایداری سیستم و انواع تکنولوژیستها همکاری داشتهام. یکی از ویژگیهای بارز تکنولوژیستهای برجسته این است که میتوانند ابزارهایشان را به شیوهای خلاقانه کنار هم قرار دهند و آنها را متناسب با سبک و نیازهای منحصربهفرد خود به کار بگیرند. این کتاب به شما کمک میکند دقیقاً همین کار را با استفاده از شل (Shell) انجام دهید.
کتاب Effective Shell دربارهی اسکریپتنویسی در شل یا مدیریت لینوکس نیست. هر فصل از کتاب Effective Shell، مجموعهای از تکنیکها را ارائه میدهد که به شما کمک میکند کارآمدتر عمل کنید، درک عمیقتری از سیستم خود بهدست آورید و محیط کاریتان را مطابق با جریان کاری شخصیتان تنظیم کنید. این کتاب از شما نمیخواهد که شیوهی کاریتان را بهکلی تغییر دهید یا ابزارهای فعلیتان را کنار بگذارید.
بلکه مجموعهای از مهارتها را در اختیارتان میگذارد که میتوانید به جعبهابزار خود بیفزایید و هرطور که خواستید از آنها بهره ببرید. اما پیش از آن، باید بدانید شل دقیقاً چیست و چرا ممکن است بخواهید از آن استفاده کنید.
چه کسانی باید کتاب Effective Shell را بخوانند؟
مخاطب اصلی این کتاب، افرادی هستند که دانش ابتدایی برنامهنویسی دارند و با محیط خط فرمان در سیستمعاملهای ویندوز، مکاواس یا لینوکس آشنا هستند. اگر کاملاً با محیط شل (Shell) بیگانه هستید، حتماً قبل از شروع فصل اول، به پیوستهای انتهای کتاب مراجعه کنید. در آن بخشها با اصول اولیهای مثل راهاندازی شل در سیستمتان و نحوهی حرکت در میان فایلها و پوشهها آشنا میشوید. بعد از آن، آمادگی بیشتری برای دنبالکردن مطالب کتاب و بهرهبرداری از مثالهای آن خواهید داشت.
توسعهدهندگان، دانشمندان داده، و مهندسان تقریباً در هر فصل از کتاب Effective Shell نکاتی خواهند یافت که فوراً در کار روزمرهی آنها قابلاستفاده است. فرقی نمیکند که از Python، Golang، JavaScript، .NET، Java یا زبان دیگری استفاده میکنید، یا اینکه با محیط توسعهی مجتمع (IDE) کار میکنید یا از ترمینال بهره میگیرید؛ مهارتهایی که در این کتاب میآموزید، توانایی شما در حل سریع مسائل را با استفاده از ابزاری ساده، انعطافپذیر و عمومی ارتقاء میدهد.
مهندسان پایداری سیستم، مدیران سیستم، و متخصصان DevSecOps نیز در این کتاب نکات و ترفندهای ارزشمندی خواهند یافت. اگر بهطور منظم با ماشینهای راهدور کار میکنید، به کانتینرها متصل میشوید، یا کلاسترها و محیطهای ابری را مدیریت میکنید، تکنیکهای متعددی در این کتاب وجود دارد که بهرهوری شما را بالا خواهد برد.
چه چیزهایی در کتاب Effective Shell هست؟
هر فصل مجموعهای مستقل از تکنیکها را معرفی میکند که میتوانید بلافاصله از آنها استفاده کنید. تمرکز کتاب بر ارائهی نکات کاربردی و ضروری است تا بتوانید مهارتها را سریع یاد بگیرید، نه اینکه شرح مفصل و گستردهای از تمام امکانات ارائه شود. هدف این است که بتوانید کتاب را بردارید، یک فصل را هنگام نوشیدن قهوه بخوانید و بلافاصله آن را امتحان کنید.
بسته به میزان آشنایی و راحتیتان با شل، میتوانید بیشتر فصلها را بهدلخواه و بدون ترتیب خاصی بخوانید. تنها استثنا بخش سوم کتاب Effective Shell است، جایی که در هر فصل یک اسکریپت شل را بهتدریج گسترش میدهید و به کمک تکنیکهای جدید آن را بهبود میبخشید. در سراسر کتاب Effective Shell نیز ارجاعات متقابل زیادی وجود دارد که اگر جایی گیر کردید یا نیاز به یادآوری داشتید، مسیر را به شما نشان میدهند.
بخش اول کتاب Effective Shell، مهارتهای پایه، مفاهیم و تکنیکهای ضروریای را معرفی میکند که بارها و بارها در کار روزمرهتان به کار خواهید برد.
فصل ۱: پرواز در خط فرمان
این فصل میانبرهای صفحهکلید و دستوراتی را معرفی میکند که برای وارد کردن و ویرایش سریع و آسان متن در خط فرمان استفاده میشوند. شما با تکنیکهای ناوبری مانند حرکت به جلو و عقب در طول یک خط یا کلمه آشنا میشوید و همچنین یاد میگیرید چگونه در تاریخچهی دستورات شل جستوجو کنید و از طریق شل به ویرایشگر متنی خود دسترسی داشته باشید.
فصل ۲: تفکر به شیوهی پایپلاینها (Pipelines)
این فصل به بررسی مفهوم پایپلاین میپردازد؛ الگویی که همهی برنامههای خط فرمان برای مدیریت ورودی و خروجی از آن پیروی میکنند. همچنین مفاهیم ابتدایی تغییر مسیر (Redirection) معرفی میشود؛ فرآیندی که به شما اجازه میدهد خروجی یک برنامه را به یک فایل بفرستید یا از محتوای یک فایل بهعنوان ورودی استفاده کنید. این مفاهیم پایهای برای فصلهای پیشرفتهتر حیاتی خواهند بود.
فصل ۳: یافتن فایلها و پوشهها
جستوجوی فایلها و پوشهها با استفاده از شل، کارهایی را که در محیط گرافیکی ممکن است زمانبر باشند، بهسرعت انجام میدهد. در این فصل با دستور داخلی و قدرتمند find
آشنا میشوید و میآموزید چطور از این ابزار برای انجام جستوجوهای کارآمدتر بهره ببرید.
بخش دوم: دستکاری متن و جریانها
این بخش از کتاب Effective Shell، تکنیکهایی را برای کار با متن — چه در کد، چه در داده یا فایلهای پیکربندی — آموزش میدهد.
فصل ۴: اصول عبارات منظم (Regular Expressions)
عبارات منظم یا رِگاِکسها (regex) با وجود شهرتشان به پیچیدگی، میتوانند بسیاری از کارها مانند جستوجو و تغییر الگوهای متنی در یک فایل را بسیار سادهتر کنند. در این فصل با اصولی مانند مجموعههای کاراکتری و گروههای انطباق (capture groups) آشنا میشوید و چندین مثال عملی را میبینید که کار با regex را قابل فهمتر میکند. این پایه، شما را برای استفاده از regex در ابزارهای شل در فصلهای بعد آماده میسازد.
فصل ۵: تسلط بر grep
ابزار grep
یکی از ستونهای اصلی برای کاربران شل است. پس از یادگیری آن، بارها و بارها به سراغش خواهید رفت. در این فصل میآموزید چطور با استفاده از grep
متن را در فایلها جستوجو و فیلتر کنید، و همچنین چطور آن را با regex و پایپلاینها ترکیب کنید تا عملیاتهای جستوجوی پیچیدهتری انجام دهید.
فصل ۶: برش و تکهتکه کردن متن
جستوجو و فیلتر تنها عملیاتهایی نیستند که میتوانید روی متن انجام دهید. در این فصل از کتاب Effective Shell، تکنیکهای مختلفی برای دستکاری متن را خواهید آموخت. با دستورات head
، tail
، sort
و uniq
آشنا میشوید تا بتوانید متن را استخراج، مرتبسازی و از دادههای تکراری پاکسازی کنید.
فصل ۷: دستکاری پیشرفته متن با sed
ابزار قدرتمند stream editor یا sed
به شما این امکان را میدهد که متن را به شیوهای پیشرفتهتر با استفاده از مجموعهای از عملیات (expressions) ویرایش کنید. در این فصل میآموزید چگونه بخشهایی از یک خط در فایل پیکربندی را حذف یا جایگزین کنید. همچنین با کاربردهای پیشرفتهای مانند ویرایش فایل در محل (in-place editing) و ترکیب sed
با grep
و regex
برای بازساختاردهی متن آشنا خواهید شد.
فصل ۸: ساخت دستورات بهصورت لحظهای
در این فصل از کتاب Effective Shell، با دستور xargs
آشنا میشوید که آن را با تکنیکهای آموختهشده در فصلهای قبل ترکیب خواهید کرد تا بتوانید بهصورت پویا دستورات پیچیدهای بسازید؛ به این شکل که ورودیها را به آرگومانهای دستوری تبدیل میکنید. با کمک xargs
میتوانید دادهها را به سایر دستوراتی که قبلاً با آنها کار کردهاید منتقل کنید و حتی قبل از اجرای آنها، پیشنمایشی از دستورات ساختهشده ببینید. این فصل از کتاب Effective Shell، پایه و زمینهای برای بخش بعدی کتاب Effective Shell فراهم میکند؛ بخشی که در آن یاد میگیرید چگونه دستورات خود را به اسکریپتهای شل تبدیل کنید.
بخش سوم کتاب Effective Shell با عنوان «اسکریپتنویسی شل» یک دوره فشرده در هنر خودکارسازی دنبالهای از دستورات با اسکریپتهای شل است. شما با بهرهگیری از تکنیکهای فصلهای پیشین و افزودن مهارتهای جدید، ابزارها و اسکریپتهایی میسازید که عملیاتهای پیچیده را بهصورت کارآمد انجام میدهند.
فصل ۹: مبانی اسکریپتنویسی شل — در این فصل از کتاب Effective Shell، یک اسکریپت ساده مینویسید تا دستوری به نام common
ایجاد کنید که پرکاربردترین دستورات شما را نمایش دهد. یاد میگیرید چگونه دستورات را اضافه، قالببندی و زنجیره کنید، اسکریپتها را قابل اجرا کنید و آنها را بهصورت محلی نصب کنید. در فصلهای بعدی، این اسکریپت را قدرتمندتر و کاربرپسندتر خواهید کرد.
فصل ۱۰: استفاده از متغیرها برای ذخیره، خواندن و پردازش دادهها — متغیرها به شما اجازه میدهند مقادیر را ذخیره و استفاده مجدد کنید، که نگهداری اسکریپتها را سادهتر و خطاها را کمتر میکند. در این فصل از کتاب Effective Shell، یاد میگیرید چگونه متغیر تعریف کنید، ورودی کاربر را بخوانید، عملیات ریاضی انجام دهید و اسکریپت common
را با متغیرهایی برای کنترل مقدار تاریخچهای که میخواند، بهروزرسانی کنید.
فصل ۱۱: تسلط بر منطق شرطی — یاد میگیرید چگونه با استفاده از ابزارهایی مانند if
و case
رفتار اسکریپتها را بر اساس شرایط مختلف کنترل کنید. همچنین با ساختارهای پیشرفتهتری مانند عبارتهای شرطی با regex کار خواهید کرد. اسکریپت common
را بهگونهای ارتقا میدهید که تشخیص دهد شما از bash استفاده میکنید یا zsh و تاریخچه مناسب را بخواند.
فصل ۱۲: استفاده از حلقهها با فایلها و پوشهها — این فصل از کتاب Effective Shell، کاربردیترین استفاده از اسکریپتها را نشان میدهد: اجرای عملیاتهای تکراری با حلقهها. از for
، while
و until
برای پیمایش در فایلسیستم استفاده خواهید کرد و اسکریپت خود را بهبود میدهید تا خروجی کاربرپسندتری ارائه دهد.
فصل ۱۳: توابع، پارامترها و مدیریت خطا — توابع ابزاری ارزشمند برای کاهش تکرار در اسکریپتها هستند. میآموزید چگونه تابع بنویسید، پارامتر به آنها بدهید و خروجی دریافت کنید. همچنین، با روشهایی برای مدیریت خطا آشنا میشوید و اسکریپت common
را با این منطق بازسازی میکنید تا خواناتر و قابل نگهداریتر شود.
فصل ۱۴: الگوهای مفید برای اسکریپتهای شل
برای پایان دادن به بخش اسکریپتنویسی، این فصل از کتاب Effective Shell، به بررسی برخی از قواعد و الگوهایی میپردازد که هنگام کار با اسکریپتهای خودتان یا دیگران ممکن است برایتان مفید باشند. این موارد شامل اشکالزدایی (debugging) با گزینهی trace، افزودن برجستهسازی نحوی (syntax highlighting)، و بررسی وجود سیستمعامل، برنامه یا دستور خاص هستند. همچنین با نمونههایی از ضدالگوها (anti-patterns) آشنا میشوید—یعنی شیوههایی که در اسکریپتنویسی رایج هستند اما به دلایلی توصیه نمیشوند.
بخش چهارم: ساخت جعبهابزار شخصی شما
در این بخش از کتاب Effective Shell، با تکنیکهایی برای شخصیسازی محیط شل متناسب با نیازها و ترجیحات خود آشنا میشوید. شما یک کتابخانه شخصی از تنظیمات و پیکربندیها ایجاد و گسترش میدهید که میتوانید آن را بین سیستمهای مختلف یا با دیگران به اشتراک بگذارید.
فصل ۱۵: پیکربندی شل شما
در این فصل، با سه نوع شل مختلف و رفتار آنها هنگام راهاندازی آشنا میشوید. یاد میگیرید که فایلهای پیکربندی شل چگونه کار میکنند و چگونه تنظیمات پیشفرض شل را در فایل ~/.bashrc
تغییر دهید.
فصل ۱۶: شخصیسازی اعلان فرمان (Command Prompt)
در این فصل، یاد میگیرید که چگونه اعلان فرمان (prompt) را طوری تنظیم کنید که فقط اطلاعات دلخواه شما را نمایش دهد. با متغیر PS1، توالیهای فرار (escape sequences) و فرمتدهی ANSI آشنا میشوید تا هم محتوای prompt و هم ظاهر آن را کنترل کنید. در پایان، اسکریپتی میسازید که به شما امکان میدهد از میان مجموعهای از پوستههای اعلان فرمان، تم دلخواه خود را انتخاب کرده و در آینده نیز آن را گسترش دهید.
فصل ۱۷: مدیریت فایلهای نقطهای (Dot Files)
با شخصیسازی جنبههای مختلف شل و محیط کار، نیاز به جایی برای نگهداری این پیکربندیها دارید. در این فصل، یاد میگیرید که چگونه این فایلهای پیکربندی—که به dot files معروفاند—را ایجاد و سازماندهی کنید، تا بتوانید تغییرات را بهراحتی پیگیری کرده و آنها را از تنظیمات سیستمی جدا نگه دارید. همچنین یاد میگیرید که چگونه از این dot files در شلهای مختلف استفاده کنید.
فصل ۱۸: کنترل تغییرات با Git
در این فصل از کتاب Effective Shell، از Git بهعنوان یک ابزار محبوب برای کنترل نسخه استفاده میکنید تا تنظیمات شخصیتان را مدیریت کنید. یک فضای ذخیرهسازی مجازی (repository) ایجاد میکنید و با نحوه استفاده از دستورات Git برای پیگیری و اعمال تغییرات، حل تعارضها، و حذف یا تغییر نام فایلها از طریق خط فرمان آشنا میشوید.
فصل ۱۹: مدیریت مخازن Git راهدور و اشتراکگذاری Dot Files
در این فصل از کتاب Effective Shell از پلتفرم GitHub استفاده میکنید تا مخزن Git محلی خود را به یک مخزن راهدور (remote) منتشر کنید. با این کار میتوانید تنظیمات خود را بین چند سیستم به اشتراک بگذارید یا آنها را با دیگران به اشتراک بگذارید.
بخش پنجم: تکنیکهای پیشرفته
در این بخش، با روشهای مؤثرتر کار در محیط شل آشنا میشوید. درک عمیقتری از سازوکارهای درونی شل به دست خواهید آورد، یاد میگیرید چه زمانی بهتر است بهجای اسکریپتهای شل از گزینههای جایگزین استفاده کنید، و بر ابزارهای قدرتمند مبتنی بر ترمینال برای دسترسی از راه دور، ویرایش متن و مدیریت محیط کاری تسلط پیدا خواهید کرد.
فصل ۲۰: گسترش در شل
دستور زبان شل ویژگیهای عجیب و غریبی دارد که ممکن است گیجکننده باشند. این فصل کمی عمیقتر به این موضوع میپردازد که شل چگونه دستورات را تفسیر و تغییر میدهد و روشهایی را معرفی میکند که با استفاده از این رفتارها میتوان کارهایی مانند ایجاد چندین فایل با تایپ کمتر و انتخاب سریع گروهی از فایلها بر اساس نام آنها را انجام داد.
فصل ۲۱: جایگزینهایی برای اسکریپتنویسی شل
در این فصل از کتاب Effective Shell، یاد میگیرید که چه زمانی بهتر است از یک اسکریپت ساده شل به یک راهکار پیچیدهتر مهاجرت کنید. شما گزینههایی بهجز اسکریپتنویسی شل را بررسی خواهید کرد و سپس با استفاده از زبان برنامهنویسی محبوب پایتون، ابزاری میسازید که یک تعریف را در یک فرهنگ لغت آنلاین جستوجو میکند — کاری که در شل بسیار پیچیده خواهد بود.
فصل ۲۲: شل امن (SSH)
این فصل از کتاب Effective Shell، به معرفی پروتکل شبکهای Secure Shell (یا همان SSH) میپردازد که امکان اتصال ایمن به ماشینهای راه دور را فراهم میکند. در اینجا یاد میگیرید چگونه SSH را پیکربندی کنید، یک ماشین مجازی ابری روی خدمات آمازون (AWS) بسازید، و از طریق کامپیوتر خود به آن متصل شوید.
فصل ۲۳: قدرت ویرایشگرهای ترمینال
ویرایشگرهای متنی که در محیط شل اجرا میشوند، میتوانند بهرهوری شما را به سطح کاملاً جدیدی برسانند. در این فصل با ویرایشگر Vim آشنا میشوید و خواهید دید که چگونه میتواند انجام بسیاری از کارهای روزمره را سرعت ببخشد. برای مثال، با Vim میتوانید سریع پیامهای مفصل برای commitهای Git بنویسید یا دستورات شل را ویرایش کنید بدون آنکه ترمینال را ترک کنید، که به حفظ تمرکز شما کمک میکند.
فصل ۲۴: تسلط بر مالتیپلکسر ترمینال
یک مالتیپلکسر ترمینال به شما امکان میدهد چندین جلسه شل و برنامه را همزمان اجرا کنید. این فصل بر مالتیپلکسر محبوب tmux تمرکز دارد و به شما نشان میدهد که چگونه محیط کاری خود را با پنجرهها و پنلها در tmux سازماندهی کنید، آن را مطابق با جریان کاری خود پیکربندی نمایید و از آن برای کار از راه دور و همکاری بلادرنگ استفاده کنید.
سخن پایانی کتاب: هوش مصنوعی مولد و آینده شل
در چند سال اخیر، هیجان و پیشرفتها پیرامون هوش مصنوعی مولد بهطرز چشمگیری افزایش یافته است. در بخش پایانی کتاب Effective Shell، بررسی میشود که چگونه این فناوری میتواند بهرهوری ما را در شل به سطح جدیدی برساند، چگونه میتوان از شل برای تعامل مستقیم با سیستمهای هوش مصنوعی استفاده کرد، و آیندهای که در پیش است چگونه خواهد بود.
ضمائم A و B
راهنمای راهاندازی و مبانی پیمایش شل: این محتوا به ترتیب شامل دستورالعملهای راهاندازی و مبانی پیمایش در شل است. اگرچه این مطالب در درجه اول برای افراد مبتدی در نظر گرفته شدهاند، اما کاربران پیشرفتهتر نیز ممکن است نکات و ترفندهای مفیدی را در اینجا بیابند.
سرفصلهای کتاب Effective Shell:
- Cover
- Title Page
- Copyright
- Dedication
- About the Author
- About the Technical Reviewer
- Brief Contents
- Contents in Detail
- Acknowledgments
- Introduction
- What Is the Shell?
- Who Should Read This Book
- What’s in This Book?
- How to Read This Book
- Bugs and Suggestions
- Sample Files and Online Resources
- Part I: Core Skills
- Chapter 1: Flying on the Command Line
- Chapter 2: Thinking in Pipelines
- Chapter 3: Finding Files and Folders
- Part II: Manipulating Text and Streams
- Chapter 4: Regular Expression Essentials
- Chapter 5: Getting to Grips with grep
- Chapter 6: Slicing and Dicing Text
- Chapter 7: Advanced Text Manipulation with sed
- Chapter 8: Building Commands on the Fly
- Part III: Shell Scripting
- Chapter 9: Shell Script Fundamentals
- Chapter 10: Using Variables to Store, Read, and Manipulate Data
- Chapter 11: Mastering Conditional Logic
- Chapter 12: Using Loops with Files and Folders
- Chapter 13: Functions, Parameters, and Error Handling
- Chapter 14: Useful Patterns for Shell Scripts
- Part IV: Building Your Toolkit
- Chapter 15: Configuring Your Shell
- Chapter 16: Customizing Your Command Prompt
- Chapter 17: Managing Your Dot Files
- Chapter 18: Controlling Changes with Git
- Chapter 19: Managing Remote Git Repositories and Sharing Dot Files
- Part V: Advanced Techniques
- Chapter 20: Shell Expansion
- Chapter 21: Alternatives to Shell Scripting
- Chapter 22: The Secure Shell
- Chapter 23: The Power of Terminal Editors
- Chapter 24: Mastering the Multiplexer
- Afterword: Generative Al and the Shell
- Appendix A: Setup
- Appendix B: Shell Basics
- Index
- Colophon
- Resources
- Back Cover
جهت دانلود کتاب Effective Shell میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.