Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3481 / 786 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 5:

Cygwin

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

Реализация

Щелкните дважды на значке Cygwin. Вы увидите окно, похожее на то, что представлено ниже.


Скрипт cygwin.bat выполняется из командной строки DOS, устанавливает среду Cygwin и запускает интерпретатор bash под Windows. Cygwin прекрасно настраивает переменные Unix-окружения в соответствии с переменными окружения Windows. Например, на своей машине, я вошел в Windows, как пользователь bjohnson. Когда я запускаю Cygwin, он по умолчанию загружается под управлением пользователя bjohnson.

Ниже представлено окно с некоторыми стандартными Unix-командами в Cygwin.


В зависимости от установленных вами пакетов, вы легко можете запускать соответствующие Unix-утилиты. Если вы пользователь Unix, вам, несомненно, хотелось бы, чтобы в Windows была команда ps для просмотра выполняемых в настоящее время процессов без использования Task Manager. Если вы используете флаг -aW, вы сможете увидеть процессы Windows, как и любые запущенные процессы Cygwin. Ниже представлен список Windows-процессов, доступный в результате выполнения Cygwin команды ( ps -aW | less ).

PID PPID    PGID    WINPID  TTY UID STIME   COMMAND
3193213 0   0   4291774083  ?   0   Dec 31  C:\WINDOWS\SYSTEM\KERNEL32.DLL
63753   0   0   4294903543  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MSGSRV32.EXE
60569   0   0   4294906727  ?   0   Dec 31  C:\WINDOWS\SYSTEM\MPREXE.EXE
77349   0   0   4294889947  ?   0   Dec 31  C:\WINDOWS\SYSTEM\RPCSS.EXE
196093  0   0   4294771203  ?   0   Dec 31  C:\WINDOWS\SYSTEM\mmtask.tsk
191237  0   0   4294776059  ?   0   Dec 31  C:\WINDOWS\EXPLORER.EXE
237709  0   0   4294729587  ?   0   Dec 31  C:\WINDOWS\TASKMON.EXE
230713  0   0   4294736583  ?   0   Dec 31  C:\WINDOWS\SYSTEM\SYSTRAY.EXE
217533  0   0   4294749763  ?   0   Dec 31  C:\PROGRAMFILES\DIRECTCD\DIRECTCD.EXE
5.1.
Структура директорий и полномочия доступа к файлам

Cygwin монтирует ваши локальные диски в директории /cygdrive. Сюда входят разделы жесткого диска, дисководы, устройства для чтения компакт-дисков, устройства для чтения ZIP. Выполним команду df на моей машине. Получим структуру, подобную той, что приведена ниже.

Bjohnson@BRADMAN 
$ df
Filesystem  1k-blocks   Used    Available   Use%    Mounted on
C:\cygwin\bin   2096832 0   2096832 0%  /usr/bin
C:\cygwin\lib   2096832 0   2096832 0%  /usr/lib
C:\cygwin   2096832 0   2096832 0%  /
c:  2096832 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 (но не Windows). Директории из среды окружения Windows были импортированы в среду Cygwin, чтобы иметь к ним доступ.

Cygwin также использует разумную систему полномочий доступа для Unix-файлов. Но что это может означать для всех ваших Windows-файлов? Кто владелец файлов, и какие полномочия установлены по умолчанию? Запустим команду ls -al на несколько Windows-файлов, чтобы получить ответ.

bjohnson@BRADMAN /cygdrive/c/cyginstall
$ ls -al
total 273
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 17:48 .
drwxr-xr-x  1   bjohnson    unknown 0   Dec 31 1969 ..
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:06 contrib
drwxr-xr-x  1   bjohnson    unknown 0   Mar 13 18:03 latest
-rwxr-xr-x  1   bjohnson    unknown 218112  Mar 13 17:48 setup.exe
-rw-r--r--  1   bjohnson    unknown 60607   Mar 13 17:54 setup.ini

Cygwin попытается получить информацию о владельцах файла (пользователе и группе) из Windows. Пока я использовал машину под управлением Windows 98 с одним пользователем, все файлы принадлежали мне (bjohnson) с указанием в качестве группы "unknown". Это устанавливало полномочия для всех Windows-директорий и исполняемых файлов на значение 755 (чтение и выполнение для всех, запись только для владельца) и устанавливала всем файлам Windows полномочия 644 (чтение для всех, запись только для владельца). Выполнение команды chmod для Windows-файлов игнорируется.

Совет. Cygwin включает в себя несколько утилит ( mkpasswd, mkgroup и т.д.) и значений переменных окружения ( CYGWIN=ntsec ), которые помогают отобразить систему полномочий Windows NT/2000 в систему полномочий Unix так, чтобы обеспечить пользователям Unix и администраторам систем возможность работы на вашей машине с использованием Cygwin. За дополнительной информацией обращайтесь на http://cygwin.com/cygwin-ug-net/ntsec.html и к Cygwin FAQ (http://cygwin.com/faq).
< Лекция 4 || Лекция 5: 123 || Лекция 6 >