Açıq
Yaxın

Cygwin nədir. Cygwin-in quraşdırılması və konfiqurasiyası Bash cygwin-də komanda tarixçəsini necə saxlamaq olar

Bu məqalə iki nəfər üçün nəzərdə tutulub
insan tipləri: başa düşməyənlər üçün
Linux, lakin onu mənim kompüterimdə quraşdıra bilmirəm
(müxtəlif səbəblər var) və ya olanlar üçün
pinqvinlər haqqında bir az bilir 🙂 və buna etiraz etməz
onları "neytral" olaraq tanıyın
ərazi, yəni Win98/NT-də.

Sayt artıq Cygwin-i ən yaxşısı kimi təsvir edib
Linux emulatorunu çıxarın, amma deyildi
Cygwin-in quraşdırılması, konfiqurasiyası və səhvləri haqqında heç nə yoxdur.
Buyurun mən sizə bu haqda danışacağam :) Əslində, əgər
Fikir verin, Cygwin ümumiyyətlə emulyator deyil, amma
sadəcə Win32 üçün yazılmış Linux paylanmasıdır 😉

Aşırı gəzməyi dayandırın... Gəlin http://www.cygwin.com saytına gedək,
Oradan setup.exe quraşdırma proqramını götürürük. Ona
əvvəlcədən tərtib edilmişləri çəkəcəyik
binaries (exe uzantısında), rpm-i xatırlayırsınız?
😉 Tərtibatçının saytından və ya güzgüdən.
Mən bu proqramı yalnız yükləmək üçün Tövsiyə edirəm
Bu faylları əl ilə quraşdıracağıq, çünki Əgər
setup.exe istifadə edərək quraşdırırsınız, gcc işləmir - şək
bilir niyə... Bəlkə tərtibatçılar artıq nəzərə alıblar
bu bir səhvdir, amma mən hələ bu haqda bilmirəm...

Beləliklə, bütün əsas ikili faylları yükləyin (mənbələr
yükləməyinizə ehtiyac yoxdur) və bir neçə
əlavə - wget, vaşaqdan kim imtina edərdi,
BitchX, Python :) Amma Perl yükləmək lazım deyil... Məndə var
ActivePerl var idi - inkişaf etmiş Perl emulyatoru. Yüklə
http://www.acriveperl.com saytından əldə etmək olar.
Heç bir nasazlıq müşahidə etmədim :) (Mən sizə necə olduğumu söyləyəcəyəm
cygwin-də həyata keçirdi).

Parametrlər

Və eyni "etc" qovluğundakı "qrup" faylında:
kök:x:0:kök

Şifrənizi şifrələmək istəyirsinizsə, və
Mənim nümunəmdə etdiyim kimi "parol" deyil,
Perl skripti yazın

#!/usr/bin/perl
chomp ($pass = );
çap $crypt("SA",$pass);

Harada, SA - şifrələmə üçün istifadə ediləcək salta
parol... onu təsadüfi edə bilərsiniz, amma
Bu məqalə mövzudan kənar olacaq.

İndi "c:\cygwin\cygnus.bat" faylını redaktə edin -
onda biz PATH-i dəyişdiririk, sadəcə yolu dəyişdiririk
emulator və login.exe faylına gedən yol. başlayaq
fayl.

Gəlin daxil olaq: ​​mənim nümunəmdə "root": "parol".
Beləliklə, emulyatorun özünə daxil olduq. mən yox
Daxiletmə sorğusunu bəyəndim. Gəlin onu dəyişək
- dəyişən PS1. "c:\cygwin\etc\profile" faylını açın (yaradın)
və orada yazın:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
DOSDRIVE-ı ləğv edin
DOSDIR-i ləğv edin
TMPDIR-i ləğv edin
TMP ayarını ləğv edin
ixrac HOSTNAME=test
PS1="[\u@$HOSTNAME \W]# "
LOGNAME=$USER
PATH PS1 İSTİFADƏÇİ LOGNAMESİ ixrac edin

Budur... Sonra yenidən daxil olacağıq və hər şey aktiv olacaq
yer və gözəl :) Dəvət belə olacaq: # - standart, Linux :)

Budur, ilkin quraşdırma tamamlandı.
Xidmətlərin quraşdırılmasına keçək :)

Standart çatdırılmaya thuja hucha daxildir
xidmətlər. Onları bu şəkildə işlətməlisiniz:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (ftpd üçün nümunə).

SSHD-ni özünüz quraşdırmaq daha yaxşıdır - bir partlayışla işlədi və
Mən SecureCRT-dən sürürəm, qanuni 127.0.0.1 -
tamam fərqli görünüş :)

TCP/IP ilə işləməyə gəlincə, mənim heç bir mənfi cəhətim yoxdur
Diqqət etdim :) Hər şey birləşir və kimi işləyir
zəruri...

İndi bəzi məsləhətlər:

1) BÜTÜN disklərə giriş açıqdır. Belə ol
ehtiyatlı. Məsələn, d: sürücüsü burada yerləşir -
"/cygdrive/d".

2) Perl ilə əlaqədar olaraq, fayla simvolik əlaqə yaradın
Perl.exe, məsələn, belə ki, "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) Əgər nədənsə yoxdursa
Linux tətbiqinin quraşdırılması -
sadəcə C kodunu düzəldin. Ola bilər,
uğur qazanacaq.. (belə tərtib etdim
micq).

4) http://www.cygwin.com saytında Cygwin yeniləmələrini izləyin
- binalar tez-tez yenilənir.

Suallar? Mənə e-poçtla yazın - çalışacağam
kömək...

Çarpaz platforma tətbiqlərini inkişaf etdirmək asan deyil. Hər şeyin insanlardakı kimi olmadığı Windows sayəsində xüsusilə çətindir. Burada nə normal terminalınız var, nə də normal konsol yardımçıları, heç nə yoxdur! Bir daha bu problemlə üzləşdim, Cygwin-i yenidən sınamağa qərar verdim. Təsəvvür edin ki, o, həqiqətən Windows-u demək olar ki, istifadə edə biləcəyiniz bir şeyə çevirir!

Cygwin quraşdırıcısını buradan yükləyə bilərsiniz. Əslində, bu, işə salındıqda hansı paketləri quraşdırmaq istədiyinizi birbaşa soruşan paket meneceri kimi bir quraşdırıcı deyil. Uşaqlar! Paket Meneceri! Windows altında! Quraşdırıcı işə salınacağı qovluqda bir keş yaradır. Buna görə də, başlamazdan əvvəl, iş masasında bəzi xüsusi qovluq yaratmaq və quraşdırıcını ora qoymaq daha yaxşıdır.

Məncə hansı paketləri quraşdırmaq lazımdır:

  • openssh- masthev;
  • intutils, bind-utils, ping, ncnc6- masthev;
  • wget, qıvrmaq- masthev;
  • piton və/və ya python3— Məncə, bu mütləq olmalıdır;
  • vim, gvim— kiçik faylları redaktə etmək üçün artıq olmaz;
  • diffutils, pwgen, açın, rzync- hər ehtimala qarşı olsunlar;
  • gcc və/və ya cingilti, cmake, gdb- lazım olduqda;
  • ekran, tmux, mc- sevgililər üçün;
  • git- altında çox böyük sual, aşağıya baxın;

Qeyd! Cygwin-də pip quraşdırmaq üçün python-setuptools və/və ya python3-setuptools paketinin yanındakı qutuyu işarələyin. Quraşdırıldıqdan sonra terminalda deyin:

asan_quraşdırma-2.7 pip

asan_quraşdırma-3.4 pip

..., quraşdırdığınız Python versiyasından və ya versiyalarından asılı olaraq.

Beləliklə, Cygwin quraşdırdıqdan sonra bir terminal aça bilərsiniz:

Uşaqlar! Ölçülərini dəyişən adi terminal sizə mətni kopyalayıb yapışdırmağa imkan verir, vəssalam! Windows altında! Bütün tanınmış və tanış əmrlərlə id, ls, pwd, cat, ssh, scp və s. İnsan mühiti ilə - .bashrc, ~/.ssh/config və s. Üstəlik, PowerShell adlı biabırçı sındırmadan fərqli olaraq, Cygwin .NET Framework boyunca sürüklənmir. Hətta Ctr + Tab qısa yolundan istifadə edərək bir neçə terminal aça və onlar arasında keçid edə bilərik. Demək olar ki, nişanlar kimidir! Əlbəttə ki, köhnə yaxşı Alt + Tab da işləyir.

Yuxarıda Git-i quraşdırmağı tövsiyə etmədim və bunun səbəbi budur. Fakt budur ki, Cygwin-də nəzərəçarpacaq dərəcədə yavaşlayır. Əmrləri yerinə yetirmək tövsiyə olunur:

git config --qlobal core.preloadindex doğrudur
git config --qlobal core.fscache doğrudur
git config --global gc.auto 256

Amma bu, təəssüf ki, problemi tam həll etmir. Beləliklə, böyük bir layihədə git statusu əmri 20 saniyə ərzində yerinə yetirilə bilər, Linux-da, eyni depoda, əmr dərhal işləyir.

Linux konsoluna bənzər bir konsolda işləməyi sevənlər, Linux-dan standart konsol proqramlarının mövcud olacağı Unix-ə bənzər mühit olan Cygwin-i quraşdıra bilərlər.

Cygwin quraşdırmaq olduqca sadədir. Rejimlərdən birində quraşdırma prosesi zamanı quraşdırmaq istədiyiniz proqram paketlərinin yanındakı qutuları yoxlaya bilərsiniz. Mən nano, git və başqa bir şey paketlərini seçdim.

Quraşdırıldıqdan sonra mühiti işə salmaq üçün iş masasında Cygwin qısayolu görünür.

İstənilən qovluqdan Cygwin-i işə salın

Mən TotalCommander istifadə etdiyim üçün lazım olan kataloqdan proqramları dərhal işə salmaq mənim üçün rahatdır. Cygwin-i işə salmaq üçün rahat yarasa faylı yaradaq.

Dərhal, çox düşünmədən, bu qısayolun xüsusiyyətindən “Obyekt” sətirini C:\bin\bash.bat yaratdığımız yeni fayla köçürün.
Faylın tam məzmunu belə görünəcək:

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

Nəzərə alın ki, exe faylına gedən yol sizin üçün fərqli ola bilər. Cygwin-i C:\cygwin qovluğuna quraşdırdım.
Həmçinin, əgər siz hələ də C:\bin kataloqunu PATH mühit dəyişəninə əlavə etməmisinizsə, o zaman bunu etməlisiniz.

Cygwin işə salınması qurulur

Cygwin ilə bir qədər işlədikdən sonra kəşf etdim ki, mən sadəcə bash sözünü yazmaqla istənilən kataloqdan Cygwin-i işə sala bilsəm də, işə salma mühitinin özü həmişə istifadəçinizin ev kataloqunda açılır. (Ev kataloqu HOME mühit dəyişənində qurulub).

Bu o qədər də rahat görünmür, çünki D:\xyz qovluğunda olarkən bash əmri yazsam, o zaman işləyən Cygwin-in də D:\xyz qovluğunda olacağını gözləyirəm.

Diqqət etsəniz, masa üstü qısa yolunun mintty.exe yardım proqramını işə saldığını görəcəksiniz. Dərhal başa düşürük ki, bu əmr üçün daxil olan atributların siyahısı ilə tanış olmalıyıq.
Cygwin-i açın və daxil olun

Nanəli adam

Təlimatı diqqətlə öyrəndikdən sonra, şübhə etmədiyimiz bəzi imkanlardan məmnunuq, yəni: işə salınacaq Cygwin pəncərəsinin ölçüsünü və koordinatlarını təyin etmək imkanı.

Yarasa faylımızı açın və məzmununu aşağıdakı kimi dəyişdirin:

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 --mövqe -4.0 -

Bu halda mənə lazım olan Cygwin pəncərəsinin ölçüsünü və pəncərənin görünüş mövqeyini təyin etdim (pəncərənin kənarının monitorun sərhədindən kənarda olması və görünməməsi üçün -4 mənfi dəyəri lazımdır).

İndi mənim pəncərəm həmişə mənim üçün əlverişli koordinatlarda görünəcək və hər yeni işə salındıqda x, y-də +8 piksel dəyişməyəcək.

Bəs Cygwin başlatma kataloqu haqqında nə demək olar?

Axı, ev kataloqunuzdan istədiyiniz kataloqa getmək olduqca əlverişsizdir!

Həll yolu tapıldı! Cygwin-i işə salarkən cari qovluğu təyin etmək üçün bash mühitini işə salmaq üçün autorun skriptindən istifadə edə bilərik.

Beləliklə, biz bash.bat faylımızı təkmilləşdirməliyik ki, o, bash konsolunun işə salınması üçün autorun faylı yaratsın.

Cygwin-i işə salırıq, "man bash" əmrini daxil edirik və lazım olanı axtarmaq üçün sənədləri oxuyuruq. İstifadəçinin ev kataloqu üçün fayl adları üçün bir neçə variant tapırıq, bunlar bash-a daxil olduqda işə salınır.
Fayllar bash-a daxil olduqda işləyir:

~/.bash_profile ~/.bash_login ~/.profile

Daxil edilmədən bash işə salındıqda fayl işə salındı

~/.bashrc

Vacib Qeyd: Başlanğıc faylı ~/.bash_login (və ya hər hansı digər) UTF-8 kodlaşdırmasında yazılmalıdır! Və \r simvollarından istifadə etməməlidir. (Məsələn, faylın sonunda Windows sistemi üçün xarakterik olan \r simvolu olanda pwd əmri mənim üçün işləmədi).

Göründüyü kimi, CMD-dən UTF-8 mətnini çıxarmaq o qədər də asan deyil, lakin mümkündür!
Bunun necə edildiyinə dair bir nümunə:

Cmd /u /c chcp 65001 | bəzi mətni əks etdirin >"fayl adı"

C:\bin\bash.bat faylımızı təkmilləşdirək, indi onun məzmunu var:

@echo off SET faylı=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > "%HOME%\%file%" cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- mövqe -4,0 -

Başladıqdan sonra bash konsolu ~/.bash_login faylının məzmununu icra edir. Bu fayl UTF-8 formatında olmalıdır. Bunu etmək üçün CMD-ni /u bayrağı ilə çağırırıq, bu bizə işə salınan konsolun nəticəni UTF-8 formatında qaytarmalı olduğunu bildirir.

Gördüyünüz kimi, | ilə ayrılmış iki əmri keçirik . Bu işarə bizə lazım olan iki əmri bir sətirdə yazmağa imkan verir.

İlk chcp 65001 əmri işləyən konsolda UTF-8 kodlamasını təyin edir. (Konsolda cari kodlaşdırmanın nə olduğunu öyrənmək üçün parametrlər olmadan chcp əmrinə zəng etmək kifayətdir.)

İkinci komanda əks-səda mətni > "%HOME%\%file%" uyğun mətni "%HOME%\%file%" adlı fayla çap edir, burada dəyişən adları ev kataloquna və fayl adı .bash_login yoluna genişləndirilir.

cmd konsolunun cari kataloqunu ehtiva edən CD dəyişəninə qeyri-adi girişi qeyd edin. Əgər dəyişən adətən yazı ilə genişləndirilirsə

Sonra bizim vəziyyətimizdə qeyddən istifadə edirik

%CD:\=/%

Bu, dərhal bütün Windows üslublu kəsikləri \ Linux üslublu tirelərlə əvəz etməyə imkan verir / .

Bütün fayl və qovluq adlarını qoşa dırnaq içərisində qoymağı unutmayın, bu sizə boşluqlar olan qovluqlara daxil olmağa imkan verəcək.

UTF-8 istifadə edildiyinə görə, bu dizayn uğurla Cygwin-i rus adları olan qovluqlarda açmağa imkan verir.

Beləliklə, siz hər dəfə konsolda bash əmrini işlədəndə C:\bin\bash.bat skripti işə salınacaq ki, bu da Cygwin-də bash mühitinin başlanğıc faylının üzərinə yazılacaq. İndi biz asanlıqla və rahat şəkildə istənilən kataloqdan bash konsolunu işə sala və dərhal bash konsolunda eyni kataloqa gedə bilərik.

Biz sevinirik və nəticədən həzz alırıq!

Gəlin ümumiləşdirək

  1. Cygwin quraşdırdıq
  2. C:\bin\bash.bat məzmunlu fayl yaratdı @echo off SET file=.bash_login cmd /u /c chcp 65001 | echo #!/bin/bash > "%HOME%\%file%" cmd /u /c chcp 65001 | echo cd "%CD:\=/%" >> "%HOME%\%file%" @start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --size 120.77 -- mövqe -4,0 - (Qeyd: C:\bin\ yolu PATH mühit dəyişənində olmalıdır)
    Bunun sayəsində biz nail olduq:
    • müəyyən ekran mövqeyində Cygwin terminalını işə salın (--pozisiya seçimi)
    • müəyyən ölçülü bir pəncərəni işə salın (--size parametri)
    • konsolda bash yazaraq istənilən qovluqdan Cygwin-i işə salın
    • eyni zamanda, işə salınan Cygwin, işə salındığı qovluqda yerləşir!

CYGWIN nədir 23 yanvar 2001-ci il tarixli 3 nömrəli Qrupda Kris Kasperskinin “Unix-i Windows-dan necə düzəltmək olar” məqaləsindən sonra mən Windows istifadəçilərinə Cygwin-in nə olduğu haqqında bir az daha çox məlumat vermək istədim. Mən onu uzun müddətdir istifadə edirəm və Cygwin quraşdırılmadan artıq Windows-da effektiv işləyə bilmirəm.

Cygwin sözü iki komponentdən ibarətdir: Cygnus şirkətin adıdır və Windows, lakin Cygwin-də hər şeyi Cygnus-dan olan uşaqlar yazdığını söyləmək səhv olardı. Cygwin Windows üçün Gnu utilitlərinin portudur və Gnu (www.gnu.org) qeyri-kommersiya, qeyri-mülkiyyət və pulsuz Unix sistemi yaratmaq məqsədi ilə Azad Proqram təminatı Fondunun (və ya sadəcə FSF) layihəsidir. proqram təminatının yayılması və dəyişdirilməsi azadlığını məhdudlaşdıran lisenziyalardan. Bu layihənin bir hissəsi olaraq, demək olar ki, bütün standart UNIX utilitləri yenidən yazılmışdır. FSF-nin üç ən əhəmiyyətli töhfəsi gcc (Gnu C Compiler və ya Gnu Compiler Collection), Bash (The Bourne Again Shell) və Emacs-dır. Gcc olmasaydı, Linux olmazdı və Bash bir çox müasir Unix sistemləri üçün standart qabıqdır. Təcrübəsi olan insanlar deyirlər ki, kommersiya Unix-ləri quraşdırdıqdan sonra sistem administratorlarının ilk işi Gnu utilitlərini yenidən quraşdırmaqdır. Prinsipcə, GNU və FSF özləri geniş mövzudur və ayrıca ətraflı məqaləyə layiqdirlər.

Gnu utilitlərinin bütün dəsti, Unix sisteminin istifadəçisinin (yalnız Unix deyil) hər gün rastlaşdığı tapşırıqların əksəriyyətini əhatə edən kiçik (adətən) proqramlar toplusudur. Bu proqramlar daha sonra müxtəlif problemləri həll etmək üçün birləşdirilə bilər.

Gnu-nu digər qeyri-Unix platformalarına köçürmək cəhdləri dəfələrlə edilib ki, bu da, yeri gəlmişkən, onların populyarlığını göstərir.

Utilitlərin DOS - DJGPP-ə daşınması layihəsini qeyd etmək lazımdır. http://www.delorie.com/djgpp/ saytına daxil olun, həqiqətən maraqlıdır.

Cygnus hər bir köməkçi proqramı ayrıca tərtib etmədi, hər dəfə eyni problemləri həll etmək üçün əziyyət çəkdi, bunun əvəzinə GNU yardım proqramları ilə əməliyyat sistemi arasında bir növ "boşluq" yazılmışdı; Bu şim - cygwin1.dll (1 - versiya nömrəsi) - UNIX sistem zənglərinin emulyasiyasını təmin edir ki, bu da mənbə kodunda az və ya heç bir dəyişiklik olmadan Unix proqramlarını tərtib etməyə və icra etməyə imkan verir. Əsasən, bu dll Cygwin-in özüdür və qalan hər şey Cygwin ilə işləmək üçün tərtib edilmiş GNU proqram paketləridir.

Gcc və kitabxanaların mövcudluğu müxtəlif proqramları Windows-a köçürməyə imkan verir və Cygwin-i tam hüquqlu platformaya çevirir - bəzən "Cygwin platforması" ifadəsini tapa bilərsiniz. Cygwin-in ilk beta versiyalarından bəri müxtəlif insanlar Windows üçün çatışmayanları Cygwin üçün tərtib etdilər və standart Cygwin paylanması, o cümlədən evdə hazırlanan bu kompilyasiyalar vasitəsilə tədricən böyüdü. Məsələn, Beta 20 zamanı mən vim redaktorunu ayrıca yükləməli oldum, amma indi bütün dəstlə birlikdə quraşdırılıb.

Hamısını necə quraşdırmaq olar

Cygnus, Linux OS paylamalarından bəzi oxşar proqramları bir qədər xatırladan paketləri idarə etmək üçün rahat bir proqram yazdı. İlk addım onu ​​Cygnus saytından http://sources.redhat.com/cygwin/setup.exe-dən yükləməkdir. Onu işə salmaqla siz çoxlu güzgülərdən birindən standart paketlər dəstini endirə bilərsiniz və fərdi paketləri atlayaraq bunu seçici şəkildə etməyi seçə bilərsiniz.

Gələcək üçün - bu proqramı sonradan eyni kataloqdan işə salmaqla siz hansı yeni paketlərin yarandığını və ya mövcud paketlərin yeni versiyalarını görə biləcəksiniz.

Eyni proqram sizin üçün Cygwin-i quraşdıracaq, yenidən nəyi quraşdıracağınıza və nəyin quraşdırılmayacağına qərar vermənizi xahiş edəcək. Quraşdırma sizin üçün Unix fayl iyerarxiyasında ümumi olan qovluqlar yaradacaq - bin, usr, sbin və s., ona görə də onların hamısını bir kataloqda yerləşdirmək rahatdır ki, Windows qovluqlarınızla qarışdırılmasın.

Və hamısını necə istifadə etmək olar

Cygwin-i işə saldığınız zaman adi Windows konsoluna, Win9x-da command.com və ya NT-də cmd.exe-yə bənzər bir konsol pəncərəsi görəcəksiniz. Amma yox! Windows-da siz BAT faylları ilə command.com-u təqlid etməyə çalışan Unix komanda tərcüməçilərinin şərəfli nəslini işə saldınız. Bash və onun böyük qardaşı sh, Unix sistemini birləşdirən yapışqandır, onu haqlı olaraq proqramlaşdırma dili adlandırmaq olar, yəni siz onu yaza bilərsiniz.

Windows-da bir neçə əsas əmrlər və onların ekvivalentləri

ls = dir - kataloqun məzmununa baxmaq;
cd = chdir - başqa qovluğa keçmək;
cp = surəti - faylı kopyalayın;
mv = mv - faylı köçürmək/adını dəyişmək;
rm = del - faylı silin;
mkdir = mkdir - kataloq yaratmaq;
pwd - cari kataloqu göstərir.

Unutmayın - böyük "A" artıq kiçik "a" ilə bərabər deyil, \ simvolu indi / ilə əvəz edilməlidir. Cygwin-dəki cd / əmri sizi bin, usr və s.-nin yerləşdiyi qovluğa aparacaq. Unix-də yuxarıda heç nə yoxdur /, lakin Cygwin-də Windows bölmələri arasında səyahət etmək üçün cd //c/ əmrindən (cd //d/MyDir və s.) istifadə edə bilərsiniz.

Bash-ın ən əlverişli xüsusiyyətlərindən biri avtomatik tamamlamadır. cat əmri ilə bir neçə fayl yaradaq:

cat > birinci_fayl ENTER

bir şey yazın, sonra Ctr-C,

və başqa bir fayl üçün də eyni:

cat > ikinci_fayl ENTER.

Faylların mövcud olduğundan əmin olun:

İndi istənilən əmri, məsələn, ls və birinci faylın ilk hərfini yazın. TAB düyməsini basın. Bash fayl adının özünə əlavə edəcək. Fayllar fayl_one və file_two kimi eyni şəkildə başlayırsa, Bash yalnız fayl_ əlavə edəcək və onu aydınlaşdırmaq üçün başqa hərf yazmağınızı gözləyəcək.

Bəzi kommunalların istifadəsinə dair bir neçə nümunə.

Tutaq ki, sizdə.txt mətn faylı var. İçindəki sözlərin sayını belə hesablaya bilərsiniz:

Sətirlərin sayı:

Larri simvol ardıcıllığını ehtiva edən sətirləri tapın:

grep "Larry" in.txt

Sətirləri sözlərə ayırın, boşluqları sətir sonu simvolları ilə əvəz edin:

cat in.txt | gawk "gsub(" +","\n")"

"gsub(" +","\n")" gawk əmri bir və ya bir neçə boşluğu ("+") sətir sonu simvolu ("\n") ilə əvəz etmək deməkdir.

Eyni şeyi edin, lakin rahat baxış imkanı ilə (PageUp, PageDown, exit - q)

cat in.txt | gawk "gsub(" +","\n")" | az

Sətirləri (sözləri) çeşidləyin:

cat in.txt | gawk "gsub(" +","\n")" | sort | az

Eyni sətirləri (sözləri) silin:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq | az

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq | wc -l

Eyni sətirləri (sözləri) çıxarın, onların sayını hesablayın:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | az

Yenidən çeşidləyin, beləliklə mətnin tezlik lüğətini əldə edin:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r | az

Nəticələrin mətn faylına çıxarılması ilə eyni şey:

cat in.txt | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r > out.txt

Eyni şey, intermediate.txt faylında saxlanılan ara nəticələrlə:

cat in.txt | gawk "gsub(" +","\n")" | teeintermediate.txt | sort | uniq --count | sort -r | az

İndi, Bash-in gücündən istifadə edərək, bu əmri birdən çox fayl üçün təkrarlaya bilərsiniz. Məqalədə göstərildiyi kimi yeni sətirə keçərək skripti birbaşa konsola yazın - Bash əmrin tamamlanmadığını başa düşəcək və əmri ">" olaraq dəyişəcək:

fayl üçün *.txt; et

cat $fayl | gawk "gsub(" +","\n")" | sort | uniq --count | sort -r > $file.out

Bunun kimi. Sadə problemlər - sadə həllər.

Müəyyən bir əmrin necə işlədiyini öyrənmək üçün onu --help keçidi ilə işlədə və ya man (manual) əmrindən istifadə edə bilərsiniz - man awk, man grep. Siz q istifadə edərək adamdan çıxa bilərsiniz.

CYGWINDƏ BAŞQA NƏLƏR VAR

Kompilyator

Perlin əcdadlarından biri olan sadə (insanların dediyinə görə - 1 gün təlim) söz emal proqramlaşdırma dili

Yayım redaktoru

C-də təhlil generatoru

C-də təhlil generatoru

Proqramlaşdırma dili. Əslində, o, bir müddətdir ki, Sun korporasiyası tərəfindən dəstəklənmişdir. Siz cd /usr/share/tk8.0/demos edə və proqram vidcetini -./widget işlədə bilərsiniz. Siz GUI yaratmaq üçün Tcl uzantısı olan Tk imkanlarının nümayişini görəcəksiniz.

Arxivçi

Güclü arxivçi

Fayl müqayisə proqramı

Və daha çox. Sadəcə zibil qutusuna gedin və orada nəyə sahib olduğunuzu görün. Paket depozitləri http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html saytında tapıla bilər. Cygnus saytında http://sources.redhat.com/cygwin/ mövzu ilə bağlı çoxlu məlumat və bağlantılar da var.

CYGWIN-i necə qurmaq olar

Birincisi, konsol sizi qorxudursa, Bash-ı işə salmaq lazım deyil. Far, Windows Commander və s.-dən bütün proqramlardan istifadə edə bilərsiniz, sadəcə zibil qovluğuna gedən yolu göstərməlisiniz. Windows 9x-də bu, autoexec.bat faylında, NT-də My Computer / Properties / Environment-də PATH mühit dəyişəninə zibil qutusunun yolunu əlavə etməlisiniz.

Bash-da daha rahat işləmək üçün sizə aşağıdakıları etməyi məsləhət görürəm: əgər Cygwin qovluqlarınız c:\cygwin-də yerləşirsə, c:\cygwin\root (mkdir /root) kataloqu yaradın və cygwin.bat-a sətir əlavə edin. c:\ cygwin-də olan fayl:

HOME=d:\cygwin\root

Kök qovluğunda siz nöqtə ilə başlayan 2 fayl yaratmalısınız: .inputrc və .bashrc. Hər iki fayl başlanğıcda Bash tərəfindən icra edilir, .inputrc bütün düymələrin düzgün işləməsini təmin etmək üçün məsuliyyət daşıyır və .bashrc müxtəlif məlumatları ehtiva edir. Nümunə olaraq, mən .bashrc-i verəcəyəm:

ixrac PS1="\w > "

ixrac PATH=".:$PATH"

ləqəb ls="ls --color"

ləqəb untar="tar xvf"

echo CygWin-ə xoş gəlmisiniz!

Birinci sətir Bash yolunu müəyyən edir. Unix bütün tərcüməçilərlə belə edir. Məsələn, əgər sizin Perl-də hello.pl skriptiniz varsa və perl özü /usr/bin daxilindədirsə, birinci sətirə yaza bilərsiniz:

və bunu belə işlədin:

Beləliklə, proqramların nə yazılmasından narahat olmadan onları işlədə bilərsiniz.

PS1, həm də adlandırıldığı kimi, Bash əmrini, işə dəvəti saxlayan bir dəyişəndir. \w cari kataloqdur.

Bunu PATH-ə əlavə etdikdən sonra bunu Windows istifadəçilərinin alışdığı şəkildə edə bilərsiniz:

Sonra, mən sinonimlər və ya ləqəblərdən istifadə edirəm, məsələn, ls əmri faylların nə olduğundan asılı olaraq onu rəngləndirmir, bu, əlverişsizdir alias ls="ls" əmri --color" Bu problemi həll edirəm. İndi ls ls --color deməkdir. Eyni komanda adından istifadə etmək lazım deyil, ll="ls --color" - edə bilərsiniz və istifadə edə bilərsiniz. new ll əmri tar arxivlərini açmaq üçün untar əmrini yaradan zaman etdiyim işdir, hər dəfə tar xvf yazmaq əvəzinə siz həmçinin boruları (boruları, boru kəmərlərini) ləqəblə yerləşdirə bilərsiniz: alias sort_un_sort=" sort | uniq --count | sort -r ".

Reallıqda burada iş yerinin təşkili sahəsi sonsuzdur və mənim nümunələrim primitiv və sadədir. Həmçinin .bashrc-də funksiyalar, interaktiv əmrlər, sorğudan işləyən funksiyalar...

Ümid edirəm ki, Cygwin ilə təcrübə etməkdən ilham almısınız. Şərhlərinizi ünvanına göndərin

Müraciətlər yazmaq üçün Unix quraşdırmaq lazım deyil (sözün altında Unix Hər şeyi düşünəcəm *nix sistemləri). Bu bəyanat kifayət qədər paradoksal səslənir, amma bu doğrudur və bu yazıda sizi buna inandırmağa çalışacağam.

Əgər siz əsl Unix guru deyilsinizsə, bu ƏS üçün bir neçə proqram yazmaq və ya mövcud proqramları tərtib etmək üçün quraşdırmanıza ehtiyac yoxdur. Unix. Bir emulyator bu məqsədlər üçün mükəmməldir. Unix. Bu vəzifəni mükəmməl şəkildə yerinə yetirən bir çox böyük proqramlar var, məsələn: UWin, MinGW, Cygwin və s.

Sadə proqramları tərtib etmək üçün uyğundur: MinGW, lakin daha mürəkkəb olanlar üçün uyğun deyil. Uwin daha təkmil emulyatordur, lakin onun funksionallığı digər daha populyar emulyatordan əhəmiyyətli dərəcədə aşağıdır. Cygwin.

Cygwinçox funksional, pulsuz emulyatordur Unix. Tək fayl kimi paylanır ( setup.exe), bu faylın ölçüsünə aldanmayın ( ~300 kb), bu özü deyil Cygwin, ancaq onun quraşdırıcısı. Quraşdırma zamanı bütün lazımi yardım proqramları və kitabxanalar ayrıca endirilməli olacaq və ya lazımi fayllarınız varsa, mənbə kimi yerli qovluğu göstərə bilərsiniz.

Cygwinçoxlu sayda müxtəlif kommunal və kitabxanaları ehtiva edir ki, onların çoxuna heç vaxt ehtiyacınız olmayacaq, ancaq quraşdırarkən Cygwin yalnız sizə lazım olan komponentləri seçməyə imkan verir. Beləliklə, yalnız proqramı tərtib etmək istəyirsinizsə, onda yalnız tərtibçini quraşdırmanız lazımdır GCC, zəruri kitabxanalar və kommunal xidmətlər dəsti etmək. Şəxsən mən bütün proqramları quraşdırmışam, çünki Cygwin istənilən vaxt onlardan “qutulmağı” asanlaşdırır. Faktiki olaraq Cygwin yalnız bir fayldan ibarətdir cygwin1.dll, qalan hər şey proqram paketləridir GNU, işləmək üçün xüsusi olaraq yenidən tərtib edilmişdir Cygwin.



Məncə quraşdırma ilə bağlı heç bir problem yox idi. İndi quraşdırma və istifadədə bir neçə incəliklərə baxaq Cygwin. Quraşdırıldıqdan sonra proqramın quraşdırıldığı qovluğun strukturu struktura bənzəyəcək *nix sistemləri. Başlamaq üçün Cygwin, sadəcə qaç BAT faylı, cygwin.bat, kök kataloqda yerləşir Cygwin(kök kataloq dedikdə, qovluğun olduğu qovluğu nəzərdə tuturuq Cygwin, gələcəkdə biz bu kataloqdan sayacağıq). Başladıqdan sonra BAT faylı Qarşınızda konsol proqramı görünəcək. Bu biridir Baş arasında əlaqə olan UnixWindows. Baş- bu sadəcə analoq deyil cmd.exe. Baş müxtəlif tapşırıqları yerinə yetirmək üçün skriptlər yaza biləcəyiniz tam hüquqlu proqramlaşdırma dilidir. Onu əsaslı şəkildə fərqləndirən də məhz budur cmd.exe (command.com).

Dəvət Baş, praktiki olaraq heç bir fərqi yoxdur cmd.exe (~ - ev kataloqunuz deməkdir). Burada heç bir məntiqi sürücü yoxdur (A, C, D və s.), geri sayım təyin edilmiş kök kataloqundandır " / ". Həm də yadda saxlamaq lazımdır ki, iş burada vacibdir və svə s- iki tamamilə fərqli kataloq. Gəlin kök qovluğuna getməyə çalışaq, bunun üçün sadəcə tanış əmri yerinə yetirin " cd/" (~ -ə dəyişməlidir / ). Bundan sonra əmri yazın " rejissor", və ya" ls", kök kataloqun məzmununa baxmaq üçün. Düşünürəm ki, indi kök kataloqun nə olduğunu başa düşdünüz.





Bu məqalədəki bütün əmrləri təsvir edə bilmərəm, ona görə də birbaşa olaraq təyin etdiyimiz ən vacib mərhələyə keçək. Cygwin. Gəlin bəzi proqramı tərtib etməyə çalışaq. Kompilyasiya üçün proqramı seçdim Htop(http://freshmeat.net/projects/htop/), bu standart proqramın təkmilləşdirilmiş versiyasıdır üst konsol proses meneceri olan . İlk addım arxivi açmaqdır. Bunu aşağıdakı kimi edə bilərsiniz Windows, və birbaşa daxil Cygwin. IN Cygwin bu əmrlə edilir:

tar zxf htop-0.6.tar.gz

Əlbəttə ki, hazırda siz arxivin yerləşdiyi qovluqda olmalısınız htop-0.6.tar.gz. Paketi açdıqdan sonra yaradılmış kataloqa keçin htop-0.6 və tətbiqi tərtib etmək üçün üç standart əmri yerinə yetirin.

./konfiqurasiya edin
etmək
quraşdırmaq



Budur, tərtib tamamlandı. Komanda cəlb etməkdən çekinmeyin htop və nəticəyə heyran olun. Nəticədə "EXE" kataloqda yerləşir /usr/local/bin/.



İndi özümüz sadə proqram yazmağa çalışaq ( Salam dünya) və ilə tərtib edin GCC. Əvvəlcə proqramın özünü yazmalıyıq, proqramdan istifadə edərək bunu edəcəyik pişik. Komandanı daxil edin pişik yeni.c, Harada new.c mənbə kodunu ehtiva edən faylın adı. Komandanı yerinə yetirdikdən sonra aşağıdakı kodu yazın:

#daxildir
int main())(
printf("Salam Dünya");
qayıt 1;)

Kod daxil edildikdən sonra düyməni basın Ctrl+C. İndi onu istifadə edərək tərtib edək GCC. Bu əmrlə edilir:

Gcc new.c -o new.exe

Yerləşdiyi eyni kataloqda new.c başqa bir fayl görünəcək - new.exe. Onu işə saldıqda gözlənilən mesajı görəcəksiniz " Salam Dünya".



Bu məqalənin sonu ola bilərdi, amma mən qrafik mühit haqqında da danışmaq qərarına gəldim Cygwin sonra bu mövzuya qayıtmamaq üçün. Düşünürəm ki, paketləri quraşdırarkən bunu fərq etdiniz Cygwin qabıqların quraşdırılmasını təklif edir GnomeKDE. Əslində bunlar sadəcə qabıqlar deyil, proqramları işə salmaq üçün lazım olan onların kitabxanalarıdır. Məsələn, məşhur redaktorun qrafik versiyası emacs, birbaşa altında işləyəcək Windows sanki win32 proqram. Əsassız olmamaq üçün gəlin bunu sınayaq Emacs qaçmaq. Bu əmrlə edilir:

xemacs

Görəcəyimiz budur.



Gördüyünüz kimi, hər şey başlayır və yaxşı işləyir. Amma bu hər kəsdə olmur. Qrafik mühit çox şıltaqdır. Buna görə də onu konfiqurasiya etməyi bacarmalısınız. Quraşdırma Sənədləri X serverləriİnternetdə onların çoxu var və siz asanlıqla tapa bilərsiniz.

Sonda xatırlatmaq istərdim ki, nə qədər yaxşı olsa da Cygwin, bu sadəcə bir emulyatordur. Və bildiyiniz kimi, nüsxə orijinaldan daha yaxşı ola bilməz, buna görə də əsl Unix guru olmaq istəyirsinizsə, tam hüquqlu Unix paylanması quraşdırmaq üçün tənbəl olmayın. Məncə, ondan başlamaq daha yaxşıdır Linux. Bütün mümkün paylamalardan sizə tövsiyə edirəm Slackware.