Sự khác biệt giữa UnxUtils và GnuWin32?


17

Tôi là người dùng Windows muốn có các chương trình như grep và sed cùng với các tiện ích khác như ls, cắt vv trong dấu nhắc lệnh của tôi. Tôi đã đi qua 2 gói sẽ thực hiện điều này

Tôi muốn biết sự khác biệt giữa cả hai tính năng khôn ngoan và quan trọng hơn là hiệu suất khôn ngoan trước khi tôi chọn giữa chúng. Từ những gì tôi đã thấy GnuWin32 là một bộ siêu UnxUtils. Điều này có đúng không?

Lưu ý bởi Barlop
câu hỏi này là hỏi về coreutils và unxutils, nhưng vì anh ta đang nói về grep và sed, nên rõ ràng anh ta có ý hỏi về gnuwin32 và unxutils, và đó là một câu hỏi hữu ích và quan trọng hơn nhiều so với câu hỏi sai. Nếu mọi người muốn hoàn nguyên nó thành coreutils và unxutils thì tôi rất vui lòng làm điều đó và đăng một câu hỏi khác cho gnuwin32 và unxutils. Ngoài ra, bất kỳ câu trả lời thích hợp cho câu hỏi ban đầu của anh ta sẽ sửa hoặc trả lời về lỗi lầm của anh ta nhưng cũng trả lời những gì anh ta có nghĩa. Vì vậy, không có mất mát trong việc sửa câu hỏi của mình.

Câu trả lời:


15

unxutils có các phiên bản thực sự cũ của một loạt các tiện ích hữu ích nhất. bao gồm cả grep chẳng hạn.

Các phiên bản gnuwin32 cũng đã lỗi thời nhiều năm, mặc dù gần như không cũ như unxutils. Gnuwin32 có số lượng tiện ích lớn hơn nhiều. Đó rõ ràng là một lợi thế lớn.

Hãy nhớ rằng gnuwin32 có lợi thế lớn hơn unxutils.

Ví dụ ..

Các unxutils cực kỳ cũ

C:\unxutils>grep -V
grep (GNU grep) 2.4.2

Copyright 1988...

Gnuwin32 khá cũ

C:\blah>"c:\Program Files (x86)\GnuWin32\bin\grep.exe" -V
GNU grep 2.5.4

Copyright (C) 2009 ...

Tương phản với phần mềm được cập nhật nhiều hơn so với gnuwin32, ví dụ như cygwin

$ grep --version
grep (GNU grep) 2.21
Copyright (C) 2014 Free Software Foundation, Inc.

Với unxutils, bạn có thể gặp sự cố vì nó sử dụng các phiên bản thực sự cũ và khi tìm kiếm trợ giúp mọi người sẽ mong đợi bạn có phiên bản mới nhất của lệnh này hoặc lệnh đó.

Có một số lợi thế nhỏ hơn mà unxutils có, điều đó làm cho unxutils rất hữu ích.

  • unxutils có xxd, gnuwin32 thì không. (Lưu ý, VIM 7 cũng có xxd, cygwin cũng vậy)
  • gnuwin32 khi viết (2014) có một cái đuôi bị hỏng -f, đuôi của unxutils -f cũ hơn nhưng hoạt động. (được đề cập ở đây đuôi của Cygwin cũng hoạt động). Trong hai lần khác nhau, tôi đã gặp phải lỗi trong gnuwin32 grep đã được sửa trong các phiên bản sau của grep và gg của Cygwin đã muộn hơn và ổn (và có thể chạy trực tiếp từ cmd.exe và không phải chạy từ vỏ cygwin).

  • Dưới đây là một lợi thế nhỏ hơn, nhưng nếu bạn rất lười biếng, hoặc chỉ muốn sử dụng nó một cách nhanh chóng, thì unxutils chỉ là một zip bạn có thể trích xuất các tệp thực thi và đi. Gnuwin32 liên quan đến một trình hướng dẫn để cài đặt các bit khác nhau và thậm chí một số tiện ích riêng lẻ phải được cài đặt riêng như cài đặt thực thi cho wget, một cho grep, ví dụ: (grep-xxxx-bin.exe). với unxutils bạn chỉ cần trích xuất từ ​​thư mục wbin của họ trong zip. Hãy nhớ rằng mặc dù chúng là phiên bản cũ hơn nên nếu có thể, nếu không quá lười biếng, người ta thường sẽ thấy nếu gnuwin32 có nó.

  • unxutils có thể hoạt động độc lập trong đó rất nhiều nhị phân gnuwin32 tương đương không thể. Vì vậy, nếu bạn không muốn hoặc không thể cài đặt gnuwin32 thì bạn có thể sử dụng một lệnh độc lập, từ unxutils. Ví dụ, tr.exe của gnuwin32 yêu cầu hai tệp dll trong thư mục của nó hoặc nó nói rằng chúng không ở đó và sẽ không chạy. sed của gnuwin32 không hoạt động độc lập, trong khi unxutils tr.exe và sed.exe hoạt động độc lập tốt.
  • unxutils có gclip.exe và pclip.exe Chúng là các lệnh để sao chép vào bảng tạm và dán từ bảng ghi tạm. gnuwin32 dường như không có bất cứ thứ gì giống như vậy và các cửa sổ thường có clip.exe (để sao chép vào bảng tạm), nhưng không có lệnh nào để dán nó như pclip.

Liên kết nguồn unxutils có unxutils.zip và unxupdates.zip (sau này là một tập hợp con của unxutils.zip nhưng sau đó vẫn là phiên bản cũ). ví dụ: unxutils có sed từ năm 1998 và unxupdates có một từ năm 2003. Điều đó có thể giúp ví dụ: sed 1998 không có ký hiệu \ d hoặc \ x egeg \ d34 hoặc \ x22 để chỉ định dấu ngoặc kép (dễ dàng hơn thoát dấu ngoặc kép) ,. Một unxupdates là từ năm 2003 và không.

Gnuwin32 sed, như bằng văn bản, là từ năm 2009. (Gnuwin32 vẫn chưa hết hạn vì có phiên bản grep ngay cả cho năm 2014 http://ftp.gnu.org/gnu/grep/ nhưng gnuwin32 ít bị lỗi thời hơn hơn unxutils (ngay cả khi unxutils được xem xét với 'unxupdates').

Các http://unxutils.sourceforge.net/ unxutils.zip trang web của giảm nhưng hiện có sẵn https://archive.org/details/UnxUtils và chính thức https://sourceforge.net/projects/unxutils/ và nếu bạn sẽ nhận được nó sau đó tải xuống unxupdates quá

So sánh gnuwin32 với unxutils, nhìn chung là nhìn vào Gnuwin32, nhưng biết rằng unxutils có một số lợi thế .. Gnuwin32 có hầu hết tất cả các lệnh mà unxutils có, cộng với nhiều hơn nữa.

Ngoài ra, hãy tìm đến Cygwin, nó có một bộ sưu tập lớn các tiện ích được cập nhật nhiều hơn so với gnuwin32, (chúng nên được chạy từ bash shell của Cygwin, điều này rất tốt đối với tôi), bạn thường không cần phải nhìn vào một cái gì đó cổ xưa và không được cập nhật như unxutils, mặc dù nó có pclip và gclip.

ngoài gnuwin32 và unxutils, còn có MinGW và cygwin và Windows SUA (mà khi viết, MS vẫn duy trì và sẽ cập nhật) và GOW (tuy nhỏ, mặc dù trang github của GOW cho thấy nó được cập nhật năm 2014) và nhỏ hơn, BusyBox (nổi tiếng với Android nhưng có sẵn cho Windows, ở đây và vẫn còn rất nhỏ. Hai tính năng ấn tượng nhất đối với tôi là gnuwin32 và cygwin (và cygwin có xxd và đuôi hoạt động. Vì vậy, tôi không cần phải dùng đến unxutils) Với cygwin, các chương trình thực sự nên được chạy từ shell cygwin nhưng là một linux shell, ví dụ bash shell và bash và các shell linux khác rất mạnh nên không mất gì ở đó. Cũng nên nhớ rằng ngày nay nhiều người sử dụng máy ảo linux thay vì cygwin hoặc gnuwin32, những người thực sự cập nhật các phiên bản chính xác của lệnh, thay vì các cổng windows có thể cũ hơn và có thể hoạt động khác với dấu ngoặc kép.

Đã thêm Ghi chú-coreutils hay còn gọi là gnu coreutils, là một loạt các lệnh chạy trên linux (..), và không nghi ngờ gì nữa, HĐH GNU với Herd (một HĐH ít được sử dụng rộng rãi!), và có thể có một số triển khai tốt được thực hiện cho các HĐH * nix khác. GNU Coreutils nổi tiếng và được sử dụng rất rộng rãi và hữu ích và cập nhật. Mặt khác, unxutils là một triển khai / cổng rất cũ của một số lệnh mà mọi người sử dụng trên linux hoặc unix, (chắc chắn sẽ bao gồm một số lệnh coreutils), được thực hiện cho hệ điều hành windows. Cả hai thường không được đề cập đến trong cùng một câu và lý do duy nhất tại sao họ ở trong câu hỏi ban đầu, là do một số nhầm lẫn trong câu hỏi ban đầu. GnuWin32 có triển khai coreutils cho Windows, được gọi là coreutils Gnuwin32, mặc dù như đã đề cập, Gnuwin32 đã cũ / chưa cập nhật, chỉ là không cũ / không cập nhật, như unxutils.


3
ngoài gnuwin32 và unxutils, còn có MinGW và cygwin và Windows SUA và GOW. Hai thứ ấn tượng nhất đối với tôi là gnuwin32 và cygwin (và cygwin có xxd và đuôi hoạt động. Vì vậy, tôi không cần phải dùng đến unxutils) Với cygwin, các chương trình thực sự nên được chạy từ shell cygwin nhưng là vỏ linux ví dụ bash shell và bash và các shell linux khác rất mạnh nên không mất gì ở đó.
barlop

Một lợi thế còn tồn tại của unxutils là nó có pcliplệnh dán nội dung của bảng tạm.
barlop

cũng có thể tốt khi có một máy ảo * nix được thiết lập và tích hợp tốt để chúng có thể đọc / ghi cho nhau, sau đó bạn có thể có các lệnh * nix mới nhất và
barlop

6

Unxutils là cửa sổ gốc và không có phụ thuộc - nhưng đã không được cập nhật trong một thời gian và là một tập hợp con của coreutils. Bạn sẽ cần một môi trường kiểu * nix cho coreutils, vì vậy bạn cần chạy chúng trong cygwin hoặc tương tự


3
Trình cài đặt cho coreutils cho windows nên quan tâm đến mọi phụ thuộc gnuwin32.sourceforge.net/packages/coreutils.htmlm
Nifle

1
unxutils về mặt kỹ thuật không phải là tập hợp con của coreutils. bên cạnh các phiên bản của lệnh. unxutils có xxd mà coreutils và thậm chí gnuwin32 không có. Cũng như khi viết, gnuwin32 có đuôi bị hỏng -f, nhưng tail.exe của unxutils hoạt động tốt. sourceforge.net/p/gnuwin32/bugs/242 Ngoài ra gnuwin32 có coreutils của riêng mình gnuwin32.sourceforge.net/packages/coreutils.htmlm
barlop

2
UnxUtils hoạt động tốt trong dòng lệnh cũ của Windows, không cần Cygwin (dù sao cũng có thể đi kèm với các tiện ích dòng lệnh Unix của riêng nó).
PhiLho

1
@Nifle tốt, vâng nhưng vẫn là những người unxutils không có phụ thuộc và [tôi muốn nói thêm rằng cách trình cài đặt xử lý với nó] các EXE gnuwin32 phải được chạy trong cùng thư mục với bất kỳ vài DLL nào mà họ phụ thuộc, vì vậy trình cài đặt đặt một tập các tệp DLL trong thư mục bin.
barlop

1
Bạn viết "Bạn sẽ cần một môi trường kiểu * nix cho coreutils, vì vậy bạn cần chạy chúng trong cygwin hoặc tương tự" <- Không chắc ý của bạn là gì. Unxutils chạy trong môi trường windows, không có vỏ * nix. Và họ có những thứ không có trong coreutils như wget và xxd vì vậy chúng không phải là một tập hợp con của coreutils. Ngoài ra, ngay cả các lệnh cygwin về mặt kỹ thuật cũng có thể được chạy thẳng từ cmd, bên ngoài cygwin.
barlop

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.