Quên GUI đi, dòng lệnh Command Line đang quay trở lại

Nếu đã dõi theo lịch sử của Microsoft đủ lâu, bạn sẽ biết rằng có nhiều hơn 1 người làm việc ở đây cố gắng đưa thêm các tính năng dòng lệnh vào OS của mình. Mong muốn của họ đã dần leo lên các sếp cao hơn, cho tới khi Bill Gates hỏi rằng “Windows có chỗ nào anh thấy còn vấn đề?”

Cả desktop và server Windows từ lâu đã dùng GUI cho trải nghiệm trỏ và click để làm mọi việc, từ lấy tập tin cho tới quản lý mạng ảo trên mây. Ngay cả khi làm việc với hàng chục máy tính và máy chủ thì như vậy cũng được, thậm chí là các phần mềm doanh nghiệp dạng máy chủ - máy khách hay cả một trung tâm máy chủ web nhỏ.

Nhưng giờ, khi chúng ta đã có đám mây - chung, riêng và lai - và các công cụ quản trị hệ thống tự động quản lý phần mềm, máy ảo trong môi trường gồm nhiều hệ điều hành và triết lý quản trị khác nhau. Kiến trúc giờ là các đoạn mã còn trung tâm dữ liệu là hệ điều hành. Với GUI thì sao? Nó là 1 công cụ cho 1 máy, cần 1 người điều khiển chứ không phải tự động hóa và hoạt động ở quy mô lớn.

Từ cmd.exe tới PowerShell

Công cụ dòng lệnh ban đầu của Microsoft, cmd.exe, không sẵn sàng bước vào thế giới mới khi chỉ có khả năng thực hiện lệnh hàng loạt đơn giản và kịch bản ở mức cơ bản. Đó là lúc PowerShell xuất hiện. Xây dựng trên .NET và các bài học từ môi trường Shell Unix, cơ bản nó là ngôn ngữ lập trình quản trị hệ thống.

PowerShell dùng cấu trúc giống C# - với các lệnh dài, tự mô tả, chứ không phải dòng lệnh Unix ngắn gọn - nơi động từ, danh từ kết hợp rất dễ dùng. Nếu cmdlet không có thứ bạn cần, hãy kết hợp vào 1 kịch bản hoặc thậm chí là tự viết.

Đã 11 năm tuổi, giờ PowerShell không chỉ là công cụ Windows mà chạy trên hầu hết các hệ thống khác. Nó đã thành mã nguồn mở với 1 cộng đồng hỗ trợ. Nhưng PowerShell không bỏ lại nguồn gốc Windows của mình và vẫn giữ các yếu tố then chốt của hệ sinh thái quản trị hệ thống trong Windows. Đi sâu vào System Center GUI, bạn sẽ thấy lệnh mình gửi đi sẽ thực thi PowerShell từ xa. Click vào nút xuất thì kịch bản mà System Center tạo sẽ sẵn sàng để chỉnh sửa hoặc dùng lại trong kiến trúc của riêng bạn.

Lựa chọn này rất hay vì giờ bạn đã có các công cụ cần thiết để tạo cuốn sổ hướng dẫn kịch bản riêng của mình. Muốn tạo và khai triển máy ảo Hyper-V từ thư viện? Chỉ cần mở VM dùng System Center Virtual Machine Manager, sau đó xuất kịch bản PowerShell, chỉnh sửa rồi lưu lại để dùng sau.

Việc khái quát hóa PowerShell cmdlet cũng đơn giản: chỉ cần thay thế tên máy chủ bằng các biến và thêm đoạn mã phân tích để gọi chuỗi và điền giá trị biến. Khi đó, kịch bản System Center PowerShell sẽ là những viên gạch để thực hiện nhiều việc phức tạp hơn như truy vấn Active Directory để lấy danh sách máy chủ đang hoạt động, dùng danh sách đó chỉnh sửa địa chỉ mạng và chuyển ứng dụng sang mạng sao lưu khi muốn triển khai bản mới của phần mềm đó.

Để PowerShell được dùng rộng rãi cần có thời gian học các kĩ năng lập trình. Nhưng một khi đã học được, khả năng quản lý nhiều hệ thống chỉ bằng 1 bàn phím sẽ tạo ra khác biệt lớn khi làm việc với kiến trúc phần mềm hiện nay.

Các thư viện mở rộng đưa thêm cmdet cho các dịch vụ đám mây của Microsoft, trong đó có Azure và Office 365. PowerShell cũng mang đến cách mới để làm việc với các quản trị viên, ví dụ như Just Enough Admin để chỉ định quyền khi cần và theo yêu cầu cho trước.

Dùng Bash cho môi trường phát triển phần mềm hiện đại

Bản Windows 10 mới đây có hỗ trợ các công cụ dòng lệnh cho Linux - của sổ dòng lệnh nền Ubuntu Bash - cho chạy ứng dụng Linux trên Windows). Sẽ có nhiều Shell nữa xuất hiện và việc Bash được đưa lên Windows mở ra con đường để đưa các công cụ Unix khác lên Windows.

Ubuntu có nhiều phần mềm, cài đặt dễ dàng và các tính năng cập nhật cho phép bạn đi từ dấu nhắc lệnh tới bộ công cụ đầy đủ tính năng chỉ trong vài phút. SSL cho phép truy cập máy chủ Unix từ xa và phần mềm Windows cũng như các tập tin nhị phân của Linux - có thể đặt đường dẫn để mở bằng dòng lệnh.

Bash là một phần quan trọng để các nhà phát triển Microsoft vươn xa, giúp Windows dễ đến tay các nhà phát triển đang dùng macOS để chạy các công cụ Unix. Nó sẽ sớm vượt xa hơn cả desktop khi dòng lệnh Azure dựa trên Bash đã có bản Preview trên cổng web Azure và trên ứng dụng quản lý iOS và Android mới. Dòng lệnh Azure sẽ sớm hỗ trợ PowerShell với 1 trình thả đơn giản.

Visual Studio Code có giao diện dòng lệnh Terminal

Công cụ phát triển mã nguồn mở của Microsoft, Visual Studio Code, mới đây có tích hợp thêm Terminal, mặc định dùng dòng lệnh ưu tiên của hệ thống nhưng cũng dễ dàng đổi sang cmd.exe và PowerShell hay thậm chí là mở Terminal của Bash nếu đang chạy Windows Subsystem cho Linux.

Giao diện dòng lệnh Azure dựa trên Bash trên iPhone
Giao diện dòng lệnh Azure dựa trên Bash trên iPhone

Cách thức chúng ta gỡ lỗi lập trình (debug code) đang thay đổi. Terminal không chỉ giúp kiểm tra các ứng dụng Node.js mà còn mở ra cả bộ chứa hoặc ổ Git cùng các công cụ phát triển khác.

Terminal được tích hợp trong Visual Studio Code
Terminal được tích hợp trong Visual Studio Code

Truy cập vào Terminal bên trong IDE cũng có lợi thế riêng, chứ không chỉ kiểm tra hay sửa lỗi. Đó là cách kết nối tới các máy khác, truy cập từ xa tới các máy chủ không GUI chạy Linux hoặc chính Windows Server Core của Microsoft.

Thậm chí nó còn cho phép kiểm soát từ xa các bản cài Nano Server. Khi ngày càng nhiều công cụ phát triển hiện nay bước vào thế giới Linux, việc truy cập trực tiếp vào engine, công cụ khai triển, kho mã nguồn trở nên quan trọng. Đưa Windows Subsystem cho Linux vào Visual Studio Code sẽ đơn giản hóa những thứ phức tạp.

Bạn cũng không bị giới hạn ở 1 Terminal, có thể là 1 Terminal chạy PowerShell quản trị hệ thống local và trên mây, 1 Terminal chạy Bash để kiểm tra các ứng dụng Node.js hoặc làm việc với GitHub. Cách dùng rất linh hoạt và có thể tận dụng “tình yêu tìm thấy” của Windows với dòng lệnh.

Chúng ta sống trong thế giới có nhiều mô hình tính toán, tất cả đều làm việc cùng nhau và ở đúng quy mô của chúng. Các công cụ dòng lệnh như trong bản phát hành Windows nói trên giúp đơn giản hóa cả việc phát triển và quản trị, mang tới các công cụ đa nền tảng mạnh mẽ để làm việc trên mây và tận dụng các quy trình phát triển hiện đại.

Xem thêm:

Thứ Hai, 05/03/2018 11:47
31 👨 1.165
0 Bình luận
Sắp xếp theo