دستورهای ابتدایی Shell که هر توسعه دهنده ای باید بداند | راهنمای کاربردی
اگر حس میکنید به عنوان یک توسعهدهنده وابستگی زیادی به ابزارهای گرافیکی دارید، با ما همراه باشید تا شما را با برخی دستورهای ابتدایی Shell آشنا سازیم که موجب افزایش بهرهوری شما در طی کار میشوند.
Pwd برای بازگشت نام دایرکتوری کاری
این راهنما را با دستوری آغاز میکنیم که به شما کمک میکند تا متوجه شوید، اینک در ترمینال در کجا ایستادهاید:
$ pwd /Users/erik
ما در دایرکتوری خانگی خود قرار داریم، شما چطور؟
ls برای لیست کردن محتوای دایرکتوری
اکنون که متوجه شدیم در کدام دایرکتوری قرار داریم، نوبت آن رسیده که ببینیم در دایرکتوری جاری چه چیزهایی وجود دارند:
$ ls AndroidStudioProjects VirtualBox VMs Applications Desktop Documents flutter Downloads...
ممکن است در دایرکتوری جاری شما موارد زیادی برای نمایش وجود داشته باشند. دستور ls گزینههای زیادی برای ایجاد سهولت در فرایند کار دارد. برخی از رایجترین گزینهها به شرح زیر هستند:
- l-: این گزینه موجب میشود که لیست با قالببندی بلند نمایش یابد. مجموع اندازههای همه فایلها در خروجی و یک خط قبل از لیستبندی بلند نمایش مییابد.
- h-: این گزینه به همراه گزینه قبلی استفاده میشود و اندازههای فایل را به ترتیبی تبدیل میکند که خوانش آن برای ما راحتتر باشد، مثلاً عباراتی مانند 10G یا 42M را مشاهده میکنید.
- a-: اختصاری برای عبارت «همه» (all) است و به این ترتیب همه فایلها از جمله فایلهای موجود در دایرکتوریهای پنهان که نامشان با نقطه آغاز میشود، نیز لیست میشوند.
شما میتوانید این گزینهها را به ترتیبی که دوست دارید، ترکیب کنید:
$ ls -lha total: 32 drwxr-xr-x+ 85 erik staff 2.7K May 27 11:11 . drwxr-xr-x 6 root admin 193B Sep 29 2019 .. -rw-r--r-- 1 erik staff 2.1K Apr 15 11:06 .gitignore -rw-r--r-- 1 erik staff 25M May 26 15:44 image.zip ...
در مثال فوق حقوق دسترسی، مالک و گروه، اندازه فایل، آخرین تاریخ دستکاری دادهها و نام خود فایل را مشاهده میکنید.
در دو ردیف نخست، شاید متوجه چیز غریبی شده باشید و آن دو فایل با نامهای (.) و (..) است:
- فایلی که با یک نقطه (.) مشخص شده، در واقع دایرکتوری جاری است. این دایرکتوری در مجموع یک اندازه دارد که به تعداد و حجم فایلهای موجود در دایرکتوری وابسته است.
- مورد مشخص شده با دو نقطه (..) دایرکتوری والد دایرکتوری جاری است که این دایرکتوری درون آن قرار دارد.
این میانبرهای کارآمد میتوانند در هر دستوری مورد استفاده قرار گیرند. اگر میخواهید محتوای دایرکتوری والد را ببینید میتوانید از دستور /..ls استفاده کنید. حتی میتوانید این موضوع را تکرار کنید و با استفاده از دستور زیر دو دایرکتوری بالاتر بروید:
ls../../
cd برای تغییر دایرکتوری
اکنون که میدانید در کجا ایستادهاید و چه فایلها و دایرکتوریهایی در کنارتان وجود دارند، میتوانید شروع به حرکت به اطراف بکنید. فرض کنیم پروژههای خود را در پوشه Projects ذخیره کردهاید. برای رفتن به آنجا میتوانید از دستور زیر استفاده کنید:
$ cd Projects
اغلب پوستهها (Shell) از تکمیلسازی خودکار پشتیبانی میکنند. کافی است شروع به وارد کردن چند حرف آغازین دایرکتوری یا فایل بکنید تا پیشنهادی به صورت خودکار عرضه شود. سپس میتوانید با زدن کلید Tab پیشنهاد ارائه شده را تأیید کنید:
$ cd Pro<TAB key>
پوسته شما یا کلمه مورد نظرتان را به صورت خودکار تکمیل میکند و یا در صورت وجود چند دایرکتوری با آن نام معمولاً همه آنها نمایش مییابند تا از بین آنها یکی که مورد نظرتان است را انتخاب کنید.
cp برای کپی کردن
گاهی اوقات لازم میشود که برخی فایلها را کپی کنیم. دستور cp این کار را برای ما انجام میدهد. این کار از طریق ایجاد یک فایل جدید و کپی کردن همه محتوای فایل قبلی به فایل جدید انجام میگیرد. برای مثال جهت کپی کردن فایل file1.txt به فایل جدید (برای نمونه برای پشتیبان گرفتن از آن) میتوانید از دستور زیر استفاده کنید:
$ cp file1.txt file1.txt.bak
برای کپی کردن یک فایل به دایرکتوری دیگر میتوانید از دستور زیر استفاده کنید:
$ cp file1.txt./backups/
در این جا /. به معنی دایرکتوری جاری است، بنابراین backups در دایرکتوری کاری کنونی قرار دارد.
mv برای جابجایی فایلها
اگر نیاز به جابجا کردن یک فایل باشد، میتوانید از دستور mv بهره بگیرید. توجه کنید که جابجا کردن فایل همانند تغییر دادن نام یک فایل است. در واقع هیچ دستور خاصی برای تغییر دادن نام یک فایل وجود ندارد. استفاده از دستور mv تفاوت چندانی با دستور cp ندارد. بنابراین برای تغییر دادن نام یک فایل یا جابجا کردن آن میتوانید به صورت زیر عمل کنید:
$ mv file1.txt file1.txt.bak
برای جابجایی یک فایل به دایرکتوری دیگر از دستور زیر استفاده کنید:
$ mv file1.txt./backups/
mkdir برای ساخت دایرکتوری
این دستور به سادگی یک دایرکتوری ایجاد میکند. برای ساخت یک دایرکتوری جهت ذخیره پروژهها میتوانید از دستور زیر استفاده کنید:
$ mkdir Projects
این دستور یک آرگومان ساده به صوت p- دارد که وقتی از آن استفاده کنید، هر دایرکتوری میانجی که وجود نداشته باشد نیز ایجاد خواهد شد. اگر میخواهید نخستین پروژه خود را به صورت مستقیم درون پوشه $ mkdir Projects ایجاد کنید، میتوانید به صورت زیر عمل کنید:
$ mkdir -p Projects/my_first_project
rmdir برای حذف دایرکتوریها
rmdir مخالف mkdir است و یک دایرکتوری را حذف میکند. در زمان استفاده از این دستور نیز میتوان از همان آرگومان p- که قبلاً اشاره شد استفاده کرد.
$ rm Projects
برای حذف دایرکتوری Projects و نخستین پروژهای که در آن ساخته بودیم، از دستور زیر استفاده کنید:
$ rmdir -p Projects/my_first_project
حذف کردن یک دایرکتوری تنها زمانی قابل اجرا است که دایرکتوری خالی باشد. اگر میخواهید یک دایرکتوری که دارای محتوایی است را پاک کنید، باید از دستور rm استفاده کنید که در ادامه توضیح دادهایم.
rm
اینک وارد سرزمین خطرناکی میشویم! این دستور بسیار قدرتمند است و میتواند فایل سیستم شما را به طور بالقوه خراب کند. بنابراین باید با احتیاط از آن استفاده کنید. کار خود را با حذف یک فایل آغاز میکنیم: