Cách Dùng Windows Subsystem cho Linux 2 và Windows Terminal

Cách Dùng Windows Subsystem cho Linux 2 và Windows Terminal
Trong bài viết này, ta sẽ tìm hiểu cách sử dụng Windows subsystem cho Linux 2 để thiết lập và chạy giao diện shell Linux cục bộ trong Windows mà không cần sử dụng máy ảo. Không giống như cách dùng các terminal như Git Bash hay cmder với một loạt công cụ UNIX được thêm vào $PATH, hôm nay chúng ta sẽ gần như chạy cả một kernel Linux đầy đủ trên Windows có thể chạy các ứng dụng đặc trưng trên nền Linux.
Linux được xem là nền tảng tốt nhất để xây dựng và chạy các giải pháp nguồn mở trên nền server. Mặc dù vẫn dùng được Windows, nhưng trải nghiệm này không tuyệt vời bằng. Phần lớn các công ty lưu trữ đám mây cung cấp Linux cho khách hàng để chạy các giải pháp máy chủ của họ trong một môi trường ổn định. Để đảm bảo phần mềm hoạt động hoàn hảo trên máy chủ giống như trên thiết bị test cục bộ, bạn cần chạy trên nền tảng giống hệt nhau. Nếu không, ta có thể gặp nhiều vấn đề về cấu hình.
Khi làm việc với các công nghệ nguồn mở để xây dựng dự án, đôi khi có một thành phần nào đó chạy rất tốt trên Linux nhưng lại không được hỗ trợ đầy đủ trên Windows. Bởi vậy, bạn buộc phải xử lý bằng một trong những cách sau:
  • Dual Boot Windows và Linux (đổi sang Linux để contribute code)
  • Chạy máy ảo Linux bằng một trong số các platform: Vagrant, VirtualBox, VMWare etc.
  • Chạy ứng dụng trong Docker container
Tất cả các giải pháp trên cần vài phút kể từ khi khởi chạy đến khi chạy được một giao diện Linux đầy đủ. Với Hệ thống con Windows mới cho Linux version 2 (WSL2), chỉ mất một giây hoặc thậm chí ít hơn để truy cập Linux hoàn chỉ. Điều này có nghĩa là bây giờ bạn có thể làm việc trên các dự án nền Linux bằng Windows với tốc độ nhanh chóng. Hãy cùng xem thử cách chúng ta có thể thiết lập giải pháp tuyệt vời này nhé.

Cài đặt Ubuntu trong Windows

Đầu tiên, bạn sẽ cần chạy phiên bản Windows mới nhất. Trong trường hợp của người viết bài sẽ là build 1903. Khi đã chắc chắn, bạn sẽ cần phải kích hoạt tính năng Windows Subsystem for Linux. Chỉ cần làm tuần tự các bước Control-Panel -> Programs -> Turn Windows feature on or off . Hãy tìm phần “Windows Subsystem for Linux” và đánh dấu vào checkbox. Chờ một hoặc hai phút để kích hoạt tính năng này. Sau khi hoàn thành, hãy nhấp vào nút restart để khởi dộng lại hệ thống.


Enabling the Windows Subsystem for Linux feature

Tiếp theo, vào Windows Store và cài đặt Ubuntu. Tùy chọn Ubuntu đầu tiên sẽ cài đặt phiên bản mới nhất. Các tùy chọn Ubuntu khác cho phép bạn cài đặt phiên bản được hỗ trợ cũ hơn.


Microsoft Store Linux

Sau khi cài đặt hoàn tất, bạn sẽ cần khởi chạy Ubuntu từ menu. Vì đây là lần đầu tiên, bạn sẽ phải đợi Ubuntu image được tải xuống và cài đặt trên máy. Bạn sẽ chỉ tải duy nhất một lần này thôi. Lần sau khi khởi chạy, bạn sẽ truy cập Linux Shell ngay lập tức.
Khi quá trình cài đặt image hoàn tất, bạn sẽ được nhắc tạo một tài khoản root user mới bên trong shell này:


Installing Ubuntu in the command line

Sau khi tạo thông tin bảo mật, hãy thử gõ một lệt Linux bất kỳ để chắc chắn bạn thật sự đang sử dụng shell Linux “chính chủ”.


Ubuntu usage commands

Đặc biệt hơn nữa, gitpython3sshvimnanocurlwget  và nhiều công cũ khác đã được tích hợp sẵn. Trong phần sau, chúng ta sẽ sử dụng lệnh sudo apt-get để cài đặt thêm frameworks. Trước hết, hãy xem xét một số cách khác để truy cập vào giao diện thiết Linux shell terminal này dễ dàng nhất. Việc nâng cấp các công cụ đã được cài đặt cũng là một ý tưởng không tồi:
$ sudo apt-get update && sudo ap-get upgrade

Truy Cập Linux Shell Interface

Có rất nhiều cách giúp bạn truy cập Linux shell interface.
  1. Nhất vào Windows Menu Start > gõ “Ubuntu”. Bạn có thể ghim nó vào Thanh Start để truy cập nhanh hơn
  2. Mở Command Prompt hoặc Windows PowerShell và thực thi lệnh bash
  3. Trong Windows explorer, SHIFT + nhấp chuột phải vào một thư mục để mở menu ngữ cảnh đặc biệt. Nhấp vào Open Linux shell here.
  4. Trong Windows explorer, điều hướng đến bất kỳ thư mục nào bạn muốn, sau đó type wsl trong thanh địa, sau đó nhấn enter.
  5. Trong Visual Studio Code, thay đổi terminal mặc định thành wsl.


VS Code WSL Terminal

Tiếp theo hãy cùng set up Node.js.

Cài đặt Node.js

Cách tốt nhất để cài đặt và định cấu hình Node.js là thông qua nvm. Trong shell Linux, thực thi các lệnh sau:
$ sudo apt-get install build-essential
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ nvm install --lts
Các lệnh trên sẽ cài đặt phiên bản LTS mới nhất của Node.js. Trong trường hợp bạn gặp phải vấn đề khi thực thi lệnh nvm, hãy thêm dòng sau vào tệp .bashrc :
source ~/.nvm/nvm.sh
Bạn cần phải khởi động lại Linux shell hoặc chỉ việc thực thi lệnh source ~/.bashrc trước khi thử thực thi lệnh nvm. Khi quá trình cài đặt Node.js hoàn tất, hãy thử cài đặt gói npm trên cấp global để xác nhận rằng Node.js đang hoạt động.
Một tính năng rất hay của Windows Subsystem cho Linux là bạn vẫn sử dụng localhost khi chạy ứng dụng web. Node.js chạy hoàn toàn tốt trên Windows. Do đó, Node.js cũng không hẳn là điểm cộng quá lớn với người dùng Windows Subsystem cho Linux. Mặt khác, Windows Subsystem sẽ thực sự tỏa sáng với các framework open-source, back-end như Django, Ruby on Rails và Lamp Stack. Việc cài đặt những framework này cho Windows không hề dễ dàng. Đối với một số dự án nhất định, việc thiếu hỗ trợ cho Windows của các framework này sẽ trở thành vấn đề nan giải. May thay, mọi chuyện đã thay đổi với WSL2. Trong phần tiếp theo, chúng ta sẽ cài đặt LAMP stack trên Windows (vì LAMP có vẻ như dễ cài đặt hơn WAMP).

Cài đặt LAMP trên Windows

Trong shell Linux, gõ lệnh sau để cài đặt Apache2MySQL và PHP. Bạn sẽ phải tải một loạt file với size rất lớn đấy, trong lúc đó hãy xử lý cho xong:
$ sudo apt-get install lamp-server^
Tiếp đến, hãy khởi động và thực thi MySQL database:
# Start the MySQL service
$ sudo service mysql start
# Define password for root@localhost
$ sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit
Bạn cũng có thể sử dụng CTRL + D để thoát khỏi shell MySQL. Tiếp theo, hãy cấu hình và khởi động máy chủ web Apache. Sử dụng vimnano hoặc text editor bất kỳ, thêm hai dòng sau vào /etc/apache2/apache2.conf:
Servername localhost
AcceptFilter http none
Khởi động Apache web server bằng lệnh sudo service apache2 start. Điều hướng đến http://localhost để xác nhận rằng Apache đã khởi động thành công:


Apache running

Kế tiếp, cài đặt PhpMyAdmin:
$ sudo apt-get install phpmyadmin
Thêm dòng sau vào /etc/apache2/apache2.conf:
Include /etc/phpmyadmin/apache.conf
Reload Apache web server để cấu hình mới có hiệu lực
$ sudo service apache2 reload
Để xác nhận rằng phpmyadmin đã được cấu hình thành công, hãy điều hướng đến URL http: // localhost / phpmyadmin. Nhập thông tin đăng nhập MySQL đã thiết lập trước đó. (Lưu ý rằng tên người dùng là root). Đến đây ta sẽ thấy:


phpmyadmin

Setup LAMP trên Windows chỉ đơn giản vậy thôi. Kế tiếp, chúng ta sẽ nghía nhanh xem Windows Terminal mới mà Microsoft đang phát triển trông thế nào nhé.

Windows Terminal

Windows Terminal là một dự án nguồn mở của Microsoft nhằm mục đích cung cấp các tính năng được yêu cầu bởi cộng đồng, chẳng hạn như:
  • rich text
  • globalization
  • tabs support
  • theming and styling
  • and many others …
Việc thực hiện các tính năng này trên console interface hiện tại là hầu như không thể (nếu không muốn phá vỡ tính tương thích với các ứng dụng cho console trước đó). Do đó, dự án Windows Terminal được tạo ra cho phép các nhà phát triển thay đổi mạnh mẽ kiến trúc mà không phải lo lắng về khả năng tương thích ngược. Dự án hiện vẫn đang được phát triển, hy vọng ta sẽ thấy thêm nhiều tính năng thú vị được phát hành trong tương lai. Chúng ta hãy xem cách cài đặt và tùy chỉnh Windows Terminal mới này nhé.

Cài đặt và cập nhật

Trước khi cài đặt Windows Terminal, hãy chắc rằng bạn đang sử dụng Windows 10 phiên bản mới nhất. Nếu không, quá trình cài đặt sẽ thất bạn với các build cũ hơn. Hiện có hai cách để cài đặt Windows Terminal. Cách đầu tiên là thông qua Microsoft Store:


Windows Terminal Store

Cách thứ hai là sử dụng công cụ Chocolatey (giống nhưnpm cho ứng dụng Windows). Khi đã cài đặt Chocolatey, bạn có thể cài đặt Windows Terminal trên thiết bị thông qua PowerShell như sau:
choco install microsoft-windows-terminal
Bạn sẽ thấy kết quả tương tự như dưới. Trong trường hợp này, chúng ta đang cập nhật:


Upgrade Windows Terminal Choco.png

Sau khi cài đặt xong, bạn có thể launch terminal ngay từ Start Menu. Terminal mặc định sẽ là PowerShell. Mỗi khi click vào dấu “+”, một tab mới với terminal mặc định sẽ xuất hiện. Khi ùng menu dropdown, bạn có thể chuyển sang terminal dạng khác.


Windows Terminal

Nếu bạn nhấp vào Settings, editor thảo mặc định cho JSON sẽ mở. Đối với bạn, nó có thể là NotePad, NotePad ++, VS Code hoặc bất kỳ trình chỉnh sửa nào khác. Nếu bạn nhìn kỹ, bạn sẽ nhận thấy các phần cho:
  • Globals — global settings: e.g. default profile, tab settings, terminal size etc.
  • Keybindings — shortcut keys
  • Profiles — terminal launches: e.g. PowerShell, Command Prompt
  • Schemes — color schemes
Như bạn có thể thấy, rất dễ hiểu và tùy chỉnh các cài đặt ở định dạng JSON. Một mẹo nhanh dành cho những người dùng cài đặt phiên bản Windows Terminal cũ hơn. Một số bạn chắc có thể thấy vài profile bị thiếu trên screenshot ở trên. Dù đã cập nhật ứng dụng, profile setting ở đây vẫn giữ nguyên. Để nhanh chóng thêm các setting bị thiếu mà không phải làm thủ công, ta chỉ việc:
  1. Hoàn toàn đóng Windows Terminal App
  2. Xóa profile.json (Nằm trong %USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState)
  3. Relaunch terminal app


Updated settings

Ngoài ra, các phím tắt mới đã được thêm vào, bao gồm:
{
    "command" : "closePane",
    "keys" :
    [
        "ctrl+shift+w"
    ]
},
{
    "command" : "copy",
    "keys" :
    [
        "ctrl+shift+c"
    ]
},
{
    "command" : "duplicateTab",
    "keys" :
    [
        "ctrl+shift+d"
    ]
},
{
    "command" : "paste",
    "keys" :
    [
        "ctrl+shift+v"
    ]
},
Kế tiếp chúng ta sẽ cùng style cho terminal.

Styling Console

Việc styling cho terminal được xử lý trong phần settings bên dưới mỗi profile. Bạn có thể tùy biến mỗi profile bằng cách thay đổi bất kỳ thông số nào dưới đây:
"acrylicOpacity" : 0.2,
"useAcrylic" : true
"colorScheme" : "One Half Dark",
"cursorColor" : "#FFFFFF",
"cursorShape" : "bar",
"fontFace" : "Consolas",
"fontSize" : 10,
"padding" : "0, 0, 0, 0",
"background":"#002B36",
"backgroundImage": ""
"backgroundImageOpacity": 1,
"backgroundImageStretchMode": "none"
Chắc hẳn các bạn cũng đã khá quen thuộc với những thiết lập ở trên rồi (ngoại trừ acrylic). Đây là một hiệu ứng nền làm cho nền terminal terminal hơi trong suốt và mờ. acrylicOpacity kiểm soát độ trong suốt. Để có một nền hoàn toàn mờ đục, hãy đặt useAcrylic thành false. Bạn có thể sử dụng GIF cho backgroundImage. Animation sẽ tự động phát. Khá tuyệt phải không?
colorScheme đến từ các phần schemes. Mặc định sẽ có:
  • Campbell
  • One Half Dark
  • One Half Light
  • Solarized Dark
  • Solarized Light

Tóm tắt

Nhưng vậy chúng ta đã tìm hiểu về một công cụ rất mới này rồi, vì là công cụ mới, bug là không thể tránh khỏi. Cùng chờ đợi những bài viết tiếp theo đẻ Upstep giới thiệu đến các bạn những tools và platform hay hơn nữa nhé.
Theo Sitepoint

Nhận xét

Bài đăng phổ biến