Ochiq
Yopish

Cygwin nima. Cygwin-ni o'rnatish va sozlash Bash cygwin-da buyruqlar tarixini qanday saqlash kerak

Ushbu maqola ikki kishiga mo'ljallangan
odamlar turlari: tushunmaydiganlar uchun
Linux, lekin uni kompyuterimga o'rnatolmayapman
(turli sabablar bor) yoki kimlar uchun
pingvinlar haqida ozgina biladi 🙂 va bunga qarshi emas
ular bilan "neytral" bilan tanishing
hududi, ya'ni Win98/NT da.

Sayt allaqachon Cygwinni eng yaxshi deb ta'riflagan
Linux emulyatorini chiqarib oling, lekin aytilmagan
Cygwin-ning o'rnatilishi, konfiguratsiyasi va xatolari haqida hech narsa yo'q.
Bu erda men sizga bu haqda aytib beraman :) Aslida, agar
O'ylab ko'ring, Cygwin umuman emulyator emas, lekin
shunchaki Win32 uchun yozilgan Linux distributivi 😉

Shoshqaloqlikni bas qiling... Keling, http://www.cygwin.com saytiga boramiz,
U yerdan setup.exe o'rnatish dasturini olamiz. Unga
biz allaqachon kompilyatsiya qilinganlarini tortib olamiz
ikkilik fayllar (exe kengaytmasida), rpmni eslaysizmi?
😉 Ishlab chiqaruvchining veb-saytidan yoki oynadan.
Men ushbu dasturni faqat yuklab olish uchun TAVSIYa qilaman
Biz bu fayllarni qo'lda o'rnatamiz, chunki Agar
setup.exe yordamida o'rnatasiz, gcc ishlamaydi - rasm
nima uchun biladi ... Ehtimol, ishlab chiquvchilar allaqachon hisobga olishgan
bu xato, lekin men bu haqda hali bilmayman ...

Shunday qilib, barcha asosiy ikkilik fayllarni yuklab oling (manbalar
yuklab olishingiz shart emas) va bir nechta
qo'shimcha - kim wget, silovsindan bosh tortadi,
BitchX, Python :) Lekin Perlni yuklab olishingiz shart emas... Menda bor
ActivePerl bor edi - rivojlangan Perl emulyatori. Yuklab olish
http://www.acriveperl.com saytida mavjud.
Men hech qanday nosozliklarni ko'rmadim :) (Men sizga qanday qilib aytaman
uni cygwinda amalga oshirdi).

Sozlamalar

Va xuddi shu "etc" papkasidagi "guruh" faylida:
root:x:0:root

Agar siz parolingizni shifrlamoqchi bo'lsangiz va
Mening misolimdagi kabi "parol" emas,
Perl skriptini yozing

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

Qaerda, SA - shifrlash uchun ishlatiladigan salta
parol... uni tasodifiy qilishingiz mumkin, lekin
Ushbu maqola mavzudan tashqarida bo'ladi.

Endi "c:\cygwin\cygnus.bat" faylini tahrirlang -
unda biz PATHni o'zgartiramiz, shunchaki yo'lni o'zgartiramiz
emulyator va login.exe fayliga yo'l. Keling, ishga tushiramiz
fayl.

Keling, tizimga kiraylik: mening misolimda, "root": "parol".
Shunday qilib, biz emulyatorning o'ziga kirdik. men yo'q
Menga kirish soʻrovi yoqdi. Keling, uni o'zgartiraylik
- o'zgaruvchan PS1. "c:\cygwin\etc\profile" faylini oching (yarating)
va u erda yozing:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
DOSDRIVE-ni o'chirib qo'ying
DOSDIR sozlamasini bekor qilish
TMPDIR sozlamasini bekor qilish
TMP sozlamasini bekor qilish
eksport HOSTNAME=test
PS1="[\u@$HOSTNAME \W]# "
LOGNAME=$USER
eksport PATH PS1 FOYDALANUVCHI LOGNAME

Mana... Keyin qayta tizimga kiramiz va hamma narsa yoqiladi
joy va chiroyli :) Taklifnoma quyidagicha bo'ladi: # - standart, Linux :)

Hammasi shu, dastlabki o'rnatish tugallandi.
Keling, xizmatlarni o'rnatishga o'tamiz :)

Standart yetkazib berish thuja huchani o'z ichiga oladi
xizmatlar. Siz ularni quyidagicha ishga tushirishingiz kerak:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (ftpd uchun misol).

SSHD-ni o'zingiz o'rnatishingiz yaxshiroqdir - u portlash bilan ishladi va
Men SecureCRT-dan haydayapman, qonuniy 127.0.0.1 -
butunlay boshqacha ko'rinish :)

TCP/IP bilan ishlashga kelsak, menda hech qanday kamchiliklar yo'q
Men sezdim :) Hamma narsa bir-biriga ulanadi va ishlaydi
zarur...

Va endi ba'zi maslahatlar:

1) BARCHA disklarga kirish ochiq. Shunday bo'lsin
ehtiyotkor. Masalan, d: drayveri bu erda joylashgan -
"/cygdrive/d".

2) Perl-ga kelsak, faylga simli havola yarating
Masalan, Perl.exe, shuning uchun "ln -s /cygdrive/c/perl/bin/perl.exe"
/usr/bin/perl"

3) Agar biron sababga ko'ra sizda yo'q bo'lsa
Linux ilovasini o'rnatish -
faqat C kodini tuzating. Balki,
muvaffaqiyatga erishadi.. (men shunday tuzdim
micq).

4) http://www.cygwin.com veb-saytida Cygwin yangilanishlarini kuzatib boring
- ikkilik fayllar tez-tez yangilanadi.

Savollar? Menga elektron pochta orqali yozing - harakat qilaman
Yordam bering...

O'zaro platforma ilovalarini ishlab chiqish oson emas. Bu, ayniqsa, Windows tufayli juda qiyin, unda hamma narsa odamlarnikiga o'xshamaydi. Bu erda sizda na oddiy terminal, na oddiy konsol yordam dasturlari, umuman hech narsa yo'q! Yana bir bor bu muammoga duch keldim, men Cygwinni yana sinab ko'rishga qaror qildim. Va o'ylab ko'ring, u Windows-ni deyarli ishlatishingiz mumkin bo'lgan narsaga aylantiradi!

Bu yerdan Cygwin o'rnatuvchisini yuklab olishingiz mumkin. Aslida, bu paket menejeri kabi o'rnatuvchi emas, u ishga tushirilganda qaysi paketlarni o'rnatmoqchi ekanligingizni so'raydi. Yigitlar! Paket menejeri! Windows ostida! O'rnatuvchi ishga tushiriladigan katalogda kesh yaratadi. Shuning uchun, ishga tushirishdan oldin, ish stolida maxsus papka yaratish va o'rnatuvchini unga qo'yish yaxshiroqdir.

Menimcha, qanday paketlar o'rnatilishi kerak:

  • openssh- masthev;
  • intutils, bog'lovchilar, ping, nc Va nc6- masthev;
  • wget, jingalak- masthev;
  • piton va/yoki python3— Menimcha, bu albatta bo‘lishi kerak;
  • vim, gvim— kichik fayllarni tahrirlash uchun ortiqcha bo'lmaydi;
  • diffutils, pwgen, oching, rzync- har ehtimolga qarshi bo'lsin;
  • gcc va/yoki jaranglash, cmake, gdb- agar kerak bo'lsa;
  • ekran, tmux, mc- sevishganlar uchun;
  • git- ostida juda katta savol, pastga qarang;

Eslatma! Cygwin-da pip-ni o'rnatish uchun python-setuptools va/yoki python3-setuptools to'plami yonidagi katakchani belgilang. O'rnatishdan so'ng, terminalda ayting:

easy_install - 2,7 pip

easy_install-3,4 pip

..., siz o'rnatgan Python versiyasi yoki versiyalariga qarab.

Shunday qilib, Cygwin-ni o'rnatganingizdan so'ng siz terminalni ochishingiz mumkin:

Yigitlar! O'lchamini o'zgartiruvchi oddiy terminal matndan nusxa ko'chirish va joylashtirish imkonini beradi va bu hammasi! Windows ostida! Barcha taniqli va tanish buyruqlar bilan id, ls, pwd, cat, ssh, scp va boshqalar. Inson muhiti bilan - .bashrc, ~/.ssh/config va boshqalar. Bundan tashqari, PowerShell deb nomlangan uyatli hackdan farqli o'laroq, Cygwin .NET Framework bo'ylab harakatlanmaydi. Biz hatto Ctr + Tab yorlig'i yordamida bir nechta terminallarni ochishimiz va ular o'rtasida almashishimiz mumkin. Bu deyarli yorliqlarga o'xshaydi! Albatta, eski yaxshi Alt + Tab ham ishlaydi.

Yuqorida men Git-ni o'rnatishni tavsiya qilmadim va buning sababi. Gap shundaki, Cygwinda u sezilarli darajada sekinlashadi. Buyruqlarni bajarish tavsiya etiladi:

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

Ammo bu, afsuski, muammoni to'liq hal qilmaydi. Shunday qilib, katta loyihada git status buyrug'i 20 soniyada bajarilishi mumkin, Linuxda, xuddi shu omborda buyruq bir zumda ishlaydi.

Linux konsoliga o'xshash konsolda ishlashni yoqtiradiganlar Linuxdan standart konsol dasturlari mavjud bo'lgan Unix-ga o'xshash muhit bo'lgan Cygwin-ni o'rnatishlari mumkin.

Cygwinni o'rnatish juda oddiy. Rejimlardan birida o'rnatish jarayonida siz o'rnatmoqchi bo'lgan dasturiy ta'minot paketlari yonidagi katakchalarni belgilashingiz mumkin. Men nano, git va boshqa narsalarni tanladim.

O'rnatishdan so'ng, muhitni ishga tushirish uchun ish stolida Cygwin yorlig'i paydo bo'ladi.

Cygwin-ni istalgan papkadan ishga tushiring

Men TotalCommander-dan foydalanganim sababli, dasturlarni kerakli katalogdan darhol ishga tushirish men uchun qulay. Keling, Cygwinni ishga tushirish uchun qulay bat faylini yarataylik.

Darhol, ko'p o'ylamasdan, ushbu yorliqning xususiyatidan "Ob'ekt" qatorini biz yaratgan yangi C:\bin\bash.bat fayliga ko'chiring.
Faylning to'liq mazmuni quyidagicha ko'rinadi:

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

E'tibor bering, exe faylga yo'l siz uchun boshqacha bo'lishi mumkin. Men Cygwin-ni C:\cygwin katalogiga o'rnatdim.
Bundan tashqari, agar siz hali C:\bin katalogini PATH muhit o'zgaruvchingizga qo'shmagan bo'lsangiz, buni qilishingiz kerak.

Cygwin ishga tushirilishini sozlash

Cygwin bilan biroz ishlaganimdan so'ng, men Cygwin-ni istalgan katalogdan oddiygina bash so'zini kiritish orqali ishga tushirishim mumkinligini aniqladim, ishga tushirish muhitining o'zi har doim foydalanuvchining uy katalogida ochiladi. (Uy katalogi HOME muhit o'zgaruvchisida o'rnatiladi).

Bu unchalik qulay ko'rinmaydi, chunki agar men D:\xyz katalogida bash buyrug'ini yozsam, ishlayotgan Cygwin ham D:\xyz katalogida bo'lishini kutaman.

Agar e'tibor bersangiz, ish stoli yorlig'i mintty.exe yordam dasturini ishga tushirganini ko'rasiz. Biz darhol ushbu buyruq uchun kiruvchi atributlar ro'yxati bilan tanishishimiz kerakligini tushunamiz.
Cygwin-ni oching va kiring

Minty odam

Qo'llanmani diqqat bilan o'rganib chiqqanimizdan so'ng, biz shubha qilmagan ba'zi imkoniyatlardan mamnunmiz, xususan: ishga tushiriladigan Cygwin oynasining o'lchami va koordinatalarini o'rnatish qobiliyati.

Bizning bat faylimizni oching va uning mazmunini quyidagiga o'zgartiring:

@start "" C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico --siz 120,77 --pozitsiya -4,0 -

Bunday holda, men kerakli Cygwin oynasining o'lchamini va oynaning tashqi ko'rinishini o'rnatdim (deraza qirrasi monitor chegarasidan tashqarida va ko'rinmasligi uchun -4 manfiy qiymat kerak).

Endi mening oynam har doim men uchun qulay koordinatalarda paydo bo'ladi va har bir yangi ishga tushirilganda x, yda +8 pikselga siljimaydi.

Ammo Cygwin ishga tushirish katalogi haqida nima deyish mumkin?

Axir, uy katalogingizdan kerakli katalogga o'tish juda noqulay!

Yechim topildi! Cygwin-ni ishga tushirishda joriy katalogni o'rnatish uchun biz bash muhitini ishga tushirish uchun autorun skriptidan foydalanishimiz mumkin.

Shunday qilib, biz bash.bat faylimizni yaxshilashimiz kerak, shunda u bash konsolini ishga tushirish uchun autorun faylini yaratadi.

Biz Cygwin-ni ishga tushiramiz, "man bash" buyrug'ini kiritamiz va kerakli narsalarni qidirish uchun hujjatlarni o'qiymiz. Biz bash-ga kirishda ishga tushiriladigan foydalanuvchining uy katalogi uchun fayl nomlari uchun bir nechta variantni topamiz.
Bash-ga kirishda fayllar ishga tushadi:

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

Bash tizimga kirmasdan ishga tushirilganda fayl ishga tushiriladi

~/.bashrc

Muhim eslatma: ~/.bash_login boshlang'ich fayli (yoki boshqa har qanday) UTF-8 kodlashda yozilishi kerak! Va \r belgilaridan foydalanmaslik kerak. (Masalan, fayl oxirida Windows tizimi uchun xos bo'lgan \r belgisi bo'lganida pwd buyrug'i men uchun ishlamadi).

Ma'lum bo'lishicha, CMD-dan UTF-8 matnini chiqarish unchalik oson emas, lekin bu mumkin!
Bu qanday amalga oshirilganiga misol:

Cmd /u /c chcp 65001 | ba'zi matnni aks ettiring > "fayl nomi"

Keling, C:\bin\bash.bat faylimizni yaxshilaymiz, endi uning mazmuni bor:

@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 --siz 120,77 -- pozitsiyasi -4,0 -

Ishga tushgandan so'ng, bash konsoli ~/.bash_login faylining mazmunini bajaradi. Bu fayl UTF-8 formatida bo'lishi kerak. Buning uchun biz /u bayrog'i bilan CMD ga qo'ng'iroq qilamiz, bu bizga ishga tushirilgan konsol natijani UTF-8 formatida qaytarishi kerakligini aytadi.

Ko'rib turganingizdek, biz | bilan ajratilgan ikkita buyruqni o'tkazmoqdamiz . Bu belgi bizga kerakli ikkita buyruqni bitta satrga yozish imkonini beradi.

Birinchi chcp 65001 buyrug'i ishlaydigan konsolda UTF-8 kodlashni o'rnatadi. (Konsolda joriy kodlash qanday o'rnatilganligini bilish uchun parametrlarsiz chcp buyrug'iga qo'ng'iroq qiling.)

Ikkinchi jamoa echo matn > "%HOME%\%file%" mos keladigan matnni "%HOME%\%file%" nomli faylga chop etadi, bu erda o'zgaruvchilar nomlari uy katalogiga va fayl nomi .bash_login yo'liga kengaytiriladi.

Iltimos, cmd konsolining joriy katalogini o'z ichiga olgan CD o'zgaruvchisiga noodatiy kirishga e'tibor bering. Agar o'zgaruvchi odatda yozish orqali kengaytirilsa

Keyin bizning holatlarimizda biz belgidan foydalanamiz

%CD:\=/%

Bu sizga Windows uslubidagi barcha slashlarni \ Linux uslubidagi slashlar bilan darhol almashtirish imkonini beradi.

Barcha fayl va katalog nomlarini qo'sh tirnoq ichiga qo'yishni unutmang, bu sizga bo'sh joylarni o'z ichiga olgan kataloglarga kirish imkonini beradi.

UTF-8 ishlatilganligi sababli, ushbu dizayn Cygwin-ni ruscha nomli kataloglarda muvaffaqiyatli ochishga imkon beradi.

Shunday qilib, konsolda bash buyrug'ini har safar ishga tushirganingizda C:\bin\bash.bat skripti ishga tushiriladi, bu Cygwin-dagi bash muhitining ishga tushirish faylini qayta yozadi. Endi biz har qanday katalogdan bash konsolini osongina va qulay tarzda ishga tushirishimiz va darhol bash konsolidagi xuddi shu katalogga o'tishimiz mumkin.

Biz xursand bo'lamiz va natijadan zavqlanamiz!

Keling, xulosa qilaylik

  1. Biz Cygwin-ni o'rnatdik
  2. C:\bin\bash.bat fayli yaratildi, mazmuni @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 --siz 120,77 -- pozitsiya -4,0 - (Eslatma: C:\bin\ yo'li PATH muhit o'zgaruvchisida bo'lishi kerak)
    Shu tufayli biz erishdik:
    • belgilangan ekran holatida Cygwin terminalini ishga tushiring (--pozitsiya opsiyasi)
    • ma'lum o'lchamdagi oynani ishga tushiring (--size parametri)
    • konsolda bash yozish orqali istalgan katalogdan Cygwin-ni ishga tushiring
    • shu bilan birga, ishga tushirilgan Cygwin u ishga tushirilgan katalogda joylashgan!

CYGWIN nima 2001 yil 23 yanvardagi 3-guruhdagi Kris Kasperskiyning "Qanday qilib Unix'ni Windows'dan yasash mumkin" maqolasidan so'ng men Windows foydalanuvchilariga Cygwin nima ekanligini bir oz ko'proq aytib berishni juda xohlardim. Men uni anchadan beri ishlatib kelmoqdaman va endi Cygwin o'rnatilmagan holda Windowsda samarali ishlay olmayman.

Cygwin so'zi ikkita komponentdan iborat: Cygnus - bu kompaniyaning nomi va Windows, ammo Cygwin'dagi hamma narsani Cygnus yigitlari yozgan deb aytish noto'g'ri bo'ladi. Cygwin - bu Windows uchun Gnu utilitlari porti va Gnu (www.gnu.org) - bu Free Software Foundation (yoki oddiygina FSF) loyihasi bo'lib, uning maqsadi notijorat, nodavlat va bepul Unix tizimini yaratishdir. dasturiy ta'minotni tarqatish va o'zgartirish erkinligini cheklovchi litsenziyalardan. Ushbu loyiha doirasida deyarli barcha standart UNIX utilitlari qayta yozildi. FSFning uchta eng muhim hissasi: gcc (Gnu C Compiler yoki Gnu Compiler Collection), Bash (The Bourne Again Shell) va Emacs. Gccsiz Linux bo'lmaydi va Bash ko'plab zamonaviy Unix tizimlari uchun standart qobiqdir. Tajribali odamlarning ta'kidlashicha, tizim ma'murlari tijorat Unix-larni o'rnatgandan so'ng, birinchi navbatda, Gnu utilitlarini qayta o'rnatishdir.

Gnu utilitlarining butun to'plami - bu Unix tizimi foydalanuvchisi (nafaqat Unix) har kuni duch keladigan vazifalarning ko'pini qamrab oladigan kichik (odatda) dasturlar to'plamidir. Keyinchalik bu dasturlar turli muammolarni hal qilish uchun birlashtirilishi mumkin.

Gnu-ni boshqa, Unix bo'lmagan platformalarga o'tkazishga urinishlar bir necha marta qilingan, bu esa, aytmoqchi, ularning mashhurligini ko'rsatadi.

Utilitlarni DOS - DJGPP ga ko'chirish loyihasini eslatib o'tish kerak. http://www.delorie.com/djgpp/ saytiga o‘ting, bu juda qiziq.

Cygnus har bir yordam dasturini alohida kompilyatsiya qilmadi, har safar bir xil muammolarni hal qilish uchun azob chekdi, buning o'rniga GNU yordam dasturlari va operatsion tizim o'rtasida o'ziga xos "bo'shliq" yozildi. Ushbu shim - cygwin1.dll (1 - versiya raqami) - UNIX tizim qo'ng'iroqlarining emulyatsiyasini ta'minlaydi, bu sizga Unix dasturlarini boshlang'ich kodiga ozgina yoki umuman o'zgartirishlarsiz kompilyatsiya qilish va bajarish imkonini beradi. Asosan, bu dll Cygwinning o'zi va qolganlari Cygwin bilan ishlash uchun tuzilgan GNU dasturiy paketlari.

Gcc va kutubxonalarning mavjudligi turli xil ilovalarni Windows-ga o'tkazish imkonini beradi va Cygwin-ni to'liq platformaga aylantiradi - siz ba'zan "Cygwin platformasi" iborasini topishingiz mumkin. Cygwin-ning birinchi beta-versiyalaridan boshlab, turli odamlar Windows uchun etishmayotgan narsalarni Cygwin uchun to'plashdi va standart Cygwin tarqatish asta-sekin o'sib bordi, shu jumladan uy qurilishi kompilyatsiyalari orqali. Misol uchun, Beta 20 paytida men vim muharririni alohida yuklab olishim kerak edi, ammo hozir u butun to'plam bilan birga o'rnatilgan.

Hammasini qanday o'rnatish kerak

Cygnus paketlarni boshqarish uchun qulay dastur yozdi, bu Linux OS distributivlaridagi ba'zi shunga o'xshash dasturlarni biroz eslatadi. Birinchi qadam uni Cygnus veb-saytidan http://sources.redhat.com/cygwin/setup.exe yuklab olishdir. Uni ishga tushirish orqali siz ko'plab ko'zgulardan biridan standart paketlar to'plamini yuklab olishingiz mumkin va buni alohida paketlarni o'tkazib yuborgan holda tanlab bajarishingiz mumkin.

Kelajakda - ushbu dasturni keyinchalik xuddi shu katalogdan ishga tushirish orqali siz qanday yangi paketlar paydo bo'lganini yoki mavjud paketlarning yangi versiyalarini ko'rishingiz mumkin.

Xuddi shu dastur siz uchun Cygwinni o'rnatadi va yana nimani o'rnatishni va nimani o'rnatmaslikni hal qilishni so'raydi. O'rnatish siz uchun Unix fayllar ierarxiyasida keng tarqalgan kataloglarni yaratadi - bin, usr, sbin va boshqalar, shuning uchun ularni Windows papkalaringiz bilan adashtirib yubormaslik uchun ularni bitta katalogga joylashtirish qulay.

Va barchasini qanday ishlatish kerak

Cygwin-ni ishga tushirganingizda, oddiy Windows konsoliga o'xshash konsol oynasini ko'rasiz, Win9x-da command.com yoki NT-da cmd.exe. Lekin yoq! Windows-da siz BAT fayllari bilan command.com-ga taqlid qilishga uringan Unix buyruq tarjimonlarining ajoyib avlodini ishga tushirdingiz. Bash va uning katta akasi sh - bu Unix tizimini bir-biriga bog'laydigan elimdir, uni haqli ravishda dasturlash tili deb atash mumkin, ya'ni siz unda yozishingiz mumkin.

Bir nechta asosiy buyruqlar va ularning Windowsdagi ekvivalentlari

ls = dir - katalog tarkibini ko'rish;
cd = chdir - boshqa katalogga o'tish;
cp = nusxa ko'chirish - faylni nusxalash;
mv = mv - faylni ko'chirish/nomini o'zgartirish;
rm = del - faylni o'chirish;
mkdir = mkdir - katalog yaratish;
pwd - joriy katalogni ko'rsatish.

Esingizda bo'lsin - katta "A" endi kichik "a" ga teng emas, \ belgisi endi / bilan almashtirilishi kerak. Cygwin'dagi cd / buyrug'i sizni bin, usr va boshqalar joylashgan katalogga olib boradi. Unix-da yuqorida hech narsa yo'q /, lekin Cygwin-da Windows bo'limlari bo'ylab sayohat qilish uchun siz cd //c/ buyrug'idan foydalanishingiz mumkin (cd //d/MyDir va boshqalar).

Bash-ning eng qulay xususiyatlaridan biri bu avtoto'ldirishdir. Cat buyrug'i bilan bir nechta fayl yaratamiz:

cat > birinchi_fayl ENTER

biror narsa yozing, keyin Ctr-C,

va boshqa fayl uchun ham xuddi shunday:

mushuk > ikkinchi_fayl ENTER.

Fayllar mavjudligiga ishonch hosil qiling:

Endi istalgan buyruqni kiriting, masalan, ls va birinchi faylning birinchi harfi. TAB tugmasini bosing. Bash fayl nomini o'zi qo'shadi. Agar fayllar bir xil boshlansa, masalan, file_one va file_two, Bash faqat file_ faylini qo'shadi va uni ajratish uchun boshqa harf kiritishingizni kutadi.

Ba'zi yordamchi dasturlardan foydalanishning bir nechta misollari.

Aytaylik, sizda.txt matn fayli bor. Undagi so'zlar sonini quyidagicha hisoblashingiz mumkin:

Qatorlar soni:

Larri belgilar ketma-ketligini o'z ichiga olgan qatorlarni toping:

grep "Larri".txt

Satrlarni so'zlarga ajrating, bo'shliqlarni satr oxiridagi belgilar bilan almashtiring:

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

"gsub(" +","\n")" gawk buyrug'i bir yoki bir nechta bo'shliqni ("+") satr oxiri belgisi ("\n") bilan almashtirishni anglatadi.

Xuddi shunday qiling, lekin qulay ko'rish imkoniyati bilan (PageUp, PageDown, chiqish - q)

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

Satrlarni (so'zlarni) saralash:

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

Bir xil qatorlarni (so'zlarni) olib tashlang:

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

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

Bir xil satrlarni (so'zlarni) olib tashlang, ularning sonini hisoblang:

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

Yana saralab, matnning chastotali lug'atini oling:

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

Xuddi shu narsa, natijalar matn fayliga chiqishi bilan:

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

Xuddi shu narsa, intermediate.txt faylida saqlangan oraliq natijalar bilan:

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

Endi, Bash kuchidan foydalanib, ushbu buyruqni bir nechta fayllar uchun takrorlashingiz mumkin. Skriptni to'g'ridan-to'g'ri konsolga kiriting va maqolada chop etilgan yangi qatorga o'ting - Bash buyruq tugallanmaganini tushunadi va so'rovni ">" ga o'zgartiradi:

*.txt fayli uchun; qilmoq

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

Mana bunday. Oddiy muammolar - oddiy echimlar.

Muayyan buyruq qanday ishlashini bilish uchun uni --help kaliti bilan ishga tushirishingiz yoki man (qo'lda) buyrug'idan foydalanishingiz mumkin - man awk, man grep. q yordamida mandan chiqishingiz mumkin.

CYGWINDA BOSHQA NIMALAR

Kompilyator

Oddiy (odamlar aytadi - 1 kunlik mashg'ulot) so'zlarni qayta ishlash dasturlash tili, Perlning ajdodlaridan biri

Oqim muharriri

C tilida tahlil qiluvchi generator

C tilida tahlil qiluvchi generator

Dasturlash tili. Aslida, u Gnu utilitlari bilan bevosita bog'liq emas, u bir muncha vaqt Sun korporatsiyasi tomonidan qo'llab-quvvatlangan. Siz CD /usr/share/tk8.0/demos qilishingiz va dastur vidjetini -./widget-ni ishga tushirishingiz mumkin. Siz GUI yaratish uchun Tcl kengaytmasi Tk imkoniyatlarining namoyishini ko'rasiz.

Arxivchi

Kuchli arxivchi

Fayl solishtirish dasturi

Va yana ko'p narsalar. Faqat axlat qutisiga boring va u erda nima borligini ko'ring. Paket depozitlarini http://www.hirmke.de/software/develop/gnuwin32/cygwin/porters/Hirmke_Michael/GNUWin32-contents.html saytida topish mumkin. Shuningdek, Cygnus veb-saytida http://sources.redhat.com/cygwin/ mavzu bo'yicha juda ko'p ma'lumot va havolalar mavjud.

CYGWIN-ni qanday sozlash kerak

Birinchidan, agar siz konsoldan qo'rqsangiz, Bash-ni ishga tushirishingiz shart emas. Far, Windows Commander va boshqalardan barcha dasturlardan foydalanishingiz mumkin, shunchaki bin katalogiga yo'lni belgilashingiz kerak. Windows 9x da bu autoexec.bat faylida, NT da My Computer/Properties/Environment-da PATH muhit o'zgaruvchisiga binga yo'lni qo'shishingiz kerak.

Bashda qulayroq ishlash uchun men sizga quyidagilarni qilishni maslahat beraman: agar sizning Cygwin kataloglaringiz c:\cygwin da joylashgan bo'lsa, c:\cygwin\root (mkdir /root) katalogini yarating va cygwin.bat-ga qator qo'shing. c:\ cygwin da joylashgan fayl:

HOME=d:\cygwin\root

Ildiz katalogida nuqta bilan boshlangan 2 ta fayl yaratishingiz kerak: .inputrc va .bashrc. Ikkala fayl ham Bash tomonidan ishga tushirilganda bajariladi, .inputrc barcha kalitlarning to'g'ri ishlashini ta'minlash uchun javobgardir va .bashrc turli ma'lumotlarni o'z ichiga oladi. Misol tariqasida, men o'zimning .bashrc ni beraman:

eksport PS1="\w > "

eksport PATH=".:$PATH"

taxallus ls = "ls --color"

taxallus untar="tar xvf"

echo CygWin-ga xush kelibsiz!

Birinchi qator Bash yo'lini belgilaydi. Unix barcha tarjimonlar bilan shunday qiladi. Misol uchun, agar sizda Perl-da hello.pl skriptingiz bo'lsa va perlning o'zi /usr/bin ichida bo'lsa, birinchi qatorga yozishingiz mumkin:

va uni shunday ishga tushiring:

Shunday qilib, siz dasturlarni ular nima yozilganligi haqida o'ylamasdan ishga tushirishingiz mumkin.

PS1 - bu Bash so'rovini, ishlashga taklifni saqlaydigan o'zgaruvchidir, chunki u ham deyiladi. \w - joriy katalog.

Buni PATH-ga qo'shgandan so'ng, siz buni Windows foydalanuvchilari buni qilishga odatlangan tarzda qilishingiz mumkin:

Keyinchalik, men sinonimlarni yoki taxalluslarni ishlataman alias ls="ls" buyrug'i --color" Men bu muammoni hal qilaman. Endi ls ls --color degan ma'noni anglatadi. Bir xil buyruq nomini ishlatish shart emas, siz ll="ls --color" - qilishingiz mumkin va new ll buyrug'i tar arxivlarini ochish uchun untar buyrug'ini yaratganimda shunday qilaman, har safar tar xvf yozish o'rniga siz quvurlarni (quvurlarni, quvurlarni) taxallus bilan joylashtirishingiz mumkin: taxallus sort_un_sort=" sort | uniq --count | sort -r ".

Aslida, bu erda ish joyini tashkil qilish doirasi cheksizdir va mening misollarim ibtidoiy va sodda. Bundan tashqari, .bashrc da funksiyalar, interfaol buyruqlar, so'rovdan ishlaydigan funksiyalar...

Umid qilamanki, siz Cygwin bilan tajriba o'tkazishdan ilhomlanasiz. Fikrlaringizni quyidagi manzilga yuboring

Arizalarni yozish uchun Unix uni o'rnatish shart emas (so'z ostida Unix Men hamma narsani o'ylab ko'raman *nix tizimlari). Bu bayonot juda paradoksal tuyuladi, lekin bu haqiqat va ushbu maqolada men sizni bunga ishontirishga harakat qilaman.

Agar siz haqiqiy Unix guru bo'lmasangiz, unda ushbu OT uchun bir nechta ilovalarni yozish yoki mavjud dasturlarni kompilyatsiya qilish uchun o'rnatishingiz shart emas. Unix. Ushbu maqsadlar uchun emulyator juda mos keladi. Unix. Bu vazifani mukammal bajaradigan ko'plab ajoyib dasturlar mavjud, masalan: UWin, MinGW, Cygwin va boshq.

Oddiy dasturlarni kompilyatsiya qilish uchun javob beradi: MinGW, lekin murakkabroq bo'lganlar uchun bu mos emas. Uwin bu yanada rivojlangan emulyator, ammo uning funksionalligi boshqa mashhur emulyatordan sezilarli darajada past. Cygwin.

Cygwin juda funksional, bepul emulyator hisoblanadi Unix. U bitta fayl sifatida tarqatiladi ( setup.exe), bu fayl hajmiga aldanmang ( ~300 kb), bu o'zi emas Cygwin, lekin faqat uning o'rnatuvchisi. O'rnatish jarayonida barcha kerakli yordamchi dasturlar va kutubxonalarni alohida yuklab olish kerak bo'ladi yoki sizda allaqachon kerakli fayllar mavjud bo'lsa, manba sifatida mahalliy katalogni ko'rsatishingiz mumkin.

Cygwin juda ko'p turli xil yordamchi dasturlar va kutubxonalarni o'z ichiga oladi, ularning aksariyati sizga hech qachon kerak bo'lmaydi, lekin o'rnatish paytida Cygwin faqat kerakli komponentlarni tanlash imkonini beradi. Shunday qilib, agar siz faqat dasturni kompilyatsiya qilmoqchi bo'lsangiz, unda siz faqat kompilyatorni o'rnatishingiz kerak bo'ladi GCC, kerakli kutubxonalar va yordamchi dasturlar to'plami qilish. Shaxsan men barcha ilovalarni o'rnatdim, chunki Cygwin istalgan vaqtda ulardan "qutilish" ni osonlashtiradi. Aslida Cygwin faqat bitta fayldan iborat cygwin1.dll, qolgan hamma narsa dasturiy paketlardir GNU, bilan ishlash uchun maxsus qayta kompilyatsiya qilingan Cygwin.



Menimcha, o'rnatishda hech qanday muammo yo'q edi. Endi o'rnatish va foydalanishning bir nechta nozik tomonlarini ko'rib chiqaylik Cygwin. O'rnatishdan so'ng, dastur o'rnatilgan papkaning tuzilishi strukturaga o'xshaydi *nix tizimlari. Ishga tushirish uchun Cygwin, shunchaki yugur BAT fayli, cygwin.bat, bu ildiz katalogida joylashgan Cygwin(ildiz katalog deganda biz Cygwin, kelajakda biz ushbu katalogdan hisoblaymiz). Ishga tushgandan keyin BAT fayli Sizning oldingizda konsol ilovasi paydo bo'ladi. Bu bitta Bash, bu o'rtasidagi bog'liqlik Unix Va Windows. Bash- bu shunchaki analog emas cmd.exe. Bash to'liq huquqli dasturlash tili bo'lib, unda siz turli xil vazifalarni bajarish uchun skriptlarni yozishingiz mumkin. Aynan shu narsa uni tubdan farq qiladi cmd.exe (command.com).

Taklif Bash dan deyarli farq qilmaydi cmd.exe (~ - sizning uy katalogingizni anglatadi). Bu erda mantiqiy drayvlar yo'q (A, C, D va boshqalar), ortga hisoblash belgilangan asosiy katalogdan " / ". Bundan tashqari, bu erda ish muhim ekanligini unutmasligingiz kerak, shuning uchun Va boshqalar Va va boshqalar- ikkita butunlay boshqa katalog. Keling, ildiz katalogiga o'tishga harakat qilaylik, buning uchun sizga tanish bo'lgan buyruqni bajaring " CD/" (~ ga o'zgarishi kerak / ). Shundan so'ng, buyruqni kiriting " rej", yoki" ls", ildiz katalogining mazmunini ko'rish uchun. Menimcha, endi siz ildiz katalogi nima ekanligini tushundingiz.





Men ushbu maqoladagi barcha buyruqlarni ta'riflay olmayman, shuning uchun to'g'ridan-to'g'ri biz o'rnatgan eng muhim bosqichga o'tamiz. Cygwin. Keling, qandaydir dasturni kompilyatsiya qilishga harakat qilaylik. Kompilyatsiya qilish uchun men dasturni tanladim Htop(http://freshmeat.net/projects/htop/), bu standart dasturning takomillashtirilgan versiyasidir. yuqori, bu konsol jarayoni boshqaruvchisi. Birinchi qadam arxivni ochishdir. Buni quyidagi kabi qilishingiz mumkin Windows, va to'g'ridan-to'g'ri Cygwin. IN Cygwin bu buyruq bilan amalga oshiriladi:

tar zxf htop-0.6.tar.gz

Albatta, ayni paytda siz arxiv joylashgan katalogda bo'lishingiz kerak htop-0.6.tar.gz. Paketni yechib bo'lgach, yaratilgan katalogga o'ting htop-0.6 va dasturni kompilyatsiya qilish uchun uchta standart buyruqni bajaring.

./configure
qilish
o'rnatish



Hammasi shu, kompilyatsiya tugallandi. Bemalol jamoani jalb qiling htop va natijaga qoyil qoling. Olingan "EXE" katalogda joylashgan /usr/local/bin/.



Endi o'zimiz oddiy dastur yozishga harakat qilaylik ( Salom Dunyo) va uni bilan kompilyatsiya qiling GCC. Avval dasturning o'zini yozishimiz kerak, biz buni dastur yordamida qilamiz mushuk. Buyruqni kiriting mushuk yangi.c, Qayerda new.c manba kodini o'z ichiga olgan fayl nomi. Buyruqni bajargandan so'ng, quyidagi kodni yozing:

#o'z ichiga oladi
int main())(
printf("Salom dunyo");
Qaytish 1;)

Kod kiritilgandan so'ng, tugmasini bosing Ctrl+C. Endi uni foydalanib kompilyatsiya qilaylik GCC. Bu buyruq bilan amalga oshiriladi:

Gcc new.c -o new.exe

U joylashgan katalogda new.c boshqa fayl paydo bo'ladi - new.exe. Uni ishga tushirganingizda kutilgan xabarni ko'rasiz " Salom Dunyo".



Bu maqolaning oxiri bo'lishi mumkin, lekin men grafik muhit haqida ham gapirishga qaror qildim Cygwin keyin bu mavzuga qaytmaslik uchun. Menimcha, siz paketlarni o'rnatishda buni payqadingiz Cygwin qobiqlarni o'rnatishni taklif qiladi Gnome Va KDE. Aslida, bu shunchaki qobiqlar emas, balki ilovalarni ishga tushirish uchun zarur bo'lgan ularning kutubxonalari. Masalan, mashhur muharrirning grafik versiyasi emacs, to'g'ridan-to'g'ri ostida ishlaydi Windows xuddi shunday bo'lgandek win32 dasturi. Asossiz bo'lmaslik uchun keling, buni sinab ko'raylik Emacs yugur. Bu buyruq bilan amalga oshiriladi:

xemacs

Buni biz ko'ramiz.



Ko'rib turganingizdek, hamma narsa boshlanadi va yaxshi ishlaydi. Ammo bu hamma uchun ham sodir bo'lavermaydi. Grafik muhit juda injiq. Shuning uchun siz uni sozlash imkoniyatiga ega bo'lishingiz kerak. O'rnatish hujjatlari X serverlari Internetda ularning ko'pi bor va siz uni osongina topishingiz mumkin.

Oxirida shuni eslatmoqchimanki, qanchalik yaxshi bo'lmasin Cygwin, bu shunchaki emulyator. Va siz bilganingizdek, nusxa asl nusxadan yaxshiroq bo'lishi mumkin emas, shuning uchun haqiqiy Unix gurusi bo'lishni istasangiz, to'liq huquqli Unix tarqatish to'plamini o'rnatishga dangasa bo'lmang. Menimcha, undan boshlash yaxshidir Linux. Barcha mumkin bo'lgan tarqatishlardan men sizga tavsiya qilaman Slackware.