منتشر شده در

ترفند های wsl

در نوشته قبلی طریقه نصب wsl در ویندوز 10 آموزش داده شد. اگر با wsl کمی کار کرده باشید متوجه بعضی از محدودیت هایش میشوید. به طور مثال اگر سرویس Tor را استارت کنید، بعد از بستن bash متوجه میشوید که سرویس هم استاپ میشود. یا به طور مثال سرویس های apache2 و mysql که به صورت autostart میباشند موقع ورود به ویندوز فعال نمی شوند! در این نوشته رفع محدودیت های wsl و همچنین استفاده از $PATH در %PATH% یا همان cmd آموزش داده خواهد شد.

دسترسی به فایل های wsl

فایل های wsl در شاخه زیر قرار دارد و تاکیید شده به هیچ عنوان توسط نرم افزار های ویندوز فایل ها را ویرایش نکنید!

%USERPROFILE%\AppData\Local\lxss\

دسترسی سریع به bash

Open in Terminal در راست کلیک

یکی از راحت ترین راه برای دسترسی به bash امکان Open in Terminal در منو راست کلیک می باشد. این امکان در اکثر دسکتاپ های گنو/لینوکس دیده میشود. برای اضافه کردن این امکان فایل رجیستر را از اینجا دانلود کرده و Merge نمائید.

w_t_oit.png

از طریق Explorer

برای دسترسی به bash از Explorer کافیست در adress bar کلمه bash را تایپ نمایید.

از طریق cmd

برای دسترسی به bash از cmd بعد از اجرای آن دستور bash را تایپ نمایید.

همچنین اگر بخواهید بطور مستقیم از cmd دستور bash اجرا نمایید میتوانید مانند کد زیر دسترسی نمائیید.

C:\Users\arshe>bash -c "echo $USER"
arsh

همیشه اجرا کردن wsl در background task

اگر بتوانیم یک tty از bash را در زمان ورود به ویندوز به صورت اتوماتیک اجرا کنیم و در پس زمینه قرار دهیم مشکل غیر فعال شدن سرویس ها در پس زمینه موقع بستن bash و همچنین سرویس های autostart حل می شود.

بدین منظور قبلا کد بَشی نوشتیم تا شما بتوانید به صورت remote خیلی آسان این امکان را فراهم کنید. برای این کار کد زیر را در bash تایپ نمایید.

curl -s http://cdn.arshen.ir/fixwsl/1.0.0/fixwsl.sh | sudo bash

استفاده از بسته های bash در cmd

شما میتوانید از بسته هایی که در bash نصب کرده اید در %PATH% ویندوز استفاده نمایید. به طور مثال شما git را در bash نصب میکنید که حجمی تقریبا 200KB دارد (در ویندوز حدود 3MB میباشد) و از طریق cmd استفاده کنید. در حالت معمول همچین امکانی قرار داده نشده است.

برای این کار ابتدا فولدری را با نام دلخواه (مثال w2w) ایجاد کنید و آن را از طریق Edit environment variables for your account در %PATH% قرار دهید. سپس باید برای هر بسته فایل .bat با نام همان دستور ایجاد کنید و در w2w قرار دهید. برای مثال برای php, java, javac, git و دستور ll فایل bat ایجاد کرده ایم و شما میتوانید از اینجا آن ها را دریافت نمایید و در فولدر w2w قرار دهید.

ساختار فایل php.bat

@echo off
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:c:=/mnt/c%
set v_params=%v_params:"=\"%
@bash -c "php %v_params%"

در پایان امیدوارم با استفاده از این ترفند ها طعم شیرین bash اوبونتو را در ویندوز 10 احساس کنید.