Европейский Университет в Санкт-Петербурге
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 1716 / 298 | Оценка: 4.30 / 3.85 | Длительность: 16:22:00
ISBN: 978-5-94774-820-8
Лекция 2:

Введение в UNIX. Интерфейс пользователя

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

Интерфейс CDE

Менеджер окон

По умолчанию на консоли Solaris запускается графическая среда, которая называется "общей рабочей средой" (CDE - common desktop environment). Каждое приложение, работающее в графической среде, запускается в отдельном окне. Строго говоря, приложения, специально написанные для графической среды, запускаются в своем собственном окне, а те, что предназначены для исполнения в текстовой среде, могут работать и в графической, но в последнем случае - только в окне эмулятора терминала.

Для управления окнами в графической среде используется специальная программа - менеджер окон. Именно она позволяет свертывать окна, изменять их размеры, перемещать по экрану, переключаться между ними, развертывать их на весь экран.

Экран в каждый момент времени показывает содержимое рабочего стола, который в Solaris носит название "рабочего пространства" (workspace). Рабочих пространств может быть несколько. С точки зрения менеджера окон, рабочее пространство - это множество окон. Менеджер окон в Solaris позволяет переключаться между разными рабочими пространствами. По умолчанию их четыре, обычно используют от четырех до шести рабочих пространств. С помощью настроек менеджера окон число рабочих пространств можно изменить.

Главная панель (front panel) менеджера окон доступна в любом рабочем пространстве внизу экрана (рис. 2.1). Она позволяет переключаться между пространствами, а также вызывать программы, для этого нужно лишь щелкнуть мышью по соответствующим иконкам. С подобной системой знакомы все, кто пользовался ярлыками в панели задач Windows. За каждой иконкой кроме конкретной программы скрывается целый набор ярлыков, служащих для вызова других, тематически связанных с ней программ. Для доступа к ним следует нажать стрелку над иконкой (рис. 2.2).

Более подробно о настройке среды CDE говорится в главе 30.

Главная панель CDE

Рис. 2.1. Главная панель CDE
Содержимое подменю главной панели CDE

Рис. 2.2. Содержимое подменю главной панели CDE

Экран - рабочее пространство пользователя

На рабочем пространстве располагаются окна запущенных в данный момент программ. Окно может быть свернутым (тогда оно изображается иконкой в рабочем пространстве), по умолчанию размещение иконок свернутых окон начинается в левом верхнем углу и ведется сверху вниз слева направо. Также окно может занимать весь экран или любую его часть.

Что можно сделать с окном

Верхняя строка окна (рис. 2.3) содержит три элемента управления: черточку в левом верхнем углу окна (первый элемент), точку (второй) и выпуклый квадрат (третий) в правом верхнем углу окна.

Верхняя строка окна CDE

Рис. 2.3. Верхняя строка окна CDE

При нажатии на первый открывается меню, которое позволяет восстановить первоначальный размер окна - restore (если окно развертывалось на полный экран до того), переместить окно - move, изменить его размер - resize, свернуть - minimize, развернуть на полный экран - maximize, поместить окно на задний план - lower (за окна других программ) или закрыть (close). Кроме того, с помощью этого же меню можно указать, что данное окно должно присутствовать во всех (occupy all workspaces) или нескольких (occupy workspace) рабочих пространствах. При переключении из одного пространства в другое окно будет "переходить" вслед за вниманием пользователя из одного пространства в другое.

Второй элемент управления служит для свертывания окна (эквивалентно выбору minimize в меню первого элемента управления, а третий - для развертывания во весь экран (эквивалентно maximize). У развернутого окна третий элемент управления выглядит иначе (впалый квадрат) и служит для восстановления первоначального размера окна (restore).

В качестве графической среды кроме CDE в Solaris, начиная с версии 9, поставляется GNOME 2.0. Можно использовать эту альтернативу CDE, особенно там, где требуется исполнять программы, специально разработанные для работы с GNOME.

Текстовый редактор

В графической среде можно использовать не только текстовый редактор vi или его аналог, но и редактор, в котором окно и меню представлены в графическом виде и есть возможность выбирать пункты меню как нажатием комбинаций клавиш, так и мышью. Можно также использовать предустановленные редакторы dtpad (вызывается с управляющей панели CDE из группы Applications - Text Editor или командой dtpad& из командной строки) или xedit - из командной строки. Редактор dtpad представляет собой несколько урезанный по функциям аналог WordPad из систем Windows.

Текстовый редактор vi

Vi может находиться в одном из двух режимов - командном режиме или режиме ввода. При запуске редактор начинает работу в командном режиме. В этом случае все, что вы набираете на клавиатуре, интерпретируется как команда. Команды в vi короткие - почти все состоят из одной или двух букв. Некоторые команды редактора vi отображаются в служебной строке. Служебной строкой в vi считается последняя строка экрана. Большинство команд редактора никак не отображаются, хотя выполняются. Это не очень удобно, если у пользователя дрожат руки, или он не помнит, какую клавишу только что нажал. Так можно легко стереть или модифицировать текст неожиданным образом. Старайтесь не допускать случайных нажатий на клавиши в командном режиме!

Vi отображает вводимую команду в служебной строке, если это команда поиска, или если команда вводится в режиме совместимости с редактором ed. При отображении чего-либо в служебной строке экрана строка файла, которая раньше показывалась в этой строке, никак не меняется.

Для перехода в режим ввода дайте команду a, i или o. После этого можно будет начинать ввод текста. Текст начнет соответственно вводиться в позиции курсора, в позиции, следующей за позицией курсора, или в начале новой строки, которая появится под текущей строкой. В режиме ввода все клавиши, которые набираются на клавиатуре, за исключением клавиши <Esc>, интерпретируются как набираемый текст. <Esc> - это переход из режима ввода в режим команд.

В режиме ввода не всегда можно пользоваться клавишами передвижения по тексту (стрелками, PgUp, PgDn, Home, End и т.д.). Если терминал настроен не совсем корректно, то нажатие, например, клавиши "стрелка вверх", vi может воспринять как нажатие <Esc>, за которым следует [B. Поэтому может случиться так, что нажав стрелку "вверх" в режиме ввода, вы незаметно для себя перейдете в режим команд. Если вы продолжите ввод текста, он будет воспринят как команда. Таким образом, иногда можно передвигаться по тексту в режиме ввода, но лучше сначала выйти в командный режим, затем перейти по тексту в нужное место и снова перейти в режим ввода.

Переход по тексту в командном режиме выполняется клавишами передвижения по тексту (стрелками, PgUp, PgDn, Home, End), а также нажатием <Ctrl-F> (forward, вперед на страницу), <Ctrl-B> (backward, назад на страницу). Бывает, что клавиши-"стрелки" не работают. Тогда можно использовать вместо них клавиши h, j, k, l следующим образом:


Рис. 2.4.

Эти клавиши были выбраны только потому, что они расположены рядом; буквы h, j, k и l не соотносятся с английскими словами, которые можно было бы ассоциировать с передвижениями вверх-вниз, вправо-влево.

В таблице 2.2 перечислены основные команды редактора vi . Полный список можно посмотреть в руководстве по vi ( man vi ) или в книгах Арнольда Роббинса (Arnold Robbins) "Vi Pocket Reference"11st Edition January 1999. Series: Pocket References. ISBN: 1-56592-497-5 O'Reilly Assosiates. и "Learning the vi Editor".

Таблица 2.2. Основные команды редактора vi
начало ввода
a перейти в режим ввода, начать ввод в позиции, следующей за позицией курсора
i перейти в режим ввода, начать ввод в позиции курсора
o перейти в режим ввода, добавить пустую строку под текущей строкой и начать ввод в новой строке
операции с буфером
dd вырезать текущую строку в буфер
x вырезать текущий символ в буфер
u отменить последнее действие
yy копировать текущую строку в буфер
p вставить строку из буфера под текущей
замена символа
rn заменить символ в позиции курсора на n
перемещение по тексту
0 перейти в начало строки
$ перейти в конец строки
j перейти на сроку вниз
k перейти на строку вверх
h перейти на символ влево
l перейти на символ вправо
% если курсор стоит в позиции символа "скобка" (круглая, квадратная или фигурная), перейти в позицию соответствующей второй скобки
Ctrl-G показать текущую позицию (номер строки) в файле
поиск и замена
/ поиск вперед
? поиск назад
:s/что/на что/[g] поиск и замена
запись и завершение редактирования

ZZ

:q

выход из редактора, запись файла

выйти из редактора

:q! выйти без записи
:w записать изменения
:wq записать и выйти
:w! записать, даже если нет права записи в файл (срабатывает, только если выполнена от имени root)
:w имя файла записать в файл с другим именем; в дальнейшем будет считаться, что редактируется именно этот файл с другим именем
<Esc> переход в командный режим

Все команды, начинающиеся с двоеточия, - это команды режима совместимости с редактором ed. Ввод двоеточия интерпретируется vi как переход к этому режиму. Как только вы введете двоеточие, оно отобразится в начале служебной строки, и оставшуюся часть команды вы будете набирать, видя ее в этой строке. В качестве служебной строки используется последняя строка экрана.

Перед любой командой vi , где это имеет смысл, за исключением команд, начинающихся с двоеточия, можно набрать число, которое будет указывать, сколько раз требуется повторить идущую за ним команду. Например,

15dd

означает, что нужно вырезать в буфер пятнадцать строк, начиная с текущей.

Важная часть команд - команды поиска и замены. Обычный поиск выполняется командой /образец, т.е. знак "слэш", за которым следует образец для поиска. При поиске назад по файлу вместо слэша используется вопросительный знак. Для продолжения поиска ставится слэш или вопросительный знак без образца. Если в образце встретится слэш или вопросительный знак, vi сочтет их ограничителем образца и проигнорирует остаток образца. Поиск и замена выполняется командой :s/образец/на_что_менять/. В ней указывается образец для поиска и строка, которой следует его заменить. После завершающего слэша может стоять модификатор g. Если его не поставить, заменен будет только первый образец в строке. Если в строке есть еще подстроки, отвечающие образцу, они останутся нетронутыми. Если поставить модификатор g, будут заменены все подстроки, отвечающие образцу.

Все команды режима совместимости с редактором ed могут быть предварены выражением n,m, где n,m - номера строк, ограничивающих диапазон выполнения команды. Если такого выражения нет, команда выполняется для текущей строки. Например:

:23,33s/black/white/g

означает, что нужно заменить все вхождения black на white во всех строках c 23 по 33 включительно. В выражении, описывающем диапазон, допустимы числа и символы " ." и " $ ", а также арифметические выражения. Символ " ." обозначает текущую строку, символ " $ " - последнюю строку файла. Например,

:.,.+7s/black/white/g

означает замену black на white в восьми строках, начиная с текущей.

Допустим, мы находимся в первой строке. Тогда выражение

.,.+7

фактически означает

1,1+7

т.е.

1,8

Команда

:.,$s/yellow/blue/g

означает замену yellow на blue во всех строках, начиная с текущей и до конца файла.

В режиме совместимости можно не только выполнять команды поиска и замены. Здесь есть еще команда удаления - d. Команда

:1,.d

удалит все строки с первой по текущую.

Диапазон может состоять из одной строки, например команда

:4d

означает требование удалить четвертую строку.

Ввод числа за двоеточием без всяких команд означает переход к строке с указанным номером, например

:56

вызовет переход к 56-й строке.

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >