آقا تنبلی که توضیح و توجیه نداره. تنبلم دیگه. گاهی واسه چند کاراکتر کمتر تو Terminal حاضر میشیم آدم هم بکشیم که طبیعتا منطقی نیست چون کار بیشتری نسبت به تایپ همون چند کاراکتر کمتر مورد بحث میبره ولی به هر حال. انسان چون حکم آدمیزاد رو داره گاهی مجبوره و گاهی کارهایی میکنه که خودش هم میگه عجب!
از این مقدمات اضافی بگذریم و بگم که کلا چیا دم دستم به عنوان Alias دارم و چه استفادههایی ازشون میکنم. اول یه توضیح کوتاه بدم که تو مک چه جوری Alias ست میکنم و بعد برم سراغ کارهای خودم. اینکه چرا مک، دلیلش اینه که من با مک کار میکنم و دلیل این که چرا سایر سیستم عاملها رو نمیگم رو میتونید در پاراگراف اول پیدا کنید ?
ابتدا باید فایلی با نام `bash-profile.` درست کنید یا اگه تو سیستمتون موجوده بازش کنید، که این کار از طریق دستور زیر ممکنه:
nano ~/.bash-profile
با این دستور فایل موجود یا یک فایل خالی در ادیتور nano براتون باز میشه. حالا میتونید به سادگی دستورهای تحت ترمینال یا Bash رو اینجا بنویسید و ذخیره کنید. بعد از ذخیره و خروج از ادیتور که با `ctrl + X` انجام میشه باید به سیستم عامل بگید که یک بار دیگه این فایل رو بخونه و این کار هم با دستور زیر انجام میشه:
source ~/.bash_profile
خود Alias هم با این پترن ساخته میشه:
alias name="command"
در اینجا alias خود دستور ایجاد به حساب میاد. name نامی هست که از این به بعد استفاده میکنید و command هم دستوری که خستهتون کرده ?
همین؟ واقعا همین! حالا بریم سراغ دستورهایی که من استفاده میکنم.
دیگه قاعدتا نباید تعجب کنید، برای ادیت Aliasها هم ۲ تا Alias دارم. اولی برای باز کردن فایل و دومی برای آپدیت Source:
alias alias-edit="nano ~/.bash_profile" alias alias-update="source ~/.bash_profile"
اینجا از چند تا Alias استفاده میکنم چون واقعا دیگه دستورهاش طولانی هستن و پرکاربرد.
alias composer="php /usr/local/bin/composer" alias a="php artisan" alias phpunit="vendor/bin/phpunit" alias ad="apidoc -f ".php" -i Modules -o apidoc/" alias tinker="php artisan tinker" alias t="php artisan tinker" alias 'am'='a migrate' alias 'amm'='a module:migrate '
خیلی کوتاه توضیح بدم هر کدوم چی کار میکنن:
روم سیاه واقعا با این همه تنبلی! ۷ ۸ تا Alias دیگه هم هست که برای کارهای یسنا استفاده میکنم و خیلی معنا و مفهومی برای شما نداره.
اینجا خیلی چیزی برای انتشار ندارم به جز ۲ تا دستور Serve و Build که خب طبیعتا چیز عجیبی نیستن. فقط کوتاهترن
alias serve="npm run serve" alias build="npm run build"
اینجا هم چند تا دستور دیگه دارم ولی کاربردش تو محصولات داخلی شرکته و هیچ مفهموم خارجی نمیتونه براتون داشته باشه متاسفانه.
چون ما پروژههامون رو تو Github مدیریت میکنیم و تمام Issueها هم اونجا ثبت شدن ۲ تا دستور برای دسترسی به ریپازیتوری اصلیمون و باز کردن Issue با شمارهی مشخص دارم:
function name() { open "https://github.com/username/repository" }
اینجا name همون نام Alias هست و داخل متد هم آدرس ریپازیتوری گیتهاب. از این متد برای این ایده استفاده کنید که هر آدرسی رو که میخواهید باز کنه براتون. مثلا با زدن tw سایت twitter براتون باز بشه.
function hub() { open "https://github.com/username/repositry/issues/$1" }
این رو هم از طاها گرفتم. با دستور `hub 4132` در واقع Issue شماره 4132 در مرورگر اصلیتون براتون باز میشه. خسته نشیم یه وقت!
این البته یه نیاز کاملا شخصی به حساب میاد. من چون تو پروژههای وردپرس از Gulp استفاده میکنم و برای دپلوی پوسته هم فرآیند اتوماتیکی ندارم ناچارم که فولدر رو Zip کرده و آپلود کنم. این موقع مشکلی که وجود داره وجود فایلهای git و node_modules هست که تقریبا ۹۵٪ حجم فولدر و تشکیل میدن. برای اینکه یه فایل فشرده از پوسته بدون این فایلها داشته باشم از دستور زیر استفاده میکنم:
alias zip-wp="zip -r ../theme-$(date '+%y-%m-%d-%k-%M-%S').zip * -x *.git*$
این دستور یه فایل zip برای من بیرون فولدر پوسته درست میکنه که نامش با پترنی از تاریخ ساخته میشه و فایلهای اضافی رو تو خودش نداره.
شما هم اگه Aliasی دارین که به درد میخوره و میتونین بهم معرفی کنین خوشحالم میکنین. بیاین همه با هم تنبلتر باشیم ?