Giờ có thể chạy PowerShell trên cả Linux và macOS

Một phiên bản mã nguồn mở đa nền tảng của PowerShell có tên PowerShell Core 6.0 vừa được Microsoft phát hành, không chỉ chạy trên Windows, nó còn chạy được trên cả macOS và Linux. Sắp tới, phiên bản này còn triển khai cùng PowerShell gốc mà chúng ta đã dùng 10 năm qua.

Phát hành rộng rãi từ 10/1, PowerShell Core hỗ trợ Windows 7+, Ubuntu, Redhat, Centos, macOS, Fedora, OpenSuse và Debian, cho phép nhà quản trị hệ thống dùng ngôn ngữ kịch bản quản trị thông thường để chạy trên mọi máy chủ.

Microsoft có đưa ra hướng dẫn cài PowerShell Core cho cả macOS, Linux và Windows. Trên Windows, bạn chỉ cần tải và chạy file để cài PowerShell song song với PowerShell hiện tại, từ đó dễ dàng chạy thử và đưa kịch bản PowerShell hiện tại vào PowerShell Core.

Để cài PowerShell trên Linux và macOS, Microsoft phát hành các gói cho hầu hết nhân Linux. Ví dụ như cài PowerShell Core trên Ubuntu 16.04, bạn chạy lệnh dưới đây:

# Import the public repository GPG keys
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

# Register the Microsoft Ubuntu repository
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list

# Update the list of products
sudo apt-get update

# Install PowerShell
sudo apt-get install -y powershell

# Start PowerShell
pwsh

Khi đã cài xong, hãy bắt đầu từ console bằng lệnh pwsh.

PowerShell Core trên Ubuntu 16.0 4
PowerShell Core trên Ubuntu 16.0 4

Tiếc là để PowerShell Core hoạt động trên nhiều OS, Microsoft phải bỏ đi khá nhiều công nghệ.

Để chuyển sang .NET Core và các OS khác, chúng tôi buộc phải bỏ đi một số công nghệ đang được sử dụng trên Windows PowerShell. Chúng tôi tận dụng cơ hội làm lại (refactor) PowerShell để thôi hỗ trợ một số công nghệ ít dùng. Một số sẽ quay trở lại trên PowerShell Core nhưng rất nhiều trong số đó thì không. Ở mức độ cao thì có:

  • PowerShell Workflows
  • PowerShell Snap-ins
  • WMIv1 cmdlets (Get-WmiObject, Invoke-WmiMethod…) Khuyến khích sử dụng CIM/WMIv2 cmdlets (Get-CimInstance, Invoke-CimMethod…)
  • Các nguồn tài nguyên Executing Desired State Configuration (DSC) dùng PowerShell Core

Chúng tôi cũng có nhiều thay đổi nhỏ trên ngôn ngữ, engine và cmdlets PowerShell, về mặt kỹ thuật có thể được coi là đột phá. Để biết thêm thông tin chi tiết, mời bạn đọc Breaking Change tại: https://github.com/PowerShell/PowerShell/blob/master/docs/BREAKINGCHANGES.md.

Những thay đổi này sẽ khiến các kịch bản PowerShell hiện tại không hoạt động được trên Core nếu không chỉnh sửa gì.

Xem thêm:

Thứ Năm, 01/02/2018 10:24
31 👨 132