12 دستور Terminal که هر برنامه نویس وب باید آن ها بداند!

بخش: توسعه وب 186 بار مشاهده شده یکشنبه ۲۲ مرداد ۹۶ 0 نظر ارسال شده
12 دستور Terminal که هر برنامه نویس وب باید آن ها بداند!

ترمینال در مجموعه توسعه دهندگان یکی از مهمترین ابزارهای بهره وری می باشد. تسلط بر آن می تواند تاثیر بسیار مثبتی بر گردش کار شما داشته باشد، زیرا بسیاری از وظایف روزمره تنها نیازمند نوشتن یک دستور (command) ساده  و وارد کردن Enter می باشند .

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

 

Curl

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

در توسعه وب، اغلب از Curl برای آزمایش اتصالات و کار با API های RESTful استفاده می شود.

# 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 می توانند بسیار پیچیده تر باشند. گزینه های زیادی برای کنترل headerها، cookie ها، احراز هویت و موارد دیگر وجود دارد. برای کسب اطلاعات بیش تر می توانید به کتاب رایگان Everything curl مراجعه کنید.

 

Tree

Tree ابزار کوچک command line (خط فرمان) است که نمای تصویری فایل ها در یک دایرکتوری را نشان می دهد. این کار به طور مجدد در هر سطح از nesting و رسم یک فرمت 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

همچنین گزینه ای برای فیلتر کردن نتایج با استفاده از الگوی ساده RegEx وجود دارد:

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

 

Tmux

با توجه به wiki (ویکی) آن، Tmux  یک ترمینال چند منظوره است که به زبان انسانی ترجمه می شود که در نتیجه ابزاری برای اتصال ترمینال های چندگانه به session ترمینال می باشد.

Tumx

ترمینال Tmux با 3 صفحه نمایش تقسیم شده

این امر به شما امکان سویچ کردن میان برنامه ها در یک ترمینال، افزودن تقسیم صفحه نمایش، اتصال ترمینال های چندگانه به همان session  و همگام سازی (sync) تمامی آن ها را می دهد. Tmux برای کار بر روی یک سرور از راه دور بسیار مفید است، زیرا به شما امکان ایجاد تب های جدید بدون نیاز به وارد شدن دوباره را می دهد.

 

Disk usage – du

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

یک مورد استفاده معمول برای du زمانی است که حافظه یکی از درایوهای شما پر شده و شما علت آن را نمی دانید. با استفاده از این فرمان می توانید به سرعت حافظۀ تصرف شده برای هر فایل  را  مشاهده کرده و بزرگترین حافظه ذخیره شده را پیدا کنید.

# Running this will show the space usage of each folder in the current directory.
# The -h option makes the report easier to read.
# -s prevents recursiveness and shows the total size of a folder.
# The star wildcard (*) will run du on each file/folder in current directory.

du -sh *

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

همچنین فرمان مشابهی به نام df (Disk Free) وجود دارد که  اطلاعات مختلفی راجع به فضای در دسترس دیسک (بر خلاف du) را نشان می دهد.

 

Git

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

بسیاری از برنامه ها و ابزارهای شخص ثالث در دسترس هستند، اما اکثر مردم دسترسی مستقیم از GIT به ترمینال را ترجیح می دهند. git CLI واقعا قدرتمند است و حتی می تواند تاریخچه پیچیده ترین پروژه ها را نیز مدیریت کند.

 

Tar

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

tar -cf archive.tar file1 file2 file3

با استفاده از گزینه -x می توانید بایگانی های .tar را نیز استخراج کنید.

tar -xf archive.tar

توجه داشته باشید که اکثر فرمت های دیگر مانند .zip و .rar توسط tar باز نمی شود و نیازمند سایر سرویس های فرمان (command utilities) مانند Unzip می باشند.

بسیاری از سیستم های مدرن یونیکس یک نسخه گسترده از  (GNU tar) tar را اجرا می کنند که قادر به فشرده سازی حجم فایل را نیز می باشد:

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

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

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

 

md5sum

یونیکس چندین فرمان hash از جمله md5sum، sha1sum  و ... را ساخته است. این ابزار خط فرمان برنامه های کاربردی مختلفی در برنامه نویسی دارند، اما مهمتر از همه این است که می توانند برای بررسی یکپارچگی فایل ها استفاده شوند.

به عنوان مثال، اگر شما یک فایل .iso را از یک منبع نامعلوم دانلود کرده اید، احتمال دارد فایل حاوی اسکریپت های مضر باشد. برای اطمینان از اینکه .iso امن است، می توانید md5 یا دیگر هش ها را از آن تولید کنید.

md5sum ubuntu-16.04.3-desktop-amd64.iso 

0d9fe8e1ea408a5895cbbe3431989295  ubuntu-16.04.3-desktop-amd64.iso

پس از آن می توانید رشته تولید شده را با آنچه که از نویسنده اصلی ارائه شده مقایسه کنید (به عنوان مثال UbuntuHashes).

 

Htop

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

htop server command

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

 

Ln

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

در اینجا یک مثال از یکی از روش های بیشمار استفاده از لینک را می بینید. ما یک دایرکتوری بر روی دسکتاپ با نام Script (اسکریپت) داریم که شامل اسکریپت منظم سازماندهی شده bash  می باشد که معمولا از آن استفاده می کنیم. هر بار که می خواهیم یکی از اسکریپت ها را فراخوانی کنیم، باید این کار را انجام دهیم:

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

بدیهی است که به دلیل هر بار نوشتن مسیر مطلق کار بسیار آسانی نخواهد بود. در عوض می توانیم یک لینک از پوشه اسکریپت های را به  /usr/local/bin ایجاد کنیم که باعث اجرای اسکریپت ها از تمام پوشه ها می شود.

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

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

git-cleanup

 

SSH

با استفاده از دستور ssh کاربران می توانند به سرعت به یک میزبان راه دور (remote host ) متصل شوند و وارد پوسته Unix خود شوند. این امر باعث ارسال راحت و مستقیم دستورات بر روی سرور از ترمینال دستگاه محلی شما می شود.

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

ssh username@remote_host

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

ssh username@remote_host ls /var/www

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

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

 

Grep

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

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

// Search for today's date (in format yyyy-mm-dd) and write the results to a new file. 
grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log

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

 

Alias

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

# Create an alias for starting a local web server.
alias server="python -m SimpleHTTPServer 9000"

# Instead of typing the whole command simply use the alias.
server 

Serving HTTP on 0.0.0.0 port 9000 ...

نام مستعار(alias) تا زمانی که این ترمینال را باز نگه دارید، در دسترس خواهد بود. برای اینکه آن را دائمی کنید می توانید فرمان alias را به فایل .bashrc اضافه کنید.

گروه تحقیقات سافت اسکیل
گروه تحقیقات سافت اسکیل

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

شما چه نظر و یا سوالی درباره این نوشته دارید؟

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

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

لطفا چند لحظه منتظر بمانید ...