การติดตั้งและกำหนดค่า cygwin สำหรับผู้เริ่มต้น การติดตั้ง Git บน Windows จากแพ็คเกจ Cygwin การติดตั้งแพ็คเกจหลามโดยใช้ pip

บทความนี้จะมีประโยชน์สำหรับผู้ใช้ Cygwin มือใหม่ ก่อนอื่น เราต้องตอบคำถามง่ายๆ ก่อน Cygwin คืออะไร? Cygwin เป็นสภาพแวดล้อมและอินเทอร์เฟซที่เหมือน UNIX บรรทัดคำสั่งสำหรับ ไมโครซอฟต์ วินโดวส์- ใน ระบบไมโครซอฟต์ วินโดว์ได้แล้วมีอินเทอร์เฟซ cmd ที่คล้ายกัน คุณสามารถเปิดบรรทัดคำสั่งโดยใช้คีย์ผสม Win+R แต่บ่อยครั้งที่สุด การทำงานของวินโดวส์ผู้ใช้ต้องทำด้วยตนเอง ในทางกลับกัน ฝั่งลินุกซ์ผู้ใช้เขียนสคริปต์ทุบตีมานานแล้วและกำลังนั่งดื่มเบียร์อยู่ข้างๆ เวิร์กโฟลว์อัตโนมัติ

แล้วอะไรทำให้คุณไม่ทำเช่นนี้ใน Windows OS? ถูกต้องไม่มีอะไรรบกวนอย่างแน่นอน แต่สำหรับสิ่งนี้เราต้องการ โปรแกรมเพิ่มเติมและห้องสมุด Cygwin ขยายขีดความสามารถของบรรทัดคำสั่งมาตรฐานของ Windows ช่วยให้คุณสามารถทำให้กระบวนการบางอย่างเป็นแบบอัตโนมัติและพัฒนาโปรแกรมสำหรับ Linux และระบบอื่น ๆ

สามารถดาวน์โหลดโปรแกรม Cygwin ได้จากเว็บไซต์อย่างเป็นทางการ: ลิงก์ไปยังโปรแกรมเวอร์ชัน 32 บิต และลิงก์ไปยังโปรแกรมเวอร์ชัน 64 บิต

เลือก เวอร์ชันที่ต้องการให้ดาวน์โหลดและเรียกใช้ไฟล์ผู้บริหาร setup-x86.exe และ setup-x86_64.exe ตามลำดับ

หน้าต่างการติดตั้งสำหรับโปรแกรมเวอร์ชัน 64 บิต


หน้าต่างสำหรับเลือกวิธีการติดตั้ง


หน้าต่างการเลือกแพ็คเกจ

หน้าต่างการติดตั้งสำหรับโปรแกรมเวอร์ชัน 32 บิตจะมีลักษณะเหมือนกับหน้าต่าง 64 บิตทุกประการ ขั้นตอนต่อไปคือหน้าต่างการเลือก จะติดตั้งหรือดาวน์โหลดโปรแกรมได้ที่ไหน มีทั้งหมดสามตัวเลือก ตัวเลือกแรก ติดตั้งจากอินเทอร์เน็ต (ไฟล์ที่ดาวน์โหลดจะถูกเก็บไว้เพื่อใช้ซ้ำในอนาคต) การติดตั้งจากอินเทอร์เน็ตและไฟล์ที่ดาวน์โหลดจะถูกเก็บไว้จนถึงครั้งต่อไป ใช้ซ้ำ- ตัวเลือกที่สองคือ ดาวน์โหลดโดยไม่ต้องติดตั้ง ดาวน์โหลดโดยไม่ต้องติดตั้ง ตัวเลือกที่สาม ติดตั้งจากท้องถิ่น การติดตั้งไดเร็กทอรีจากไดเรกทอรีท้องถิ่น เพราะ เราไม่มีสำเนาในเครื่องและเราจำเป็นต้องติดตั้ง ดังนั้นเราจึงเลือกตัวเลือกแรก หน้าต่างถัดไปจะเป็นการเลือกเส้นทางการติดตั้ง ฉันแนะนำให้เลือก ดิสก์ระบบตัวอย่างเช่น เส้นทางการติดตั้ง Cygwin ของฉันคือ C:\cygwin64 หน้าต่างถัดไปคือการเลือกเส้นทางที่จะจัดเก็บ ไฟล์ชั่วคราวซึ่งจะถูกดาวน์โหลดระหว่างขั้นตอนการติดตั้ง สำหรับฉันมันคือ C:\cygwin64\package จากนั้นคุณต้องเลือกว่าจะดาวน์โหลดผ่านพรอกซีหรือโดยตรง ขั้นตอนต่อไปคือการเลือกพื้นที่เก็บข้อมูลดาวน์โหลด เลือกอันใดอันหนึ่งที่คุณเจอหรืออันเริ่มต้นแล้วคลิกถัดไป หลังจากคลิกปุ่ม กระบวนการดาวน์โหลดการกำหนดค่าหลักจะเริ่มขึ้น ถัดไปคุณสามารถเลือกสิ่งที่จะติดตั้ง หากต้องการเลือกแพ็คเกจ ให้คลิกข้าม ถัดจากชื่อแพ็คเกจ รายการแพ็คเกจที่จะเป็นประโยชน์กับคุณ:

  • gcc-core (ภายใต้ Dev)
  • gcc-g++ (ในส่วนการพัฒนา)
  • ทำ (ในส่วนการพัฒนา)
  • cmake (ในส่วนการพัฒนา)
  • automake (ในส่วนการพัฒนา)
  • wget (ในส่วนเว็บ)
  • libiconv (ในส่วน Devel และ Libs)
  • openssh (ในส่วน Net)
  • nano (ในส่วนบรรณาธิการ)
  • bash (จากส่วนฐาน)
  • base-cygwin (จากส่วนฐาน)
  • ไฟล์ฐาน (จากส่วนฐาน)
  • cygwin (จากส่วนฐาน)
  • ไฟล์ (จากส่วนฐาน)
  • gzip (จากส่วนฐาน)
  • เข้าสู่ระบบ (จากส่วนฐาน)
  • มิ้นท์ตี้ (จากส่วนฐาน)
  • openssl (จากส่วนฐาน)
  • วิ่ง (จากส่วนฐาน)
  • tar (จากส่วนฐาน)
  • vim-minimal (จากส่วนฐาน)
  • cron (จากส่วนผู้ดูแลระบบ)
  • ปิดระบบ (จากส่วนผู้ดูแลระบบ)
  • git (แพ็คเกจทั้งหมดจากส่วน Devel)

ฉันไม่ชอบสีพื้นหลังหรือแบบอักษรและสีข้อความในตัว ดังนั้นฉันจึงปรับแต่งมัน ด้วยคำพูดเหล่านี้ฉันจะจบบทความนี้

คุณเคยต้องใช้ command line หลังจาก Linux หรือไม่? สตริงของ Windows- สำหรับฉันใช่ ผิดปกติมาก หลายทีมถูกเรียกแตกต่างกัน ตัวอย่างเช่น ค่าเทียบเท่าของ ls ใน Windows คือ dir รูปแบบการถ่ายทอดข้อโต้แย้งของล่ามท้องถิ่นนั้นแตกต่างกัน และโอกาสมากมายที่ยูทิลิตี้ Linux มอบให้นั้นไม่ได้อยู่ที่นั่น ฉันจะได้อันที่คล้ายกันได้อย่างไร? สภาพแวดล้อมลินุกซ์ในหน้าต่าง? สามารถทำได้โดยการติดตั้ง Cygwin

ทำความรู้จักกับระบบที่นำไปใช้งาน

ประการแรก cygwin จะติดตั้งโปรแกรมจำลองเทอร์มินัลของตัวเองตามค่าเริ่มต้น ซึ่งสะดวกกว่าในการทำงานมากกว่าบรรทัดคำสั่งของ Windows

นี่คือจุดที่เรามีปัญหาแรกของเรา อย่างที่คุณเห็น ยูทิลิตี้ windowsรวมถึง cmd.exe จะพิมพ์ข้อความใน oem-866 และโปรแกรมจำลอง cygwin อ่านข้อความใน utf-8 หากคุณเปลี่ยนการเข้ารหัสเป็นโค้ดเพจ 866 ผลที่ตามมาของการกระทำนี้จะยิ่งแย่ลงไปอีก


Cygwin ตีความชื่อรัสเซียมา การเข้ารหัสยูนิโค้ดเป็นสตริงในการเข้ารหัส 866 และในที่สุดก็ตัดสินใจสร้างไดเรกทอรีใหม่ /home/╨Ф╨╝╨╕╤В╤А╨╕╨╣ ดังนั้นจึงเป็นการดีกว่าที่จะทิ้งทุกอย่างไว้เหมือนเดิม และถ้าเป็นไปได้ ให้ใช้ยูทิลิตี้ cygwin ในกรณีที่คุณต้องการรันเชลล์คำสั่งโดยไม่มีเทอร์มินัลอีมูเลเตอร์ ให้รัน ไฟล์แบตช์ Cygwin.bat.
ใน ในกรณีนี้, cygwin ได้รับการติดตั้งในโฟลเดอร์ C:\cygwin64\ ยูทิลิตี้ cygpath จะช่วยให้เราค้นหาวิธีการแปลงเส้นทางจาก unix-path เป็น windows path
$ cygpath -w `pwd`
C:\cygwin64\home\Dmitry

$ cygpath -w /
C:\cygwin64

$cygpath "C:\cygwin64"
/

$ cygpath "C:\cygwin64\home\Dmitry"
/home/ดิมิทรี
ฉันจะเข้าถึงไดรฟ์ C: ได้อย่างไรหากเส้นทางทั้งหมดถูกแปลเป็น C:\cygwin64\
มันง่ายมาก ไดเร็กทอรี /cygdrive มีจุดเชื่อมต่อที่สอดคล้องกับชื่อวอลุ่ม Windows
$cygpath "C:\"
/cygdrive/c

$ cygpath -w /cygdrive/c/somedir
C:\ซอมไดร์
Cygpath ยังแปลการโทรไปยังจุดเมานต์นี้ได้สำเร็จอีกด้วย เส้นทางของ Windows.
อย่างไรก็ตามการมีอยู่ของยูทิลิตี้เช่น cygpath แสดงให้เห็นว่าเหตุใดด้วย cygwin คุณควรใช้เฉพาะยูทิลิตี้ของมันหากเป็นไปได้ หากคุณต้องการรัน java VM และเข้าใจเฉพาะพาธของ Windows คุณจะต้องแปลงพาธ cygwin เมื่อเริ่มต้นระบบ:
$ จาวา-ขวด`cygpath -w "/opt/some.jar"`
จากนี้ไปสคริปต์จำนวนมากจาก Linux ไม่สามารถนำไปใช้และรันบน Windows ได้ บางครั้งคุณต้องพยายามถ่ายโอนสคริปต์ นอกจากนี้ ยูทิลิตี้บรรทัดคำสั่งบางอย่างอาจไม่ทำงาน

ตัวเลือกเพิ่มเติม

สสส

คุณสามารถติดตั้งไคลเอ็นต์และเซิร์ฟเวอร์ OpenSSH ได้ซึ่งจะช่วยให้คุณได้รับ การเข้าถึงระยะไกลไปยัง bash shell จากคอมพิวเตอร์เครื่องอื่น หรือแม้แต่จากโทรศัพท์ เช่น การใช้ JuiceSSH คุณยังจะได้รับการเข้าถึงไฟล์ของคุณจากระยะไกลโดยใช้โปรโตคอล SFTP (แม้ว่าบน Windows จะง่ายกว่าในการแชร์ไดเร็กทอรีที่เข้าถึงได้ผ่าน SMB)

การเขียนโปรแกรม

ชุดนี้ประกอบด้วยคอมไพเลอร์ที่มีชื่อเสียง เช่น Clang หรือ GCC ล่าม ภาษาหลาม, Perl, PHP, Ruby ฯลฯ คุณสามารถสร้างโปรแกรมที่รองรับ POSIX สำหรับ Windows ได้

โปรแกรมแก้ไขข้อความ

โปรแกรมแก้ไขเชิงโต้ตอบ - vim, nano, emacs
โปรแกรมแก้ไขแบบไม่โต้ตอบที่เหมาะสำหรับใช้ในสคริปต์ - sed, awk

บรรทัดล่าง

ถ้าพลาด. ความสามารถของลินุกซ์ใน Windows มันอาจจะคุ้มค่าที่จะติดตั้งสิ่งนี้ให้กับตัวคุณเอง

ต้นฉบับ: วิธีคอมไพล์โปรแกรม Linux ภายใต้ Windows ด้วย Cygwin
โพสต์โดย แกรี่ ซิมส์
วันที่เผยแพร่: 12 มิถุนายน 2014
การแปล: N.Romodanov
วันที่แปล: กรกฎาคม 2014

Windows และ Linux เป็นสองอย่างมาก ระบบที่แตกต่างกันและดังนั้นจึงมักจะเป็นเรื่องยากที่จะย้ายโปรแกรมที่เขียนขึ้นสำหรับหนึ่งในนั้นไปยังระบบอื่น โดยเฉพาะอย่างยิ่งเมื่อเป็นเรื่องเกี่ยวกับโปรแกรมด้วย อินเตอร์เฟซแบบกราฟิก- แม้ว่าจะมีไลบรารีและ SDK ข้ามแพลตฟอร์มที่แตกต่างกันมากมาย แต่โปรแกรมเนทีฟที่ไม่ได้เขียนโดยคำนึงถึงความสามารถในการพกพานั้นยากที่จะย้าย

เมื่อพูดถึงการคอมไพล์และรันโปรแกรมที่เขียนขึ้นสำหรับ Linux บน Windows มีวิธีแก้ปัญหาที่เรียกว่า Cygwin โครงการ Cygwin เป็นชุดเครื่องมือและคอมไพเลอร์ที่ใช้บ่อยที่สุด (รวมถึง เปลือกทุบตีและเชนคอมไพเลอร์ GNU) สำหรับ Windows นอกจากนี้ยังมีไลบรารี่ที่ใช้เลเยอร์ความเข้ากันได้ ดังนั้นคุณจึงสามารถคอมไพล์โปรแกรมที่เรียกใช้ได้ API, เฉพาะ Linux Cygwin ไม่ใช่โปรแกรมจำลองหรือ เครื่องเสมือนและไม่อนุญาตให้ใช้ไบนารี ไฟล์ลินุกซ์ทำงานบน Windows โดยไม่ต้องคอมไพล์ใหม่ก่อน

ดาวน์โหลด ไฟล์ต้นฉบับโดยใช้คำสั่ง wget:

รับhttp://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz

ตอนนี้แตกไฟล์เก็บถาวร:

ทาร์ -zxf html-xml-utils-6.7.tar.gz

ซีดี html-xml-utils-6.7

ขณะนี้ไฟล์ต้นฉบับอยู่ในไดเร็กทอรี html-xml-utils-6.7 ไปที่ไดเร็กทอรีนี้:

ซีดี html-xml-utils-6.7

ก่อนที่ไฟล์จะถูกสร้างขึ้น คุณจะต้องรันสคริปต์กำหนดค่าเพื่อสร้าง เมคไฟล์(ไฟล์คำแนะนำในการสร้าง) ที่มีไว้สำหรับสภาพแวดล้อมการสร้างที่กำหนด นี่เป็นขั้นตอนการสร้างทั่วไปบน Linux (และ Cygwin) สำหรับการสร้างแพ็คเกจจากแหล่งที่มา

./กำหนดค่า

เมื่อการดำเนินการกำหนดค่าเสร็จสมบูรณ์ คุณสามารถเริ่มสร้างด้วยคำสั่ง make:

การสร้างไม่เสร็จสมบูรณ์เนื่องจากมีข้อผิดพลาด ฉันไม่แน่ใจว่าจะทำอย่างไรต่อไป ฉันสามารถย้ายไปที่โครงการอื่นหรือต่อสู้กับแพ็คเกจ HTML-XML-utils ฉันเลือกอย่างหลังเพราะมันแสดงว่าไม่ใช่ทุกอย่างจะราบรื่นเมื่อคุณพยายามคอมไพล์ โปรแกรมลินุกซ์ภายใต้ Cygwin วิธีแก้ปัญหานี้ง่ายมาก ข้อความแสดงข้อผิดพลาดระบุว่าตัวเชื่อมโยงไม่พบไลบรารี iconv การดูคำสั่ง link อย่างรวดเร็วแสดงให้เห็นว่าไม่ได้ระบุไลบรารีนี้ วิธีแก้ปัญหาที่รวดเร็วและสกปรกคือการรันคำสั่งด้วยตนเองและสั่งให้ลิงก์เกอร์ใช้ไลบรารี libconv วิธีที่ "ถูกต้อง" ในการแก้ไขข้อผิดพลาดนี้คือการวิเคราะห์ Makefile ฯลฯ เพื่อค้นหาสาเหตุที่บิลด์ล้มเหลว


รันคำสั่งต่อไปนี้ โดยลงท้ายด้วย "-liconv":

Gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o เชื่อมต่อ sock.o ประเภท o tree.o genid.o ส่วนหัว dtd.o .o dict.o fopencookie.o -liconv

เมื่อสร้าง hxindex.exe แล้ว คุณสามารถไปยังส่วนที่เหลือของ build ได้โดยการรัน make อีกครั้ง เมื่อคำสั่ง make รัน จะตรวจสอบสิ่งที่ถูกสร้างขึ้นและสิ่งที่ไม่ได้สร้าง จากนั้นกระบวนการ build จะดำเนินต่อไป เนื่องจากเราสร้างแพ็คเกจ hxindex.exe ด้วยตนเอง คำสั่ง make จะดำเนินการดังต่อไปนี้ ไฟล์ไบนารีไปที่รายการนี้

เมื่อคำสั่ง make เสร็จสิ้น คุณจะมีไฟล์ .exe ทั้งหมดในไดเร็กทอรี html-xml-utils-6.7

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

บทความนี้มีไว้สำหรับสองคน
ประเภทคน: สำหรับผู้ที่ไม่เข้าใจ
Linux แต่ไม่สามารถติดตั้งลงในคอมพิวเตอร์ของฉันได้
(มีเหตุผลที่แตกต่างกัน) หรือสำหรับผู้ที่
รู้เพียงเล็กน้อยเกี่ยวกับนกเพนกวิน 🙂 และจะไม่รังเกียจ
ทำความรู้จักกับพวกเขาแบบ "เป็นกลาง"
อาณาเขต นั่นคือบน Win98/NT

เว็บไซต์ได้อธิบาย Cygwin ว่าดีที่สุดแล้ว
นำโปรแกรมจำลอง Linux ออก แต่ไม่ได้กล่าวไว้
ไม่เกี่ยวกับการติดตั้ง การกำหนดค่า และข้อบกพร่องของ Cygwin
ฉันจะบอกคุณเกี่ยวกับเรื่องนี้ :) จริงๆแล้วถ้า
ลองคิดดูสิ Cygwin ไม่ใช่โปรแกรมจำลองเลย แต่เป็น
แค่ การกระจายลินุกซ์เขียนสำหรับ Win32 😉

หยุดเที่ยวเล่นได้แล้ว... ไปที่ http://www.cygwin.com กันดีกว่า
เราใช้โปรแกรมติดตั้ง setup.exe จากที่นั่น ถึงเธอ
เราจะดึงอันที่คอมไพล์ไว้แล้วออกมา
ไบนารี (ในส่วนขยาย exe) คุณจำ rpm ได้ไหม
😉 จากเว็บไซต์ของผู้พัฒนาหรือจากมิเรอร์
ฉันแนะนำโปรแกรมนี้เพื่อดาวน์โหลดเท่านั้น
เราจะติดตั้งไฟล์เหล่านี้ด้วยตนเองเพราะว่า ถ้า
คุณติดตั้งโดยใช้ setup.exe gcc ไม่ทำงาน - รูปที่
รู้ว่าทำไม... บางทีนักพัฒนาอาจคำนึงถึงแล้ว
มันเป็นข้อผิดพลาด แต่ฉันยังไม่รู้เรื่องนี้เลย ...

ดังนั้นให้ดาวน์โหลดไบนารีหลักทั้งหมด (sources
คุณไม่จำเป็นต้องดาวน์โหลด) และอีกหลายอย่าง
เพิ่มเติม - ใครจะปฏิเสธ wget, lynx,
BitchX, Python :) แต่คุณไม่จำเป็นต้องดาวน์โหลด Perl... ฉันมี
มี ActivePerl - โปรแกรมจำลอง Perl ขั้นสูง ดาวน์โหลด
หาได้จาก http://www.acriveperl.com
ฉันไม่ได้สังเกตเห็นข้อบกพร่องใด ๆ :) (ฉันจะบอกคุณว่าฉันทำอย่างไร
นำไปใช้ใน cygwin)

การตั้งค่า

และในไฟล์ "group" ในโฟลเดอร์ "etc" เดียวกัน:
รูต:x:0:รูท

หากคุณต้องการเข้ารหัสรหัสผ่านของคุณและ
ไม่ใช่ "รหัสผ่าน" เหมือนที่ฉันทำในตัวอย่างของฉัน
เขียนสคริปต์ Perl

#!/usr/bin/perl
สับ ($ผ่าน= );
พิมพ์ $crypt("SA",$pass);

โดยที่ SA - salta ซึ่งจะใช้สำหรับการเข้ารหัส
รหัสผ่าน... คุณสามารถทำให้มันสุ่มได้แต่
บทความนี้จะนอกประเด็น

ตอนนี้แก้ไขไฟล์ “c:\cygwin\cygnus.bat” -
ในนั้นเราเปลี่ยน PATH เพียงแค่เปลี่ยนเส้นทางไป
โปรแกรมจำลองและเส้นทางไปยังไฟล์ login.exe เปิดตัวกันเลย
ไฟล์.

มาเข้าสู่ระบบกันเถอะ: ในตัวอย่างของฉัน "root": "password"
ดังนั้นเราจึงเข้าสู่โปรแกรมจำลองเอง ฉันไม่
ฉันชอบพรอมต์การป้อนข้อมูล มาเปลี่ยนกันเถอะ
- ตัวแปร PS1 เปิด (สร้าง) ไฟล์ "c:\cygwin\etc\profile"
และเขียนที่นั่น:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
ยกเลิกการตั้งค่า DOSDRIVE
ยกเลิกการตั้งค่า DOSDIR
ยกเลิกการตั้งค่า TMPDIR
ยกเลิกการตั้งค่า TMP
ส่งออก HOSTNAME=ทดสอบ
PS1="[\u@$HOSTNAME \W]# "
LOGNAME=$USER
ส่งออก PATH PS1 USER LOGNAME

ที่นี่... จากนั้นเราจะเข้าสู่ระบบอีกครั้ง และทุกอย่างจะเริ่มทำงาน
สถานที่และสวยงาม :) คำเชิญจะเป็น: # - มาตรฐาน, Linux :)

เพียงเท่านี้การติดตั้งครั้งแรกก็เสร็จสมบูรณ์
มาดูบริการติดตั้งกันดีกว่า :)

การจัดส่งแบบมาตรฐานรวมถึง Thuja Hucha
บริการ คุณต้องเรียกใช้งานดังนี้:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (ตัวอย่างสำหรับ ftpd)

เป็นการดีกว่าที่จะติดตั้ง SSHD ด้วยตัวเอง - มันใช้งานได้ดีและ
ฉันขับรถจาก SecureCRT ถูกกฎหมายบน 127.0.0.1 -
รูปลักษณ์ที่แตกต่างอย่างสิ้นเชิง :)

ในการทำงานกับ TCP/IP ผมไม่มีข้อเสีย
ฉันสังเกตเห็น :) ทุกอย่างเชื่อมต่อและทำงานเหมือนกัน
จำเป็น…

และตอนนี้มีเคล็ดลับบางประการ:

1) การเข้าถึงดิสก์ทั้งหมดเปิดอยู่ เป็นเช่นนั้น
ระมัดระวัง. ตัวอย่างเช่น ไดรฟ์ d: ตั้งอยู่ที่นี่ -
"/cygdrive/d".

2) เกี่ยวกับ Perl ให้สร้าง symlink ไปยังไฟล์
ตัวอย่างเช่น Perl.exe ดังนั้น "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) หากคุณไม่มีด้วยเหตุผลบางประการ
ติดตั้งแอปพลิเคชัน Linux แล้ว -
เพียงแก้ไขรหัส C บางที
จะสำเร็จ..(ผมเรียบเรียงไว้อย่างนั้น.
มิค)

4) ติดตามการอัพเดตของ Cygwin บนเว็บไซต์ http://www.cygwin.com
- ไบนารีได้รับการอัปเดตบ่อยครั้ง

คำถาม? เขียนถึงฉันทางอีเมล - ฉันจะลอง
ช่วย...

CYGWIN คืออะไรหลังจากบทความของ Chris Kaspersky เรื่อง "วิธีสร้าง Unix จาก Windows" ใน CG หมายเลข 3 ลงวันที่ 23 มกราคม 2544 ฉันอยากจะบอกคุณเพิ่มเติมอีกเล็กน้อยเกี่ยวกับ ผู้ใช้วินโดวส์เกี่ยวกับ Cygwin คืออะไร ฉันใช้งานมันมาเป็นเวลานานและไม่สามารถทำงานได้อย่างมีประสิทธิภาพใน Windows หากไม่มีการติดตั้ง Cygwin

คำว่า Cygwin ประกอบด้วยสององค์ประกอบ: Cygnus เป็นชื่อของบริษัท และ Windows แต่จะผิดที่จะบอกว่าทุกสิ่งใน Cygwin เขียนโดยคนจาก Cygnus Cygwin เป็นพอร์ตของยูทิลิตี้ Gnu สำหรับ Windows และ Gnu (www.gnu.org) เป็นโครงการของ Free ซอฟต์แวร์(ฟรี มูลนิธิซอฟต์แวร์หรือเรียกง่ายๆ ว่า FSF) ซึ่งมีจุดมุ่งหมายเพื่อสร้างระบบ Unix ที่ไม่แสวงหากำไรซึ่งไม่ได้เป็นของใครก็ตาม และปราศจากใบอนุญาตที่จำกัดเสรีภาพในการแจกจ่ายและดัดแปลงซอฟต์แวร์ ซึ่งเป็นส่วนหนึ่งของโครงการนี้เกือบทั้งหมด สาธารณูปโภคมาตรฐานยูนิกซ์ การสนับสนุนที่สำคัญที่สุดสามประการของ FSF คือ gcc (Gnu C Compiler หรือ Gnu Compiler Collection), Bash (Bourne Again Shell) และ Emacs หากไม่มี gcc ก็จะไม่มี Linux และ Bash ก็เป็นมาตรฐาน เชลล์คำสั่งสำหรับระบบ Unix สมัยใหม่หลายระบบ ผู้ที่มีประสบการณ์กล่าวว่าสิ่งแรกที่ผู้ดูแลระบบทำหลังจากติดตั้ง Unixes เชิงพาณิชย์คือการติดตั้งยูทิลิตี้ Gnu ใหม่ โดยหลักการแล้ว GNU และ FSF นั้นเป็นหัวข้อที่กว้างใหญ่และสมควรได้รับบทความที่มีรายละเอียดแยกต่างหาก

ชุดยูทิลิตี้ Gnu ทั้งหมดเป็นชุดโปรแกรมขนาดเล็ก (โดยปกติ) ที่ครอบคลุมงานส่วนใหญ่ที่ผู้ใช้ระบบ Unix (และไม่เพียงแต่ Unix) พบทุกวัน แต่ละโปรแกรมดังกล่าวทำงานเดียวและทำงานได้ดี โปรแกรมเหล่านี้สามารถนำมารวมกันเพื่อแก้ไขปัญหาต่างๆ ได้

ความพยายามที่จะโอน Gnu ไปยังผู้อื่นไม่ได้เป็นเช่นนั้น แพลตฟอร์มยูนิกซ์ดำเนินการมากกว่าหนึ่งครั้งซึ่งบ่งบอกถึงความนิยมของพวกเขา

เป็นเรื่องที่ควรค่าแก่การกล่าวถึงโครงการย้ายยูทิลิตี้ไปยัง DOS - DJGPP เข้า http://www.delorie.com/djgpp/ น่าสนใจมาก

Cygnus ไม่ได้รวบรวมยูทิลิตี้แต่ละตัวแยกจากกัน โดยต้องทนทุกข์ทรมานในแต่ละครั้งเพื่อแก้ไขปัญหาเดียวกัน แทนที่จะเขียน "ตัวเว้นวรรค" ระหว่างยูทิลิตี้ GNU และ ระบบปฏิบัติการ- shim นี้ - cygwin1.dll (1 - หมายเลขเวอร์ชัน) - ให้การจำลอง การโทรของระบบ UNIX ซึ่งช่วยให้คุณสามารถคอมไพล์และดำเนินการได้ โปรแกรมยูนิกซ์ไม่หรือแทบไม่มีการเปลี่ยนแปลงเลย ซอร์สโค้ด- โดยพื้นฐานแล้ว dll นี้คือ Cygwin เองและอย่างอื่นก็เป็น แพคเกจซอฟต์แวร์ GNU คอมไพล์เพื่อทำงานร่วมกับ Cygwin

การมี gcc และไลบรารีทำให้สามารถพอร์ตได้มากที่สุด แอพพลิเคชั่นต่างๆและทำให้ Cygwin เป็นแพลตฟอร์มที่ครบครัน - บางครั้งคุณอาจพบสำนวน "แพลตฟอร์ม Cygwin" ตั้งแต่ Cygwin เวอร์ชันเบต้าแรก คนต่างๆรวบรวมสำหรับ Cygwin ในสิ่งที่พวกเขาขาดสำหรับ Windows และการกระจาย Cygwin มาตรฐานก็ค่อยๆเพิ่มขึ้นรวมถึงเนื่องจากการคอมไพล์แบบโฮมเมดเหล่านี้ ตัวอย่างเช่น ระหว่างเวอร์ชันเบต้า 20 ฉันต้องดาวน์โหลด vim editor แยกต่างหาก แต่ตอนนี้มันถูกติดตั้งพร้อมกับทั้งชุดแล้ว

วิธีการติดตั้งทั้งหมด

Cygnus ได้เขียนโปรแกรมที่สะดวกสำหรับการจัดการแพ็คเกจ ซึ่งชวนให้นึกถึงบางโปรแกรมเล็กน้อย โปรแกรมที่คล้ายกันจากการกระจายระบบปฏิบัติการ Linux ขั้นตอนแรกคือดาวน์โหลดจากเว็บไซต์ Cygnus http://sources.redhat.com/cygwin/setup.exe เมื่อเปิดตัวคุณสามารถดาวน์โหลดได้ ชุดมาตรฐานแพ็กเกจจากมิเรอร์ตัวใดตัวหนึ่ง และคุณสามารถเลือกทำสิ่งนี้ได้โดยข้ามแต่ละแพ็คเกจ

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

โปรแกรมเดียวกันนี้จะติดตั้ง Cygwin ให้คุณ โดยขอให้คุณตัดสินใจว่าจะติดตั้งอะไรและจะไม่ติดตั้งอะไร การติดตั้งจะสร้างไดเร็กทอรีสำหรับคุณที่เหมือนกัน ลำดับชั้นของไฟล์ Unix - bin, usr, sbin ฯลฯ ดังนั้นจึงสะดวกในการวางไว้ในไดเร็กทอรีเดียวเพื่อไม่ให้สับสนกับโฟลเดอร์ Windows ของคุณ

และวิธีการใช้งานทั้งหมด

เมื่อคุณเริ่ม Cygwin คุณจะเห็นหน้าต่างคอนโซลคล้ายกับคอนโซล Windows ทั่วไป command.com ใน Win9x หรือ cmd.exe ใน NT แต่ไม่! คุณได้เปิดตัวทายาทอันรุ่งโรจน์ของ Unix บน Windows ล่ามคำสั่งซึ่งพยายามเลียนแบบ command.com ด้วย ไฟล์ BAT- Bash และพี่ใหญ่ของเขาคือกาวที่ประสานกัน ระบบยูนิกซ์สามารถเรียกได้ว่าเป็นภาษาโปรแกรมอย่างถูกต้องนั่นคือคุณสามารถเขียนลงไปได้

คำสั่งพื้นฐานหลายคำสั่งและคำสั่งที่เทียบเท่าใน Windows

ls = dir - ดูเนื้อหาของไดเร็กทอรี;
cd = chdir - ย้ายไปยังไดเร็กทอรีอื่น
cp = copy - คัดลอกไฟล์;
mv = mv - ย้าย/เปลี่ยนชื่อไฟล์;
rm = del - ลบไฟล์;
mkdir = mkdir - สร้างไดเร็กทอรี;
pwd - แสดงไดเร็กทอรีปัจจุบัน

โปรดจำไว้ว่า "A" ตัวใหญ่ไม่เท่ากับ "a" ตัวเล็กอีกต่อไป ตอนนี้สัญลักษณ์ \ ต้องถูกแทนที่ด้วย / คำสั่ง cd / ใน Cygwin จะนำคุณไปยังไดเร็กทอรีที่มี bin, usr ฯลฯ ใน Unix ไม่มีสิ่งใดอยู่เหนือ / แต่ใน Cygwin เพื่อที่จะเดินทางผ่านพาร์ติชัน Windows คุณสามารถใช้คำสั่ง cd //c/ (cd //d/MyDir ฯลฯ)

หนึ่งในคุณสมบัติที่สะดวกที่สุดของ Bash คือการเติมข้อความอัตโนมัติ มาสร้างกันเถอะ คำสั่งแมวหลายไฟล์:

แมว > first_file ป้อน

พิมพ์บางอย่างแล้วกด Ctr-C

และเช่นเดียวกันกับไฟล์อื่น:

แมว > Second_file ป้อน

ตรวจสอบให้แน่ใจว่ามีไฟล์อยู่:

ตอนนี้ให้พิมพ์คำสั่งใดๆ เช่น ls และอักษรตัวแรกของไฟล์แรก กดแท็บ Bash จะต่อท้ายชื่อไฟล์เอง หากไฟล์เริ่มต้นเหมือนกัน เช่น file_one และ file_two Bash จะต่อท้ายเฉพาะ file_ และรอให้คุณพิมพ์ตัวอักษรอื่นเพื่อแยกความกำกวม

ตัวอย่างการใช้ยูทิลิตี้บางอย่าง

สมมติว่าคุณมี ไฟล์ข้อความใน.txt. คุณสามารถนับจำนวนคำได้ดังนี้:

จำนวนบรรทัด:

ค้นหาบรรทัดที่มีลำดับอักขระแลร์รี่:

grep "แลร์รี่" in.txt

แบ่งบรรทัดเป็นคำ แทนที่ช่องว่างด้วยอักขระที่ท้ายบรรทัด:

แมว in.txt | เพ่งพิศ "gsub(" +","\n")"

คำสั่ง gawk "gsub(" +","\n")" หมายถึงแทนที่หนึ่งหรือ ช่องว่างมากขึ้น(" +") ไปที่ท้ายอักขระบรรทัด ("\n")

ทำสิ่งเดียวกัน แต่มีทางเลือก รับชมได้สะดวก(PageUp, PageDown, ออก - q)

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | น้อย

จัดเรียงสตริง (คำ):

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | น้อย

ลบบรรทัดที่เหมือนกัน (คำ):

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | ยูนิค | น้อย

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | ยูนิค | สุขา -l

ลบบรรทัด (คำที่เหมือนกัน) โดยนับจำนวน:

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | uniq --นับ | น้อย

จัดเรียงอีกครั้งจึงได้รับพจนานุกรมความถี่ของข้อความ:

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | uniq --นับ | เรียงลำดับ -r | น้อย

สิ่งเดียวกันนี้กับผลลัพธ์ที่ส่งออกไปยังไฟล์ข้อความ:

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | uniq --นับ | เรียงลำดับ -r > out.txt

สิ่งเดียวกันกับการประหยัด ผลลัพธ์ระดับกลางในไฟล์intermediate.txt:

แมว in.txt | เพ่งพิศ "gsub(" +","\n")" | teeintermediate.txt | เรียงลำดับ | uniq --นับ | เรียงลำดับ -r | น้อย

ตอนนี้ด้วยการใช้พลังของ Bash คุณสามารถทำซ้ำคำสั่งนี้กับหลายไฟล์ได้ พิมพ์สคริปต์ลงในคอนโซลโดยตรงโดยไปที่ บรรทัดใหม่เช่นเดียวกับที่พิมพ์ในบทความ Bash จะเข้าใจว่าคำสั่งยังไม่เสร็จสิ้นและจะเปลี่ยนพรอมต์เป็น ">":

สำหรับไฟล์ใน *.txt; ทำ

แมว $ ไฟล์ | เพ่งพิศ "gsub(" +","\n")" | เรียงลำดับ | uniq --นับ | เรียงลำดับ -r > $file.out

แบบนี้. ปัญหาง่ายๆ - วิธีแก้ปัญหาง่ายๆ

หากต้องการทราบว่าคำสั่งทำงานอย่างไร คุณสามารถเรียกใช้คำสั่งนั้นด้วยสวิตช์ --help หรือใช้คำสั่ง man (แบบแมนนวล) - man awk, man grep คุณสามารถออกจาก man ได้โดยใช้ q

มีอะไรอีกใน CYGWIN

คอมไพเลอร์

ภาษาโปรแกรมประมวลผลคำที่เรียบง่าย (คนพูดว่า - ฝึกอบรม 1 วัน) หนึ่งในบรรพบุรุษของ Perl

ตัวแก้ไขสตรีม

เครื่องกำเนิด Parser ใน C

เครื่องกำเนิด Parser ใน C

ภาษาโปรแกรม จริงๆ แล้ว มันไม่เกี่ยวข้องโดยตรงกับยูทิลิตี้ Gnu แต่ได้รับการสนับสนุนจาก Sun Corporation มาระยะหนึ่งแล้ว คุณสามารถทำ cd /usr/share/tk8.0/demos และรันวิดเจ็ตโปรแกรม -./widget คุณจะเห็นการสาธิตความสามารถของ Tk ซึ่งเป็นส่วนขยาย Tcl สำหรับการสร้าง GUI

ผู้จัดเก็บ

ผู้จัดเก็บที่มีประสิทธิภาพ

โปรแกรมเปรียบเทียบไฟล์

และอีกมากมาย เพียงไปที่ถังขยะแล้วดูว่าคุณมีอะไรบ้าง สามารถดูเงินฝากแพ็คเกจได้ที่ http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html นอกจากนี้ยังมีข้อมูลและลิงก์มากมายในหัวข้อนี้บนเว็บไซต์ Cygnus http://sources.redhat.com/cygwin/

วิธีการตั้งค่า CYGWIN

ขั้นแรก คุณไม่จำเป็นต้องเรียกใช้ Bash หากคุณถูกคอนโซลข่มขู่ คุณสามารถใช้โปรแกรมทั้งหมดจาก Far, Windows Commander ฯลฯ คุณเพียงแค่ต้องระบุเส้นทางไปยังไดเร็กทอรี bin ใน Windows 9x สิ่งนี้ทำได้ในไฟล์ autoexec.bat ใน NT ใน My Computer / Properties / Environment ถึง ตัวแปรสภาพแวดล้อม PATH จำเป็นต้องเพิ่มแทร็กลงในถังขยะ

สำหรับข้อมูลเพิ่มเติม ทำงานสบายใน Bash ฉันแนะนำให้คุณทำสิ่งต่อไปนี้: หากไดเร็กทอรี Cygwin ของคุณอยู่ใน c:\cygwin ให้สร้างไดเร็กทอรี c:\cygwin\root (mkdir /root) และเพิ่มบรรทัดลงในไฟล์ cygwin.bat ที่อยู่ใน ค:\ไซกวิน:

HOME=d:\cygwin\root

ใน ไดเรกทอรีรากคุณควรสร้าง 2 ไฟล์ที่ขึ้นต้นด้วยจุด: .inputrc และ .bashrc ทั้งสองไฟล์ถูกดำเนินการโดย Bash เมื่อเริ่มต้น .inputrc มีหน้าที่ตรวจสอบให้แน่ใจว่าคีย์ทั้งหมดทำงานได้อย่างถูกต้อง และ .bashrc มี ข้อมูลต่างๆ- ตามตัวอย่าง ฉันจะให้ .bashrc ของฉัน:

ส่งออก PS1="\w > "

ส่งออกเส้นทาง = ".:$ PATH"

นามแฝง ls = "ls --color"

นามแฝง untar = "tar xvf"

echo ยินดีต้อนรับสู่ CygWin!

บรรทัดแรกระบุเส้นทาง Bash นี่คือสิ่งที่ Unix ทำกับล่ามทั้งหมด ตัวอย่างเช่น หากคุณมีสคริปต์ hello.pl ในภาษา Perl และตัว Perl นั้นอยู่ใน /usr/bin คุณสามารถเขียนในบรรทัดแรก:

และเรียกใช้ดังนี้:

ด้วยวิธีนี้ คุณสามารถรันโปรแกรมได้โดยไม่ต้องกังวลว่าโปรแกรมจะเขียนอะไรลงไป

PS1 เป็นตัวแปรที่เก็บ Bash prompt ซึ่งเป็นคำเชิญให้ทำงานตามที่เรียกว่า \w คือไดเร็กทอรีปัจจุบัน

หลังจากเพิ่มสิ่งนี้ลงใน PATH แล้ว คุณสามารถดำเนินการได้ในแบบที่ผู้ใช้ Windows คุ้นเคย:

ต่อไป ฉันใช้คำพ้องความหมายหรือนามแฝง ตัวอย่างเช่น คำสั่ง ls โดยค่าเริ่มต้นจะไม่ให้สีเอาต์พุตขึ้นอยู่กับว่าไฟล์นั้นคืออะไร หากต้องการทำสิ่งนี้ คุณต้องรันด้วยสวิตช์ --color alias ls="ls" command --color" ฉันแก้ปัญหานี้แล้ว ตอนนี้ ls หมายถึง ls --color ไม่จำเป็นต้องใช้ชื่อคำสั่งเดียวกัน คุณสามารถทำได้ ll="ls --color" - และใช้ คำสั่ง new ll นี่คือสิ่งที่ฉันทำโดยประมาณเมื่อสร้างคำสั่ง untar สำหรับการแกะกล่อง คลังข้อมูล tarแทนที่จะพิมพ์ tar xvf ทุกครั้ง คุณยังสามารถวางท่อ (ท่อ สายพานลำเลียง) ในนามแฝง: alias sort_un_sort=" sort | uniq --count | sort -r "

ในความเป็นจริง ขอบเขตในการจัดสถานที่ทำงานที่นี่ไม่มีขีดจำกัด และตัวอย่างของฉันก็เรียบง่ายและดั้งเดิม นอกจากนี้ยังมีฟังก์ชัน คำสั่งแบบโต้ตอบใน .bashrc ฟังก์ชันที่เรียกใช้จากพรอมต์...

ฉันหวังว่าคุณจะได้รับแรงบันดาลใจในการทดลองกับ Cygwin ส่งความคิดเห็นของคุณไปที่