Cygwin: შესავალი. როგორ გაუშვათ Linux ბრძანება Windows Install cygwin windows 10-დან

მარტივი და, პრინციპში, ყველასთვის კარგი. მხოლოდ აქ არის Git-ის ვერსია, არ არის უახლესი, ყოველ შემთხვევაში, ჯერჯერობით. მაგრამ ეს საკმარისია Git-თან თქვენი ყოველდღიური მუშაობისთვის. თუ გადავხედავთ ვერსიას, ვნახავთ:

$ git -- ვერსია
git ვერსია 1.9.5.msysgit.0

მაგრამ თუ მოულოდნელად გჭირდებათ რაიმე უფრო ახალი, შეგიძლიათ დააინსტალიროთ Git Cygwin პაკეტებიდან. ამისათვის, რა თქმა უნდა, თქვენ უნდა დააინსტალიროთ თავად Cygwin. ამაში არაფერია რთული. მოდით წავიდეთ აქ და გადმოვწეროთ ინსტალერი. ეს არის ზუსტად ინსტალერი, ა არა განაწილება... ვინაიდან ის ჩამოტვირთავს ყველა პაკეტს ქსელიდან. გარდა ამისა, ის უნდა იქნას გამოყენებული დაინსტალირებული პაკეტების განახლებისთვის ან ახლის დასაყენებლად.

და ასე ვტრიალებთ

და გაუშვით ინსტალერი

გააკეთე ერთი, ორი, სამი

ნებისმიერ შემთხვევაში, თუ რამე დაგჭირდებათ მოგვიანებით, შეგიძლიათ ჩამოტვირთოთ და დააინსტალიროთ. როგორც ხედავთ, Git-ის ვერსია ამ პაკეტში არის 2.1.4, რომელიც აშკარად უფრო ახალია ვიდრე 1.9.5. მიუხედავად იმისა, რომ 2.3.1 უკვე ხელმისაწვდომია Linux-ისთვის და Mac OS X-ისთვის.

ყოველ შემთხვევაში, მე მოგცემთ კიდევ რამდენიმე სწრაფ სერვერს ჩამოსატვირთად

ეს ზოგადად მხოლოდ ზღაპარია

ჰოდა, სულ ეს დადგინდა

ჩვენ ვიწყებთ და ვხედავთ, რომ პირველივე დაწყებისას გვეუბნებიან სად მდებარეობს კონფიგურაციის ფაილები:

სურათი მარჯვნივ გვიჩვენებს, სად არის მომხმარებლის მთავარი დირექტორია. ეს არის ინსტალაციის საქაღალდე (ჩემს შემთხვევაში C: \ cigwin64), შემდეგ საქაღალდე სახლში, მაშინ საქაღალდე მომხმარებლის სახელითდა მასში უკვე არის კონფიგურაციის ფაილები .ბაშრც, .bash_profile, .inputrcდა .პროფილი.

ყველა ტერმინალის კონფიგურაცია კეთდება ამ ფაილებში. აქ არ აღვწერ, რადგან ეს დიდი ცალკე თემაა.

უბრალოდ აღვნიშნავ, რომ ძირითადი bash პარამეტრები შედგენილია ფაილში .bash_profile.

თქვენ ასევე შეგიძლიათ გაითვალისწინოთ, რომ მთავარი დირექტორია ასევე შეიცავს Git პარამეტრების ფაილს - .gitconfig

გარდა ამისა, შეგიძლიათ ტერმინალის გარეგნობის მორგება ზედა მარცხენა კუთხეში ტერმინალის ხატულაზე დაწკაპუნებით და ოფციების არჩევით.

თუ Cygwin-ისთვის რაიმე დამატებითი პაკეტი გჭირდებათ, შეგიძლიათ მოძებნოთ ისინი.

ყველა პარამეტრის შემდეგ, ჩემი Cygwin ტერმინალის ფანჯარა ასე გამოიყურება. და სწორედ იქ ვნახოთ დაინსტალირებული Git-ის ვერსია.

კარგად, აქ ჩვენ გვაქვს სრულფასოვანი Git. ახლა (სწრაფად) შევამოწმოთ მისი მუშაობა რეალურ საცავზე.

ყველაფერი მუშაობს.

P.S. კიდევ ერთხელ უნდა აღინიშნოს, რომ Cygwin-დან დაინსტალირებული msysGit-ისა და Git-ის გლობალური და სისტემური (გლობალური, სისტემური) პარამეტრები ინახება სხვადასხვა ადგილას და არ ერევა და არ გადაფარავს ერთმანეთს, ჩემი აზრით ეს მოსახერხებელია, რადგან ყველა Windows ხელსაწყოები ცდილობენ თავიანთი პარამეტრების ჩაწერას გლობალური პარამეტრების file.gitconfig-ში და ამან შეიძლება ზოგჯერ შექმნას დაბნეულობა და მოხერხებულობა.

ოდესმე გამოგიყენებიათ Windows ბრძანების ხაზი ლინუქსის შემდეგ? დიახ, ჩემთვის. ძალიან უჩვეულო. ბევრ გუნდს სხვადასხვა სახელი აქვს. მაგალითად, Windows-ზე ls-ის ანალოგი არის რეჟ. ადგილობრივ თარჯიმანს არგუმენტების გადმოცემის განსხვავებული სტილი აქვს. და ბევრი შესაძლებლობა, რომელსაც Linux უტილიტები გვაწვდიან, უბრალოდ არ არის. როგორ მივიღოთ მსგავსი ლინუქსის გარემო Windows-ში? ეს შეიძლება გაკეთდეს Cygwin-ის დაყენებით.

განლაგებული სისტემის გაცნობა

პირველ რიგში, cygwin-ს აქვს ნაგულისხმევად დაინსტალირებული საკუთარი ტერმინალის ემულატორი, რომელთანაც უფრო მოსახერხებელია მუშაობა, ვიდრე Windows ბრძანების ხაზი.

აქ გვაქვს პირველი პრობლემები. როგორც ხედავთ, Windows უტილიტები, მათ შორის cmd.exe, ბეჭდავს ტექსტს oem-866-ში და cygwin ემულატორი კითხულობს ტექსტს utf-8-ში. თუ კოდირებას გადართავთ 866 კოდის გვერდზე, მაშინ ამ ქმედების შედეგები კიდევ უფრო უარესია.


cygwin-მა ინტერპრეტაცია გაუკეთა რუსულენოვან უნიკოდის სახელს, როგორც 866-ში კოდირებულ სტრიქონს და საბოლოოდ გადაწყვიტა შეექმნა ახალი დირექტორია/სახლი / ╨Ф╨╝╨╕╤В╤А╨╕╨╣. ამიტომ ჯობია ყველაფერი ისე დავტოვოთ, როგორც იყო და, თუ ეს შესაძლებელია, cygwin-ის კომუნალური საშუალებებით გადავიდეთ. თუ თქვენ გჭირდებათ ბრძანების გარსის დაწყება ტერმინალის ემულატორის გარეშე, გაუშვით Cygwin.bat სერიული ფაილი.
ამ შემთხვევაში, cygwin დაინსტალირებულია C: \ cygwin64 \ საქაღალდეში. cygpath უტილიტა დაგვეხმარება გავარკვიოთ, თუ როგორ გარდაიქმნება ბილიკები unix-გზიდან Windows-მდე.
$ cygpath -w `pwd`
C: \ cygwin64 \ მთავარი \ დიმიტრი

$ cygpath -w /
C: \ cygwin64

$ cygpath "C: \ cygwin64"
/

$ cygpath "C: \ cygwin64 \ home \ დიმიტრი"
/ სახლი / დიმიტრი
და როგორ მივიღოთ წვდომა C: დისკზე, თუ ყველა ბილიკი გადათარგმნილია C: \ cygwin64 \.
Ეს მარტივია. / cygdrive დირექტორია შეიცავს სამონტაჟო წერტილებს, რომლებიც სახელით შეესაბამება Windows ტომებს.
$ cygpath "C: \"
/ Cygdrive / გ

$ cygpath -w / cygdrive / c / somedir
C: \ somedir
Cygpath ასევე წარმატებით თარგმნის ზარებს ამ სამონტაჟო წერტილში Windows ბილიკებზე.
სხვათა შორის, cygpath-ის მსგავსი უტილიტას არსებობა გვიჩვენებს, თუ რატომ უნდა გამოიყენოთ cygwin-თან ერთად, როცა ეს შესაძლებელია. თუ საჭიროა Java VM-ის გაშვება და მას ესმის მხოლოდ Windows-ის ბილიკები, თქვენ მოგიწევთ cygwin ბილიკის კონვერტაცია გაშვებისას:
$ java -jar `cygpath -w" /opt/some.jar "`
აქედან გამომდინარეობს, რომ ბევრი ლინუქსის სკრიპტის უბრალოდ აღება და გაშვება შეუძლებელია Windows-ში. ზოგჯერ საჭიროა სცადოთ სკრიპტის გადატანა. უფრო მეტიც, ბრძანების ხაზის ყველა კომუნალური პროგრამა არ იმუშავებს.

მეტი შესაძლებლობები

SSH

შეგიძლიათ განათავსოთ OpenSSH კლიენტი და სერვერი - ეს საშუალებას მოგცემთ დისტანციურად შეხვიდეთ bash shell-ზე, სხვა კომპიუტერიდან, ან თუნდაც ტელეფონიდან, მაგალითად, JuiceSSH-ის გამოყენებით. თქვენ ასევე მიიღებთ დისტანციურ წვდომას თქვენს ფაილებზე SFTP-ის საშუალებით (თუმცა Windows-ზე უფრო ადვილია SMB-ის საშუალებით ხელმისაწვდომი დირექტორიას გაზიარება).

პროგრამირება

ნაკრები მოიცავს ცნობილ შემდგენელებს, როგორიცაა Clang ან GCC, ინტერპრეტატორები Python-ისთვის, Perl-ისთვის, PHP-ისთვის, Ruby-ისთვის და ა.შ. შეგიძლიათ შექმნათ POSIX-თან თავსებადი პროგრამები Windows-ისთვის.

ტექსტის რედაქტორები

ინტერაქტიული რედაქტორები - vim, nano, emacs.
სკრიპტებში გამოსაყენებლად შესაფერისი არაინტერაქტიული რედაქტორები არის sed, awk.

შედეგი

თუ გამოტოვებთ ლინუქსის ძალას Windows-ში, შეგიძლიათ თავად დააინსტალიროთ ეს ელემენტი.

იმისათვის, რომ დაწეროთ განაცხადები ქვეშ Unixარ არის საჭირო მისი დაყენება (სიტყვის ქვეშ Unixყველაფერს განვმარტავ * ნიქსისისტემები). ეს განცხადება საკმაოდ პარადოქსულად ჟღერს, მაგრამ ნამდვილად ასეა და ამ სტატიაში შევეცდები დაგარწმუნოთ ამაში.

თუ არ ხართ ნამდვილი Unix გურუ, მაშინ ამ OS-სთვის რამდენიმე აპლიკაციის დასაწერად ან არსებული პროგრამების შედგენისთვის არ გჭირდებათ ინსტალაცია. Unix... ემულატორი შესანიშნავია ამ მიზნებისთვის. Unix... არსებობს მრავალი შესანიშნავი პროგრამა, რომელიც შესანიშნავად ასრულებს ამ ამოცანას, მაგალითად: UWin, MinGW, ციგვინიდა ა.შ.

მარტივი პროგრამების კომპილაციისთვის ასევე შესაფერისია MinGWმაგრამ ეს არ არის შესაფერისი უფრო რთული. უვინიარის უფრო მოწინავე ემულატორი, მაგრამ მისი ფუნქციონირება მნიშვნელოვნად ჩამორჩება სხვა უფრო პოპულარულ ემულატორის ციგვინი.

ციგვინიარის ძალიან ფუნქციონალური, უფასო ემულატორი Unix... იგი ნაწილდება როგორც ერთი ფაილი ( setup.exe), არ მოგატყუოთ ამ ფაილის ზომა ( ~ 300 კბ), ის თავისთავად არ არის ციგვინი, მაგრამ მხოლოდ მისი ინსტალერი. ინსტალაციის პროცესში ყველა საჭირო კომუნალური პროგრამა და ბიბლიოთეკა ცალკე უნდა გადმოიწეროს, ან წყაროდ უნდა მიუთითოთ ადგილობრივი დირექტორია, თუ უკვე გაქვთ საჭირო ფაილები.

ციგვინიმოიცავს უამრავ სხვადასხვა კომუნალურ და ბიბლიოთეკას, რომელთაგან ბევრი ალბათ არასდროს დაგჭირდებათ, მაგრამ ინსტალაციის დროს ციგვინისაშუალებას გაძლევთ აირჩიოთ მხოლოდ თქვენთვის საჭირო კომპონენტები. ამრიგად, თუ მხოლოდ პროგრამის შედგენა გსურთ, მაშინ მხოლოდ კომპილერის დაყენება დაგჭირდებათ Gcc, საჭირო ბიბლიოთეკების ნაკრები და კომუნალური პროგრამა გააკეთოს... პირადად მე დავაყენე ყველა აპლიკაცია როგორც ციგვინიაადვილებს მათ „მოშორებას“ ნებისმიერ დროს. რეალურად ციგვინიშედგება მხოლოდ ერთი ფაილისგან cygwin1.dll, ყველაფერი დანარჩენი არის პროგრამული პაკეტები GNUსპეციალურად ხელახლა შედგენილი სამუშაოდ ციგვინი.



მგონი ინსტალაციასთან დაკავშირებით არანაირი პრობლემა არ ყოფილა. ახლა მოდით შევხედოთ რამდენიმე დახვეწილობას დაყენებისა და გამოყენებისას. ციგვინი... ინსტალაციის შემდეგ, საქაღალდის სტრუქტურა, რომელშიც პროგრამა იყო დაინსტალირებული, სტრუქტურას დაემსგავსება * ნიქსისისტემები. Გაქცევა ციგვინი, უბრალოდ გაიქეცი BAT ფაილი, cygwin.batრომელიც მდებარეობს root დირექტორიაში ციგვინი(ძირითადი დირექტორიაში ჩვენ ვგულისხმობთ საქაღალდეს, სადაც ციგვინი, შემდეგში დავიწყებთ დათვლას ამ დირექტორიადან). გაშვების შემდეგ BAT ფაილითქვენ წარმოგიდგენთ კონსოლის აპლიკაციას. ეს არის ერთი ბაშ, რომელიც არის დამაკავშირებელი Unixდა Windows. ბაშარ არის მხოლოდ ანალოგი cmd.exe. ბაშარის სრულფასოვანი პროგრამირების ენა, რომელშიც შეგიძლიათ დაწეროთ სკრიპტები სხვადასხვა დავალების შესასრულებლად. ეს არის ის, რაც განასხვავებს მას ფუნდამენტურად cmd.exe (command.com).

მოწვევა ბაშ, პრაქტიკულად არ განსხვავდება cmd.exe (~ - ნიშნავს თქვენს მთავარ დირექტორიას). არ არსებობს ლოგიკური დისკები (A, C, D და ა.შ). / „ასევე გახსოვდეს, რომ საქმე აქ მნიშვნელოვანია, ასე რომ და ა.შდა და ა.შ- ორი სრულიად განსხვავებული დირექტორია. შევეცადოთ გადავიდეთ root დირექტორიაში, ამისათვის თქვენ უბრალოდ უნდა შეასრულოთ თქვენთვის ნაცნობი ბრძანება " cd /" (~ უნდა შეიცვალოს / ). შემდეგ ჩაწერეთ ბრძანება " რეჟ", ან" ls"ძირითადი დირექტორიაში შიგთავსის სანახავად. ვფიქრობ, ახლა გესმით რა არის root დირექტორია.





მე არ შემიძლია ამ სტატიის ყველა ბრძანების აღწერა, ამიტომ მოდით პირდაპირ გადავიდეთ ყველაზე მნიშვნელოვან ეტაპზე, რომლისთვისაც ჩვენ რეალურად დავაინსტალირეთ ციგვინი... ვცადოთ რაიმე პროგრამის შედგენა. კომპილაციისთვის მე ავირჩიე პროგრამა Htop(http://freshmeat.net/projects/htop/), ეს არის სტანდარტული პროგრამის გაუმჯობესებული ვერსია ზედარომელიც კონსოლზე დაფუძნებული პროცესის მენეჯერია. პირველი ნაბიჯი არის არქივის გახსნა. თქვენ შეგიძლიათ ამის გაკეთება, როგორც ეს Windowsდა პირდაპირ ციგვინი... ვ ციგვინიეს კეთდება ბრძანებით:

tar zxf htop-0.6.tar.gz

რა თქმა უნდა, ამ მომენტში თქვენ უნდა იყოთ იმავე დირექტორიაში, სადაც არქივი მდებარეობს. htop-0.6.tar.gz... გახსნის შემდეგ გადადით შექმნილ დირექტორიაში htop-0.6და შეასრულეთ სამი სტანდარტული ბრძანება განაცხადის შედგენისთვის.

./კონფიგურაცია
გააკეთოს
დააინსტალირეთ



სულ ესაა, შედგენა დასრულებულია. მოგერიდებათ გუნდის დაკომპლექტება htopდა აღფრთოვანებული ვარ შედეგით. შედეგად მიღებული "EXE" schnick "არის დირექტორიაში / usr / ადგილობრივი / bin /.



ახლა შევეცადოთ დავწეროთ მარტივი პროგრამა ( Გამარჯობა მსოფლიო) და შეადგინეთ იგი Gcc... პირველ რიგში, ჩვენ უნდა დავწეროთ თავად პროგრამა, ჩვენ ამას გავაკეთებთ პროგრამის გამოყენებით კატა... შეიყვანეთ ბრძანება კატა ახალი.გ, სად ახალი.გფაილის სახელი, რომელიც შეიცავს წყაროს კოდს. ბრძანების შესრულების შემდეგ ჩაწერეთ შემდეგი კოდი:

#შეიცავს
int main () (
printf ("Hello World");
დაბრუნება 1 ;)

კოდის შეყვანის შემდეგ დააჭირეთ Ctrl + C... ახლა მოდით შევადგინოთ იგი Gcc... ეს კეთდება ბრძანებით:

Gcc new.c -o new.exe

იმავე დირექტორიაში, სადაც ახალი.გგამოჩნდება სხვა ფაილი - new.exe... გაშვების შემდეგ ნახავთ მოსალოდნელ წარწერას " Გამარჯობა მსოფლიო".



ამით შეიძლება სტატიის დასრულება, მაგრამ მე გადავწყვიტე უფრო მეტი გითხრათ გრაფიკული გარემოს შესახებ. ციგვინირათა მოგვიანებით არ დავუბრუნდეთ ამ თემას. ვფიქრობ, თქვენ შენიშნეთ ეს პაკეტების დაყენებისას ციგვინიგვთავაზობს ჭურვების დაყენებას გნომიდა KDE... სინამდვილეში, ეს არ არის მხოლოდ ჭურვები, არამედ მათი ბიბლიოთეკები, რომლებიც აუცილებელია აპლიკაციების გასაშვებად. მაგალითად, ცნობილი რედაქტორის გრაფიკული ვერსია emacs, პირდაპირ ქვეშ გაიქცევა Windowsთითქოს არის win32 აპლიკაცია... იმისათვის, რომ უსაფუძვლო არ იყოს, მოდით ვცადოთ ეს Emacsგაშვება. ეს კეთდება ბრძანებით:

ქემაკები

აი რას ვნახავთ.



როგორც ხედავთ, ყველაფერი იწყება და კარგად მუშაობს. მაგრამ ეს ყველასთვის ასე არ არის. გრაფიკული გარემო ძალიან განწყობილია. ამიტომ, თქვენ უნდა შეძლოთ მისი კონფიგურაცია. დაყენების დოკუმენტაცია X სერვერიინტერნეტში ბევრია და ადვილად იპოვით.

დასასრულს მინდა შეგახსენოთ, რომ რაც არ უნდა კარგი ციგვინი, ეს უბრალოდ ემულატორია. და როგორც მოგეხსენებათ, ასლი არ შეიძლება იყოს ორიგინალზე უკეთესი, ასე რომ, თუ გსურთ გახდეთ ნამდვილი Unix გურუ, არ დაიზაროთ სრულფასოვანი unix სადისტრიბუციო ნაკრების დაყენება. ჩემი აზრით, ჯობია დავიწყოთ Linux... ყველა სახის განაწილებიდან გირჩევთ Slackware.

კროს-პლატფორმული აპლიკაციების შემუშავება ადვილი არ არის. კერძოდ, ეს ადვილი არ არის Windows-ის წყალობით, რომელშიც ყველაფერი არ ჰგავს ხალხს. აქ არც ნორმალური ტერმინალი გაქვს, არც ნორმალური კონსოლის უტილიტები, საერთოდ არაფერი! ხელახლა რომ შევხვდი ამ პრობლემას, გადავწყვიტე Cygwin ისევ გამომეცადა. და თქვენ იცით, თურმე ის ნამდვილად აქცევს Windows-ს ისეთ რამეს, რომლის გამოყენებაც თითქმის შეგიძლიათ!

შეგიძლიათ ჩამოტვირთოთ Cygwin ინსტალერი აქედან. სინამდვილეში, ეს არ არის იმდენად ინსტალერი, რამდენადაც პაკეტის მენეჯერი, რომელიც, გაშვებისას, უბრალოდ გეკითხებათ, რომელი პაკეტების დაყენება გსურთ. Ბიჭები! ჯგუფის მენეჯერი! ვინდოუსისთვის!ინსტალერი ქმნის ქეშს დირექტორიაში, საიდანაც ის ამოქმედდება. ამიტომ, სანამ დაიწყებთ, უმჯობესია სამუშაო მაგიდაზე შექმნათ რაიმე სპეციალური საქაღალდე და ჩადოთ მასში ინსტალერი.

რა პაკეტები, ჩემი აზრით, უნდა მიეწოდოს:

  • openssh- მასთხევი;
  • ინეტუტილები, ბინდ-უტილს, პინგი, ncდა nc6- მასთხევი;
  • wget, დახვევა- მასთხევი;
  • პითონიდა/ან პითონი 3- ვფიქრობ, ეს აუცილებელია;
  • ვიმ, გვიმ- მცირე ფაილების რედაქტირებისთვის არ იქნება ზედმეტი;
  • დიფუტილები, pwgen, გახსენით, rzync- იყოს ისინი ყოველი შემთხვევისთვის;
  • gccდა/ან რეკვა, სმაკე, გდბ- საჭიროების შემთხვევაში;
  • ეკრანი, tmux, მკ- მოყვარულთათვის;
  • გიტ- ქვეშ ძალიან დიდიკითხვა, იხილეთ ქვემოთ;

Შენიშვნა!პიპის Cygwin-ში დასაყენებლად, მონიშნეთ ყუთი python-setuptools და/ან python3-setuptools პაკეტის გვერდით. ტერმინალში დაყენების შემდეგ თქვით:

easy_install-2.7 პუნქტი

easy_install-3.4 პუნქტი

... პითონის რომელი ვერსია ან ვერსიები გაქვთ დაინსტალირებული.

ასე რომ, Cygwin-ის დაყენების შემდეგ, შეგიძლიათ გახსნათ ტერმინალი:

Ბიჭები! ჩვეულებრივი ტერმინალი, რომელიც ზომავს, საშუალებას გაძლევთ დააკოპიროთ და ჩასვათ ტექსტი და ეს არის ის! ვინდოუსისთვის!ყველა ნაცნობი და ნაცნობი ბრძანებით id, ls, pwd, cat, ssh, scp და სხვა. ადამიანის გარემოსთან - .bashrc, ~ / .ssh / config და ა.შ. გარდა ამისა, სამარცხვინო PowerShell-ისგან განსხვავებით, Cygwin არ ათრევს .NET Framework-ს. ჩვენ შეგვიძლია რამდენიმე ტერმინალის გახსნაც კი და მათ შორის გადართვა Ctrl + Tab კომბინაციის გამოყენებით. ეს თითქმის ჩანართებს ჰგავს! ნათელია, რომ კარგი ძველი Alt + Tab ასევე მუშაობს.

ზემოთ, მე გირჩიე Git-ის დაყენებაზე უარის თქმა და აი რატომ. ფაქტია, რომ Cygwin-ში შესამჩნევად ნელდება. გირჩევთ გაუშვათ ბრძანებები:

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256

მაგრამ ეს, სამწუხაროდ, სრულად არ წყვეტს პრობლემას. ასე რომ, დიდ პროექტზე, git status ბრძანება შეიძლება იმუშაოს 20 წამის განმავლობაში, Linux-ზე კი ბრძანება მყისიერად შესრულდება ზუსტად იმავე საცავზე.

რა არის CYGWINკრის კასპერსკის სტატიის შემდეგ „როგორ შევქმნათ Unix Windows-დან“ CG # 3-ში, დათარიღებული 01/23/01, მე მინდოდა Windows-ის მომხმარებლებს ცოტა მეტი მეთქვა იმის შესახებ, თუ რა არის Cygwin. დიდი ხანია ვიყენებ და ვინდოუსში ეფექტურად ვერ ვმუშაობ Cygwin-ის დაყენების გარეშე.

სიტყვა Cygwin შედგება ორი კომპონენტისგან: Cygnus არის კომპანიის სახელი და Windows, მაგრამ არასწორი იქნება იმის თქმა, რომ Cygwin-ში ყველაფერს Cygnus-ის ბიჭები წერენ. Cygwin არის Windows-ის პორტი Gnu-ს კომუნალური პროგრამებისა და Gnu (www.gnu.org) არის უფასო პროგრამული უზრუნველყოფის ფონდის (FSF) პროექტი, რომელიც მიზნად ისახავს შექმნას არაკომერციული Unix სისტემა, რომელიც არავის ეკუთვნის და თავისუფალია ლიცენზიებისგან, რომლებიც ზღუდავს ლიცენზიას. პროგრამული უზრუნველყოფის განაწილებისა და მოდიფიკაციის თავისუფლება. ამ პროექტის ფარგლებში, UNIX-ის თითქმის ყველა სტანდარტული კომუნალური პროგრამა გადაწერილია. FSF-ის სამი ყველაზე მნიშვნელოვანი წვლილი არის gcc (Gnu C შემდგენელი, ან Gnu Compiler კოლექცია), Bash (Bourne Again Shell) და Emacs. Linux არ იარსებებს gcc-ის გარეშე და Bash არის სტანდარტული გარსი მრავალი თანამედროვე Unix სისტემისთვის. გამოცდილი ხალხი ამბობს, რომ პირველი, რასაც sysadmins აკეთებენ კომერციული Unix s-ის დაყენების შემდეგ, არის Gnu უტილიტების დაყენება. ძირითადად, GNU და FSF თავისთავად ვრცელი თემაა და თავისთავად იმსახურებს დეტალურ სტატიას.

Gnu utilities-ის მთელი ნაკრები არის მცირე (ჩვეულებრივ) პროგრამების ნაკრები, რომელიც მოიცავს იმ ამოცანების უმეტეს ნაწილს, რომლებსაც ყოველდღიურად აწყდება Unix სისტემის მომხმარებელი (და არა მხოლოდ Unix), თითოეული ასეთი პროგრამა ასრულებს ერთ დავალებას და კარგად ასრულებს მას. შემდეგ ეს პროგრამები შეიძლება გაერთიანდეს სხვადასხვა პრობლემების გადასაჭრელად.

Gnu-ს გარდა Unix-ის სხვა პლატფორმებზე პორტირების მცდელობები არაერთხელ განხორციელდა, რაც, სხვათა შორის, მოწმობს მათ პოპულარობას.

აღსანიშნავია DOS - DJGPP უტილიტების პორტირების პროექტი. გადადით http://www.delorie.com/djgpp/-ზე, მართლა საინტერესოა.

Cygnus-მა არ შეადგინა თითოეული პროგრამა ცალ-ცალკე, ყოველ ჯერზე იბრძოდა ერთი და იგივე პრობლემების გადასაჭრელად, სამაგიეროდ, ერთგვარი "გასკეტი" დაიწერა GNU უტილიტასა და ოპერაციულ სისტემას შორის. ეს შიმ, cygwin1.dll (ვერსია 1), უზრუნველყოფს UNIX სისტემური ზარების ემულაციას, რაც საშუალებას გაძლევთ შეადგინოთ და გაუშვათ Unix პროგრამები წყაროს კოდის მცირე მოდიფიკაციით ან საერთოდ არ შეცვლით. ძირითადად, ეს dll არის თავად Cygwin და ყველაფერი დანარჩენი არის GNU პროგრამული პაკეტები, რომლებიც შედგენილია Cygwin-თან სამუშაოდ.

gcc-ისა და ბიბლიოთეკების არსებობა საშუალებას იძლევა მრავალფეროვანი აპლიკაციების პორტირება Windows-ზე და Cygwin-ს სრულყოფილ პლატფორმად აქცევს - ზოგჯერ შეგიძლიათ იპოვოთ გამოთქმა "Cygwin პლატფორმა". Cygwin-ის პირველი ბეტა ვერსიების შემდეგ, სხვადასხვა ადამიანებმა Cygwin-ის ქვეშ შეადგინეს ის, რაც აკლდათ Windows-ის პირობებში და თანდათან გაიზარდა Cygwin-ის სტანდარტული დისტრიბუცია, მათ შორის ამ თვითნაკეთი კომპილაციების მეშვეობით. მაგალითად, ბეტა 20 ვერსიის დროს ცალკე მომიწია vim რედაქტორის გადმოწერა, მაგრამ ახლა ის დაინსტალირებულია მთელ კომპლექტთან ერთად.

როგორ დააინსტალიროთ ეს ყველაფერი

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 და მისი უფროსი ძმა sh არის წებო, რომელიც აკავშირებს Unix სისტემას, მას სამართლიანად შეიძლება ეწოდოს პროგრამირების ენა, ანუ შეგიძლიათ დაწეროთ მასზე.

რამდენიმე ძირითადი ბრძანება და მათი ანალოგი Windows-ში

ls = dir - დირექტორიაში შიგთავსის ნახვა;
cd = chdir - სხვა დირექტორიაზე გადასვლა;
cp = copy - ფაილის კოპირება;
mv = mv - ფაილის გადატანა / გადარქმევა;
rm = del - ფაილის წაშლა;
mkdir = mkdir - დირექტორიას შექმნა;
pwd - მიმდინარე დირექტორიას ჩვენება.

დაიმახსოვრეთ - დიდი "A" აღარ უდრის პატარა "a"-ს, \ სიმბოლო ახლა უნდა შეიცვალოს /-ით. Cygwin-ის cd / ბრძანება მიგიყვანთ იმავე დირექტორიაში, სადაც bin, usr და ა.შ. Unix-ში ზემოთ არაფერია /, მაგრამ Cygwin-ში, Windows-ის ტიხრებზე გადასასვლელად, შეგიძლიათ გამოიყენოთ ბრძანება cd // c / (cd // d / MyDir და ა.შ.).

Bash-ის ერთ-ერთი სუფთა მახასიათებელია ავტომატური დასრულება. მოდით შევქმნათ რამდენიმე ფაილი cat ბრძანებით:

cat> first_file ENTER

შეიყვანეთ რაღაც შემდეგ Ctr-C,

და იგივე სხვა ფაილისთვის:

cat> second_file ENTER.

დარწმუნდით, რომ ფაილები არსებობს:

ახლა ჩაწერეთ ნებისმიერი ბრძანება, როგორიცაა ls და პირველი ფაილის პირველი ასო. დააჭირეთ TAB. Bash დაამატებს თავად ფაილის სახელს. თუ ფაილები იწყება იგივე, მაგალითად file_one და file_two, Bash მხოლოდ დაუმატებს file_-ს და დაელოდება თქვენ შეიყვანოთ სხვა ასო, რათა აღმოფხვრას გაურკვევლობა.

ზოგიერთი კომუნალური პროგრამის გამოყენების რამდენიმე მაგალითი.

ვთქვათ, თქვენ გაქვთ ტექსტური ფაილი in.txt. თქვენ შეგიძლიათ დაითვალოთ მასში სიტყვების რაოდენობა ასე:

ხაზების რაოდენობა:

იპოვეთ ლარის სიმბოლოების თანმიმდევრობის შემცველი ხაზები:

grep "Larry" in.txt

დაყავით ხაზები სიტყვებად, შეცვალეთ სივრცეები ხაზის ბოლო სიმბოლოებით:

კატა in.txt | gawk "gsub (" + "," \ n ")"

gawk ბრძანება "gsub (" + "," \ n ")" ნიშნავს ერთი ან მეტი ადგილის ("+") ჩანაცვლებას ხაზის ბოლოს სიმბოლოთი ("\ n").

გააკეთე იგივე, მაგრამ მოსახერხებელი ხედით (PageUp, PageDown, გასვლა - q)

კატა in.txt | gawk "gsub (" + "," \ n ")" | ნაკლები

ხაზების (სიტყვების) დალაგება:

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | ნაკლები

ამოიღეთ იდენტური ხაზები (სიტყვები):

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | uniq | ნაკლები

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | uniq | wc -l

ამოიღეთ იდენტური ხაზები (სიტყვები), მათი რიცხვის დათვლა:

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | uniq --თვლა | ნაკლები

ხელახლა დალაგება, რითაც მიიღება ტექსტის სიხშირის ლექსიკა:

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | uniq --თვლა | დალაგება -r | ნაკლები

იგივე, შედეგების გამოტანით ტექსტურ ფაილში:

კატა in.txt | gawk "gsub (" + "," \ n ")" | დალაგება | uniq --თვლა | sort -r> out.txt

იგივეა, შუალედური შედეგებით შენახული intermediate.txt ფაილში:

კატა in.txt | gawk "gsub (" + "," \ n ")" | tee intermediate.txt | დალაგება | uniq --თვლა | დალაგება -r | ნაკლები

ახლა, Bash-ის ძალის გამოყენებით, შეგიძლიათ გაიმეოროთ ეს ბრძანება მრავალი ფაილისთვის. ჩაწერეთ სკრიპტი პირდაპირ კონსოლში, გადადით ახალ სტრიქონზე, როგორც ის დაბეჭდილია სტატიაში, - Bash მიხვდება, რომ ბრძანება არ არის დასრულებული და შეცვლის მოთხოვნას ">"-ზე:

ფაილისთვის * .txt; კეთება

cat $ ფაილი | gawk "gsub (" + "," \ n ")" | დალაგება | uniq --თვლა | sort -r> $ file.out

Ამგვარად. მარტივი ამოცანები - მარტივი გადაწყვეტილებები.

იმის გასარკვევად, თუ როგორ მუშაობს ბრძანება, შეგიძლიათ გაუშვათ ის --help გადამრთველით, ან გამოიყენოთ ბრძანება man (manual) - man awk, man grep. თქვენ შეგიძლიათ დატოვოთ კაცი q-ით.

კიდევ რა არის CYGWIN-ში

შემდგენელი

მარტივი (ხალხი ამბობს - 1 დღიანი ტრენინგი) პროგრამირების ენა სიტყვების დამუშავებისთვის, Perl-ის ერთ-ერთი წინაპარი.

ნაკადის რედაქტორი

პარსერის გენერატორი C-ში

პარსერის გენერატორი C-ში

Პროგრამირების ენა. სინამდვილეში, Gnu-ს არ აქვს პირდაპირი კავშირი კომუნალურ მომსახურებებთან; მას გარკვეული პერიოდის განმავლობაში Sun-ი უჭერდა მხარს. შეგიძლიათ გააკეთოთ cd /usr/share/tk8.0/demos და გაუშვათ ვიჯეტი -./ვიჯეტი პროგრამა. თქვენ ნახავთ 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 "a, Windows Commander"-დან და ა.შ., თქვენ უბრალოდ უნდა დაარეგისტრიროთ ბილიკები ბინ დირექტორიაში. Windows 9x-ზე ეს კეთდება autoexec.bat ფაილში, NT-ზე My Computer/Properties/Environment-ში, დაამატეთ ბილიკის ბილიკი PATH გარემოს ცვლადში.

Bash-ში უფრო მოსახერხებელი მუშაობისთვის, გირჩევთ, გააკეთოთ შემდეგი: თუ თქვენი Cygwin დირექტორიები არის c: \ cygwin, შექმენით დირექტორია c: \ cygwin \ root (mkdir / root) და დაამატეთ ხაზი cygwin.bat ფაილს. , რომელიც არის c: \ cygwin:

HOME = d: \ cygwin \ root

root დირექტორიაში შექმენით 2 ფაილი, დაწყებული წერტილით: .inputrc და .bashrc. ორივე ფაილი შესრულებულია Bash-ის მიერ გაშვებისას, .inputrc პასუხისმგებელია ყველა კლავიშის სწორად მუშაობის უზრუნველსაყოფად და .bashrc შეიცავს სხვადასხვა ინფორმაციას. მაგალითად მე მივცემ ჩემს .bashrc:

ექსპორტი PS1 = "\ w>"

ექსპორტი PATH = ".: $ PATH"

მეტსახელი ls = "ls --ფერი"

მეტსახელი untar = "tar xvf"

echo კეთილი იყოს თქვენი მობრძანება CygWin-ში!

პირველი ხაზი განსაზღვრავს Bash გზას. ეს არის ის, რასაც Unix აკეთებს ყველა თარჯიმანთან. მაგალითად, თუ თქვენ გაქვთ Perl hello.pl სკრიპტი და თავად perl / usr / bin, შეგიძლიათ დაწეროთ პირველ ხაზზე:

და გაუშვით ასე:

ამრიგად, თქვენ შეგიძლიათ გაუშვათ პროგრამები ისე, რომ არ ინერვიულოთ იმაზე, თუ რაშია ისინი დაწერილი.

PS1 არის ცვლადი, რომელიც ინახავს Bash მოთხოვნას, სამუშაოს მოთხოვნას, როგორც მას ასევე უწოდებენ. \ w არის მიმდინარე დირექტორია.

ამის PATH-ში დამატების შემდეგ, შეგიძლიათ გააკეთოთ, როგორც ამას Windows-ის მომხმარებლები სჩვევიათ:

შემდეგ ვიყენებ სინონიმებს, ან მეტსახელს "s. მაგალითად, ls ბრძანება ნაგულისხმევად არ აფერადებს თავის გამომავალს იმისდა მიხედვით, თუ რა ფაილებია, ამისათვის თქვენ უნდა გაუშვათ --color გადამრთველით. ეს მოუხერხებელია. ბრძანება მეტსახელად ls =" ls --color "მე ვაგვარებ ამ პრობლემას. ახლა ls ნიშნავს ls --color. არ არის საჭირო იგივე ბრძანების სახელის გამოყენება, შეგიძლიათ გააკეთოთ ll =" ls --color "- და გამოიყენოთ ახალი ll ბრძანება. ასე ვაკეთებ untar ბრძანების შექმნისას tar არქივების გასახსნელად, ყოველ ჯერზე tar xvf აკრეფის ნაცვლად. მილები ასევე შეიძლება განთავსდეს მეტსახელად: alias sort_un_sort = "sort | uniq --თვლა | დალაგება -r".

ფაქტობრივად, სამუშაო ადგილის მოწყობის სფერო უსასრულოა, ჩემი მაგალითები კი პრიმიტიული და მარტივი. ასევე არის ფუნქციები, ინტერაქტიული ბრძანებები .bashrc-ში, ფუნქციები, რომლებიც გაშვებულია სწრაფი ...

იმედი მაქვს გაგიჩნდებათ Cygwin-თან ექსპერიმენტების სურვილი. გამოაგზავნეთ თქვენი კომენტარები

გააზიარე ეს