Công cụ dòng lệnh của Windows

Là các nhà phát triển dành phần lớn thời gian để lập trình trên OSX và Linux, chúng tôi đã tò mò muốn biết thiết lập dòng lệnh hiện đại sẽ trông như thế nào trên Windows.

Khảo sát dành cho nhà phát triển StackOverflow nhắc chúng tôi rằng có nhiều nhà phát triển sử dụng Windows hơn bất kỳ hệ điều hành nào khác, vì vậy chúng tôi rất tò mò liệu công cụ ở đó có ngang bằng với những gì chúng tôi đã từng sử dụng tại *nix land hay không.

Sau khi dành một thời gian đánh giá bối cảnh của các công cụ Windows CLI, chúng tôi đã quyết định chọn một bộ công cụ mà chúng tôi cho là đã thực hiện được 95%.

Vào cuối ngày, chúng tôi đã thu được kết hợp:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • Sô cô la
  • Babun (không bắt buộc)

Xem bên dưới để biết thêm một số lưu ý về những lợi ích của những bộ phận này.

PowerShell (vỏ)

  • Gần với 'shell' thực hơn đáng kể so với cmd.exe, cung cấp cho chúng tôi môi trường tập lệnh mạnh mẽ để tự động hoá tác vụ. So sánh nội dung này với Bash hoặc zsh thì hợp lý.
  • Tự động hoàn thành thư mục và tên tệp
  • Tự động hoàn thành tên ứng dụng
  • Có bí danh và lệnh tích hợp (còn gọi là lệnh chập dài – ví dụ: Select-String giống như grep, Invoke-Elevated giống sudo, Sort-Object giống như sort, Get-Process liệt kê tất cả các quy trình đang hoạt động). Nếu chuyển từ một shell khác sang PS, Set-Alias sẽ cho phép bạn ánh xạ các bí danh mà bạn đã quen thuộc với các bí danh tương đương của Windows. Ví dụ: Set-Alias server python -m http.server 8000 chạy máy chủ Python khi sử dụng bí danh server.
  • Bạn có thể duy trì bí danh trong hồ sơ PowerShell
  • Hỗ trợ piping, như Unix. Không giống như Unix, API này chuyển các đối tượng thay vì luồng văn bản. Điều này đòi hỏi bạn phải làm quen nhưng nên tránh lặp lại khi muốn mua tài sản.
  • Hỗ trợ các mô-đun. PSGet là trình quản lý gói của PowerShell cho phép bạn dễ dàng mở rộng gói này.
  • Nếu muốn, hãy cân nhắc sử dụng Posh-Git, một tập lệnh PowerShell dành cho git để nhận được hoàn tất thẻ theo ngữ cảnh.

Nếu bạn quan tâm đến câu đố, thì sau đây là câu trả lời cho lý do MS tạo ra PowerShell từ kiến trúc sư chính.

PSReadLine (trình trợ giúp chỉnh sửa bảng điều khiển)

  • Cải thiện đáng kể trải nghiệm chỉnh sửa trên Play Console
  • Làm nổi bật cú pháp bất cứ khi nào bạn bắt đầu nhập lệnh. Chỉ rõ lỗi cú pháp bằng ký tự ">" màu đỏ.
  • Các liên kết phím có thể tuỳ chỉnh cao
  • Tự động hoàn thành kiểu Bash
  • Tìm kiếm lịch sử tương tác Bash/zsh (Ctrl + R). Truyền tải lịch sử lệnh mạnh mẽ. Dễ dàng xem các lệnh có nhiều dòng trước đây bằng các phím mũi tên thay vì chỉ dùng dòng cuối cùng của lệnh.
  • Hỗ trợ sao chép/dán/cắt phù hợp (Ctrl+C/X/V sẽ hoạt động bình thường)
  • Hỗ trợ tốt cho thao tác huỷ/làm lại
  • Tính năng lưu nhật ký sẽ tự động

Ngoài ra, bạn có thể dùng Clink, một thành phần có bộ tính năng tương tự nhưng không được viết riêng cho PowerShell.

ConEmu (máy chủ bảng điều khiển)

  • Trình mô phỏng bảng điều khiển nâng cao nơi bạn có thể chạy shell đã chọn.
  • Hỗ trợ mở nhiều thiết bị đầu cuối trong các thẻ khác nhau. Việc khởi chạy thiết bị đầu cuối với tư cách người dùng khác nhau là không hề đơn giản.
  • Cực kỳ dễ tuỳ chỉnh – bạn có thể thay đổi mọi thứ từ lối tắt đến lựa chọn văn bản và màu thanh trạng thái.
  • Hỗ trợ chế độ xem chia đôi màn hình
  • Có thể chạy các ứng dụng GUI đơn giản trong các thẻ
  • Hỗ trợ danh sách nhảy Windows 7+
  • Hỗ trợ đổi kích thước cửa sổ mượt mà
  • Chống răng cưa phông chữ Windows
  • Các thẻ bắt đầu có thể được tuỳ chỉnh hoàn toàn để bắt đầu trong một thư mục cụ thể
  • Sao chép/dán thông minh

Một số người vẫn thích sử dụng Console2 và Scott Hanselman có một bài đăng trên blog đã viết về công cụ này.

Cmder

Đáng chú ý là Cmder – một gói mô phỏng bảng điều khiển kết hợp ConEmu, Clink và msysgit – cung cấp cho bạn các trình trợ giúp Git. Về cơ bản, Cmder mang đến cho bạn trải nghiệm đẹp hơn trên ConEmu theo mặc định thông qua bảng phối màu Monokai.

Cmder cũng bao gồm một số lợi ích nhỏ khác, chẳng hạn như tích hợp với các ứng dụng GUI như Sublime Text (Văn bản con).

Sô cô la (trình quản lý gói)

  • Về cơ bản, Homebrew dành cho Windows, cho phép bạn kéo các ứng dụng Windows yêu thích của mình một cách thuận tiện. Hiện có khoảng 3.000 gói có thể được cập nhật trực tiếp bằng Chocolatey.
  • Khác với Nuget. NuGet là dành cho các thư viện phát triển. Chocolatey là một trình quản lý gói của máy nhị phân và được xây dựng trên cơ sở hạ tầng NuGet.
  • Cung cấp các bản dựng im lặng một cách hiệu quả

Bạn cũng có thể muốn tìm hiểu về OneGet, trình quản lý gói..manager của Microsoft. Trình quản lý gói này sẽ hoạt động với Chocolatey trong Windows 10.

Babun (Cygwin được định cấu hình sẵn)

  • Cygwin (môi trường giống như Linux dành cho Windows) trừ đi một số điều kỳ quặc đã được biết đến trong lịch sử. Quy trình thiết lập tổng thể đơn giản hơn đáng kể nhờ sử dụng trình cài đặt Babun. Nếu bạn đặc biệt có kinh nghiệm với Unix và muốn tránh tìm hiểu PowerShell, thì bạn nên cân nhắc sử dụng cygwin/Babun.
  • Bao gồm một trình quản lý gói có tên pact (ít giống brew) tương tự như apt-get. Đây là một vấn đề lớn vì bạn hiện phải chạy lại trình cài đặt Cygwin khi thêm các gói thay vì chỉ sử dụng pact.
  • Vim được cài đặt sẵn và định cấu hình sẵn
  • Tính năng hỗ trợ được tích hợp dành cho oh-my-zsh
  • Tự động cập nhật

Đọc thêm