بعد از بروزرسانی سالانه ویندوز 10 با نام Redstone قابلیت فعال کردن Bash shell برای تمام کاربران فعال شده است و ما امروز می خواهیم با هم این قابلیت مفید را فعال کنیم.
آنچه که باید دربارهی ابزار Bash Shell ویندوز 10 بدانید
بش شل یک ماشین مجازی، کانتینر یا نرمافزار لینوکسی کامپایل شده برای ویندوز، همانند Cygwin نیست. ویندوز 10، زیر سیستم لینوکس برای ویندوز را به دست آورده است که برپایهی پروژهی نیمهکارهی Astoria مایکروسافت است. این پروژه در خصوص اجرای نرمافزارهای اندروید بر روی ویندوز است.
اینگونه فکر کنید که پروژهی یاد شده، در نقطهی مقابل نرمافزار Wine قرار دارد. درحالی که نرمافزار Wine امکان اجرای نرمافزارهای ویندوز را به طور مستقیم در لینوکس فراهم میکند، زیرسیستم لینوکس برای ویندوز، امکان اجرای مستقیم نرمافزارهای لینوکسی را در ویندوز فراهم میکند!
مایکروسافت با کانونیکال کار کرده است تا بتواند Bash shell کامل مبتنیبر اوبونتویی را که در این زیرسیستم اجرا میشود برای کاربران فراهم کند که از لحاظ فنی به هیچ وجه لینوکس محسوب نمیشود. درواقع، لینوکس هستهی زیربنایی سیستم عامل بوده و در اینجا قابل دسترس نیست. به جای آن، زیرسیستم لینوکس برای ویندوز امکان اجرای Bash shell و دقیقا همان باینریهایی که به طور عادی در اوبونتوی مبتنیبر لینوکس اجرا میشوند را فراهم میکند. طرفداران نرمافزارهای رایگان، اغلب بحث و استدلال میکنند که روی هم رفته سیستم عامل لینوکس باید GNU/Linux نامیده شود؛ زیرا در حقیقت نرمافزارهای GNU بسیاری در هستهی کرنل اجرا میشوند. بش شل ویندوز 10 قادر به اجرای تمامی ابزارهای GNU و دیگر نرمافزارهای مربوطه است.
ابزار Bash shell دارای محدودیتهایی مانند عدم کارکرد با نرمافزار سرور و نرمافزارهای گرافیکی است. بش شل برای توسعه دهندگانی که قصد اجرای ابزارهای تحت خط فرمان لینوکسی در ویندوز را دارند، طراحی شده است. این ابزارها به فایل سیستم ویندوز دسترسی دارند اما نمیتوانید از فرمانهای بش برای خودکارسازی نرمافزارهای عادی ویندوز استفاده کنید. به علاوه، قادر به اجرای فرمانهای بش از خط فرمان استاندارد موجود در ویندوز هم نخواهید بود. در واقع ابزارهای بش صرفا به فایل سیستم ویندوز دسترسی خواهند داشت. به دلیل این که نسخهی جاری به صورت بتا است، احتمالا هر نرمافزار تحت خط فرمانی در این ابزار عمل نخواهد کرد.
آموزش مرحله به مرحله فعال سازی Bash Shell در ویندوز 10
پیش نیاز ها:
- نصب بودن ورژن 64 بیتی ویندوز 10
- نصب بودن بروز رسانی Windows 10 Anniversary (توضیحات بیشتر)
- ریخن یک لیوان چای یا قهوه برای خود 🙂 (اختیاری)
1. فعال سازی Enable Developer Mode
وارد مسیر زیر شده:
Settings > Update & Security > For Developers > Developer Mode
و سپس حال Developer Mode را فعال کنید.
2. فعال سازی Enable Windows Subsystem for Linux
در داخل Search ویندوز عبارت Turn Windows Features On or Off را تایپ کنید و مورد پیدا شده را باز کنید.
سپس تیک (Windows Subsystem for Linux (Beta را فعال کنید و در آخر OK را بزنید.
3. راه اندازی مجدد Reboot
حال برای فعال شدن Bash shell نیاز است که یک بار سیستم را Reboot کنید.
4. Bash را باز کنید!
در قسمت Search ویندوز Bash را تایپ کنید و Bash را اجرا کنید. در راهاندازی اولیهی فایل bash.exe، درخواست پذیرش شرایط استفاده از خدمات نمایان خواهد شد که بدون شک باید آن را بپذیرید! سپس ابزار یاد شده اقدام به دانلود نرمافزار Bash on Ubuntu on Windows از فروشگاه نرمافزاری ویندوز (Windows Store) کرده و در ادامه، ایجاد یک حساب کاربری و رمز عبور برای استفاده از محیط بش از کاربر درخواست خواهد شد.
اگر به جای ایجاد حساب کاربری دارای رمز عبور، مایل به خودکارسازی نصب از بش هستید، میتوانید فرمان زیر را در ابزار خط فرمان ویندوز اجرا کنید. این فرمان به طور خودکار با همهی درخواستها موافقت کرده و دسترسی روت بدون نیاز به رمز عبور را به کاربر پیشفرض اعطا خواهد کرد.
lxrun /install /y
روش استفاده Bash بر روی Windows
هماکنون خط فرمان Bash Shell کامل مبتنیبر اوبونتو در اختیار شما قرار دارد. به دلیل یکسان بودن باینریها، میتوانید از فرمان apt-get اوبونتو برای نصب نرمافزار از منابع متمرکز اوبونتو استفاده کنید. با این اوصاف، به همهی نرمافزارهای تحت خط فرمان لینوکسی دسترسی خواهید داشت؛ اما به دلیل این که ابزار بش شل در نسخهی اولیهی بتا قرار دارد، ممکن است برخی از نرمافزارها به طور کامل و بینقص اجرا نشوند.
به منظور اجرای Bash shell، فقط باید منوی شروع را باز کرده و عبارت bash یا Ubuntu را جستجو کنید. حالا باید نرمافزار Bash on Ubuntu on Windows را در ابزار جستجوی ویندوز مشاهده کنید. برای دسترسی ساده به نرمافزار، میتوانید آیکون میانبر آن را به منوی شروع، نوار وظیفه (taskbar) یا دسکتاپ خود سنجاق (pin) کنید.
اگر قبلا تجربهی استفاده از Bash shell در پلتفرم لینوکس، سیستم عامل مک یا دیگر پلتفرمها را داشته باشید، راحتتر از دیگر کاربران خواهید بود. در اینجا نیازی به استفاده از sudo نیست؛ زیرا یک shell (رابط بین کاربر و هسته) دارای دسترسی کاربر روت در اختیار شما خواهد بود. مانند کاربر Administrator در سیستم عامل ویندوز، منظور از روت، کاربری است که در پلتفرمهای یونیکس (UNIX) دسترسی کاملی به سیستم دارد. فایل سیستم ویندوز شما در محیط بش شل، در مسیر /mnt/c قرار دارد.
میتوانید در این ابزار از همان فرمانهای استفاده شده در ترمینال لینوکس استفاده کنید. در صورتی که قبلا از خط فرمان استاندارد ویندوز برای اجرای فرمانهای تحت داس استفاده میکردید، در ادامه میتوانید برخی از دستورات اولیهی مورد استفاده در بش و خط فرمان ویندوز را مشاهده کنید.
تغییر دایرکتوری: cd در بش، cd یا chdir در داس
فهرست محتویات دایرکتوری: ls در بش، dir در داس
جابهجایی یا تغییر نام یک فایل: mv در بش، move و rename در داس
کپی یک فایل: cp در بش، copy در داس
حذف یک فایل: rm در بش، del یا erase در داس
ایجاد دایرکتوری: mkdir در بش، mkdir در داس
استفاده از ویرایشگر متن: vi یا nano در بش، edit در داس
به خاطر داشته باشید که برخلاف ویندوز، Bash Shell و محیط مشابه لینوکس آن، به حروف بزرگ و کوچک حساس است. به عبارت دیگر، “File.txt” با حرف بزرگ متفاوت از “file.txt” که دارای حرف کوچک است، خواهد بود.
برای دستیابی به دستورالعملهای بیشتر، باید به دنبال دستورالعملهای بش شل مشابه با موارد یاد شده، خط فرمان اوبونتو و ترمینال آنلاین لینوکس بگردید.
به منظور نصب و بروزرسانی نرمافزارهای مربوط به محیط اوبونتو، نیازمند استفاده از فرمان apt-get خواهید بود. برای اجرا کردن فرمانهای apt-get با کاربر روت (معادل کاربر ادمین در ویندوز)، همهی فرمانهای یاد شده باید با پیشوند “sudo” شروع شوند. در ادامهی مقاله فرمانهای apt-get مهمی را که باید بشناسید، بیان خواهیم کرد.
دانلود اطلاعات بروز شده در مورد بستههای در دسترس: sudo apt-get update
نصب یک بستهی نرمافزاری: sudo apt-get install packagename (نام بستهی مورد نظر باید جایگزین بخش packagename دستور شود.)
حذف یک بستهی نرمافزاری: sudo apt-get remove packagename (نام بستهی مورد نظر باید جایگزین بخش packagename دستور شود.)
جستجوی بستهی در دسترس: sudo apt-cache search word (کلمهی مورد جستجو باید جایگزین بخش word دستور شود)
دریافت و نصب آخرین نسخهی بستههای نصب شده: sudo apt-get upgrade
پس از دانلود و نصب نرمافزار مورد نظر، میتوانید پس از تایپ کردن نام آن در محیط اجرای فرمان و فشردن کلید اینتر، آن را اجرا کنید. برای دسترسی به جزئیات بیشتر، میتوانید سند مخصوص نرمافزار را بررسی کنید.
به خاطر داشته باشید، نرمافزاری که در محیط بش شل نصب شده است، محدود به همان ابزار Bash shell خواهد بود؛ به این صورت که نمیتوانید با استفاده از خط فرمان (Command Prompt)، پاورشل (PowerShell) یا دیگر نقاط موجود در ویندوز به این نرمافزارها دسترسی داشته باشید. به علاوه، با وجود این که محیط بش و ویندوز به فایلهای یکسانی در رایانهی کاربر دسترسی دارند، نرمافزار موجود در بش شل قادر به تعامل مستقیم با نرمافزارهای ویندوز و اجرای آنها نخواهد بود.
با این حال، میتوانید اسکریپتهای بش شلی را ایجاد کرده و با استفاده از ابزار Bash shell آنها را اجرا کنید. منظور از اسکریپت بش شل، اسکریپتهایی با پسوند “sh.” است.
پنج مورد از موارد مهمی که Microsoft به آن توجه ویژه دارد:
- GNU command line tools such as grep, sed, and awk
- File system and symlink support within the WSL environment
- Ability to run apt & apt-get for installs, updates, and package testing
- Basic functionality for languages such as NodeJS/npm, Python, Perl
- Command line tools such as Vim, Emacs, Git, and SSH
فیلم آموزش اجرای مرحله به مرحله Bash Shell لینوکس در ویندوز 10
[aparat id=”dUFVu”]
سلام
خیلی خوشحال شدم که این آموزش رو در مطالب فارسی دیدم و از شما سپاسگذارم
فقط این نکته رو در نظر داشته باشید که بش توی بیلدهای قبل از 14393 هم در دسترس بوده و بنده چند ماهی هست که ازش استفاده میکنم و رضایت بخش هست و اغلب دستور های مهم و کاربردی کار میکنه
همون طور که اشاره کردید امکان اجرای وب سرور ها وجود نداره اما در مورد محیط های دسکتاپ این لینک رو ببین، خیلی جالبه
https://github.com/Microsoft/BashOnWindows/issues/637
متشکرم
سلام
درست است در بلید های قبلی نیز بود ولی بعد از بروزرسانی گفته شده به صورت کامل در دسترس همه قرار گرفت
در مورد لینکی که ارسال کرده اید هم اگه وقت بشه حتما یکی دو مورد اموزش قرار میدم ?
باسلام.ایا این نرم افزار متااسپلویت رو هم میتونه اجرا کنه؟