11 دلیل برای اینکه bash را یاد بگیرید
Bash-زبان خط فرمان سیستم عامل های مبتنی بر یونیکس-به شما امکان می دهد کامپیوتر خود را مانند برنامه نویس کنترل کنید. اما این فقط یک مهارت برای توسعه دهندگان نرم افزار نیست - یادگیری bash می تواند برای هرکسی که با داده کار می کند ارزشمند باشد.
# bash چیست؟
به طور خلاصه ، Bash رابط خط فرمان Unix (CLI) است. همچنین آن را ترمینال ، خط فرمان یا پوسته می نامید. این یک زبان دستوری است که به ما امکان می دهد با فایل های رایانه خود به طریقی بسیار کارآمدتر و قدرتمندتر از استفاده از GUI (رابط کاربری گرافیکی) کار کنیم.
قبل از یادگیری bash ابتدا باید با سیستم عامل لینوکس آشنا باشید. برای یادگیری لینوکس میتوانید دوره آموزش رایگان لینوکس را مشاهده کنید.
مطلب پیشنهادی: دوره آموزش shell scripting
1. مهارت های Bash محبوب و درآمدزا هستند
بر اساس نظرسنجی توسعه دهندگان Stack Overflow 2020، زبان bash/shell (یعنی خانواده مترجمان زبان فرمان لینوکس) ششمین زبان پرکاربرد در کل است که در رتبههای اول پایتون و R قرار دارد. همچنین با حقوق بالاتری نسبت به پایتون یا R قرار دارد.
همچنین در لیست محبوب ترین فناوری ها (53.7) و در لیست ترسناک ترین فناوری ها (46) در رتبه پایین قرار دارد.
و در حالی که نظرسنجی StackOverflow توسعه دهندگان نرم افزار و مهندسان را از هر نظر پوشش می دهد، خط فرمان برای دانشمندان داده اهمیت ویژه ای دارد زیرا Bash/Shell ارتباط زیادی با فناوری های علم داده مانند Python ، IPython/Jupyter ، TensorFlow و PyTorch دارد.
2. مهارتهای خط فرمان در ایجاد فرایندهای داده تکراری کمک می کند
بخشی از نقش یک دانشمند داده این است که اطمینان حاصل کند که اطلاعات خاصی به طور منظم و اغلب روزانه در دسترس است. بیشتر اوقات این داده ها به همان روش بدست می آیند، پردازش و نمایش داده می شوند.
خط فرمان برای این منظور بسیار مناسب است زیرا دستورات به راحتی خودکار و تکرار می شوند.
شرایط زیر را در نظر بگیرید:
کارفرمای شما تصمیم می گیرد در تجزیه و تحلیل داده ها سرمایه گذاری کند. چندین متخصص داده به تیم ملحق می شوند. شما وظیفه دارید مطمئن شوید که ماشین های آنها همه چیز مورد نیاز برای شروع کار را دارند.
اگر می توانید با CLI (مترجم زبان فرمان) کار کنید ، می توانید چند اسکریپت بنویسید که همه چیز را به طور خودکار نصب ، پیکربندی و آزمایش می کند.
اگر نمی توانید ، باید به GUI متوسل شوید و همان حرکت موس و کلیک را بارها و بارها در چندین دستگاه انجام دهید.
این تنها یک مثال از این است که چگونه مهارت های ترمینال می توانند به مقیاس پذیری و تکرارپذیری فرآیندهای علم داده کمک کنند.
3. یادگیری Bash شما را انعطاف پذیرتر می کند
در نقش علم داده ، اغلب می بینید که انعطاف پذیری بیشتری دارید اگر می توانید از ترمینال استفاده کنید نه اینکه مجبور باشید بر روی کلیک بر روی GUI ها تکیه کنید.
از آنجا که خط فرمان برنامه ای است که برنامه های دیگر را اجرا می کند (از این رو نام "پوسته" دارد) ، تعامل بین برنامه ها اغلب در خط فرمان آسان تر است.
پس از تسلط بر دستورات bash، نوشتن اسکریپت ها نسبتاً آسان است، و اسکریپت های شل، ساخت انواع خطوط داده و گردش کار را بسیار ساده تر می کند.
به طور کلی، دانستن نحوه استفاده از پوسته، یک گزینه دوم را برای تعامل با رایانه به شما می دهد.
شما همیشه می توانید از رابط کاربری گرافیکی هنگامی که ترجیح می دهید استفاده کنید، اما خط فرمان می تواند قدرت و کنترل مستقیم تری را در مواقعی که به آن نیاز دارید در اختیار شما قرار دهد.
4. کار با فایل های متنی راحت تر است
فایل های متنی از رایج ترین روش های ذخیره و مدیریت داده ها هستند. تقریباً هر پروژه علم داده شامل کار با فایل های متنی است. بنابراین توانایی مدیریت سریع و کارآمد فایل های متنی برای دانشمندان داده بسیار مفید است.
پوسته دارای ابزارهای قدرتمند پردازش متن مانند AWK و sed است که به آشنایی با فایل ها و تمیز کردن داده ها کمک می کند.
به عنوان مثال ، کد زیر از AWK برای چاپ ستون های اول و سوم پرونده ای با نام a_csv_file استفاده می کند ، جایی که مقدار فیلد دوم Dataquest است. تنها چیزی که لازم است یک خط کد است!
awk 'BEGIN {FS=","} {if ($2=="Dataquest") {print $1 $3} } a_csv_file'
5. از نظر منابع فشرده تر است
هنگامی که با منابع محاسباتی محدودی کار می کنید یا می خواهید سرعت خود را به حداکثر برسانید ، استفاده از خط فرمان عملاً همیشه بهتر از استفاده از رابط کاربری گرافیکی است ، زیرا استفاده از رابط کاربری گرافیکی به این معنی است که منابع باید به ارائه خروجی گرافیکی اختصاص داده شوند.
این امر هم برای کار محلی و هم از راه دور صادق است. هنگام اتصال از راه دور ، GUI ها پهنای باند بسیار بیشتری نسبت به ترمینال ها مصرف می کنند و منابع را هدر می دهند.
علاوه بر این ، تأخیر ، یعنی "فاصله زمانی بین درخواست و پاسخ" ، هنگام استفاده از رابط کاربری گرافیکی بیشتر خواهد بود ، که اگر سعی می کنید موس را که یک یا دو ثانیه پشت حرکات واقعی شما است کنترل کنید ، بسیار ناامید کننده خواهد بود.
اگر فقط در خط فرمان تایپ می کنید ، احتمال دارد تاخیر کمتر باشد و همچنین رسیدگی به آن آسان تر خواهد بود زیرا می دانید مکان نما در هر زمان دقیقاً کجاست.
6. شما به مهارت خط فرمان برای cloud نیاز دارید
سرویس های ابری اغلب از طریق رابط خط فرمان به آن متصل شده و کار می کنند.
این امر به ویژه برای کارهای پیشرفته علم داده مانند یادگیری عمیق بسیار مهم است ، جایی که منابع محاسباتی محلی شما به احتمال زیاد برای وظایفی که می خواهید انجام دهید کافی نیست.
اگر به یادگیری تکنیک های پیشرفته مانند یادگیری عمیق علاقه دارید، مهارت های خط فرمان برای انتقال کارآمد داده ها به و از طریق ابر ضروری خواهد بود.
7. مهارتهای یونیکس شل به خوبی به پوسته های دیگر منتقل می شود
فقط چند پوسته معروف (bash ، zsh ، fish ، ksh ، tcsh ، cmd ، Windows PowerShell و غیره) وجود دارد و بیشتر شبیه به هم هستند تا بتوانند بین آنها جابجا شوند.
به عنوان مثال ، دستورات bash که در دوره خط فرمان ما یاد می گیرید بر روی ماشین های مبتنی بر Unix مانند مک و رایانه های لینوکس کار می کند. اما بسیاری از دستورات دقیقاً روی Windows در Command Prompt و/یا Windows PowerShell کار می کنند.
این سازگاری متقابل به ویژه هنگامی که از خدمات آنلاین استفاده می کنید که به نوعی رابط خط فرمان نیاز دارند، مفید است. حتی اگر سیستم آنها از bash استفاده نکند ، از چیزی به اندازه کافی استفاده می کند تا بتوانید آن را تشخیص دهید.
از سوی دیگر، رابط کاربری گرافیکی در انواع نامحدود وجود دارد و یادگیری آنها لزوماً به شما در یادگیری سایر موارد کمک نمی کند.
8. احتمالاً می توانید سریعتر از کلیک، تایپ کنید
به 251 کاربر باتجربه مایکروسافت ورد، پرسشنامه ای مبنی بر انتخاب روش های متداول ترین دستورات داده شد. برخلاف انتظار ما ، اکثر کاربران باتجربه به ندرت از میانبرهای صفحه کلید کارآمد استفاده می کردند و به جای آن از نوار ابزار نماد استفاده می کردند.
مطالعه دوم برای تأیید اینکه میانبرهای صفحه کلید در واقع کارآمدترین روش هستند انجام شد. شش شرکت کننده دستورات متداول را با استفاده از انتخاب منو ، نوار ابزار آیکون و میانبرهای صفحه کلید انجام دادند. همانطور که انتظار می رفت ، میانبرهای صفحه کلید کارآمدترین بودند.
به عبارت دیگر: حتی اگر احساس می کنید به سرعت از طریق رابط کاربری گرافیکی کار می کنید ، این شانس خوب است که حداقل در برخی از وظایف ، در خط فرمان کارآمدتر باشید.
9. حسابرسی و اشکال زدایی راحت تر است
از آنجا که ردیابی تمام فعالیت های شما در خط فرمان بسیار آسان است ، حسابرسی و اشکال زدایی بسیار ساده تر است.
شما به راحتی می توانید از طریق log برای دنبال کردن تک تک کارهایی که در پوسته انجام داده اید ، نگاه کنید ، در حالی که اگر اشتباه کار هنگام کار با GUI منجر به اشتباه شود ، احتمالاً هیچ سابقه ای در مورد آن وجود ندارد.
10. شل یونیکس در همه جا موجود است
اگرچه فقط در دستگاههای Mac و Linux ساخته شده است ، اما کاربران Windows می توانند با ابزارهایی مانند WSL ، Cygwin و MinGW به این سرگرمی بپردازند.
این بدان معناست که مهارت های خط فرمان که یاد می گیرید تقریباً در هر رایانه ای که با آن روبرو می شوید (از جمله دستگاه شخصی شما ، صرف نظر از سیستم عامل مورد استفاده) قابل استفاده است.
11. خط فرمان ساده تر از آن است که فکر می کنید
این تصور غلط وجود دارد که استفاده از خط فرمان مستلزم آن است که چند صد دستور را بدانید. در حقیقت، اگرچه صدها دستور برای استفاده وجود دارد، اما به احتمال زیاد تنها به درصد کمی از این دستورات برای انجام اکثر کارهای رایج علم داده نیاز دارید.