Cygwin: مقدمه. نصب و پیکربندی برنامه Cygwin Cygwin run در ویندوز

کسانی که دوست دارند در کنسولی شبیه به کنسول لینوکس کار کنند، می توانند Cygwin، Unix را نصب کنند محیط مشابه، جایی که برنامه های کنسول استاندارد از لینوکس در دسترس خواهند بود.

نصب Cygwin بسیار آسان است. در طی مراحل نصب در یکی از حالت ها، می توانید کادرهای کنار بسته های نرم افزاری را که می خواهید نصب کنید علامت بزنید. من پکیج های نانو، git و دیگر را انتخاب کردم.

پس از نصب، میانبر Cygwin برای راه اندازی محیط روی دسکتاپ ظاهر می شود.

Cygwin را از هر پوشه ای راه اندازی کنید

از آنجایی که من از TotalCommander استفاده می کنم، برای من راحت است که برنامه ها را مستقیماً از دایرکتوری مورد نیاز خود راه اندازی کنم. بیایید یک فایل bat مناسب برای اجرای Cygwin ایجاد کنیم.

بلافاصله، بدون فکر زیاد، رشته "Object" را از ویژگی این میانبر در فایل جدیدی که ایجاد کردیم، C:\bin\bash.bat کپی کنید.
محتوای کامل فایل به شکل زیر خواهد بود:

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

لطفا توجه داشته باشید که مسیر فایل exe ممکن است برای شما متفاوت باشد. در خانه، Cygwin را در پوشه C:\cygwin نصب کردم.
همچنین، اگر دایرکتوری C:\bin هنوز به متغیر محیطی PATH اضافه نشده است، این کار باید انجام شود.

راه اندازی Cygwin

پس از مدتی کار با Cygwin، متوجه شدم که اگرچه می‌توانم Cygwin را از هر فهرستی با نوشتن کلمه bash اجرا کنم، اما خود محیط راه‌اندازی همیشه در فهرست اصلی کاربر شما باز می‌شود. (دایرکتوری خانه در متغیر محیطی HOME تنظیم شده است).

این خیلی راحت به نظر نمی رسد، زیرا اگر من دستور bash را در پوشه D:\xyz بنویسم، انتظار دارم Cygwin در دایرکتوری D:\xyz نیز اجرا شود.

اگر دقت کنید، می بینید که میانبر دسکتاپ ابزار mintty.exe را راه اندازی می کند. ما بلافاصله متوجه می شویم که لازم است خود را با لیست ویژگی های ورودی برای این دستور آشنا کنیم.
Cygwin را باز کرده و تایپ کنید

مرد نعنایی

پس از مطالعه دقیق کتابچه راهنمای کاربر، ما از برخی ویژگی هایی که به آنها مشکوک نبودیم خوشحال می شویم، یعنی: توانایی تنظیم اندازه و مختصات پنجره راه اندازی Cygwin.

فایل bat ما را باز کنید و محتوای آن را به شکل زیر تغییر دهید:

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

در این حالت، اندازه پنجره Cygwin مورد نیاز خود و موقعیت ظاهر شدن پنجره را تنظیم می کنم (مقدار منفی 4- لازم است تا لبه پنجره خارج از مانیتور باشد و قابل مشاهده نباشد).

اکنون پنجره من همیشه در مختصاتی که برای من مناسب است ظاهر می شود و با هر راه اندازی جدید با 8+ پیکسل در x، y حرکت نمی کند.

اما دایرکتوری راه اندازی Cygwin چطور؟

از این گذشته ، انتقال به دایرکتوری مورد نظر از خانه بسیار ناخوشایند است!

راه حل پیدا شد! برای تنظیم دایرکتوری فعلی هنگام شروع Cygwin، می توانیم از اسکریپت autorun برای محیط راه اندازی bash استفاده کنیم.

بنابراین ما باید فایل bash.bat خود را بهبود دهیم تا یک فایل اتوران برای کنسول bash ایجاد کند تا اجرا شود.

Cygwin را شروع می کنیم، دستور "man bash" را وارد می کنیم و اسناد را در جستجوی آنچه نیاز داریم می خوانیم. ما چندین گزینه برای نام فایل ها برای فهرست اصلی کاربر پیدا می کنیم که در حین مجوز در bash راه اندازی می شوند.
فایل ها در bash login اجرا می شوند:

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

فایل زمانی راه اندازی می شود که "bash" بدون مجوز در آن راه اندازی شود

~/.bashrc

یادداشت مهم: فایل autorun ~/.bash_login (یا هر چیز دیگری) باید با کدگذاری UTF-8 نوشته شود! و نباید از کاراکترهای \r استفاده کرد. (مثلاً زمانی که فایل حاوی کاراکتر \r در انتها بود که مشخصه سیستم ویندوز است، دستور pwd برای من کار نکرد).

همانطور که مشخص شد، خروجی متن UTF-8 از CMD چندان آسان نیست، اما ممکن است!
در اینجا مثالی از نحوه انجام این کار آورده شده است:

Cmd /u /c chcp 65001 | پژواک برخی از متن > "نام فایل"

بیایید فایل C:\bin\bash.bat خود را بهبود دهیم، اکنون محتوای زیر را دارد:

@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 --position -4.0 -

پس از راه اندازی، کنسول bash محتویات فایل ~/.bash_login را اجرا می کند. این فایل باید با فرمت UTF-8 باشد. برای انجام این کار، CMD را با پرچم /u فراخوانی می کنیم، که به ما می گوید کنسول در حال راه اندازی باید نتیجه را با فرمت UTF-8 برگرداند.

همانطور که می بینید، ما دو دستور را ارسال می کنیم که با | از هم جدا شده اند . این علامت به ما اجازه می دهد تا دو دستور مورد نیاز خود را در یک خط بنویسیم.

اولین دستور chcp 65001 کدگذاری را روی UTF-8 در کنسول در حال اجرا تنظیم می کند. (برای اینکه بفهمید رمزگذاری فعلی در کنسول چیست، فقط دستور chcp را بدون پارامتر فراخوانی کنید.)

تیم دوم echo text > "%HOME%\%file%"متن مناسب را در فایلی با نام "%HOME%\%file%" چاپ می‌کند، جایی که نام متغیرها به مسیر فهرست اصلی و نام فایل .bash_login گسترش می‌یابد.

به ارجاع غیرمعمول به متغیر CD توجه کنید که شامل دایرکتوری فعلی کنسول cmd است. اگر متغیر به طور معمول با نوشتن گسترش می یابد

سپس در مورد ما، از نماد استفاده می کنیم

%CD:\=/%

این به شما امکان می دهد فوراً تمام اسلش های به سبک ویندوز \ را با اسلش های به سبک لینوکس / جایگزین کنید.

فراموش نکنید که نام همه فایل ها و دایرکتوری ها را در آن قرار دهید نقل قول های دوگانه، بنابراین اجازه می دهد تا دایرکتوری های حاوی فاصله را انتخاب کنید.

با توجه به این واقعیت که از UTF-8 استفاده می شود، این ساختار با موفقیت به شما امکان می دهد Cygwin را در فهرست هایی با نام های روسی باز کنید.

بنابراین، هر بار که دستور bash را در کنسول اجرا می کنید، اسکریپت C:\bin\bash.bat اجرا می شود که فایل بارگذاری خودکار محیط bash را در Cygwin بازنویسی می کند. اکنون می‌توانیم به راحتی و به راحتی کنسول bash را از هر دایرکتوری راه‌اندازی کنیم و بلافاصله وارد همان فهرست در کنسول bash شویم.

ما خوشحالیم و از نتیجه لذت می بریم!

جمع بندی

  1. ما Cygwin را نصب کرده ایم
  2. ایجاد فایل C:\bin\bash.bat با محتوای @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 --position -4.0 - (توجه: C:\bin\ باید در متغیر محیطی PATH باشد)
    از این طریق به دست آوردیم:
    • راه اندازی ترمینال Cygwin در موقعیت صفحه نمایش مشخص شده (پارامتر موقعیت --)
    • راه اندازی یک پنجره با اندازه معین (پارامتر -size)
    • Cygwin را از هر دایرکتوری با تایپ کلمه bash در کنسول اجرا کنید
    • در همان زمان، Cygwin در حال اجرا در همان دایرکتوری قرار دارد که از آن راه اندازی شده است!

اسکریپت cygwin.bat از اجرا شده است خط فرمان DOS، محیط Cygwin را نصب می کند و مفسر bash را در ویندوز راه اندازی می کند. Cygwin متغیرهای محیط یونیکس را به خوبی تنظیم می کند تا با متغیرهای محیط ویندوز مطابقت داشته باشد. به عنوان مثال، در دستگاه خود، من به عنوان کاربر bjohnson وارد ویندوز شدم. وقتی Cygwin را راه‌اندازی می‌کنم، به‌طور پیش‌فرض به‌عنوان کاربر bjohnson راه‌اندازی می‌شود.

در زیر پنجره ای با برخی از دستورات استاندارد یونیکس در Cygwin وجود دارد.


بسته به بسته هایی که نصب کرده اید، می توانید به راحتی Utilities مربوط به یونیکس را اجرا کنید. اگر کاربر یونیکس هستید، بدون شک آرزو خواهید کرد که ای کاش ویندوز یک فرمان ps برای مشاهده فرآیندهای در حال اجرا بدون استفاده از Task Manager داشت. اگر از پرچم -aW استفاده کنید، می توانید ببینید فرآیندهای ویندوز، مانند هر فرآیندهای در حال اجراسیگوین. در زیر لیستی از فرآیندهای ویندوز موجود در نتیجه اجرای دستور Cygwin (ps -aW | less) آمده است.

PID PPID PGID WINPID TTY UID STIME Command 3193213 0 0 4291774083 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\KERNEL32.DLL 63753 0 0 4294903543 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\MSGSRV32.EXE 60569 0 0 4294906727 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\MPREXE.EXE 77349 0 0 4294889947 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\RPCSS.EXE 196093 0 0 4294771203 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\mmtask.tsk 191237 0 0 4294776059 ? 0 دسامبر 31 C:\WINDOWS\EXPLORER.EXE 237709 0 0 4294729587 ? 0 دسامبر 31 C:\WINDOWS\TASKMON.EXE 230713 0 0 4294736583 ? 0 دسامبر 31 C:\WINDOWS\SYSTEM\SYSTRAY.EXE 217533 0 0 4294749763 ? 0 دسامبر 31 C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE 5.1.

ساختار دایرکتوری و مجوزهای فایل

Cygwin درایوهای محلی شما را در پوشه /cygdrive mount می کند. این شامل بخش هایی است هارد دیسک، درایوهای فلاپی، خواننده های CD-ROM، خوانندگان ZIP. بیایید دستور df را روی دستگاه من اجرا کنیم. ساختاری مشابه شکل زیر بدست می آوریم.

[ایمیل محافظت شده]$ df Filesystem 1k-blocks استفاده شده در دسترس % استفاده نصب شده در C:\cygwin\bin 2096832 0 2096832 0% /usr/bin C:\cygwin\lib 2096832 0 2096832 0% /usr8/lib 2096832 0% /usr8/lib 2096832 0% /usr/lib 2096832 :2096 832 0 2096832 0% /cygdrive/c d: 670496 670496 0 100% /cygdrive/d

بعد از نصب Cygwin به نصب کننده گفتم فایل ها را در دایرکتوری C:\cygwin\ ذخیره کند. Cygwin از این دایرکتوری به عنوان نقطه ریشه استفاده کرد نصب فایل سیستم. C:\cygwin\ bin را در /usr/bin و C:\cygwin\lib را در /usr/lib قرار داد. دایرکتوری های /usr/bin، /bin و /usr/local/bin با متغیرهای محیطی Cygwin (اما نه ویندوز) به روز شده اند. دایرکتوری ها از محیط ویندوز به محیط Cygwin وارد شده اند تا بتوان به آنها دسترسی داشت.

Cygwin همچنین از یک سیستم مجوز معقول برای فایل های یونیکس استفاده می کند. اما این برای همه فایل های ویندوز شما چه معنایی می تواند داشته باشد؟ مالک فایل ها کیست و مجوزهای پیش فرض چیست؟ بیایید دستور ls -al را روی چند فایل ویندوز اجرا کنیم تا جواب را بگیریم.

[ایمیل محافظت شده]/cygdrive/c/cyginstall $ ls -al مجموع 273 drwxr-xr-x 1 bjohnson ناشناخته 0 مارس 13 17:48. drwxr-xr-x 1 bjohnson ناشناخته 0 دسامبر 31 1969 .. drwxr-xr-x 1 bjohnson ناشناخته 0 مارس 13 18:06 مشارکت drwxr-xr-x 1 bjohnson ناشناخته 0 مارس 13 18:03 آخرین -rjohn13 ناشناخته 18:03 bjohnson :48 setup.exe -rw-r--r-- 1 bjohnsonknown 60607 مارس 13 17:54 setup.ini

Cygwin سعی خواهد کرد اطلاعات مربوط به صاحبان فایل (کاربر و گروه) را از ویندوز دریافت کند. در حالی که من از ماشین زیر استفاده کردم کنترل ویندوز 98 با یک کاربر، همه فایل ها متعلق به من (bjohnson) با "ناشناس" به عنوان گروه بود. این اجازه‌ها را برای همه فهرست‌ها و فایل‌های اجرایی ویندوز روی 755 تنظیم می‌کند (خواندن و اجرا برای همه، نوشتن فقط برای مالک) و همه را تنظیم می‌کند. فایل های ویندوزمرجع 644 (برای همه بخوانید، فقط برای مالک بنویسید). دستور chmod برای فایل های ویندوز نادیده گرفته می شود.

توسعه اپلیکیشن های چند پلتفرمی کار ساده ای نیست. به ویژه، به لطف ویندوز، که در آن همه چیز مانند مردم نیست، آسان نیست. اینجا شما نه ترمینال معمولی دارید، نه برنامه های کاربردی کنسول معمولی، اصلاً هیچی! یک بار دیگر که با این مشکل مواجه شدم، تصمیم گرفتم دوباره Cygwin را امتحان کنم. و می دانید، معلوم می شود که واقعاً چیزی از ویندوز می سازد که تقریباً می توانید از آن استفاده کنید!

می توانید نصب کننده Cygwin را از اینجا دانلود کنید. در واقع، این یک نصب کننده نیست بلکه یک مدیر بسته است که در هنگام راه اندازی مستقیماً از شما می پرسد که می خواهید چه بسته هایی را نصب کنید. بچه ها! مدیر بسته! زیر ویندوز!نصب کننده یک کش در دایرکتوری که از آن اجرا خواهد شد ایجاد می کند. بنابراین، قبل از شروع، بهتر است یک پوشه خاص روی دسکتاپ ایجاد کنید و نصب کننده را در آن قرار دهید.

چه بسته هایی برای نصب نیاز دارم:

  • openssh- دکل؛
  • inetutils, bind-utils, پینگ, ncو nc6- دکل؛
  • wget, حلقه- دکل؛
  • پایتونو/یا پایتون 3- فکر می کنم آن دکل.
  • vim, gvim- برای ویرایش فایل های کوچک اضافی نخواهد بود.
  • دیفیوتیل ها, pwgen, از حالت فشرده خارج کنید, rzync- اجازه دهید آنها را فقط در مورد.
  • gccو/یا زنگ زدن, cmake, gdb- در صورت نیاز؛
  • صفحه نمایش, tmux, mc- برای عاشقان؛
  • git- زیر بسیار بزرگسوال، زیر را ببینید؛

توجه داشته باشید!برای نصب pip در 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 دات نت فریم ورک را همراه با آن نمی کشد. حتی می توانیم چندین ترمینال را باز کنیم و با Ctr + 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 ثانیه اجرا کرد، در لینوکس، دقیقاً در همان مخزن، دستور بلافاصله کار می کند.

CYGWIN چیستپس از مقاله کریس کسپرسکی «چگونه یونیکس را از ویندوز بسازیم» در CG #3 مورخ 23 ژانویه 2001، مشتاق بودم تا به کاربران ویندوز کمی بیشتر در مورد Cygwin بگویم. من مدت زیادی است که از آن استفاده می کنم و دیگر نمی توانم بدون نصب Cygwin در ویندوز کار کنم.

کلمه Cygwin از دو جزء تشکیل شده است: Cygnus نام شرکت است و Windows، اما اشتباه است که بگوییم همه چیز در Cygwin توسط بچه های Cygnus نوشته شده است. Cygwin یک پورت ویندوز از ابزارهای Gnu است و Gnu (www.gnu.org) پروژه ای از Free است. نرم افزار(Free Software Foundation یا به سادگی FSF)، که هدف آن ایجاد یک سیستم Unix غیرتجاری است که به شخص خاصی تعلق ندارد و فاقد مجوزهایی است که آزادی توزیع و اصلاح نرم افزار را محدود می کند. به عنوان بخشی از این پروژه، تقریباً تمام ابزارهای استاندارد یونیکس بازنویسی شدند. سه سهم مهم FSF عبارتند از gcc (کامپایلر Gnu C یا مجموعه کامپایلر Gnu)، Bash (پوسته Bourne Again) و Emacs. بدون gcc، لینوکس وجود نخواهد داشت و Bash پوسته استاندارد بسیاری از سیستم‌های یونیکس مدرن است. افراد باتجربه می گویند که اولین کاری که sysadmin ها بعد از نصب Unixes تجاری انجام می دهند، نصب ابزارهای Gnu است، در اصل، GNU و FSF به خودی خود یک موضوع گسترده هستند و مستحق یک مقاله مفصل جداگانه هستند.

کل مجموعه ابزارهای Gnu مجموعه ای از برنامه های کوچک (معمولا) است که اکثر وظایفی را که کاربر سیستم یونیکس (و نه تنها یونیکس) به صورت روزانه با آن روبرو می شود، پوشش می دهد، هر یک از این برنامه ها یک کار را انجام می دهد، و آن را به خوبی انجام می دهد. سپس می توان این برنامه ها را برای حل مشکلات مختلف ترکیب کرد.

تلاش برای پورت Gnu به سایر سیستم عامل های غیر یونیکس بیش از یک بار انجام شده است که اتفاقاً گواه محبوبیت آنها است.

شایان ذکر است پروژه انتقال ابزارها تحت DOS - DJGPP. به http://www.delorie.com/djgpp/ بروید، واقعا جالب است.

Cygnus هر یک از ابزارها را به طور جداگانه جمع آوری نکرد، و هر بار برای حل همان مشکلات عذاب می داد، در عوض، نوعی "واشر" بین ابزارهای گنو و سیستم عامل. این شیم - cygwin1.dll (1 - شماره نسخه) - شبیه سازی را ارائه می دهد تماس های سیستمییونیکس، که به برنامه های یونیکس اجازه می دهد تا با تغییرات اندک یا بدون تغییر کامپایل و اجرا شوند کد منبع. اساساً این dll خود Cygwin است و هر چیز دیگری بسته نرم افزاری گنو است که برای کار با Cygwin کامپایل شده است.

وجود gcc و کتابخانه ها بیشترین امکان را برای انتقال تحت ویندوز فراهم می کند برنامه های کاربردی مختلفو Cygwin را به یک پلت فرم کامل تبدیل می کند - گاهی اوقات می توانید عبارت "سکوی Cygwin" را پیدا کنید. از زمان اولین نسخه‌های بتای Cygwin، افراد مختلفی آنچه را که تحت ویندوز فاقد آن بودند، تحت Cygwin جمع‌آوری می‌کردند، توزیع استاندارد Cygwin به تدریج رشد کرد، از جمله از طریق این مجموعه‌های خودساخته. به عنوان مثال، در طول نسخه های بتا 20 باید ویرایشگر vim رو جداگانه دانلود میکردم و الان به همراه کل مجموعه نصب شده.

چگونه همه را نصب کنیم

Cygnus یک برنامه مدیریت بسته مفید نوشته است که کمی یادآور برخی از آنهاست برنامه های مشابهاز توزیع های سیستم عامل لینوکس. اولین قدم این است که آن را از وب سایت Cygnus http://sources.redhat.com/cygwin/setup.exe دانلود کنید. با اجرای آن، می‌توانید یک مجموعه استاندارد از بسته‌ها را از یکی از آینه‌های متعدد دانلود کنید، و می‌توانید این کار را به صورت انتخابی و صرفنظر از بسته‌های جداگانه انجام دهید.

برای آینده - با اجرای این برنامه بعداً از همان دایرکتوری، می توانید ببینید چه بسته های جدیدی ظاهر شده اند یا نسخه های جدیدی از بسته های موجود.

همان برنامه Cygwin را برای شما نصب می کند و دوباره پیشنهاد می کند که خودتان تصمیم بگیرید چه چیزی را نصب کنید و چه چیزی را نه. نصب، دایرکتوری هایی را برای شما ایجاد می کند که در سلسله مراتب فایل یونیکس مشترک هستند - bin، usr، sbin و غیره، بنابراین راحت است که همه آنها را در یک پوشه قرار دهید تا با پوشه های ویندوز شما اشتباه نشوند.

و نحوه استفاده از همه آن

هنگامی که Cygwin را راه اندازی می کنید، یک پنجره کنسول شبیه به کنسول معمولی ویندوز، command.com در Win9x یا cmd.exe در NT خواهید دید. اما نه! شما نسل باشکوهی از مفسرهای فرمان یونیکس را در ویندوز راه‌اندازی کرده‌اید که command.com سعی کرد از آن تقلید کند. فایل های BAT. بش و برادر بزرگترش ش چسبی هستند که به هم می چسبند سیستم یونیکس، به حق می توان آن را یک زبان برنامه نویسی نامید، یعنی می توانید روی آن بنویسید.

مقداری دستورات اساسیو همتایان آنها در ویندوز

ls = dir - مشاهده محتویات یک دایرکتوری.
cd = chdir - به دایرکتوری دیگری بروید.
cp = کپی - یک فایل را کپی کنید.
mv = mv - انتقال/تغییر نام فایل.
rm = del - حذف فایل.
mkdir = mkdir - ایجاد یک دایرکتوری.
pwd - نمایش دایرکتوری فعلی.

به یاد داشته باشید - یک "A" بزرگ دیگر با یک "a" کوچک برابر نیست، کاراکتر \ اکنون باید با / جایگزین شود. دستور cd / در Cygwin شما را به دایرکتوری می برد که bin، usr و غیره در آن قرار دارند. در یونیکس چیزی در بالا / وجود ندارد، اما در Cygwin برای عبور از پارتیشن های ویندوز می توانید از دستور cd //c/ (cd //d/MyDir و غیره) استفاده کنید.

یکی از راحت ترین ویژگی های Bash تکمیل خودکار است. بیایید با دستور cat چند فایل بسازیم:

cat > first_file ENTER

چیزی را تایپ کنید سپس ctrl-c،

و همینطور برای یک فایل دیگر:

cat > second_file ENTER.

مطمئن شوید که فایل ها وجود دارند:

حالا هر دستوری مانند ls و سپس حرف اول فایل اول را تایپ کنید. TAB را فشار دهید. Bash خود نام فایل را اضافه می کند. اگر فایل‌ها به همین صورت شروع شوند، مانند file_one و file_two، Bash فقط file_ را ضمیمه می‌کند و منتظر می‌ماند تا حرف دیگری را برای رفع ابهام تایپ کنید.

چند نمونه از استفاده از برخی ابزارهای برقی.

بیایید بگوییم شما دارید فایل متنی in.txt. می توانید تعداد کلمات موجود در آن را به صورت زیر بشمارید:

تعداد خطوط:

خطوط حاوی دنباله کاراکتر لری را بیابید:

grep "Larry" in.txt

خطوط را به کلمات تقسیم کنید و کاراکترهای انتهای خط را جایگزین فضاها کنید:

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

دستور gawk "gsub(" +""\n")" به معنای جایگزینی یک یا چند فاصله ("+") با یک کاراکتر انتهای خط ("\n") است.

همین کار را انجام دهید، اما با امکان مشاهده راحت (PageUp، PageDown، خروج - q)

cat.txt | gawk "gsub("+","\n")" | کمتر

مرتب سازی خطوط (کلمات):

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | کمتر

حذف خطوط تکراری (کلمات):

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | uniq | کمتر

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | uniq | wc -l

خطوط (کلمات) یکسان را با شمارش تعداد آنها حذف کنید:

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | uniq --count | کمتر

مرتب سازی مجدد، به این ترتیب فرهنگ لغت فرکانس متن به دست می آید:

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | uniq --count | sort-r | کمتر

به همین ترتیب، با خروجی نتایج به یک فایل متنی:

cat.txt | gawk "gsub("+","\n")" | مرتب کردن | uniq --count | sort -r > out.txt

به همین ترتیب، با نتایج متوسط ​​ذخیره شده در فایل intermediate.txt:

cat.txt | gawk "gsub("+","\n")" | tee-intermediate.txt | مرتب کردن | uniq --count | sort-r | کمتر

حال با استفاده از قدرت Bash می توانید این دستور را برای چندین فایل تکرار کنید. اسکریپت را مستقیماً در کنسول تایپ کنید و همانطور که در مقاله چاپ شده است به خط جدیدی بروید - Bash متوجه می شود که دستور تمام نشده است و دستور را به ">" تغییر می دهد:

برای فایل در *.txt; انجام دادن

cat $file | gawk "gsub("+","\n")" | مرتب کردن | uniq --count | sort -r > $file.out

مثل این. وظایف ساده- راه حل های ساده

برای اینکه بفهمید یک دستور خاص چگونه کار می کند، می توانید آن را با کلید --help اجرا کنید یا از دستور man (دستی) استفاده کنید - man awk, man grep. می توانید با q از مرد خارج شوید.

چه چیز دیگری در CYGWIN است

کامپایلر

یک زبان برنامه نویسی ساده (مردم می گویند - 1 روز آموزش) برای پردازش کلمه، یکی از اجداد پرل

ویرایشگر جریان

مولد تجزیه کننده C

مولد تجزیه کننده C

زبان برنامه نویسی. در واقع، هیچ ارتباط مستقیمی با ابزارهای Gnu ندارد، مدتی توسط شرکت Sun پشتیبانی می شد. می توانید /usr/share/tk8.0/demos را سی دی کنید و ویجت -./widget را اجرا کنید. یک نسخه نمایشی از Tk، یک پسوند Tcl برای ایجاد رابط کاربری گرافیکی خواهید دید.

آرشیو

بایگانی کننده قدرتمند

برنامه مقایسه فایل

و خیلی بیشتر. فقط به بن بروید و ببینید چه چیزی در آنجا دارید. واریز بسته را می توانید در 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 را تنظیم کنید. در ویندوز 9x این کار در فایل autoexec.bat انجام می شود، در NT در My Computer / Properties / Environment باید مسیر bin را به متغیر محیطی PATH اضافه کنید.

برای بیشتر عملیات راحتدر Bash به شما توصیه می کنم کارهای زیر را انجام دهید: اگر دایرکتوری های Cygwin شما در c:\cygwin هستند، دایرکتوری c:\cygwin\root (mkdir /root) را ایجاد کنید و یک خط به فایل cygwin.bat اضافه کنید که در c:\cygwin است:

HOME=d:\cygwin\root

در دایرکتوری ریشه، باید 2 فایل ایجاد کنید که با یک نقطه شروع می شوند: inputrc. و bashrc. هر دو فایل در هنگام راه‌اندازی توسط Bash اجرا می‌شوند، inputrc. مسئول اطمینان از درست کارکردن همه کلیدها است و bashrc. حاوی اطلاعات مختلف. به عنوان مثال، من .bashrc خود را می دهم:

صادرات PS1="\w > "

صادرات PATH=".:$PATH"

نام مستعار ls="ls --color"

نام مستعار untar = "tar xvf"

echo به CygWin خوش آمدید!

خط اول مسیر Bash را مشخص می کند. یونیکس با تمام مفسران اینگونه رفتار می کند. به عنوان مثال، اگر اسکریپت Perl hello.pl و خود perl را در /usr/bin دارید، می توانید در خط اول بنویسید:

و به این صورت اجرا کنید:

بنابراین، می توان برنامه ها را بدون نگرانی در مورد آنچه نوشته شده است اجرا کرد.

PS1 متغیری است که اعلان Bash، اعلان شغل، همانطور که به آن نیز گفته می شود را ذخیره می کند. \w دایرکتوری فعلی است.

پس از این اضافه شدن به PATH، می توانید آن را به روشی که کاربران ویندوز استفاده می کنند انجام دهید:

بعد، من از مترادف‌ها یا مستعار "s" استفاده می‌کنم. برای مثال، دستور ls به‌طور پیش‌فرض، بسته به فایل‌ها، خروجی خود را رنگی نمی‌کند، برای این کار باید آن را با سوئیچ --color اجرا کنید. این کار ناخوشایند است. من این مشکل را با دستور مستعار ls="ls --color" حل می‌کنم. حالا ls به معنای ls --color است. sort_un_sort=" مرتب سازی | uniq --count | sort-r".

در واقع دامنه چیدمان محل کار نامحدود است و مثال های من ابتدایی و ساده هستند. توابع بیشتری وجود دارد، دستورات تعاملی در bashrc.، توابعی که از یک اعلان اجرا می شوند...

امیدوارم بخواهید با Cygwin آزمایش کنید. نظرات خود را به

Cygwin (Cygwin) مجموعه ای از برنامه ها و کتابخانه های یونیکس است که تحت سیستم عامل ویندوز کامپایل شده و در میزبانی می شود. سیستم فایلبه همان روشی که در یونیکس واقعی وجود دارد. به لطف این، ما یک معادل کامل از محیط یونیکس از کامپایلرهای bash تا gcc دریافت می‌کنیم، که می‌توانند پروژه‌هایی را برای اجرا در ویندوز بدون انتقال زیاد کد منبع بسازند (تعداد نسبتاً زیادی از برنامه‌های بین پلتفرمی از این رویکرد استفاده می‌کنند، زیرا ساده‌ترین و سریع‌ترین است).

نصب Cygwin

می توانید Cygwin را برای نسخه 32x یا 64x - بیت در وب سایت دانلود کنید https://cygwin.com/install.html. نصب بسیار ساده است - فقط می توانید روی "Next" در پنجره Select Packages کلیک کنید. در اینجا یک پایگاه داده از بسته ها در مقابل شما باز می شود و برخی از آنها قبلاً برای توقف (پایه) علامت گذاری شده اند و برخی دیگر را می توانید خودتان علامت گذاری کنید. برای علامت گذاری بسته برای نصب، باید نام آن را در قسمت «جستجو» وارد کنید، سپس دسته ها را گسترش دهید و این بسته را پیدا کنید. سپس روی "Skip" کلیک کنید، در نتیجه به جای Skip باید نسخه ای که نصب می شود ظاهر شود. برای کار بیشتر بسته را بررسی کنید wget، بقیه را می توان در حال حاضر دست نخورده رها کرد. بسته ها را می توان در هر زمان با اجرای مجدد نصب کننده نصب یا حذف کرد، اما این خیلی راحت نیست، بنابراین در ادامه مقاله به شما خواهم گفت که چگونه بسته ها را از خط فرمان نصب کنید (برای این کار ما به wget نیاز داریم).

به طور پیش فرض، cygwin در یک ترمینال استاندارد ویندوز اجرا می شود که خیلی راحت نیست.

کنسول ترمینال

نصب پکیج برای پایتون با پیپ

بسته ها در پایتون اغلب با استفاده از پیپ نصب می شوند که در مخازن sigwin یافت نمی شود.

بنابراین، باید به طور جداگانه نصب شود:

صفحات MAN برای توابع libc

Cygwin قبلاً حاوی صفحات man برای دستورات استاندارد است، اما man for libc توابع را می توان به طور جداگانه نصب کرد:

به هر حال، Cygwin تا حدودی با سیستم های جاسازی شده مرتبط است، همانطور که از آن استفاده می کند Newlibپیاده سازی libc، که به طور گسترده در زنجیره های ابزار مختلف ARM استفاده می شود.

vim در cygwin

نصب و راه اندازی:

پیکربندی در فایل .vimrc در فهرست اصلی شما انجام می شود:

من از این تنظیمات استفاده میکنم:

تنظیم backspace=indent,eol, start

نحو را فعال کنید

shiftwidth=4 را تنظیم کنید

تنظیم tabstop=8

تنظیم softtabstop=4

Expandtab را تنظیم کنید

مجموعه شماره

نمایش cmd را تنظیم کنید

تنظیم مکان نما

پلاگین تورفتگی نوع فایل روشن است

تنظیم منوی وحشی

مجموعه lazyredraw

مجموعه نمایش مسابقه

incsearch را تنظیم کنید

با استفاده از ترمینال Cygwin "بومی".

نصب کننده استاندارد Cygwin ترمینال mintty خود را ارائه می دهد (که از طریق نماد پایانه Cygwin راه اندازی می شود). در مقایسه با کنسول از نظر عملکرد کمی پایین تر است (مثلاً تب ندارد) اما عملکرد خوبی نیز دارد و ژست های حرکتی کمتری دارد. یکی از ویژگی های خوب پشتیبانی از رنگ های 256 بیتی در ترمینال است:

این به شما امکان می‌دهد از تم‌های برجسته نحوی مناسب برای vim استفاده کنید، مانند badwolf:

برای فعال کردن آن، به vimrc. اضافه کنید:

شبیه این خواهد شد:

چگونه تاریخچه فرمان را در bash cygwin ذخیره کنیم؟

در فایل bashrc. باید add را پیدا کنید:

اولی اندازه فایل تاریخچه (10 هزار دستور) را نشان می دهد، دومی شامل حذف دستورات تکراری (اگر دستور وارد شده از قبل در تاریخچه است، برای صرفه جویی در فضا، دستور قبلی حذف می شود) و سومی شامل نگهداری تاریخچه bash است.

چگونه به مسیری به سبک ویندوز در Cygwin برویم؟

شما می توانید از ابزار cygpath برای تبدیل یک مسیر برد مانند به یک مسیر به سبک یونیکس استفاده کنید.

این مسیر را به "/cygdrive/d/projects/some/src" تبدیل می کند و آن را به عنوان آرگومان به cd ارسال می کند.