
- •Министерство образования и науки Украины
- •Практическое занятие №1
- •1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
- •1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
- •1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
- •1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №2
- •1.1. Вход в систему
- •1.2. Редактирование командной строки
- •1.3. Память командных строк
- •1.4. Переключение виртуальных консолей
- •1.5. Изменение консольных шрифтов
- •1.6. Основные команды
- •Выполнение некоторых команд
- •2. Команда просмотра содержимого каталогов -ls (LiSt) – выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога).
- •Жесткая ссылка обозначает ся так же, как файл, на который она ссылается, счетчик ссылок при этом будет иметь значение больше 1.
- •3. Команда создание новых каталогов - mkdir.
- •5. Команда копирование файлов -cp (CoPy).
- •6. Команда перемещение файлов - mv (MoVe).
- •7. Команда удаление файлов - rm (ReMove).
- •8. Команды просмотра содержимого файлов more и cat.
- •Подстановочные символы
- •1.7. Выход из системы
- •2. Упражнения
- •Используя справочную информацию из п.1.6 Основные команды, изучите работу рассмотренных команд с различными параметрами и опциями:
- •1.2. Перенаправление ввода и вывода
- •1.3. Перенаправление с добавлением
- •1.4. Использование конвейера
- •2. Упражнения
- •3. Содержание отчёта
- •Справочная информация
- •Практическое занятие №4 Псевдонимы команд в ос qnx Цель – создание псевдонимов команд для облегчения работы в среде ос qnx
- •1. Краткие теоретические сведения
- •1.1. Управление связями файлов
- •1.2. Жесткие связи
- •1.3. Символические связи
- •1.4. Права доступа к файлам
- •1.5. Зависимости
- •1.6. Изменение прав доступа
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Сравнение файлов (команда diff)
- •1.3. Подсчет числа слов, строк и байт в файле (команда wc)
- •1.4. Потоковый редактор sed
- •2. Упражнения
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •/Usr/xpg4/bin/grep
- •Операнды
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •Использование
- •Работа с большими файлами
- •/Usr/bin/who
- •/Usr/xpg4/bin/who
- •Операнды
- •1.1. Ввод текста
- •1.2. Редактирование текста
- •1.3. Сохранение файлов и выход из VI
- •1.4. Редактирование еще одного файла
- •1.5. Включение других файлов
- •1.6. Выполнение команд Shell
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
- •1. Краткие теоретические сведения
- •1.1. Язык awk
- •1.2. Регулярные выражения
- •Метасимволы, используемые в регулярных выражениях
- •1.3. Действия
- •1.4. Awk-переменные и выражения
- •1.5. Использование операций
- •1.6. Использование массивов
- •1.7. Селекторы
- •1.8. Использование операторов
- •1.9. Ввод и вывод данных
- •1.10. Встроенные функции
- •2. Упражнения
- •Структура файла query1
- •Структура файла query2
- •3. Содержание отчёта
- •1.2. Граматика языка shell
- •2. Упражнения
- •3. Содержание отчёта
- •Выполнить:
- •2. Упражнения
- •Примечание:
- •3. Содержание отчёта
- •1.1. Компоновка объектных модулей
- •1.2. Отладка
- •2. Упражнения
- •Задание №1
- •Задание №2
- •Задание №3
- •Задание №4
- •Задание №5
- •Задание №6
- •Задание №13
- •Задание №14
- •Задание №15
- •Задание №16
- •Задание №17
- •Практическое занятие №11
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Создание каталога
- •1.3. Биты режима для прав доступа
- •1.4. Удаление каталога
- •1.5. Создание жесткой связи
- •1.6. Создание символической связи
- •1.7. Чтение символической связи
- •1.8. Переименование файла
- •1.9. Удаление файла
- •1.10. Обработка ошибок
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Проверка возможностей управления работой и процессами в shell
- •2. Упражнения
- •3. Содержание отчёта
- •1.3. Ошибки, связанные с именами файлов
- •1.4. Доступ к файлу
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №15 Организация процессов вQnx
- •1. Методические указания по выполнению практической работы
- •1.1. Файл main.O
- •1.2. Файл input.C
- •1.3. Файл output.C
- •1.4. Файл process.C
- •1.5. Используемые функции
- •1.6. Получение информации о процессах
- •2. Упражнения
- •1.2. Клиент
- •1.3. Определение идентификаторов узла, процесса и канала (nd/pid/chid) нужного сервера
- •1.4. Применение обмена сообщениями
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №17 Организация потоков в qnx
- •1. Краткие теоретические сведения
- •1.1. Запуск потока
- •1.2. Администрирование атрибутов потока
- •Текст программы
- •Результаты
- •1.2. Текст программы
- •1.3. Последовательность действий
- •1.4. Результаты
- •2. Упражнения
- •3. Содержание отчёта
1.1. Ввод текста
Для перехода в режим "ввода текста" необходимо нажать на клавишу 'a' или 'i' (обращайте внимание на регистр клавиш!). После этого можно набирать текст. Каждую введенную строку следует, как это принято, завершать нажатием клавиши [Enter].
Выполните следующие действия. Нажмите клавишу 'a', перейдите в режим "ввода текста" и наберите 3 строки:
Line 1
Line 2
Line 3
Для перехода в режим "команд" нажмите на клавишу Esc. Эта же клавиша используется для отмены не до конца набранной команды. Если вы неправильно ввели команду, редактор сообщит об этом одиночным звуковым сигналом.
Вставку или редактирование текста вы осуществляете в режиме вставки. При использовании vi вы, возможно, большую часть времени находитесь именно в этом режиме. Вы переходите в режим вставки с помощью команды ``i'' (``insert'' - вставка) из командного режима. В режиме вставки вы вставляете текст в документ на место, указываемое курсором. При вставке текста вы можете ввести столько строк, сколько пожелаете (нажимая "Еnter" после каждой строки), и можете корректировать ошибки используя клавишу возврата (← backspace).
Для завершения режима вставки и возврата в командный режим следует нажать esc.
Допустим, вам необходимо вставить в начало второй строки еще одно слово. Для этого в режиме "команд" перейдите куpсоpом на нужную строку, установите курсор в первую позицию и нажмите клавишу 'i'. После этого вставьте нужный текст, например слово 'Insert':
Line 1
Insert Line 2
Line 3
Для перехода в режим "команд" снова нажмите клавишу 'Esc', назначение которой надеемся вы уже поняли. Если вы по каким-то причинам запутались в каком режиме вы находитесь, нажмите два раза подряд Esc. Редактор выдаст звуковой сигнал, сообщая таким образом, что вы находитесь в режиме "команд".
Есть несколько способов вставки текста, отличных от использования команды i.
Для перехода в режим "ввода текста" можно использовать следующие команды:
a |
Вставить текст после курсора. |
i |
Вставить текст перед курсором. |
o |
Вставить новую строку после текущей. |
O |
Вставить новую строку перед текущей. |
(Текущей будем называть строку в которой расположен курсор, а текущим символом - символ в котором находится курсор).
1.2. Редактирование текста
В командном режиме вы можете использовать клавиши со стрелками для перемещения по файлу. Если мы имеем только одну строку текста, попытки использовать стрелки "вверх" и "вниз" приведут лишь к тому, что vi звуковым сигналом сообщит о некорректности действий.
Для перемещения курсора по тексту в режиме "команд" можно использовать клавиши управления курсором, а также следующие клавиши:
h или ПРОБЕЛ |
Курсор на один символ влево. |
l или BACKSPASE |
Курсор на один символ вправо. |
j |
Курсор вниз на одну строку. |
k |
Курсор вверх на одну строку. |
^ |
Переместить курсор на начало первого слова текущей строки. |
$ |
Переместить курсор в конец текущей строки. |
| |
Переместить курсор в первую позицию текущей строки. |
w |
Переместить курсор вперед на начало следующего cлова. |
b |
Переместить курсор назад на начало текущего слова. |
e |
Переместить курсор в конец слова. |
( |
Переместить курсор в начало предложения (назад). |
) |
Переместить курсор в конец предложения (вперед). |
{ |
Переместить курсор на начало параграфа (назад). |
} |
Переместить курсор в конец параграфа (вперед). (Параграфы могут быть разделены пустыми строками). |
Если перед нажатием на клавишу набрать какое-либо число, то курсор будет перемещен на соответствующее число позиций или строк.
числоПРОБЕЛ |
Переместить курсор на указанное число позиций вправо. |
числоBACKSPASE |
Переместить курсор на указанное число позиций влево. |
Также для пеpемещения по тексту можно использовать следующие команды:
числоG |
Переместить курсор в указанную строку. |
число| |
Переместить курсор в указанную позицию текущей строки. |
В данном случае число обозначает количество повторов команды, которое необходимо выполнить.
При редактировании больших файлов вы хотите перемещаться вперед и назад сразу на размер экрана. Нажатием Сtrl-F курсор перемещается на экран вперед, с помощью Сtrl-B - на экран назад.
Для того, чтобы переместить курсор в конец файла, введите G. Для того, чтобы встать на начало (на первую строку), используйте 1G.
Вы можете сочетать команды перемещения с другими командами, такими как удаление. Например, команда d$ удалить от местоположения курсора до конца строки; dG удалит все от курсора до конца файла и т.д.
Для поиска текста можно использовать команду '/'. После нее необходимо ввести строку для поиска и нажать [Enter]. Например:
:/Line 5[Enter]
После завершения поиска курсор будет находиться на первом символе строки.
Знак вопроса '?' работает так же, только поиск в файле ведется назад (т.е. в обратном направлении)
В режиме команд можно выполнять редактирование набранного текста с помощью следующих команд:
X |
Удалить текущий символ. |
Dd |
Удалить текущую строку. |
числоdd |
Удалить указанное число строк начиная с текущей. |
Dw |
Удалить текущее слово. |
числоdw |
Удалить указанное число слов начиная с текущего. |
R |
Заменить текущий символ на символ, набранный вслед за 'r'. |
числоs |
Заменить указанное число символов на такое же 'число' набранных вслед символов. |
В командном режиме команда "x" удаляет символ перед курсором.
Чтобы удалить слово, на котором находится курсор, используйте команду dw.
Вы можете заменить фрагменты текста, используя команду R. Использование R для редактирования текста очень походит на на команды i и a, но R заменяет прежний текст вместо вставки в него. Команда r заменяет один символ, отмеченный курсором.
Команда ``~'' изменяет размер буквы, отмеченной курсором: большую букву делает маленькой и наоборот.
ВНИМАНИЕ!
Последний удаленный фрагмент текста не теряется, а сохраняется в специальном буфере и может быть оперативно (сразу после удаления) восстановлен и вставлен в любое место файла. Такую возможность можно использовать для переноса строк из одного места в другое. Например, вам необходимо поменять местами строки 3 и 2 нашего файла.
Для этого перейдите в режим "команд" (Esc), установите курсор во вторую строку, введите комбинацию 'dd. Строка 'Line 2' будет удалена (помещена в буфер), и весь текст сдвинется вверх. В текущей строке появится строка 'Line 3':
Line 1
Line 3
Далее нажмите клавишу 'p'. После текущей строки ('Line 3') из буфера будет восстановлена и станет текущей строка 'Line 2':
Line 1
Line 3
Line 2
Соответственно для вставки удаленной строки перед текущей можно использовать команду 'P'.
Если вам необходимо сохранить в буфере строку без ее удаления, используйте команду 'yy'. В дальнейшем эту строку можно скопировать в другое место файла. Для работы с буфером и для перемещения (копирования) строк можно использовать следующие команды:
Yw |
Сохранить слово в буфере. |
числоyw |
Сохранить указанное число слов в буфере. |
Yy |
Сохранить текущую строку в буфере. |
числоyy |
Сохранить указанное число строк в буфере. |
P |
Скопировать и поместить информацию из буфера после текущей строки. |
P |
Скопировать и поместить информацию из буфера перед текущей строкой. |
(После копирования информация из буфера не удаляется и ее можно использовать еще).
Существует еще одна интересная команда - '.' (точка). Она выполняет последнюю введенную команду. Например, если с помощью команды 'dd' была удалена строка, то нажатие на клавишу '.' приведет к удалению следующей строки. Если строка была помещена в окно редактирования из буфера по команде 'p', то нажатие на '.' приведет к помещению в окно редактирования еще одной копии строки.