با alias سریع‌تر کد بزنید!

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

این متن رو یک ماه پیش نوشتم.

دانلود نسخه‌ی چاپی (PDF)

از روی این مطلب، یه نسخه‌ی چاپی هم میتونید داشته باشید!

مقدمه

البته که دوست دارم یه متن بلند بنویسم! اما همزمان که دارم این مطلب رو مینویسم، دارم روی یه مطلب (چند نسخه‌ای) کار میکنم در باره‌ی برنامه‌نویسی وب. مثل همیشه، از صفر تا صدش، برای اونایی که تا حالا حتی برنامه‌نویسی هم نکردن! کار عجیبیه، کلی چیز باید بخونم و انجام بدم و یاد بگیرم. بگذریم...

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

لینوکس

لینوکس یه هسته‌ی سیستم‌عامله. یعنی دستورات و فرایندهایی که یه سیستم‌عامل نیاز داره رو براش فراهم میکنه و یه راه ارتباطی بین سخت‌افزار و سیستم‌عامله. ضمنا، لینوکس متن بازه، یعنی میشه هرچیزی رو توش تغییر داد و شخصی‌سازی کرد.

سیستم‌عامل‌های زیادی هم وجود دارن که مبتنی بر لینوکس هستن، یعنی، از هسته‌ی لینوکس استفاده میکنن و یه جورایی «توزیعی» یا Distributionای از لینوکس هستن (بین کاربرهای لینوکسی، به Distro هم معروفن). من اینجا سعی کردم در مورد سیستم‌عامل‌های لینوکس بیشتر توضیح بدم.

شِل یا Shell

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

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

برای باز کردن نرم‌افزار تِرمینال، میتونید توی سیستم‌عامل لینوکسی دکمه‌ی Ctrl + Alt + T رو بزنید، یا دکمه‌ی CMD + Space رو توی سیستم‌عامل مک بزنید و دنبال Terminal بگردید.

دستورات پایه

این دستورات رو بدون علامت $ اجرا کنید. $ یک نشانست و به این معنیه که دستور داره با مجوز یک «کاربر» و نه یک «مدیر» اجرا میشه. نشانه‌ی یک مدیر، علامت # هست.

۱. pwd

این دستور به شما آدرس جایی که توش هستید رو میگه. وقتی ترمینال باز میشه، معمولا از پوشه‌ی Home شروع به کار میکنه. ضمنا، این آدرس‌ها Absolute هستن، یعنی از پوشه‌ی ریشه یا Root شروع میشن.

$ pwd
/home/aien

۲. ls

این دستور به شما محتویات پوشه‌ای که توش هستید رو میگه. اگر به آخرش -a هم اضافه کنید، میتونید فایل‌های مخفی رو هم ببینید.

$ ls -a
.                Downloads      .gtk-bookmarks  .node-gyp            .rdm                                                       .vscode
..               .dropbox       .gtkrc-2.0      .npm                 .rediscli_history                                          Web
...

۳. cd

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

$ pwd
/home/aien/
$ cd /home/aien/Bilder
$ pwd
/home/aien/Bilder

۴. mkdir و rmdir

این دستورات به شما امکان ساخت و حذف یک پوشه رو میدن.

$ mkdir sample
$ cd sample
$ pwd
/home/aien/Bolder/sample
$ cd ..
$ pwd
/home/aien/Bilder
$ rmdir sample
$ ls
...

۵. touch

این دستور به شما امکان ساخت فایل‌ها رو میده.

$ touch file.txt
$ ls
...
file.txt
...

۶. rm

این دستور به شما امکان حذف فایل‌ها و تو بعضی شرایط، فولدرها رو میده.

$ rm file.txt

۷. cp

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

$ touch file.txt
$ pwd
/home/aien/Bilder
$ cp ./file.txt /home/aien/Musik
$ cd /home/aien/Musik
$ pwd
/home/aien/Musik
$ ls
...
file.txt
...

۸. mv

این دستور به شما امکان جابه‌جا کردن فایل‌ها رو میده و مثل دستور کپی عمل میکنه.

$ pwd
/home/aien/Musik
$ mv file.txt /home/aien/Videos
$ ls
...
...
$ cd ../Videos
$ pwd
/home/aien/Videos
$ ls
...
file.txt
...

۹. rm

این دستور به شما امکان حذف فایل‌ها و تو بعضی شرایط، فولدرها رو میده.

$ rm file.txt

دستورات حرفه‌ای‌تر

۱. nano

این دستور به شما امکان نوشتن داخل یک فایل رو میده. اگر اون فایل وجود نداشته باشه، اون رو ایجاد میکنه. بعد از اینکه داخل فایل نوشتید، کافیه Ctrl + X رو بزنید، Y رو بزنید و از برنامه خارج بشید. نوشته‌ها ذخیره شدن!

$ nano file.txt

۲. cat

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

$ cat file.txt
In yek file nemune ast!

دستور alias

دستور alias کمک میکنه تا دستور یا دستوراتی رو با اسامی دیگه صدا بزنیم و اجرا کنیم. شاید با خودتون بگید آخه چه کاربردی داره وقتی میتونم خودم دستور رو تایپ کنم؟

موضوع اینه که گاهی نیاز هست دستوراتی رو اجرا کنیم که نسبتا پیچیده هستن و فقط تو بعضی چیزهای کوچیک فرق میکنن.

برای شروع، دستور زیر رو تایپ کنید:

$ alias

یه لیست طولانی از دستورات رو خواهید گرفت:

-='cd -'
...
l='ls -lah'
...
serve='http-server -o -a localhost .'
which-command=whence

آخر این لیست، دستور هست که نوشته l='ls -lah'. اگر شما این دستور رو تو ترمینال بنویسید، یعنی بنویسید l، مثل این میمونه که به ترمینال گفتید دستور ls -lah رو اجرا کنه.

حالا برای نمونه، دستور زیر رو بزنید:

$ alias p="pwd"

از این به بعد اگر من دستور p رو بزنم، انگار دستور pwd رو زدم، پس آدرس جایی که هستم رو میگیرم:

$ alias p="pwd"
$ p
/home/aien

حالا فرض کنید که توی سیستمتون، نرم‌افزار Apache رو داشتید. برای دستکاری فایل اصلیش، لازم بود که مثلا nano رو با کل آدرس اون فایل وارد کنید. چی میشد اگر مینوشتید:

$ alias a="nano /etc/httpd/conf/httpd.conf"

اونوقت به جای هربار تیاپ کردن دستور، فقط a رو اجرا میکردید و فایل رو دستکاری...

چطور دستورات alias رو دایمی کنیم

اگر تو یه ترمینال، یه دستور alias رو وارد کنید، بعد از بستن اون ترمینال، دستورتون هم از بین میره و دفعه‌ی بعدی دوباره باید دوباره تعریفش کنید. راهکارش اینه که از فایل .bashrc استفاده کنید. خیلی ساده، دستور زیر رو بزنید:

$ nano ~/.bashrc

این دستور، فایل .bashrc که توی پوشه‌ی Home شما هست رو باز میکنه. حالا دستور زیر رو به بالای این فایل اضافه کنید:

alias p="pwd"
alias bashrc="nano ~/.bashrc"
...

با این کار، هربار که دستور p رو بزنید، به جاش دستور pwd اجرا میشه. برای حذفش هم، کافیه دوباره اون رو از فایلتون حذف کنید (دستور زیر رو تو ترمینال بزنید تا فایلش باز بشه).

$ bashrc

دستورات پر کاربرد

اینجا لیست این دستورا رو مینویسم. به مرور هم کاملشون میکنم. میتونید اونارو تو فایل .bashrc اضافه کنید.

دستور کاربرد لوازم
alias cins="composer install"
نصب دیپندنسی‌های composer نصب بودن کامپوزر php روی سیستم
alias cpwd='code . && exit'
باز کردن نرم‌افزار Visual Studio Code تو پوشه‌ی فعلی و بستن ترمینال نصب بودن نرم‌افزار vscode روی سیستم
alias gcb='git checkout -b'

عوض کردن شاخه یا branch گیت به شاخه‌ی ورودی.

gcb new-branch
نصب بودن گیت روی سیستم
alias gcm='git checkout master'
عوض کردن شاخه‌ی گیت به master نصب بودن گیت روی سیستم
alias gf='git fetch --all --prune'
دریافت تغییرات شاخه‌ها از گیت نصب بودن گیت روی سیستم
alias ndev='npm run dev'
اجرا کردن دستور dev پروژه‌های nodejs نصب بودن npm روی سیستم
alias nins='npm install'
نصب دیپندنسی‌های npm برای پوشه‌ی فعلی نصب بودن npm روی سیستم
alias nprod='NODE_ENV=prod npm start'
اجرای پروژه nodejs در حالت production نصب بودن npm روی سیستم
alias serve='http-server -o -a localhost .'
سِرو کردن فایل‌های یک پروژه، روی localhost

نصب بودن http-server توسط npm روی حالت global

$ nins -g http-serve

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

موفق باشید.

برگردیم به بالای صفحه