2012-11-15 28 views
6

Cho lệnh shell cơ bản và kịch bản là cần thiết cho một nhà phát triển trong môi trường kiểu UNIX - tôi đang nói các loại tròn, cửa hàng nhỏ, devops - là Powershell tương đương với Windows?Powershell là một kỹ năng cần thiết cho các nhà phát triển Windows như Bash/Borne là cho một nhà phát triển Linux/UNIX?

Tôi có máy tính Windows 7 tại nơi làm việc, nhưng tôi làm tất cả phát triển của mình trong môi trường UNIX, trên máy Mac hoặc máy khách Linux với VMWare. Tôi không phải là một sysadmin mỗi se nhưng tôi điền vào như một ở đây và ở đó. Grep, sed, awk, cấu trúc tập tin, mạng, vv, trong UNIX là khá tốt ăn sâu. Tôi đã sử dụng những công cụ này trong nhiều năm. Nhiều thập kỷ, thậm chí.

Tôi đã lừa xung quanh một máy tính Windows gần đây hơn một chút. Thói quen của tôi là thả xuống dòng lệnh để hoàn thành công việc, thay vì tất cả mania trỏ và nhấp thường liên quan đến việc sử dụng Windows. Nhưng với Powershell tôi hoàn toàn bị mất. Không có gì có ý nghĩa với tôi.

Có đáng học không? Đây có phải là cách dân gian Windows hoạt động không? Tất cả sẽ thay đổi đột ngột? Có lợi thế để trở thành một guru Powershell?

Trả lời

5

Tôi tin như vậy. PowerShell là giao diện quản lý dành cho Windows Server 2012 và hầu hết tất cả đã được chuyển về 2008R2 & Win7 (Windows Management Framework 3.0).

Có rất nhiều người chống lại sự chuyển đổi sang PowerShell, nhưng MS đã quyết định rằng đó là con đường phía trước. Người dùng cuối sẽ không sử dụng nó nhiều, giống như với Command Prompt, nhưng các nhà phát triển & quản trị viên hoàn toàn cần phải hiểu nó.

Ưu điểm để trở thành một guru PowerShell? Bạn có thể tự động hóa nhiều hơn Windows, dễ dàng hơn nhiều so với các kịch bản BAT/CMD hoặc Windows Script Host (VBScript/JScript). Quản lý/truy cập từ xa rất dễ dàng & được thiết kế để cho phép bạn quản lý số lượng lớn máy từ một vị trí trung tâm.

Tôi thấy mình đang thực hiện rất nhiều tác vụ trong PowerShell mà tôi đã sử dụng để chuyển sang Visual Studio vì nó nhanh hơn để bắt đầu, cho phép tôi tạo mẫu nhanh trên dòng lệnh và có rất nhiều lệnh ghép ngắn thực hiện các nhiệm vụ mà tôi thường phải viết một tá dòng C# để làm.

+1

Tôi muốn được tìm hiểu thêm về các tác vụ bạn tự động hóa trong PS. Bạn đã từng viết blog về nó chưa? –

+1

Hiện tại, tôi không viết blog về nó nhưng điều đó có thể sẽ sớm thay đổi. Gần đây nhất, tôi đã viết kịch bản để thao tác các tệp cấu hình XML để chuẩn bị cho chúng nâng cấp hệ thống mà chúng thuộc về, phân tích các trang tính trong sổ làm việc Excel lớn thành các tệp XLSX riêng lẻ (120 trang tính trong 1 bảng tính thành 120 tệp riêng lẻ), tải lên & tải xuống các tệp đến/từ (S) các trang FTP (S) và chạy các báo cáo SSRS được xuất sang định dạng Excel và được tải lên trang FTPS. – alroc

3

Tôi tin rằng nó có thể mạnh mẽ như Bash, nhưng tất cả các tên lệnh và cú pháp đều khác nhau. Kiểm tra bài viết này, nó so sánh một số lệnh UNIX phổ biến với các quyền tương đương.

http://windows-powershell-scripts.blogspot.com/2009/06/unix-equivalents-in-powershell.html

Như tôi đã bắt đầu sử dụng PowerShell hơn, tôi thấy rằng nó chắc chắn là đáng học tập.

+0

Bài viết hay. Nó liên kết đến các bài viết tương tự, hữu ích khác ở nơi khác trên blog. Thật không may, tác giả dừng lại trong '09. –

+0

Tôi không biết tại sao họ không thể chuyển qua một bộ công cụ được sử dụng lâu dài, cố gắng và đúng từ UNIX, như grep, sed, vv. Thay vào đó, họ viết các lệnh riêng của họ về cơ bản cũng làm như vậy, nhưng đặt tên chúng khác nhau. Có lẽ tôi đang thiếu bức tranh lớn hơn về Powershell như một môi trường. Có lẽ nếu tôi đến từ thế giới .NET, tất cả sẽ có ý nghĩa hơn. –

+0

Kiểm tra các bí danh trong PowerShell - có một bí danh cho 'Select-String' là' 'grep'. 'Get-ChildItem' được đặt tên là' ls' và 'Out-Printer' được đặt tên là' lp'. Họ không thể chỉ chuyển qua các công cụ UNIX và giữ nguyên tên vì điều đó sẽ phá vỡ đáng kể từ triết lý thiết kế làm nền tảng cho .NET và PowerShell. – alroc

1

2 xu của tôi:

Tôi là một người toàn thời gian, một người chơi tự do và nhiếp ảnh gia vì đam mê. Đối với công việc sysadmin của tôi, tôi thường sử dụng quyền hạn. Là một người phát triển đôi khi là một nhiếp ảnh gia đôi khi quá (để quản lý các bức ảnh của tôi!). Trong môi trường làm việc của tôi có 6 người phát triển (.net) toàn thời gian và không ai biết quyền hạn (và một số người không bao giờ biết cái gì là). Powershell thực sự là một sức mạnh vỏ như bash là, với sự khác biệt lớn mà nó dựa trên một khuôn khổ .net và làm việc với các đối tượng hơn là chỉ chuỗi.

+1

Thật buồn cười khi bạn đề cập đến nhà phát triển .NET thậm chí không biết Powershell là gì. Tôi chưa bao giờ làm việc cho một nhóm phát triển công ty hay chính phủ lớn, nhưng tôi đã làm việc với những người từ thế giới đó. Thật đáng ngạc nhiên là kỹ năng thu hẹp của họ thường xuyên như thế nào, đặc biệt là các thành viên .NET. Họ là kẻ giết người lập trình C#, nhưng không có ý tưởng làm thế nào bất cứ điều gì khác hoạt động. –

+1

Đó là loại cá nhân biết đủ để làm công việc của họ, trong phạm vi công việc của họ. Và chúng thường rất tốt - nhưng trong một miền rất hẹp. Một khi họ nhận được vào cỏ dại, họ bị lạc trong một vội vàng lớn. – alroc

0

Không thể so sánh PowerShell với môi trường bàn điều khiển Unix, cách tiếp cận này rất khác ...

Mở chiến thắng bạn có thể nhận được một số kịch bản sử dụng vbs bản xứ, nhưng rất hạn chế các công cụ bao gồm, có lẽ bạn có thể sử dụng GnuWin32 thử một số công cụ unix cơ bản trên cửa sổ env ..

On kinh nghiệm của tôi sử dụng win7, tôi có thể cho bạn biết rằng powerhell chỉ mạnh mẽ cho các sản phẩm windows, như trao đổi, thư mục hoạt động và những thứ khác, nhưng rất bực bội khi sử dụng nó như vỏ unix, bạn không thể ... (Bạn không thể thay đổi cờ trạng thái trực tiếp từ hạt nhân trên các cửa sổ như linux)

Tôi đang sử dụng ngay bây giờ các cửa sổ đơn giản bao gồm python để có được một số tính năng nhà phát triển cao mà tôi bỏ lỡ từ hệ thống Unix .... nhưng vẫn chưa đủ ..

+2

Bạn có thể quan tâm để biết rằng các bên thứ 3 như VMWare & NetApp cũng đã gửi các mô-đun & snap-in cho PowerShell để tương tác với các sản phẩm của họ. Bạn có thể quản lý môi trường VMWare của bạn một cách rộng rãi thông qua PowerShell. Nó không phải là "chỉ dành cho các sản phẩm Windows". Bạn đúng khi nói rằng nó không hoạt động giống như một vỏ UNIX, nhưng nó cũng không giả vờ là một vỏ UNIX. – alroc

+0

Rất hay. Tôi biết tùy chọn cho phép Visual Studio truy cập VMWare, nhưng không biết tính năng PowerShell. Tôi muốn kiểm tra điều này. –

+0

@waingram, hãy xem http://blogs.vmware.com/vipowershell/ – alroc

Các vấn đề liên quan