Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Scripts

Sức mạnh của PowerShell, Phần 2

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called The Power of PowerShell.
The Power of PowerShell, Part 1

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Trong phần một, tôi đã trình bày một số thứ thú vị mà bạn có thể thực hiện với PowerShell, khái quát lịch sử của PowerShell, và khám phá sấu những khả năng của PowerShell như là một ngôn ngữ thực thi script mạnh mẽ hỗ trợ thủ tục, hàm, và lập trình hướng đối tượng.

Trong phần thứ hai, tôi sẽ thảo luận về shell tương tác, cấu hình và dòng lệnh, và tôi cũng sẽ so sánh PowerShell với Bash.

PowerShell: Shell tương tác

PowerShell được thiết kế đầu tiên như là một shell tương tác cho quản trị viên và người dùng cao cấp trên hệ thống Windows. Nó tập trung vào một số ít khái niệm, trải nghiệm rất thống nhất, và dòng lệnh liên hợp để móc nối và kết hợp các lệnh lại với nhau, lọc chúng và định dạng chúng. Hệ thống trợ giúp mạnh mẽ của nó, cũng tuân theo một định dạng thống nhất, dễ dàng sử dụng.

Chúng ta hãy xem một số ví dụ thực thế.

Tìm trợ giúp

Hệ thống trợ giúp thông minh có thể được truy cập thông qua Get-Help.

Để có được sự trợ giúp chi tiết hơn và xem các ví dụ của nó, hãy sử dụng các tham số: -examples-details, hoặc -full.

Nếu bạn không chắc chắn tên của một lệnh nào đó là gì, chỉ cần sử dụng các từ khoá và PowerShell sẽ hiển thị cho bạn thấy tất cả các lệnh có chứa từ khóa này. Chúng ta hãy xem những lệnh cmdlet nào có liên quan đến CSV:

Tôi đã tạo ra một lệnh liên hợp ngắn nơi mà tôi giới hạn việc gọi Get-Help chỉ với Cmdlet Category và sau đó chuyển nó đến "select" (viết tắt của Select-Object) để lọc với thuộc tính "name".

Làm việc với các tập tin và thư mục

Bạn có thể làm khá nhiều thứ mà bạn vẫn thường làm: điều hướng đến các thư mục khác nhau, liệt kê các tập tin và thư mục con, kiểm tra nội dung của các tập tin, tạo thư mục và tập tin, vv.

Làm việc với những trình cung cấp khác

Với PowerShell, bạn có thể xử lý nhiều thứ như là các hệ thống tập tin và điều hướng chúng bằng cách sử dụng lệnh cd và kiểm tra nội dụng sử dụng ls/dir. Dưới đây là một số trình cung cấp bổ sung:

Hãy kiểm tra môi trường và xem các biến môi trường hiện có liên quan đến Go (trên máy tính của tôi):

Định dạng

PowerShell khuyến khích việc soạn các lệnh cmdlet với các tham số tiêu chuẩn và tạo ra các lệnh liên hợp. Định dạng là một khái niệm rõ ràng nơi mà phần cuối cùng của một lệnh liên hợp bạn đặt một bộ định dạng. Mặc định PowerShell sẽ kiểm tra kiểu của đối tượng hoặc các đối tượng ở phần cuối của lệnh liên hợp và áp dụng một định dạng mặc định. Nhưng bạn có thể thay thế nó bằng cách chỉ định một định dạng của chính bạn. Bộ định dạng đơn giản chỉ là những lệnh cmdlet. Dưới đây là đầu ra của ví dụ trước, và giờ được hiển thị trong định dạng danh sách:

Cấu hình

Những người dùng cao cấp sử dụng dòng lệnh thường xuyên có rất nhiều tác vụ, các lệnh liên hợp và những sự kết hợp của các lệnh yêu thích với các tham số mặc định mà họ ưu ái. Cấu hình PowerShell là một tập tin script của PowerShell được nạp và thực thi ngay khi bạn bắt đầu một phiên mới. Bạn có thể đặt tất cả những lệnh yêu thích của bạn ở đó, tạo các alias và các hàm, thiết lập các biến môi trường, và rất nhiều thứ khác.

Tôi thích tạo các alias điều hướng đối với nhiều cấp thư mục, kích hoạt môi trường ảo của Python, và tạo các lối tắt đến những lệnh bên ngoài mà tôi chạy thường xuyên, giống như git và docker.

Đối với tôi, cấu hình là không thể thiếu bởi vì các lệnh và tham số rất dễ đọc và rất thống nhất của PowerShell thường quá dài dòng, và các alias được xây dựng sẵn thường gây rắc rối hơn là trợ giúp (Tôi sẽ đề cập điều này sau). Dưới đây là một phân đoạn từ cấu hình của tôi:

Dấu nhắc lệnh

PowerShell cho phép bạn tuỳ biến dấu nhắc dòng lệnh của bạn. Bạn cần phải định nghĩa một hàm gọi là prompt(). Bạn có thể xem hàm prompt được tích hợp sẵn:

Dưới đây là một hàm promt tuỳ biến để hiển thị thời gian hiện tại bên cạnh thư mục hiện thời:

PS C:\Users\the_g> function prompt {"$(get-date) $(get-location) > "}

Tất nhiên bạn có thể mở rộng, và thêm các màu sắc và kiểm tra các điều kiện khác nhau chẳng hạn như bạn đang ở trong một kho chứa git nào đó hoặc nếu bạn là quản trị viên.

Alias: Mảng tối

PowerShell có các alias không đúng, theo quan điểm của tôi, trên hai mặt riêng biệt. Trước tiên, lệnh alias chỉ cho phép đổi tên của các lệnh. Bạn không thể thêm các tham số hoặc tùy chọn thông thường để làm cho các lệnh trở nên hữu ích hơn bằng cách thực hiện alias chính chúng.

Ví dụ, nếu bạn muốn tìm kiếm từng dòng trong văn bản, bạn có thể sử dụng lệnh cmdlet Select-String:

Nó hoạt động, nhưng nhiều người muốn đổi tên Select-String thành grep. Nhưng grep mặc định là phân biệt hoa thường, trong khi Select-String thì không. Không có vấn đề gì lớn—chúng ta chỉ cần thêm tham số -CaseSensitive, như sau:

Set-Alias -Name grep -Value "Select-String -CaseSensitive"

Thật không may, điều đó không có tác dụng:

Giá trị của một alias phải là một lệnh cmdlet, một hàm, một script hoặc một chương trình. Không có tham số hoặc đối số nào được phép.

Bây giờ, bạn có thể làm điều đó rất dễ dàng trong PowerShell, nhưng bạn sẽ phải sử dụng các hàm mà không phải là các alias. Những ràng buộc đó của alias đối với việc đổi tên đơn giản cũng có thể được thực hiện bằng các hàm.

PowerShell và Bash

Về mặt tương tác shell, PowerShell và Bash khá ngang bằng nhau. Mặc định Bash ngắn gọn hơn, nhưng object pipeline của PowerShell làm cho các pipeline phức tạp dễ dàng quản lý hơn. ,

Điều đó có nghĩa là bạn hoàn toàn có thể thực hiện bất kỳ thứ gì với một trong hai và nếu bạn là một người dùng cao cấp thì bạn sẽ có cho chính mình những alias, hàm và lối tắt cho những tác vụ thông thường. Về mặt thực thi script, PowerShell bỏ xa Bash, và đối với những mục đích quản trị hệ thống nó còn đánh bại Python, Ruby và những cái khác.

Một khía cạnh quan trọng là tính sẵn có. Bash được cài đặt sẵn với hầu hết những bản phân phối *nix (ngoại trừ một số bị loại ra) bao gồm macOS. Nó còn có thể được cài đặt trên Windows thông qua cygwin, git-bash, hoặc msys. PowerShell được cài đặt sẵn trên Windows và chỉ vừa mới bắt đầu có trên Mac và Linux.

Kết luận

Nếu bạn sử dụng Windows như là một máy tính cho việc phát triển hoặc nếu bạn quản lý các máy Windows thì PowerShell là một công cụ không thể thiếu. Nó thật sự là một tập cha của các shell Unix được cân nhắc kỹ lưỡng, và nó được cài đặt sẵn.

PowerShell là phần mềm kỹ thuật tuyệt vời. Nó đã phát triển hơn một thập kỷ, và nó tiếp tục phát triển trong khi vẫn duy trì tính toàn vẹn ban đầu của nó. Việc chuyển sang mã nguồn mở và đa nền tảng gần đây là tín hiệu cho thấy vẫn có rất nhiều điều để chờ đợi.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.