ความแตกต่างระหว่าง UnxUtils และ GnuWin32?


17

ฉันเป็นผู้ใช้ Windows ที่ต้องการโปรแกรมเช่น grep และ sed พร้อมกับยูทิลิตี้อื่น ๆ เช่น ls, cut และอื่น ๆ ใน command prompt ของฉัน ฉันเจอแพคเกจ 2 ชุดซึ่งจะทำให้สำเร็จ

ฉันอยากจะรู้ว่าอะไรคือความแตกต่างระหว่างทั้งสองคุณสมบัติที่ชาญฉลาดและประสิทธิภาพที่สำคัญกว่าก่อนที่ฉันจะเลือกระหว่างพวกเขา จากสิ่งที่ฉันได้เห็น GnuWin32 เป็นชุด UnxUtils ที่ยอดเยี่ยม ถูกต้องหรือไม่


คำถามจาก Barlopคำถามนี้ถามเกี่ยวกับ coreutils และ unxutils แต่เนื่องจากเขาพูดถึง grep and sed มันชัดเจนว่าเขาต้องการถามเกี่ยวกับ gnuwin32 และ unxutils และนั่นเป็นคำถามที่มีประโยชน์และสำคัญมากกว่าคำถามที่เข้าใจผิด หากผู้คนต้องการเปลี่ยนกลับเป็น coreutils และ unxutils ฉันก็ยินดีที่จะไปกับมันและโพสต์คำถามอื่นสำหรับ gnuwin32 และ unxutils นอกจากนี้คำตอบที่เหมาะสมสำหรับคำถามต้นฉบับของเขาจะแก้ไขหรือตอบเกี่ยวกับความผิดพลาดของเขา แต่ยังตอบสิ่งที่เขาหมายถึง ดังนั้นจึงไม่มีการสูญเสียในการแก้ไขคำถามของเขา

คำตอบ:


15

unxutils มีกลุ่มโปรแกรมอรรถประโยชน์ที่มีประโยชน์มากที่สุด รวมถึง grep เช่น

รุ่น gnuwin32 นั้นล้าสมัยไปแล้วหลายปีแม้ว่าจะยังไม่ถึงรุ่นเก่าก็ตาม Gnuwin32 มีสาธารณูปโภคจำนวนมากขึ้น เห็นได้ชัดว่าเป็นข้อได้เปรียบที่สำคัญ

โปรดจำไว้ว่า gnuwin32 มีข้อได้เปรียบที่สำคัญกว่า unxutils

ตัวอย่างเช่น..

unxutils ที่เก่าแก่ที่สุด

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

Copyright 1988...

Gnuwin32 ค่อนข้างเก่า

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

Copyright (C) 2009 ...

ตัดกับซอฟต์แวร์ที่ปรับปรุงให้ทันสมัยกว่า gnuwin32 เช่น cygwin

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

ด้วย unxutils คุณสามารถพบปัญหาในขณะที่มันใช้รุ่นเก่าจริง ๆ และเมื่อค้นหาความช่วยเหลือผู้คนจะคาดหวังว่าคุณจะมีเวอร์ชันล่าสุดของคำสั่งนี้หรือคำสั่งนั้น

มีข้อได้เปรียบเล็ก ๆ น้อย ๆ ที่ unxutils มีซึ่งทำให้ unxutils มีประโยชน์มาก

  • unxutils มี xxd, gnuwin32 ไม่ (หมายเหตุ VIM 7 ก็มี xxd เช่นกัน cygwin)
  • gnuwin32 ณ วันที่เขียน (2014) มี tail -f ที่หักส่วนหางของ unxutils -f นั้นเก่ากว่า แต่ใช้ได้ผล (กล่าวถึงที่นี่ หางของ Cygwin ก็ใช้ได้เช่นกัน) ในสองโอกาสที่แตกต่างกันฉันได้พบข้อบกพร่องใน grep gnuwin32 ซึ่งได้รับการแก้ไขใน grep และ grep ของ grep และ cygwin รุ่นใหม่กว่านั้นในภายหลังและดีมาก (และสามารถเรียกใช้โดยตรงจาก cmd.exe และไม่ต้องเรียกใช้จาก เปลือก cygwin)

  • ต่อไปนี้เป็นข้อได้เปรียบที่มีขนาดเล็กกว่า แต่ถ้าคุณขี้เกียจมากหรือเพียงแค่ต้องการใช้งานได้อย่างรวดเร็วแล้ว unxutils นั้นเป็นเพียงแค่ซิปเดียวคุณสามารถแตกไฟล์ที่เรียกใช้ได้ Gnuwin32 เกี่ยวข้องกับวิซาร์ดในการติดตั้งบิตต่าง ๆ และแม้แต่ยูทิลิตี้บางอย่างจะต้องติดตั้งแยกต่างหากเช่นการติดตั้งที่สามารถเรียกใช้งานได้สำหรับ wget, สำหรับ grep เช่น (grep-xxxx-bin.exe) ด้วย unxutils คุณเพียงดึงข้อมูลจากไดเรกทอรี wbin ภายใน zip โปรดจำไว้ว่าแม้ว่าจะเป็นรุ่นที่เก่ากว่าดังนั้นหากเป็นไปได้หากไม่ขี้เกียจเกินไปคนทั่วไปจะเห็นว่า gnuwin32 มีหรือไม่

  • unxutils สามารถทำงานแบบสแตนด์อโลนได้ซึ่งไบนารี gnuwin32 ที่เทียบเท่าจำนวนมากไม่สามารถทำได้ ดังนั้นหากคุณไม่ต้องการหรือไม่สามารถติดตั้ง gnuwin32 คุณสามารถใช้คำสั่งแบบสแตนด์อโลนได้จาก unxutils ตัวอย่างเช่น tr.exe ของ gnuwin32 ต้องใช้ไฟล์ dll สองไฟล์ในไดเรกทอรีหรือบอกว่าไฟล์เหล่านั้นไม่ได้อยู่ที่นั่นและจะไม่ทำงาน sed ของ gnuwin32 ไม่ทำงานแบบสแตนด์อโลนในขณะที่ unxutils tr.exe และ sed.exe ทำงานได้ดีแบบสแตนด์อโลน
  • unxutils มี gclip.exe และ pclip.exe พวกเขาเป็นคำสั่งให้คัดลอกไปยังคลิปบอร์ดและวางจากคลิปบอร์ด ดูเหมือนว่า gnuwin32 จะไม่ได้มีอะไรแบบนี้และ windows ก็มี clip.exe (เพื่อคัดลอกไปยังคลิปบอร์ด) แต่ไม่มีคำสั่งให้วางเช่น pclip

ลิงก์ sourceforge unxutils มี unxutils.zip และ unxupdates.zip (หลังเป็นชุดย่อยของ unxutils.zip แต่หลังจากนั้นยังคงเป็นเวอร์ชั่นเก่า) เช่น unxutils มี sed จากปี 1998 และ unxupdates มีหนึ่งจาก 2003 ที่สามารถช่วยได้เช่น sed 1998 ไม่ได้มี \ d หรือ \ x สัญกรณ์ egeg \ d34 หรือ \ x22 เพื่อระบุคำพูด (ง่ายกว่าการหลบหนีคำพูด) unxupdates หนึ่งมาจากปี 2003 และไม่

gnuwin32 sed ตามการเขียนนั้นมาจาก 2009 (Gnuwin32's ยังคงล้าสมัยเนื่องจากมี grep รุ่นแม้สำหรับปี 2014 http://ftp.gnu.org/gnu/grep/แม้ในปี 2014 gnuwin32 จะล้าสมัยไปมาก กว่า unxutils (แม้ว่า unxutils จะถูกพิจารณาด้วย 'unxupdates')

http://unxutils.sourceforge.net/ unxutils.zip ของเว็บไซต์จะลดลงแต่สามารถใช้ได้https://archive.org/details/UnxUtilsอย่างเป็นทางการและ https://sourceforge.net/projects/unxutils/และถ้าคุณ ไปหามันแล้วดาวน์โหลด unxupdates ด้วย

การเปรียบเทียบ gnuwin32 กับ unxutils โดยทั่วไปแล้วมองไปที่ Gnuwin32 แต่รู้ว่า unxutils มีข้อดีบางอย่าง .. Gnuwin32 มีคำสั่งเกือบทั้งหมดที่ unxutils มีอยู่และอีกมากมาย

และดู Cygwin มันมีชุดสะสมของสาธารณูปโภคมากมายที่ปรับปรุงให้ทันสมัยกว่า gnuwin32 (ควรเรียกใช้จากเปลือก bash ของ cygwin ซึ่งใช้ได้โดยฉัน) โดยทั่วไปคุณไม่จำเป็นต้องดู สิ่งที่โบราณและไม่อัปเดตเหมือน unxutils แม้ว่ามันจะมี pclip และ gclip

นอกเหนือจาก gnuwin32 และ unxutils แล้วยังมี MinGW และ cygwin และ Windows SUA (ซึ่งเขียน MS ยังคงรักษาไว้และจะเป็นข้อมูลล่าสุด) และ GOW (ซึ่งมีขนาดเล็กแม้ว่าหน้า GOW github จะแสดงเป็นปรับปรุงล่าสุดปี 2014) และ ยังมีขนาดเล็กBusyBox (มีชื่อเสียงสำหรับ Android แต่สามารถใช้งานได้กับ Windows ที่นี่และยังเล็กมาก. สองสิ่งที่น่าประทับใจที่สุดสำหรับฉันคือ gnuwin32 และ cygwin (และ cygwin มี xxd และ tail -f ที่ทำงานดังนั้นฉันไม่จำเป็นต้องหันหน้าไปทาง unxutils) ด้วย cygwin โปรแกรมควรจะทำงานจากเปลือก cygwin จริง ๆ แต่เป็น linux เปลือกเช่นเปลือกทุบตีและทุบตีและเปลือกลินุกซ์อื่น ๆ ที่มีประสิทธิภาพจึงไม่สูญเสียมี ในขณะนี้หลายคนใช้เครื่องเสมือนของ linux แทน cygwin หรือ gnuwin32 ซึ่งทำให้คำสั่งรุ่นที่เหมาะสมทันสมัยจริง ๆ แทนที่จะเป็นพอร์ต windows ที่เก่ากว่าและสามารถทำงานต่างกับคำพูดได้

เพิ่มหมายเหตุ -coreutils aka gnu coreutils เป็นกลุ่มของคำสั่งที่รันบน linux (.. ) และไม่ต้องสงสัยเลยว่า GNU OS พร้อมฝูง (เป็นระบบปฏิบัติการที่ใช้กันอย่างแพร่หลายน้อยกว่า!) และอาจมีการใช้งานที่เหมาะสมสำหรับระบบปฏิบัติการอื่น ๆ CoreUtils GNU เป็นที่รู้จักกันดีและใช้กันอย่างแพร่หลายและมีประโยชน์และปรับปรุง ในทางตรงกันข้าม unxutils เป็นการใช้งาน / พอร์ตเก่าของคำสั่งบางคำสั่งที่ผู้ใช้ใช้บน linux หรือ unix (ซึ่งไม่ต้องสงสัยเลยว่ารวมถึงคำสั่ง coreutils บางคำสั่ง) ที่ใช้สำหรับ windows OS โดยปกติแล้วทั้งสองจะไม่ได้กล่าวถึงในประโยคเดียวกันและเหตุผลเดียวที่พวกเขาอยู่ในคำถามเดิมเป็นเพราะความสับสนในคำถามเดิม GnuWin32 มีการใช้งาน coreutils สำหรับ Windows ที่เรียกว่า Gnuwin32 coreutils แม้ว่าจะกล่าวถึงแล้ว Gnuwin32 นั้นเก่า / ไม่ได้อัปเดต


3
นอกจาก gnuwin32 และ unxutils แล้วยังมี MinGW และ cygwin และ Windows SUA และ GOW สองสิ่งที่น่าประทับใจที่สุดสำหรับฉันคือ gnuwin32 และ cygwin (และ cygwin มี xxd และ tail-f ที่ทำงานดังนั้นฉันไม่จำเป็นต้องหันหน้าไปทาง unxutils) ด้วย cygwin โปรแกรมควรจะทำงานจากเปลือก cygwin จริง ๆ แต่เป็น linux shell เช่นเปลือกทุบตีและทุบตีและเปลือกหอยอื่น ๆ ที่มีประสิทธิภาพจึงไม่มีการสูญเสีย
barlop

หนึ่งในข้อได้เปรียบที่ยังมีชีวิตรอดของ unxutils คือมีpclipคำสั่งให้วางเนื้อหาของคลิปบอร์ด
barlop

อาจเป็นเรื่องดีที่จะมี * nix VM ติดตั้งและรวมไว้เป็นอย่างดีดังนั้นพวกเขาจึงสามารถอ่าน / เขียนซึ่งกันและกันจากนั้นคุณสามารถมีคำสั่ง * nix ล่าสุดและ
barlop

6

Unxutils เป็น Windows ดั้งเดิมและไม่มีการพึ่งพา - แต่ยังไม่ได้รับการปรับปรุงในขณะที่และเป็นส่วนหนึ่งของ coreutils คุณต้องการสภาพแวดล้อมสไตล์ * nix สำหรับ coreutils ดังนั้นคุณจะต้องเรียกใช้มันใน cygwin หรือคล้ายกัน


3
โปรแกรมติดตั้งสำหรับ coreutils สำหรับ windows ควรดูแลการพึ่งพาgnuwin32.sourceforge.net/packages/coreutils.htm
Nifle

1
unxutils ในทางเทคนิคไม่ใช่เซตย่อยของ coreutils นอกเหนือจากรุ่นของคำสั่ง unxutils มี xxd ซึ่ง coreutils และ gnuwin32 ไม่มี เช่นเดียวกับการเขียน gnuwin32 มี tail -f ที่หัก แต่ tail.exe-unxutils ของ f ทำงานได้ดี sourceforge.net/p/gnuwin32/bugs/242 นอกจากนี้ gnuwin32 ยังมี coreutils ของตัวเอง gnuwin32.sourceforge.net/packages/coreutils.htm
barlop

2
UnxUtils ทำงานได้ดีในบรรทัดรับคำสั่งของ Windows เก่าธรรมดาไม่จำเป็นต้องใช้ Cygwin (ซึ่งอาจเกิดขึ้นกับยูทิลิตี้บรรทัดคำสั่ง Unix ของตัวเอง)
PhiLho

1
@ ไม่เป็นไรใช่ แต่ก็ยังคงเป็น unxutils ที่ไม่มีการขึ้นต่อกันและ [ฉันต้องการเพิ่มวิธีที่ตัวติดตั้งเกี่ยวข้องกับมัน] gnuwin32 EXE ต้องถูกเรียกใช้ในไดเรกทอรีเดียวกันกับ DLLs ไม่กี่ตัวที่พึ่งพา โปรแกรมติดตั้งจะวางไฟล์ DLL ในไดเรกทอรีช่องเก็บ
barlop

1
คุณเขียน "คุณต้องการสภาพแวดล้อมสไตล์ * nix สำหรับ coreutils ดังนั้นคุณต้องเรียกใช้ใน cygwin หรือคล้ายกัน" <- ไม่แน่ใจว่าคุณหมายถึงอะไร Unxutils ทำงานในสภาพแวดล้อม windows ไม่มี * nix shell และพวกเขามีสิ่งที่ไม่ได้อยู่ใน coreutils เช่น wget และ xxd ดังนั้นพวกเขาจึงไม่ใช่เซตย่อยของ coreutils นอกจากนี้แม้คำสั่ง cygwin สามารถเรียกใช้ทางเทคนิคโดยตรงจาก cmd นอก cygwin
barlop

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.