خط فرمان برای مبتدیان - نحوه استفاده از ترمینال مانند Pro [کتابچه راهنمای کامل]

ساخت وبلاگ

Germán Cocca

ژرمن کوکا

Command Line for Beginners – How to Use the Terminal Like a Pro [Full Handbook]

سلام به همه! در این مقاله نگاهی خوب به خط فرمان خواهیم داشت (همچنین به عنوان CLI ، کنسول ، ترمینال یا پوسته نیز شناخته می شود).

خط فرمان یکی از مفیدترین و کارآمدترین ابزارهایی است که ما به عنوان توسعه دهنده و به طور کلی به عنوان کاربران رایانه داریم. اما استفاده از آن می تواند هنگام شروع کار کمی احساس غرق و پیچیده کند.

در این مقاله تمام تلاش خود را می کنم تا به سادگی بخش هایی را که رابط خط فرمان را تشکیل می دهند ، و اصول اولیه نحوه عملکرد آن را توضیح دهم ، بنابراین می توانید استفاده از آن را برای کارهای روزانه خود شروع کنید.

فهرست مطالب

تفاوت بین کنسول ، خط فرمان (CLI) ، ترمینال و پوسته

من فکر می کنم مکان خوبی برای شروع این است که دقیقاً بدانید خط فرمان چیست.

هنگام مراجعه به این امر ، ممکن است اصطلاحات ترمینال ، کنسول ، خط فرمان ، CLI و پوسته را شنیده باشید. مردم اغلب از این کلمات به صورت متناوب استفاده می کنند اما حقیقت این است که آنها در واقع چیزهای مختلفی هستند.

تمایز هر یک از knwoledge مهم و ضروری نیست ، اما به روشن شدن چیزها کمک می کند. بنابراین اجازه می دهیم به طور خلاصه هر یک را توضیح دهیم.

کنسول:

کنسول دستگاه فیزیکی است که به شما امکان می دهد با رایانه تعامل داشته باشید.

به زبان انگلیسی ساده ، صفحه رایانه ، صفحه کلید و ماوس شماست. به عنوان یک کاربر ، از طریق کنسول خود با رایانه خود در تعامل هستید.

image_13b2c80d-a2d6-4429-8ca6-f053340897cc

پایانه:

یک ترمینال یک محیط ورودی و خروجی متن است. این برنامه ای است که به عنوان یک بسته بندی عمل می کند و به ما امکان می دهد دستوراتی را که رایانه پردازش می کند وارد کنیم.

دوباره در انگلیسی ساده ، این "پنجره" است که در آن دستورات واقعی را وارد می کنید رایانه شما پردازش می کند.

terminal

به خاطر داشته باشید که ترمینال یک برنامه است ، دقیقاً مانند سایر موارد. و مانند هر برنامه ، می توانید آن را نصب کرده و آن را همانطور که می خواهید نصب کنید. همچنین می توان بسیاری از پایانه ها را در رایانه خود نصب کرد و هر زمان که بخواهید هر زمان که بخواهید اجرا کنید.

تمام سیستم عامل ها دارای یک ترمینال پیش فرض نصب شده هستند ، اما گزینه های بسیاری برای انتخاب وجود دارد که هر کدام دارای ویژگی ها و ویژگی های خاص خود هستند.

پوسته:

پوسته برنامه ای است که به عنوان مترجم خط فرمان عمل می کند. این دستورات را پردازش می کند و نتایج را خروجی می کند. این دستورات وارد شده توسط کاربر را تفسیر و پردازش می کند.

مانند ترمینال ، پوسته برنامه ای است که به طور پیش فرض در تمام سیستم عامل ها ارائه می شود ، اما همچنین می تواند توسط کاربر نصب و نصب شود.

پوسته های مختلف با نحو و ویژگی های مختلف نیز همراه هستند. همچنین امکان نصب بسیاری از پوسته ها در رایانه شما وجود دارد و هر زمان که بخواهید هر یک را اجرا کنید.

در اکثر سیستم های عامل لینوکس و MAC ، پوسته پیش فرض Bash است. در حالی که در ویندوز است ، PowerShell است. برخی دیگر از نمونه های رایج دیگر پوسته ها Zsh و Fish هستند.

پوسته ها همچنین به عنوان زبانهای برنامه نویسی کار می کنند ، به این معنا که با آنها می توانیم اسکریپت هایی بسازیم تا رایانه ما یک کار خاص را اجرا کند. اسکریپت ها چیزی بیش از یک سری دستورالعمل ها (دستورات) نیستند که می توانیم در یک پرونده ذخیره کنیم و بعداً در هر زمان که بخواهیم اجرا کنیم.

بعداً در این مقاله نگاهی به اسکریپت ها خواهیم انداخت. در حال حاضر فقط به خاطر داشته باشید که پوسته برنامه ای است که رایانه شما برای "درک" و اجرای دستورات خود از آن استفاده می کند ، و همچنین می توانید از آن برای کارهای برنامه استفاده کنید.

همچنین به خاطر داشته باشید که ترمینال برنامه ای است که پوسته در آن اجرا خواهد شد. اما هر دو برنامه مستقل هستند. این بدان معنی است که من می توانم هر پوسته ای را در هر ترمینال اجرا کنم. به این معنا هیچ وابستگی بین هر دو برنامه وجود ندارد.

خط فرمان یا CLI (رابط خط فرمان):

CLI رابط کاربری است که در آن ما دستورات را برای پردازش رایانه وارد می کنیم. یک بار دیگر در انگلیسی ساده ، این فضایی است که در آن دستورات رایانه را پردازش می کنید.

cli

این تقریباً مشابه ترمینال است و به نظر من این اصطلاحات می توانند به صورت متقابل استفاده شوند.

نکته جالب اینجاست که بیشتر سیستم عامل ها دارای دو نوع رابط مختلف هستند:

  • CLI ، که دستورات را به عنوان ورودی می گیرد تا کامپیوتر بتواند وظایف را انجام دهد.
  • مورد دیگر GUI (رابط کاربری گرافیکی) است که در آن کاربر می تواند چیزهایی را روی صفحه ببیند و روی آنها کلیک کند و رایانه با اجرای کار مربوطه به آن رویدادها پاسخ می دهد.

چرا حتی باید به استفاده از ترمینال اهمیت دهم؟

ما فقط ذکر کردیم که بیشتر سیستم عامل ها با یک رابط کاربری گرافیکی همراه هستند. بنابراین اگر می توانیم چیزهایی را روی صفحه ببینیم و برای انجام هر کاری که می خواهیم بر روی صفحه کلیک کنیم ، ممکن است تعجب کنید که چرا باید این چیز پیچیده/CLI/Shell را یاد بگیرید؟

دلیل اول این است که برای بسیاری از کارها ، این کارآمدتر است. در یک ثانیه چند نمونه را خواهیم دید ، اما کارهای زیادی وجود دارد که یک رابط کاربری گرافیکی به ویندوزهای مختلف نیاز به کلیک های زیادی دارد. اما در CLI این وظایف را می توان با یک دستور واحد اجرا کرد.

به این معنا ، راحت بودن با خط فرمان به شما در صرفه جویی در وقت کمک می کند و می توانید سریعتر وظایف خود را انجام دهید.

دلیل دوم این است که با استفاده از دستورات می توانید به راحتی وظایف را خودکار کنید. همانطور که قبلاً نیز گفته شد ، ما می توانیم اسکریپت هایی را با پوسته خود بسازیم و بعداً هر زمان که بخواهیم آن اسکریپت ها را اجرا کنیم. این امر هنگام برخورد با کارهای تکراری که نمی خواهیم بارها و بارها انجام دهیم بسیار مفید است.

فقط برای ارائه چند نمونه ، ما می توانیم یک اسکریپت بسازیم که یک repo آنلاین جدید برای ما ایجاد کند ، یا این یک زیرساخت خاص را برای ارائه دهنده ابر برای ما ایجاد می کند ، یا این کار ساده تر مانند تغییر تصویر زمینه صفحه نمایش هر ساعت را انجام می دهد.

برنامه نویسی یک روش عالی برای صرفه جویی در وقت با کارهای تکراری است.

دلیل سوم این است که گاهی اوقات CLI تنها راهی خواهد بود که ما قادر به تعامل با یک کامپیوتر خواهیم بود. به عنوان مثال ، موردی را که نیاز به تعامل با یک سرور پلتفرم ابری دارید ، در نظر بگیرید. در بیشتر این موارد ، شما یک رابط کاربری گرافیکی در دسترس نخواهید داشت ، فقط یک CLI برای اجرای دستورات.

بنابراین راحت بودن با CLI به شما امکان می دهد تا با رایانه ها در همه وسایل نقلیه تعامل داشته باشید.

دلیل آخر این است که جالب به نظر می رسد و سرگرم کننده است. شما هکرهای فیلم را نمی بینید که در اطراف رایانه های خود کلیک می کنند ، درست است؟؛)

انواع مختلف پوسته

قبل از غواصی به دستورات واقعی که می توانید در ترمینال خود اجرا کنید ، فکر می کنم تشخیص انواع مختلف پوسته های موجود در آنجا و چگونگی شناسایی پوسته ای که در حال حاضر در حال اجرا هستید ، مهم است.

پوسته های مختلف با نحو مختلف و ویژگی های مختلف همراه هستند ، بنابراین برای اینکه دقیقاً بدانید چه فرمان را وارد می کنید ، ابتدا باید بدانید که چه پوسته ای را اجرا می کنید.

کمی تاریخ - POSIX

برای پوسته ها ، یک استاندارد مشترک به نام POSIX وجود دارد.

POSIX برای پوسته ها به روشی بسیار مشابه کار می کند که ECMAScript برای JavaScript کار می کند. این استانداردی است که خصوصیات و ویژگی های خاصی را نشان می دهد که همه پوسته ها باید از آن پیروی کنند.

این استاندارد در دهه 1980 محکم شد و بیشترین پوسته های فعلی مطابق با آن استاندارد توسعه یافته اند. به همین دلیل بیشتر پوسته ها نحو مشابه و ویژگی های مشابه را به اشتراک می گذارند.

چگونه می دانم چه پوسته ای را اجرا می کنم؟

برای دانستن اینکه در حال حاضر چه پوسته ای را اجرا می کنید ، فقط ترمینال خود را باز کنید و 0 $ Echo را وارد کنید. با این کار نام برنامه فعلی در حال اجرا چاپ می شود ، که در این حالت پوسته واقعی است.

screenshot-1

چه پوسته بهتر است؟

تفاوت زیادی بین اکثر پوسته ها وجود ندارد. از آنجا که بیشتر آنها مطابق با همان استاندارد هستند ، متوجه خواهید شد که بیشتر آنها به طور مشابه کار می کنند.

تفاوتهای جزئی وجود دارد که ممکن است بخواهید بدانید:

  • همانطور که گفته شد ، Bash بیشترین استفاده را دارد و به طور پیش فرض در Mac و Linux نصب می شود.
  • Zsh بسیار شبیه به Bash است ، اما پس از آن ایجاد شده است و با پیشرفت های خوبی نسبت به آن همراه است. اگر می خواهید جزئیات بیشتری در مورد تفاوت های آن داشته باشید ، در اینجا یک مقاله جالب در مورد آن آورده شده است.
  • ماهی یکی دیگر از پوسته های متداول است که دارای برخی از ویژگی های داخلی و تنظیمات زیبا از قبیل قابلیت اتم و برجسته سازی نحو است. نکته در مورد ماهی این است که شکایت Posix نیست ، در حالی که Bash و Zsh هستند. این بدان معنی است که برخی از دستوراتی که شما قادر به اجرای آن در Bash هستید و Zsh روی ماهی و برعکس اجرا نمی شود. این باعث می شود برنامه نویسی ماهی در مقایسه با Bash و Zsh با اکثر رایانه ها سازگار باشد.
  • همچنین پوسته های دیگری مانند Ash یا Dash نیز وجود دارند (نامگذاری فقط همه چیز را گیج کننده تر می کند ، من می دانم.) که نسخه های کشیده شده از پوسته های Posix است. این بدان معناست که آنها فقط ویژگی های مورد نیاز در POSIX را ارائه می دهند و هیچ چیز دیگری. در حالی که Bash و Zsh ویژگی های بیشتری را نسبت به آنچه Posix نیاز دارد اضافه می کنند.

این واقعیت که پوسته ها ویژگی های بیشتری را اضافه می کنند ، آنها را برای تعامل آسان تر و دوستانه تر می کند ، اما برای اجرای اسکریپت ها و دستورات کندتر است.

بنابراین یک روش معمول استفاده از این پوسته های "پیشرفته" مانند Bash یا Zsh برای تعامل عمومی و یک پوسته "سلب شده" مانند خاکستر یا داش برای اجرای اسکریپت ها است.

وقتی بعداً به اسکریپت رسیدیم ، خواهیم دید که چگونه می توانیم تعریف کنیم که شل یک اسکریپت معین را اجرا خواهد کرد.

اگر به مقایسه دقیق تر بین این پوسته ها علاقه مند هستید ، در اینجا ویدئویی وجود دارد که آن را به خوبی توضیح می دهد:

اگر مجبور به توصیه یک پوسته بود ، من Bash را توصیه می کنم زیرا این استاندارد ترین و متداول ترین است. این بدان معنی است که شما قادر خواهید بود دانش خود را به اکثر محیط ها ترجمه کنید.

اما باز هم ، حقیقت این است که بین اکثر پوسته ها تفاوت زیادی وجود ندارد. بنابراین در هر صورت می توانید چند مورد را امتحان کنید و ببینید کدام یک را بیشتر دوست دارید.؛)

نظر در مورد سفارشی سازی

من فقط ذکر کردم که ماهی ها با پیکربندی داخلی مانند اتمام اتو و برجسته سازی نحو همراه هستند. این در ماهی ساخته شده است ، اما در Bash یا Zsh می توانید این ویژگی ها را نیز پیکربندی کنید.

نکته این است که پوسته ها قابل تنظیم هستند. شما می توانید نحوه عملکرد برنامه ، چه دستوراتی را در دسترس داشته باشید ، چه اطلاعاتی را نشان می دهد و موارد دیگر را ویرایش کنید.

ما در اینجا گزینه های سفارشی سازی را با جزئیات مشاهده نخواهیم کرد ، اما می دانید که هنگام نصب پوسته در رایانه خود ، پرونده های خاصی در سیستم شما ایجاد می شوند. بعداً می توانید آن پرونده ها را ویرایش کنید تا برنامه خود را سفارشی کنید.

همچنین ، افزونه های زیادی به صورت آنلاین وجود دارد که به شما امکان می دهد پوسته خود را به روشی آسان تر تنظیم کنید. شما فقط آنها را نصب می کنید و ویژگی هایی را که پلاگین ارائه می دهد دریافت می کنید. برخی از نمونه ها Ohmyzsh و Starship هستند.

این گزینه های سفارشی سازی نیز در مورد پایانه ها صادق است.

بنابراین نه تنها گزینه های پوسته و ترمینال زیادی برای انتخاب دارید - شما همچنین گزینه های پیکربندی زیادی برای هر پوسته و ترمینال دارید.

اگر شروع به کار کنید ، تمام این اطلاعات می توانند کمی بیش از حد احساس کنند. اما فقط بدانید که گزینه های زیادی در دسترس است و هر گزینه نیز می تواند سفارشی شود. خودشه.

متداول ترین و مفیدترین دستورات برای استفاده

اکنون که ما پایه و اساس نحوه عملکرد CLI را داریم ، بیایید به مفیدترین دستوراتی که می توانید برای کارهای روزانه خود استفاده کنید ، شیرجه بزنیم.

به خاطر داشته باشید که این مثالها بر اساس پیکربندی فعلی من (Bash در سیستم عامل لینوکس) خواهد بود. اما بیشتر دستورات به هر حال باید در بیشتر تنظیمات اعمال شوند.

  • ECHO در ترمینال هر پارامتر عبور می کنیم.
  • PWD مخفف فهرست کار چاپ است و "مکان" یا دایرکتوری را که در حال حاضر در رایانه هستیم چاپ می کند.
  • LS محتویات دایرکتوری را که در حال حاضر در آن قرار دارید به شما ارائه می دهد. این کار را با پرونده ها و سایر دایرکتوری های موجود در فهرست فعلی شما ارائه می دهد.

به عنوان مثال ، در اینجا من در یک دایرکتوری پروژه React هستم که اخیراً روی آن کار کرده ام:

اگر این دستور را به عنوان پرچم یا paremter تصویب کنید ، این پرونده ها یا دایرکتوری های پنهان را نیز به شما نشان می دهد. مانند پرونده های . git یا . gitignore

  • CD برای فهرست تغییر کوتاه است و شما را از فهرست فعلی شما به دیگری می برد.

در حالی که در فهرست منزل خود هستم ، می توانم وارد دسک تاپ CD شوم و این مرا به فهرست دسک تاپ می برد.

اگر می خواهم یک دایرکتوری را بالا ببرم ، به این معنی که به دایرکتوری که حاوی فهرست فعلی است بروید ، می توانم CD را وارد کنم ..

اگر به تنهایی CD را وارد کنید ، شما را مستقیماً به فهرست خانه خود می برد.

  • MKDIR مخفف ساخت دایرکتوری است و یک فهرست جدید برای شما ایجاد می کند. شما باید دستور پارامتر نام دایرکتوری را منتقل کنید.

اگر می خواستم یک دایرکتوری جدید به نام "تست" ایجاد کنم ، من وارد آزمون MKDIR می شوم.

RMDIR مخفف حذف دایرکتوری است و همین کار را انجام می دهد. این به پارامتر نام دایرکتوری دقیقاً مانند MKDIR نیاز دارد: آزمون RMDIR.

Touch به شما امکان می دهد یک فایل خالی را در فهرست فعلی خود ایجاد کنید. به عنوان پارامترها ، نام پرونده را می گیرد ، مانند Touch Test. txt.

RM به شما امکان می دهد پرونده ها را حذف کنید ، به همان روشی که RMDIR به شما امکان می دهد دایرکتوری ها را حذف کنید. rm test. txt

CP به شما امکان می دهد پرونده ها یا دایرکتوری ها را کپی کنید. این دستور دو پارامتر طول می کشد: اولین پرونده پرونده یا دایرکتوری است که می خواهید کپی کنید ، و دوم مقصد کپی شما است (از کجا می خواهید پرونده/دایرکتوری خود را کپی کنید).

اگر می خواهم یک کپی از پرونده TXT خود را در همان فهرست تهیه کنم ، می توانم موارد زیر را وارد کنم:

ببینید که دایرکتوری تغییر نمی کند ، همانطور که برای "مقصد" نام جدید پرونده را وارد می کنم.

اگر می خواستم پرونده را در یک دایرکتوری متفاوت کپی کنم ، اما همان نام پرونده را نگه دارم ، می توانم این را وارد کنم:

و اگر می خواستم در پوشه دیگری که نام فیلد را تغییر می دهد کپی کنم ، البته می توانم این را وارد کنم:

  • MV برای حرکت کوتاه است و به ما اجازه می دهد تا یک پرونده یا دایرکتوری را از یک مکان به مکان دیگر منتقل کنیم. یعنی آن را در یک فهرست جدید ایجاد کنید و آن را در نسخه قبلی حذف کنید (همان کاری که می توانید با برش و چسباندن انجام دهید).

باز هم ، این دستور دو پارمر ، پرونده یا دایرکتوری که می خواهیم حرکت کنیم و مقصد را می گیرد.

اگر بخواهیم می توانیم نام پرونده را نیز در همان دستور تغییر دهیم:

  • سر به شما امکان می دهد شروع یک پرونده یا داده های لوله کشی را مستقیماً از ترمینال مشاهده کنید.
  • دم همان کار می کند اما پایان پرونده را به شما نشان می دهد.
  • پرچ م-مارپیچ می تواند در اکثر دستورات استفاده شود و اطلاعات مربوط به نحوه استفاده از آن دستور داده شده را بازگرداند.

فهرست فعلی را به DIR تغییر دهید. DIR پیش فرض مقدار متغیر پوسته خانگی است.

متغیر CDPath مسیر جستجو را برای فهرست حاوی DIR تعریف می کند. نام دایرکتوری های جایگزین در CdPath توسط یک روده بزرگ از هم جدا می شوند :.

در صورت شروع DIR ، یک نام دایرکتوری تهی همان دایرکتوری فعلی است. بشر

  • در یک روش مشابه ، فرمان مرد اطلاعات مربوط به هر دستور خاص را برمی گرداند.

شما حتی می توانید وارد Man Bash شوید و این یک کتابچه راهنمای عظیم را در مورد همه چیزهایی که باید در مورد این پوسته بدانید باز می گرداند.؛)

  • کد ویرایشگر کد پیش فرض شما را باز می کند. اگر به تنهایی دستور را وارد کنید ، فقط ویرایشگر را با آخرین پرونده/دایرکتوری که باز کرده اید باز می کند.

همچنین می توانید با انتقال آن به عنوان پارامتر ، یک فایل معین را باز کنید: Code Test. txt.

یا با عبور از نام پرونده جدید ، یک فایل جدید را باز کنید: کد thisisajsfile. js.

  • ویرایش پرونده های متنی را در ویرایشگر متن خط فرمان پیش فرض شما باز می کند (که اگر در Mac یا Linux باشید احتمالاً Nano یا VIM خواهد بود).

اگر پرونده خود را باز کرده و سپس نمی توانید از ویرایشگر خود خارج شوید ، ابتدا به این الگوی رفتاری نگاه کنید:

و سپس نوع: س! و ضربه را وارد کنید.

این یادداشت خنده دار است زیرا همه در ابتدا با ویرایشگرهای متن CLI تلاش می کنند ، زیرا بیشتر اقدامات (مانند خروج از ویرایشگر) با میانبرهای صفحه کلید انجام می شود. استفاده از این ویرایشگرها یک موضوع کاملاً دیگر است ، بنابراین اگر علاقه مند به یادگیری بیشتر هستید ، به دنبال آموزش باشید.؛)

Ctrl+C به شما امکان می دهد از فرآیند فعلی که ترمینال در حال اجرا است ، خارج شوید. به عنوان مثال ، اگر در حال ایجاد یک برنامه React با NPX Create-React-App هستید و می خواهید ساخت را در بعضی از نقاط لغو کنید ، فقط Ctrl+C را بزنید و متوقف می شود.

کپی کردن متن از ترمینال را می توان با Ctrl+Shift+C انجام داد و چسباندن با CTRL+SHIFT+V انجام می شود

پاک کردن ترمینال شما را از تمام مطالب قبلی پاک می کند.

خروج ترمینال شما را می بندد و (این یک دستور نیست اما خنک است) Ctrl+Alt+T یک ترمینال جدید را برای شما باز می کند.

با فشار دادن کلیدهای بالا و پایین می توانید از طریق دستورات قبلی که وارد شده اید حرکت کنید.

با ضربه زدن به برگه ، بر اساس متنی که تاکنون نوشته اید ، خودکار را دریافت خواهید کرد. با ضربه زدن به برگه دو بار ، بر اساس متنی که تاکنون نوشتید ، پیشنهادات دریافت می کنید.

به عنوان مثال اگر دو بار تست ویرایش و برگه را بنویسم ، TestFolder/ Test. txt را دریافت می کنم. اگر آزمون ویرایش را بنویسم. و برای ویرایش Test. txt به برگه متن من ضربه بزنید

دستورات git

علاوه بر کار در سیستم پرونده و نصب/حذف موارد ، تعامل با GIT و REPO های آنلاین احتمالاً رایج ترین مواردی است که می خواهید از ترمینال به عنوان یک توسعه دهنده استفاده کنید.

انجام این کار از ترمینال بسیار کارآمدتر از کلیک کردن در اطراف است ، بنابراین بیایید نگاهی به مفیدترین دستورات git در آنجا بیندازیم.

  • Git Init یک مخزن محلی جدید برای شما ایجاد می کند.

Git Add یک یا چند پرونده را به مرحله بندی اضافه می کند. می توانید یک فایل خاص را برای اضافه کردن به مرحله بندی یا اضافه کردن تمام پرونده های تغییر یافته با تایپ کردن Git Add ، جزئیات دهید.

Git Commity مرتکب تغییرات شما در مخزن می شود. تعهدات همیشه باید همراه با پرچ م-m و پیام متعهد باشد.

  • وضعیت GIT به شما می گوید در حال حاضر در چه شعبه ای هستید و آیا تغییراتی در ارتکاب دارید یا نه.
  • Git Clone به شما امکان می دهد مخزن (کپی) مخزن را در دایرکتوری که در حال حاضر در آن قرار دارید کلون کنید. به خاطر داشته باشید که می توانید هر دو مخزن از راه دور (در Github ، GitLab و غیره) و مخازن محلی (مواردی که در رایانه شما ذخیره می شوند کلون کنید.).
  • Git Remote Add Origin برای جزئیات URL مخزن از راه دور که می خواهید برای پروژه خود استفاده کنید استفاده می شود. در صورت تمایل به تغییر آن در مقطعی ، می توانید این کار را با استفاده از دستور Git Remote Set-Url Origin انجام دهید.

به خاطر داشته باشید که برای به دست آوردن URL آن ، ابتدا باید repo از راه دور خود را ایجاد کنید. خواهیم دید که چگونه می توانید این کار را از خط فرمان با کمی اسکریپت بعداً انجام دهید.؛)

  • Git Remot e-v به شما امکان می دهد مخزن از راه دور فعلی را که استفاده می کنید لیست کنید.
  • Git Push تغییرات متعهد شما را در repo از راه دور خود بارگذاری می کند.
  • شعبه GIT تمام شاخه های موجود را در repo خود لیست می کند و به شما می گوید در حال حاضر در چه شعبه ای هستید. اگر می خواهید یک شاخه جدید ایجاد کنید ، فقط باید نام شاخه جدید را به عنوان پارامتر مانند Git Branch اضافه کنید.
  • پرداخت GIT شما را از یک شاخه به شاخه دیگر منتقل می کند. این شعبه مقصد شما را به عنوان پارمتر می برد.
  • Git Pulls (بارگیری) کد را از مخزن از راه دور خود بکشید و آن را با repo محلی خود ترکیب کنید. این امر به ویژه هنگام کار در تیم ها مفید است ، هنگامی که بسیاری از توسعه دهندگان روی همان پایه کد کار می کنند. در این حالت ، هر توسعه دهنده به طور دوره ای از repo از راه دور به منظور کار در یک پایه کد که شامل تغییراتی است که توسط سایر شیاطین انجام می شود ، می رود.

اگر کد جدیدی در repo از راه دور شما وجود داشته باشد ، این دستور پرونده های واقعی را که در کشش اصلاح شده اند باز می گرداند. اگر اینطور نیست ، ما از قبل به روز می شویم.

  • Git Diff به شما امکان می دهد تفاوت های بین شاخه ای را که در حال حاضر در آن هستید و دیگری مشاهده کنید.

به عنوان یک اظهار نظر جانبی ، هنگام مقایسه تفاوت بین شاخه ها یا repos ، از ابزارهای بصری استفاده می شود مانند MELD. این طور نیست که شما نمی توانید آن را مستقیماً در ترمینال تجسم کنید ، اما این ابزارها برای تجسم واضح تر عالی هستند.

  • Git ادغام ادغام (ترکیب) شاخه ای که در حال حاضر با دیگری در آن قرار دارید. در نظر داشته باشید که تغییرات فقط در شاخه ای که در حال حاضر در آن قرار دارید گنجانیده می شود ، نه به دیگری.
  • Git Log تمام تعهدات قبلی را که در repo انجام داده اید لیست می کند.
  • پرچ م-مارپیچ اطلاعاتی را در مورد یک دستور معین به شما نشان می دهد ، دقیقاً به همان روشی که با Bash کار می کند.

اولین فیلمنامه ما

اکنون ما آماده هستیم تا به قسمت واقعاً سرگرم کننده و عالی خط فرمان ، اسکریپت برسیم!

همانطور که قبلاً نیز اشاره کردم ، یک اسکریپت چیزی بیش از یک سری دستورات یا دستورالعمل هایی نیست که می توانیم در هر زمان معین اجرا کنیم. برای توضیح اینکه چگونه می توانیم یک کد را کد کنیم ، از یک مثال ساده استفاده خواهیم کرد که به ما امکان می دهد با اجرای یک دستور واحد ، یک repo github ایجاد کنیم.؛)

اولین کاری که باید انجام شود ایجاد یک پرونده . sh است. شما می توانید آن را در هر کجا که بخواهید قرار دهید. من به Mine Newghrepo. sh زنگ زدم.

سپس آن را بر روی ویرایشگر متن/کد خود باز کنید.

در خط اول ما موارد زیر را می نویسیم: #!/سطل/sh

به این شبانگ گفته می شود ، و عملکرد آن این است که اعلام کند که پوسته قصد دارد این اسکریپت را اجرا کند.

به یاد داشته باشید که قبلاً اشاره کردیم که می توانیم از یک پوسته برای تعامل کلی و از یک پوسته دیگر برای اجرای یک اسکریپت استفاده کنیم؟خب، shebang دستورالعملی است که نشان می دهد چه پوسته ای اسکریپت را اجرا می کند.

همانطور که گفته شد، ما از یک پوسته "برهنه شده" (همچنین به عنوان پوسته های sh شناخته می شود) برای اجرای اسکریپت ها به دلیل کارآمدتر بودن آنها استفاده می کنیم (اگرچه صادقانه بگویم تفاوت ممکن است غیر قابل توجه باشد، این فقط یک ترجیح شخصی است). در کامپیوتر من خط تیره را به عنوان پوسته sh دارم.

اگر می خواستیم این اسکریپت با bash اجرا شود، shebang # می شد!/bin/bash

  • خط بعدی ما repoName=$1 خواهد بود

در اینجا ما متغیری به نام repoName را اعلام می کنیم و آن را به مقدار اولین پارامتری که اسکریپت دریافت می کند نسبت می دهیم.

پارامتر مجموعه ای از کاراکترها است که بعد از اسکریپت/فرمان وارد می شود. مانند دستور cd، برای تغییر دایرکتوری (یعنی cd testFolder) باید یک پارامتر دایرکتوری را مشخص کنیم.

راهی که می‌توانیم پارامترها را در یک اسکریپت شناسایی کنیم، استفاده از علامت دلار و ترتیبی است که آن پارامتر انتظار می‌رود.

اگر انتظار بیش از یک پارامتر را داشته باشم می توانم بنویسم:

  • بنابراین ما منتظر نام مخزن به عنوان پارامتر اسکریپت خود هستیم. اما اگر کاربر فراموش کند آن را وارد کند چه اتفاقی می افتد؟ما باید برای آن برنامه ریزی کنیم، بنابراین در مرحله بعد یک شرطی را کدگذاری می کنیم که مدام از کاربر می خواهد نام مخزن را وارد کند تا زمانی که آن پارامتر دریافت شود.

ما می توانیم این کار را به صورت زیر انجام دهیم:

کاری که ما اینجا انجام می دهیم این است:

  1. در حالی که متغیر repoName اختصاص داده نشده است (در حالی که [ -z "$repoName" ] )
  2. این پیام را در کنسول بنویسید (پژواک 'ارائه یک نام مخزن')
  3. سپس هر ورودی را که کاربر ارائه می دهد بخوانید و ورودی را به متغیر repoName اختصاص دهید ( rea d-r -p $'Repository name:' repoName )
  • اکنون که نام مخزن خود را در اختیار داریم، می توانیم مخزن Git محلی خود را به این صورت ایجاد کنیم:

This is creating a readme file and writting a single line with the repo name ( echo "# $repoName" >>README. md ) و سپس git repo را مقداردهی اولیه کنید و اولین commit را انجام دهید.

  • سپس وقت آن است که مخزن خود را در github آپلود کنیم. برای انجام این کار، ما قصد داریم از API github در دستور زیر استفاده کنیم:

curl فرمانی برای انتقال داده ها از یا به سرور با استفاده از یکی از پروتکل های متعدد پشتیبانی شده است.

سپس از پرچ م-u استفاده می کنیم تا کاربری را که مخزن را برای آن ایجاد می کنیم (-u coccagerman) اعلام کنیم.

سپس نقطه پایانی ارائه شده توسط GitHub API (https://api. github. com/user/repos) می آید.

و آخرین بار ما از پرچ م-d برای انتقال پارامترها به این دستور استفاده می کنیم. در این حالت ما نام مخزن را نشان می دهیم (که برای آن از متغیر reponame استفاده می کنیم) و گزینه خصوصی را به False تنظیم می کنیم ، زیرا می خواهیم repo ما puiblic باشد.

بسیاری از گزینه های پیکربندی دیگر در API موجود است ، بنابراین برای اطلاعات بیشتر اسناد را بررسی کنید.

  • پس از اجرای این دستور ، GitHub ما را وادار می کند تا برای تأیید اعتبار ، وارد نشانه خصوصی خود شویم.

If you don't have a private token yet, you can generate it in GitHub in Settings > Developer settings >نشانه های دسترسی شخصی

screenshot

screenshot_1

screenshot_2

  • باحال ، ما تقریباً الان تمام شده ایم! آنچه ما اکنون به آن نیاز داریم ، URL از راه دور Repo تازه ایجاد شده GitHub ما است.

برای رسیدن به این موضوع ، ما می خواهیم دوباره از Curl و GitHub API استفاده کنیم ، مانند این:

در اینجا ما متغیری را به نام GIT_URL اعلام می کنیم و آن را به هر دستور زیر باز می گردانیم.

پرچ م-H هدر درخواست ما را تعیین می کند.

سپس ما از نقطه انتهایی GitHub API عبور می کنیم ، که باید شامل نام کاربری و نام repo ما باشد (https://api. github. com/repos/coccagerman/ "$ Reponame").

سپس ارزش بازگشت درخواست خود را لوله می کنیم. لوله کشی فقط به معنای عبور از مقدار بازده یک فرآیند به عنوان مقدار ورودی فرآیند دیگر است. ما می توانیم این کار را با | انجام دهیمنماد مانند |بشر

و سرانجام ما دستور JQ را اجرا می کنیم ، که ابزاری برای پردازش ورودی های JSON است. در اینجا ما به آن می گوییم که مقدار . clone_url را بدست آوریم که در آن URL از راه دور GIT با توجه به قالب داده ارائه شده توسط API GitHub قرار خواهد گرفت.

  • و به عنوان آخرین مرحله ، ما شعبه استاد خود را به اصلی تغییر نام دادیم ، منشاء از راه دور را که تازه به دست آورده ایم اضافه کنیم و کد خود را به GitHub فشار دهیم!= D

فیلمنامه کامل ما باید چیزی شبیه به این باشد:

  • حالا وقت آن است که اسکریپت خود را آزمایش کنیم! برای اجرای آن دو کار وجود دارد که می توانیم انجام دهیم.

یک گزینه وارد کردن نام پوسته و عبور فایل به عنوان پارامتر است ، مانند: dash ../ger/code/projects/scripts/newghrepo. sh.

و دیگری این است که پرونده را با اجرای Chmod U+X ../ger/code/projects/scripts/newghrepo. sh اجرا کنید.

سپس می توانید پرونده را مستقیماً با اجرای آن اجرا کنید ../ger/code/projects/scripts/newghrepo. sh.

و همین است! ما فیلمنامه خود را بالا و اجرا کرده ایم. هر وقت به یک repo جدید احتیاج داریم ، می توانیم این اسکریپت را از هر فهرست دایرکتوری که در آن هستیم اجرا کنیم.

اما چیزی در این مورد کمی آزار دهنده است. باید مسیر دقیق فهرست اسکریپت را به خاطر بسپاریم. آیا اجرای اسکریپت با یک دستور واحد جالب نخواهد بود که همیشه به طور مستقل از چه دایرکتوری در آن قرار دارد؟

برای حل مشکل ما ، نام مستعار را بیاندازید.

Aliases راهی است که Bash برای ساختن نام برای دستورات دقیقی که می خواهیم اجرا کنیم ، ارائه می دهد.

برای ایجاد نام مستعار جدید ، باید پرونده های پیکربندی Bash را در سیستم خود ویرایش کنیم. این پرونده ها به طور معمول در فهرست خانه قرار دارند. Aliases را می توان در پرونده های مختلف تعریف کرد (عمدتا . bashrc یا . bash_aliases).

من یک پرونده . bash_aliases در سیستم خود دارم ، بنابراین بیایید آن را ویرایش کنیم.

در CLI ما CD را وارد می کنیم تا از فهرست خانه برویم.

سپس می توانیم L S-A را وارد کنیم تا همه پرونده ها (از جمله موارد پنهان) را لیست کنیم و بررسی کنیم که آیا پرونده . bashrc یا . bash_aliases را در سیستم خود داریم.

ما پرونده را با ویرایشگر متن/کد مورد نظر خود باز می کنیم.

و ما نام مستعار جدید خود را مانند این می نویسیم: alias newghrepo = "dash /home/german/desktop/ger/code/projects/scripts/newghrepo. sh"

در اینجا من نام نام مستعار را اعلام می کنم ، دستور واقعی که قصد دارم برای اجرای اسکریپت (Newghrepo) وارد شوم.

و بین نقل قول ها ، آنچه را که Alias می خواهد انجام دهد تعریف کنید ("Dash/Home/german/desktop/ger/code/projects/scripts/newghrepo. sh")

ببینید که من در حال گذر از مسیر مطلق اسکریپت هستم ، به طوری که این دستور بدون توجه به فهرست فعلی من ، همان کار را انجام می دهد.

اگر نمی دانید مسیر مطلق اسکریپت شما چیست ، به ترمینال خود به فهرست اسکریپت بروید و readlin k-f newghrepo. sh را وارد کنید. این باید مسیر کامل را برای شما بازگرداند.؛)

  • بعد از اتمام ویرایش ، پرونده خود را ذخیره می کنیم ، ترمینال خود را مجدداً راه اندازی می کنیم و voilà! اکنون می توانیم با ورود به Newghrepo ، اسکریپت خود را اجرا کنیم ، مهم نیست که در حال حاضر در چه فهرست هایی قرار داریم. خیلی سریعتر از باز کردن مرورگر و کلیک کردن در اطراف برای ایجاد repo ما!= D

امیدوارم که این امر به شما کمی طعم و مزه از نوع بهینه سازی هایی را که با اسکریپت امکان پذیر است ، به شما بدهد. مطمئناً اولین باری که می نویسید ، آزمایش و تنظیم کنید ، به کار بیشتری نیاز دارد. اما پس از آن ، شما هرگز مجبور نیستید دوباره آن کار را به صورت دستی انجام دهید.؛)

گرد کردن

این ترمینال هنگام شروع کار می تواند مانند مکانی ارعاب کننده و پیچیده باشد. اما مطمئناً ارزش آن را دارد که وقت و تلاش خود را برای یادگیری Ins و Outs of It بگذاریم. مزایای کارآیی خیلی خوب است که می توان از آن عبور کرد!

اگر علاقه مند به کسب اطلاعات بیشتر در مورد ترمینال و Bash هستید ، Zach Gollwitzer یک سریال Crash Awesome Crash در YouTube دارد. او همچنین در مورد موضوعات دیگر مانند Node و JavaScript آموزش های خوبی دارد ، بنابراین توصیه می کنم که از او پیروی کنید.؛)

مثل همیشه ، امیدوارم که از مقاله لذت برده باشید و چیز جدیدی یاد بگیرید. اگر می خواهید ، می توانید مرا در LinkedIn یا Twitter دنبال کنید.

التداول المالي...
ما را در سایت التداول المالي دنبال می کنید

برچسب : نویسنده : سیروس ابراهیم‌زاده بازدید : 47 تاريخ : دوشنبه 29 اسفند 1401 ساعت: 14:17