UnxUtils ve GnuWin32 arasındaki fark nedir?


18

Komut istemimde grep ve sed gibi ls, cut vb. Gibi diğer yardımcı programlarla birlikte isteyen bir Windows kullanıcısıyım. Bunu başaracak 2 pakete rastladım

Aralarında seçim yapmadan önce iki özellik açısından ve daha da önemlisi performans açısından arasındaki farkın ne olduğunu bilmek istiyorum. Gördüğüm kadarıyla GnuWin32, UnxUtils'in süper bir setidir. Bu doğru mu ?

Barlop'un notuna göre
bu soru coreutils ve unxutils hakkında soruyordu, ama grep ve sed hakkında konuştuğundan, gnuwin32 ve unxutils hakkında soru sormak istediği açıktı ve bu yanlış olandan çok daha yararlı ve önemli bir soru. Eğer insanlar bunu coreutils ve unxutils'e geri döndürmek isterse, o zaman bununla gitmek ve gnuwin32 ve unxutils için başka bir soru göndermek için mutlu olurum. Ayrıca, orijinal sorusuna verilen herhangi bir doğru cevap, hatasını düzeltebilir veya cevaplayabilir, ancak ne demek istediğini de cevaplar. Bu yüzden sorusunu düzeltmekte hiçbir kayıp yok.

Yanıtlar:


16

unxutils, en faydalı yardımcı programlardan bazılarının gerçekten eski sürümlerine sahiptir. örneğin grep dahil.

gnuwin32 sürümleri de yıllarca güncelliğini yitirmiş, ancak neredeyse unxutils kadar eski değil. Gnuwin32 çok daha fazla yardımcı programa sahiptir. Bu kesinlikle büyük bir avantaj.

Gnuwin32'nin, xxutils'e göre büyük bir avantajı olduğunu unutmayın.

Örnek olarak..

Son derece eski işler

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

Copyright 1988...

Oldukça eski gnuwin32

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

Copyright (C) 2009 ...

Gnuwin32'den daha güncel tutulan yazılımlarla kontrast, örneğin cygwin

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

Unxutils ile, gerçekten eski sürümleri kullandığı için sorunlarla karşılaşabilirsiniz ve yardım ararken insanlar bu veya bu komutun en son sürümüne sahip olmanızı bekler.

Unxutils'in sahip olduğu, unxutils'i çok kullanışlı hale getiren daha küçük avantajları vardır.

  • unxutils'de xxd vardır, gnuwin32 yoktur. (Not, VIM 7'de xxd de var, cygwin de var)
  • gnuwin32 yazı (2014) itibariyle kırık bir kuyruğa sahiptir -f, unxutils'in kuyruğu -f daha eskidir ancak çalışır. ( Burada Cygwin'in kuyruğu da çalışmaktadır). İki farklı vesileyle, grep'in sonraki sürümlerinde düzeltilen gnuwin32 grep'te hatalara rastladım ve cygwin'in grep'i daha sonra ve iyi oldu (ve cmd.exe'den doğrudan çalıştırılabilir ve cygwin kabuğu).

  • aşağıdakiler daha küçük bir avantajdır, ancak çok tembelseniz veya sadece hızlı bir şekilde kullanmak istiyorsanız, unxutils sadece çalıştırılabilir dosyaları ayıklayıp gidebilirsiniz. Gnuwin32, çeşitli bitleri yüklemek için bir sihirbaz içerir ve bazı bireysel yardımcı programların bile, wget için bir kurulum yürütülebilir dosyası gibi ayrı olarak yüklenmesi gerekir, örneğin grep için bir tane (grep-xxxx-bin.exe). unxutils ile sadece zip içindeki wbin dizininden ayıklayın. Unutmayın ki eski sürümler olsalar da, mümkünse, çok tembel değilse, genellikle gnuwin32'nin sahip olup olmadığını görür.

  • unxutils, eşdeğer gnuwin32 ikili dosyalarının çoğunun çalışamadığı bağımsız olarak çalışabilir. Dolayısıyla, gnuwin32'yi kurmak istemiyorsanız veya yükleyemiyorsanız, unxutils'ten bağımsız bir komut kullanabilirsiniz. Örneğin, gnuwin32's tr.exe dizininde iki dll dosyası gerektirir veya orada olmadıklarını ve çalışmayacaklarını söyler. gnuwin32'nin sed bağımsız çalışmazken, unxutils tr.exe ve sed.exe iyi çalışır.
  • unxutils gclip.exe ve pclip.exe vardır Panoya kopyalamak ve panodan yapıştırmak için komutlar. gnuwin32 gibi bir şey yok gibi görünüyor ve windows doğal olarak clip.exe (panoya kopyalamak için) vardır, ama pclip gibi yapıştırmak için bir komut yok.

Unxutils sourceforge bağlantısında unxutils.zip ve unxupdates.zip vardır (ikincisi unxutils.zip dosyasının bir alt kümesidir, ancak daha eski sürümlerle birlikte). Örneğin, unxutils 1998'den sed'e sahiptir ve unxupdates 2003'ten birine sahiptir. Örneğin 1998 sed'in tırnak işaretleri belirtmek için (tırnaklardan daha kolay) \ d veya \ x notasyonu egeg \ d34 veya \ x22 içermemesine yardımcı olabilir. Yanıltıcı olan, 2003 yılından kalmadır.

Gnuwin32 sed, yazı itibariyle 2009 yılından kalmadır. (Gnuwin32, 2014 için bile bir grep sürümü olduğu için hala güncel değil http://ftp.gnu.org/gnu/grep/ ama gnuwin32'nin tarihi çok daha az unxutils yerine (unxutils 'unxupdates' ile değerlendirilse bile).

Http://unxutils.sourceforge.net/ sitenin unxutils.zip aşağı ama kullanılabilir https://archive.org/details/UnxUtils ve resmen https://sourceforge.net/projects/unxutils/ ve eğer onu alacak sonra da unxupdates indirin

Gnuwin32'yi xxutils ile karşılaştırdığımızda, genellikle Gnuwin32'ye bakın, ancak unxutils'in bazı avantajları olduğunu bilin. Gnuwin32, unxutils'in sahip olduğu neredeyse tüm komutlara ve çok daha fazlasına sahiptir.

Ve ayrıca, Cygwin'e bakın, gnuwin32'den çok daha güncel tutulan büyük bir yardımcı program koleksiyonuna sahiptir, (onlar benim için iyi olan cygwin'in bash kabuğundan çalıştırılmalıdır), genellikle gerçekten bakmanıza gerek yoktur. pclip ve gclip olsa da, eski ve unxutils gibi güncellenmemiş bir şey.

gnuwin32 ve unxutils'in yanı sıra, MinGW ve cygwin ve Windows SUA (yazma itibariyle MS hala devam ediyor ve güncel olacak) ve GOW (küçük olsa da, GOW github sayfası son güncellenen 2014 olarak göstermesine rağmen) ve daha küçük, BusyBox (android için ünlü ancak Windows için kullanılabilir, burada ve hala çok küçük. Benim için en etkileyici iki özellik gnuwin32 ve cygwin (ve cygwin'de xxd ve çalışan bir kuyruk var -f. Bu yüzden unxutils'e başvurmam gerekmiyor) cygwin ile programlar gerçekten cygwin kabuğundan çalıştırılmalı ama bir linux kabuk örneğin bash kabuk ve bash ve diğer linux kabukları güçlüdür, bu yüzden orada kayıp olmaz. Ayrıca, günümüzde birçok kişinin cygwin veya gnuwin32 yerine linux sanal makineleri kullandığını, bu da eski olabilen ve tırnaklarla farklı davranabilen pencereler yerine komutların uygun sürümlerini gerçekten güncellediğini unutmayın.

Not eklendicoreutils aka gnu coreutils, linux (..) üzerinde çalışan bir dizi komuttur ve şüphesiz Sürü ile GNU İşletim Sistemi (daha az yaygın olarak kullanılan bir işletim sistemi!) ve muhtemelen diğer * nix işletim sistemleri için bazı iyi uygulamalara sahiptir. GNU Coreutils iyi bilinir ve son derece yaygın olarak kullanılır ve yararlıdır ve güncellenir. Öte yandan unxutils, windows işletim sistemi için yapılan linux veya unix'te (bazı şüphesiz bazı coreutils komutlarını içerir) kullandıkları bazı komutların çok eski bir uygulaması / bağlantı noktasıdır. İkisi normalde aynı cümlede bile bahsedilmezdi ve orijinal soruda olmalarının tek nedeni, orijinal sorudaki bazı karışıklıklardan kaynaklanıyordu. GnuWin32, Windows için Gnuwin32 coreutils adı verilen bir coreutils uygulamasına sahiptir, ancak belirtildiği gibi, Gnuwin32 eski / güncellenmez, sadece eski / güncellenmez, unxutils kadar.


3
gnuwin32 ve unxutils'in yanı sıra MinGW ve cygwin ve Windows SUA ve GOW da var. Benim için en etkileyici iki gnuwin32 ve cygwin (ve cygwin'de xxd ve çalışan bir kuyruk var -f. Bu yüzden unxutils'e başvurmam gerekmiyor) Cygwin ile programlar gerçekten cygwin kabuğundan çalıştırılmalı, ancak bir linux kabuğu örneğin bash kabuğu ve bash ve diğer linux kabukları güçlüdür, bu nedenle orada kayıp olmaz.
barlop

Unxutils henüz hayatta kalan avantajı pclippanoya içeriğini yapıştırmak için komutu vardır .
barlop

Ayrıca bir * nix VM kurmuş ve iyi bir şekilde entegre edilmiş olması da iyidir, böylece birbirlerini okuyabilir / yazabilirler, o zaman en son * nix komutlarına sahip olabilir ve
barlop

6

Unxutils yerel pencerelerdir ve bağımlılıkları yoktur - ancak bir süredir güncellenmemiştir ve coreutils'in bir alt kümesidir. Coreutils için * nix tarzı bir ortama ihtiyacınız vardır, bu yüzden onları cygwin veya benzeri bir ortamda çalıştırmanız gerekir


3
Windows için coreutils yükleyicisi, gnuwin32.sourceforge.net/packages/coreutils.htm
Nifle

1
unxutils teknik olarak coreutils'in bir alt kümesi değildir. komutların sürümlerinin yanı sıra. unxutils, coreutils ve hatta gnuwin32'nin sahip olmadığı xxd'ye sahiptir. Ayrıca, yazarken, gnuwin32'nin kırık bir kuyruğu -f var, ancak unxutils's tail.exe -f iyi çalışıyor. sourceforge.net/p/gnuwin32/bugs/242 Ayrıca gnuwin32'nin kendi çekirdekleri vardır gnuwin32.sourceforge.net/packages/coreutils.htm
barlop

2
UnxUtils, eski Windows'un komut satırında iyi çalışır, Cygwin'e gerek yoktur (muhtemelen kendi Unix komut satırı yardımcı programlarıyla birlikte gelir).
PhiLho

1
@Nifle iyi, evet ama yine de unxutils olanların bağımlılıkları yoktur ve [yükleyicinin onunla başa çıkma şeklini eklerim] gnuwin32 EXE'lerin bağımlı oldukları birkaç DLL ile aynı dizinde çalıştırılması gerekir, bu yüzden yükleyici bin dizinine bir dizi DLL dosyası yerleştirir.
barlop

1
"Coreutils için * nix tarzı bir ortama ihtiyacınız var, bu yüzden onları cygwin veya benzeri bir şekilde çalıştırmanız gerekir" <- Ne demek istediğinizden emin değilsiniz. Unxutils Windows ortamında çalışır, * nix kabuğu yoktur. Ve wget ve xxd gibi coreutils'de olmayan şeyler var, bu yüzden coreutils'in bir alt kümesi değiller. Ayrıca, cygwin komutları bile teknik olarak cygwin dışında doğrudan cmd'den çalıştırılabilir.
barlop

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.