12 دستور ترمینال که توسعه‌دهندگان وب باید بدانند

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 11 خرداد 1397
دسته بندی ها : برنامه نویسی

ترمینال یکی از مهمترین ابزارها در قسمت جعبه ابزار یک توسعه‌دهنده است. تخصص پیدا کردن در این زمینه ویژگی‌ها و تاثیرات مثبت بسیاری را به همراه خواهد داشت. با درک کردن این مسئله توسعه‌دهندگان می‌توانند کارهای‌شان را سریع‌تر انجام دهند و کارها را ساده‌تر بکنند.

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

Curl

Curl یک ابزار خط فرمان برای ایجاد درخواست از طریق پروتکل‌های HTTP(s)، FTP و موارد مختلف دیگر است. این دستور می‌تواند یک فایل را دانلود کند، پاسخ به یک درخواست را بررسی نماید و به صورت آزاد از راه دور به داده‌ها دسترسی داشته باشد.

در دنیای توسعه وب از Curl بیشتر برای تست اتصالات و کار با RESTful APIها به کار برده می‌شود. 

# Fetch the headers of a URL.
curl -I http://google.com
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Location: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQ
Content-Length: 258
Date: Wed, 09 Aug 2017 11:24:01 GMT

# Make a GET request to a remote API.
curl http://numbersapi.com/random/trivia
29 is the number of days it takes Saturn to orbit the Sun.

دستور Curl می‌تواند بسیار پیچیده‌تر از این حالت‌ها نیز باشد. در این دستور گزینه‌های کنترلی مختلفی وجود دارد که می‌توانید آن‌ها را بررسی نمایید. اگر قصد یادگیری این دستور به صورت کامل را دارید می‌توانید از این کتاب رایگان «Everything curl» استفاده کنید. 

Tree

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

tree
.
├── css
│   ├── bootstrap.css
│   ├── bootstrap.min.css
├── fonts
│   ├── glyphicons-halflings-regular.eot
│   ├── glyphicons-halflings-regular.svg
│   ├── glyphicons-halflings-regular.ttf
│   ├── glyphicons-halflings-regular.woff
│   └── glyphicons-halflings-regular.woff2
└── js
    ├── bootstrap.js
    └── bootstrap.min.js

برای این دستور گزینه‌هایی نیز وجود دارد. برای مثال با استفاده از گزینه زیر شما می‌توانید دنبال یک فایل با فرمت مشخص باشید:

tree -P '*.min.*'
.
├── css
│   ├── bootstrap.min.css
├── fonts
└── js
    └── bootstrap.min.js

Tmux

براساس ویکی پروژه، Tmux یک چندگانه کننده ترمینال است. با استفاده از این ابزار می‌توانید ترمینال‌های مختلف را به یک نشست تبدیل کنید و در آن‌ها دستورات متفاوتی را بنویسید.

12 دستور ترمینال که توسعه‌دهندگان وب باید بدانند

این ابزار به شما قابلیت سوئیچ کردن در بین برنامه‌ها را در یک ترمینال می‌دهد، صفحات مختلفی را ایجاد می‌کند، ترمینال‌های مختلفی را به یک نشست متصل می‌کند و در نهایت تمام این موارد را با همدیگر هماهنگ نگه می‌دارد. Tmux برای زمانی که روی یک سرور از راه دور کار می‌کنید و نیاز دارید تب جدیدی را بدون اینکه دوباره لاگین کنید اضافه نمایید مناسب است.

Disk usage - du

دستور du به شما گزارشی از میزان استفاده شده فضا توسط پوشه‌ها و فایل‌ها را برمی‌گرداند. استفاده کردن از این دستور بسیار آسان است. تنها کافی‌ست به مکانی که قرار است میزان استفاده شده از فضا را توسط پوشه‌ها مشاهده کنید بروید و دستور du را اجرا نمایید. 

یکی از استفاده‌های بسیار خوب از این دستور زمانی است که میزان فضای یکی از دستگاه‌های شما پر شده است و شما دلیل آن را به خوبی نمی دانید. با استفاده از این ابزار می‌توانید میزان فضای استفاده شده توسط هر کدام از پوشه‌ها را مشاهده کنید و براساس آن بزرگ‌ترین جاهایی که حافظه‌تان را اشغال کرده است مشاهده نمایید.

du -sh *

1.2G    Desktop
4.0K    Documents
40G     Downloads
4.0K    Music
4.9M    Pictures
844K    Public
4.0K    Templates
6.9M    Videos

Git

گیت در حال حاضر محبوب‌ترین سیستم برای کنترل نسخه است. این ابزار یکی از الزامات یک توسعه دهنده وب مدرن است و نباید به همین سادگی از آن بگذریم.

ابزارهای مختلفی تا به حال برای کار کردن با Git ایجاد شده اما بیشتر افراد دوست دارند که از طریق ترمینال با آن کار کنند. رابط کاربری متنی گیت بسیار قدرتمند است و می‌تواند مدیریت خوبی را به شما ارائه دهد.

اگر قصد یادگیری آن را دارید می‌توانید به «آموزش گیت و گیت هاب» راکت سر بزنید.

Tar

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

tar -cf archive.tar file1 file2 file3

با استفاده از گزینه -x شما می‌توانید آرشیو‌های .tar را باز کنید.

tar -xf archive.tar

نکته این دستور اینجاست که برخی فرمت‌ها مانند .zip و .rar توسط این دستور شناسایی نمی‌شود و برای کار کردن با آن‌ها نیاز است که از ابزارهای دیگری استفاده کنید. 

بسیاری از سیستم های یونیکس مدرن از یک نسخه توسعه یافته برای فشرده‌سازی بیشتر فایل‌ها استفاده می‌کنند که کار کردن با آن به صورت زیر است:

# Create compressed gzip archive.
tar -czf file.tar.gz inputfile1 inputfile2

# Extract .gz archive.
tar -xzf file.tar.gz

اگر سیستم‌عامل‌تان از این نسخه پشتیبانی نمی‌کند می‌توانید از gzip، zcat و یا compress برای کاهش اندازه آرشیوهای‌تان استفاده کنید. 

md5sum

یونیکس چندین ابزار داخلی برای عملیات هشینگ را ارائه داده که در بین آن‌ها می‌تواند md5sum و sha1sum را نام برد. این ابزار خط فرمان کاربردهای بسیاری زیادی در اپلیکیشن‌های مختلف دارد اما مهمترین آن برای بررسی کردن درستی یک فایل استفاده می‌شود.

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

md5sum ubuntu-16.04.3-desktop-amd64.iso 

0d9fe8e1ea408a5895cbbe3431989295  ubuntu-16.04.3-desktop-amd64.iso

بعد از آن می‌توانید هش تولید شده را با هشی که تولید کننده در اختیارتان قرار داده است تطبیق دهید.

Htop

12 دستور ترمینال که توسعه‌دهندگان وب باید بدانند

Htop یک ابزار قدرتمند اخلی برای مدیریت وظایف است. در این ابزار گزینه‌های مختلف و پیچیده‌ای برای نظارت و کنترل کردن فرایند‌های سیستم‌تان در نظر گرفته شده است.

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

Ln

لینک‌ها در یونیکس تقریبا مشابه شورت‌کات‌ها در ویندوز هستند. آن‌ها اجازه می‌دهند که به سرعت به یک فایل مشخص دسترسی پیدا کنیم. لینک‌ها با استفاده از دستور ln ایجاد می‌شوند. این میانبر‌ها در دو دسته قرار می‌گیرند: لینک‌های سخت و لینک‌های سمبولیک. هر کدام از این موارد مشخصات متفاوتی دارند و برای حالت‌های متفاوتی استفاده می‌شوند. (خواندن بیشتر در این رابطه)

در ایجا می‌توانید شاهد یک مثال از استفاده لینک‌ها را مشاهده کنید. بیاید فرض کنیم که یک دایرکتوری روی دسکتاپ با نام scripts وجود دارد. در این اسکریپت‌های بشی که معمولا استفاده می‌کنیم قرار دارد. هر بار که بخواهیم یکی از آن ها را فراخوانی کنیم به صورت زیر عمل می‌نماییم:

~/Desktop/Scripts/git-scripts/git-cleanup

مطمئنا این مورد بسیار خوشایند نیست، به این دلیل که نیاز داریم هر بار درست آدرس را بنویسیم. بجای این، می‌توانیم از یک لینک سمبولیک برای پوشه اسکریپت‌ها استفاده کنیم و آن را برابر با /usr/local/bin قرار دهیم. با این کار اسکریپت‌ها از هر جایی قابلیت اجرا شدن را دارند. 

sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/

با ایجاد لینک سمبولیک حال ما می‌توانیم به سادگی با نوشتن دستور زیر به اسکریپت دسترسی داشته باشیم:

git-cleanup

SSH

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

برای پیاده‌سازی یک ارتباط شما نیاز دارید که به صورت درست IP آدرس و یا URL را وارد کنید. اولین باری که شما درخواست اتصال دارید باید با مراحل احراز هویت همراه شوید.

ssh username@remote_host

اگر قصد دارید بدون اینکه وارد سرور شوید و یک دستور را اجرا کنید می‌توانید به سادگی بعد از قسمت URL دستورتان را وارد نمایید. دستور روی سرور اجرا شده و نتیجه برگشت داده می‌شود.

ssh username@remote_host ls /var/www

some-website.com
some-other-website.com

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

Grep

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

این ابزار برای حالتی که با فایل‌های بزرگ سر و کار دارید بسیار کاربردی است. در زیر ما از grep همراه با ترکیبی از دستور date استفاده کرده‌ایم تا بتوانیم تنها خطاهای امروز را از یک فایل بزرگ استخراج نماییم. در نهایت آن را در یک فایل دیگر قرار داده‌ایم.

grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log

یکی دیگر از دستورات که می‌توانید استفاده کنید Sed است. این دستور بسیار پیچیده‌تر و قدرتمند‌تر از grep کار می‌کند.

Alais

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

alias server="python -m SimpleHTTPServer 9000"
server 
Serving HTTP on 0.0.0.0 port 9000 ...

در دستور بالا یک اسم مستعار با عنوان server را ایجاد کردیم و آن را برابر با یک دستور منحصر به فرد قرار دادیم. حال اگر بخواهیم از دستور استفاده کنیم کافی است که اسم مستعار را فراخوانی کنید. 

این اسم‌های مستعار بعد از خارج شدن از ترمینال دیگر در دسترس نخواهند بود. برای اینکه بتوانید آن‌ها را به صورت ثابت نگه دارید می‌توانید داخل فایل .bashrc از آن‌ها استفاده کنید.

منبع

این مطلب را با دیگران به اشتراک بگذارید :

مقالات پیشنهادی

چرا طراحان و توسعه‌دهندگان وب باید با همدیگر کار کنند

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

ده نکته کلیدی طراحی وب که کاربران باید بدانند و درک کنند

طراحی وب همیشه در حال تغییر است . هر روز تمایلات جدیدی ظهور می کند. به نظر می رسد الگوریتم های گوگل همیشه دیگران را مجبور به سازگار شدن با آنها میکنند...

10 قطعه کد jquery که هر طراحی باید بدانند | قسمت دوم

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

10 قطعه کد jquery که هر طراحی باید بدانند | قسمت اول

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