Trả lời nhanh: Terminal là cửa sổ chứa nhiều loại dòng lệnh trong các thẻ, còn PowerShell là một trong các loại chạy bên trong nó. PowerShell mạnh hơn Command Prompt vì làm việc với đối tượng thay vì chỉ với văn bản. Mở bằng cách bấm chuột phải vào nút Start.
Nhiều việc quản trị làm bằng dòng lệnh nhanh hơn hẳn bấm chuột. Bài này là điểm khởi đầu cho người chưa quen.
Terminal, PowerShell và Command Prompt
Ba tên hay bị nhầm với nhau.
- Windows Terminal là ứng dụng cửa sổ, hỗ trợ nhiều thẻ và nhiều loại dòng lệnh cùng lúc. Nó là vỏ chứa, không phải ngôn ngữ lệnh.
- Command Prompt là dòng lệnh cũ, có từ thời rất xa. Vẫn dùng được cho các lệnh mạng và tệp cơ bản.
- PowerShell là dòng lệnh hiện đại, làm việc với đối tượng thay vì chỉ với văn bản.
Khác biệt cốt lõi: Command Prompt trả về văn bản, bạn phải tự cắt chuỗi để lấy thông tin. PowerShell trả về đối tượng có thuộc tính, nên bạn lọc và sắp xếp trực tiếp bằng lệnh.
Cách mở: bấm chuột phải vào nút Start. Có hai mục, một mục thường và một mục quản trị. Chọn mục quản trị khi cần đổi cấu hình hệ thống.
Đổi loại mặc định: trong cài đặt của Terminal, chọn hồ sơ mặc định là PowerShell hay Command Prompt tùy bạn quen cái nào.
Năm lệnh đầu tiên nên biết
Đủ cho việc hằng ngày.
- Xem thông tin hệ thống. Lệnh systeminfo cho biết phiên bản Windows, số bản dựng, RAM, và ngày cài đặt. Rất tiện khi cần báo cáo cấu hình máy.
- Kiểm mạng. Lệnh ipconfig với tham số all cho biết địa chỉ IP, máy chủ tên miền và cổng ra. Lệnh ping kiểm một địa chỉ có phản hồi không.
- Xem tiến trình. Trong PowerShell, lệnh Get-Process liệt kê mọi tiến trình, kèm được lệnh lọc và sắp xếp.
- Xem dịch vụ. Lệnh Get-Service cho biết dịch vụ nào đang chạy, dừng, hoặc tắt hẳn.
- Tìm trợ giúp. Lệnh Get-Help kèm tên lệnh giải thích cú pháp và cho ví dụ. Đây là lệnh quan trọng nhất khi mới học.
Một quy ước dễ nhớ của PowerShell: mọi lệnh đều theo dạng động từ gạch nối danh từ. Get để lấy, Set để đặt, Start để bắt đầu, Stop để dừng, Remove để xóa. Biết quy ước này thì đoán được tên lệnh.
Đường ống và lọc kết quả
Đây là chỗ PowerShell hơn hẳn Command Prompt.
Ký tự đường ống nối kết quả của lệnh này vào lệnh sau. Vì kết quả là đối tượng chứ không phải văn bản, lệnh sau hiểu được từng thuộc tính.
Bốn lệnh xử lý hay dùng nhất:
- Where-Object để lọc theo điều kiện, ví dụ chỉ lấy tiến trình chiếm bộ nhớ trên một mức nào đó.
- Sort-Object để sắp xếp theo một thuộc tính.
- Select-Object để chọn cột nào hiển thị, và lấy bao nhiêu dòng đầu.
- Export-Csv để xuất kết quả ra tệp mở được bằng phần mềm bảng tính.
Một ví dụ thực tế: lấy danh sách tiến trình, lọc những cái chiếm nhiều bộ nhớ, sắp xếp giảm dần, lấy mười cái đầu, rồi xuất ra tệp. Bốn bước nối bằng đường ống, một dòng lệnh.
Với người quản trị nhiều máy, đây là cách lấy báo cáo cấu hình hàng loạt nhanh hơn hẳn so với ngồi mở từng máy.
An toàn khi dùng dòng lệnh
Năm quy tắc, quan trọng nhất là quy tắc đầu.
- Không chạy đoạn lệnh chép trên mạng mà chưa hiểu nó làm gì. Đây là cách mã độc lây phổ biến nhất hiện nay, nhất là các hướng dẫn kiểu sửa lỗi nhanh.
- Đọc kỹ lệnh có chứa Remove, Delete, Format hoặc Set. Chúng thay đổi hoặc xóa thật.
- Dùng tham số xem trước nếu lệnh có hỗ trợ. Nhiều lệnh PowerShell có tham số cho phép chạy thử mà không thực hiện thật.
- Chỉ mở quyền quản trị khi cần. Việc đọc thông tin không cần quyền cao.
- Không tắt chính sách thực thi tập lệnh vĩnh viễn. Nó là lớp bảo vệ chống chạy tập lệnh lạ.
Một kịch bản lừa đảo đang phổ biến: trang web giả báo lỗi rồi bảo bạn chép một dòng lệnh và dán vào Terminal để sửa. Dòng đó tải và chạy mã độc. Không bao giờ làm theo hướng dẫn kiểu này.
Với người quản trị doanh nghiệp
Bốn việc PowerShell làm tốt hơn hẳn giao diện.
- Lấy báo cáo cấu hình nhiều máy và gộp thành một bảng.
- Kiểm tra hàng loạt: máy nào chưa bật mã hóa ổ, máy nào thiếu bản vá, máy nào còn dưới ngưỡng dung lượng trống.
- Thực hiện thao tác lặp lại trên nhiều máy cùng lúc qua kết nối từ xa.
- Tự động hóa việc thiết lập máy mới, biến danh sách kiểm thành tập lệnh chạy một lần.
Lời khuyên khi bắt đầu: viết tập lệnh chỉ đọc trước, ví dụ lệnh lấy thông tin và xuất báo cáo. Khi đã quen thì mới viết tập lệnh thay đổi cấu hình, và luôn thử trên một máy trước.
Lưu tập lệnh vào kho có kiểm soát phiên bản và ghi chú rõ mỗi tập lệnh làm gì. Tập lệnh không ai hiểu là tập lệnh không ai dám chạy.
Năm lệnh đầu tiên đáng thuộc
# 1. Xem tien trinh dang an tai nguyenGet-Process | Sort CPU -Descending | Select -First 10 Name, CPU, WorkingSet # 2. Tim tep theo ten trong ca o diaGet-ChildItem C:\ -Recurse -Filter "*.pst" -ErrorAction SilentlyContinue | Select FullName, Length # 3. Xem dung luong thu muc, tim cho chiem choGet-ChildItem C:\ -Directory | ForEach-Object { $s = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum [pscustomobject]@{ Ten=$_.Name; GB=[math]::Round($s/1GB,2) }} | Sort GB -Descending | Select -First 10 # 4. Xem dich vu dang chayGet-Service | Where Status -eq "Running" | Select Name, DisplayName # 5. Xem thong tin he thong nhanhGet-ComputerInfo | Select WindowsProductName, OsVersion, CsTotalPhysicalMemoryChạy lệnh đọc trước lệnh ghi
- Chạy lệnh đọc trước lệnh ghi. Xem kết quả rồi mới hành động.
- Dùng tham số xem trước nếu lệnh có, để biết nó sẽ làm gì mà chưa làm thật.
- Cẩn thận với các lệnh có chữ xóa hoặc gỡ, nhất là khi kèm tham số đệ quy và bỏ qua xác nhận.
- Đừng chép lệnh trên mạng rồi chạy thẳng bằng quyền quản trị. Đây là cách phổ biến để máy bị chiếm. Đọc hiểu từng dòng trước.
- Không chạy lệnh do người lạ gửi qua chat hoặc điện thoại. Đây là chiêu lừa đảo phổ biến ở Việt Nam.
Ba khái niệm giúp dùng hiệu quả
- Đường ống: nối kết quả của lệnh này làm đầu vào cho lệnh sau. Đây là ý tưởng quan trọng nhất và làm dòng lệnh mạnh hơn hẳn giao diện.
- Lọc và sắp xếp: lấy kết quả rồi lọc theo điều kiện, sắp theo cột. Phần lớn công việc chẩn đoán là ba bước lấy, lọc, sắp.
- Xuất ra tệp: lưu kết quả để đối chiếu về sau hoặc gửi cho người khác. Đây là thứ giao diện không làm gọn được.
Với quản trị viên doanh nghiệp, bước tiếp theo là dùng dòng lệnh để quản trị Microsoft 365. Xem bài về PowerShell quản trị Microsoft 365.
Câu hỏi thường gặp
Terminal và PowerShell khác nhau thế nào
Terminal là cửa sổ chứa nhiều thẻ, PowerShell là một loại dòng lệnh chạy bên trong nó. Terminal cũng chạy được Command Prompt và các loại khác.
Người không rành kỹ thuật có cần học PowerShell không
Không bắt buộc. Nhưng biết vài lệnh xem thông tin hệ thống và kiểm mạng giúp bạn mô tả sự cố chính xác hơn khi nhờ hỗ trợ.
Có an toàn khi chạy lệnh tìm thấy trên mạng không
Không, trừ khi bạn hiểu từng phần của lệnh đó. Trang web giả báo lỗi rồi bảo dán lệnh vào Terminal là một kiểu lừa đang rất phổ biến.
Command Prompt còn dùng được không
Còn, và vẫn hữu ích cho các lệnh mạng và tệp quen thuộc. Nhưng với việc mới thì nên học PowerShell vì nó mạnh hơn nhiều.



