
- •Министерство образования Российской Федерации
- •Введение Лабораторная работа №1 основы интерактивной работы в Linux
- •Программа работы
- •Пояснение к работе Пользователи.
- •Сеанс работы.
- •Работа в консоли.
- •Монтирование каталога oc NetWare
- •Интерпретатор команд.
- •Справочная система man, xman, info.
- •Программа Midnight Commander.
- •Завершение сеанса работы в ос unix.
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа № 2 команды файловой системы текстовый редактор VI
- •Программа работы
- •Пояснения к работе Команды для работы с каталогами
- •Смена текущего каталога с помощью команды cd.
- •Выдача информации о файлах и каталогах с помощью команды ls
- •Создание каталога с помощью команды mkdir
- •Удаление каталогов с помощью команды rmdir
- •Команды работы с файлами
- •Копирование файлов(каталогов) с помощью команды ср
- •Перемещение файлов (каталогов) с помощью команды mv
- •Конкатенация файлов с помощью команды cat
- •Удаление файлов с помощью команды rm
- •Перенаправление ввода и вывода и конвейеризация
- •Запуск команд
- •Текстовый редактор VI
- •Начала VI
- •Вставка текста
- •Удаление текста
- •Изменение текста
- •Команды перемещения
- •Сохранение файлов и выход из VI
- •Редактирование еще одного файла
- •Включение других файлов
- •Выполнение команд Shell
- •Получение помощи
- •Контрольные вопросы
- •Содержание отчета
- •Синтаксис скрипта.
- •Команды функции и программы.
- •Шаблоны
- •Переменные
- •Переменные окружения
- •Внутренние переменные
- •Условные выражения
- •Селекторы
- •Варианты заданий
- •Контрольные вопросы
- •Содержание отчета
- •Библиографический список
Перенаправление ввода и вывода и конвейеризация
Каждая запущенная из командного интерпретатора программа получает три открытых потока ввода/вывода: стандартный ввод (дескриптор 0); стандартный вывод (1); стандартный вывод сообщений об ошибках (2). По умолчанию все эти потоки ассоциированы с терминалом, т.е. программа, использующая только эти потоки, ожидает ввод с клавиатуры, а весь вывод осуществляется на экран монитора. Интерпретатор позволяет пользователю перенаправить потоки ввода/вывода, установив ввод из файла, а вывод в файл.
Все преимущества возможности перенаправления ввода/вывода становятся ясны при использовании еще одного мощного инструмента UNIX – конвейеров (программных каналов). Конвейером называется использование стандартного вывода одной команды в качестве стандартного ввода другой. Синтаксис перенаправления ввода/вывода:
команда >file перенаправление стандартного потока вывода в файл file
команда>>file добавление (дозапись) в файл file данных из стандартного потока вывода
<file получение стандартного потока ввода из файла file
p1|p2 передача стандартного потока вывода программы р1 в потов ввода p2
n>file переключение потока вывода из файла с дескриптором n в file
n>>file то же, но записи добавляются в file
n>&m слияние потоков с дескрипторами n и m
Пример:
sort textfile | lp
содержимое файла textfile сортируется командой sort, а затем этот файл (выход команды sort) передается на печать.
cat *.994 ¦ grep profits | lp
в текущем каталоге производится поиск файлов, имена которых заканчиваются на 994 (шаблон *.994); список таких файлов отправляется на ввод команды grep, которая произведет поиск в этих файлах слова profits; затем строки, содержащие это слово, будут напечатаны.
my_prog 2>/dev/null
при запуске программы my_prog вывод ошибок (стандартный поток с дескриптором 2) перенаправляется в нулевое устройство /dev/null, т.е. подавляется.
my_prog >/dev/null 2>&1
сначала будет осуществлено слияние потоков 2 и 1 (оба будут указывать на терминал пользователя), а потом стандартный поток вывода будет перенаправлен в файл /dev/null
Запуск команд
Если необходимо запустить несколько команд, это можно сделать в одной строке, разделив команды символом ‘;’.Команды будут выполнены последовательно. Например:
…~>pwd; date
Программу можно запустить в фоновом режиме, для этого строку команду следует завершить символом ‘&”. В этом случае shell не будет ожидать завершения выполнения программы, а сразу выведет приглашение и работу можно продолжить:
…~>find –name myfile.txt.1 –print >/tmp/myfile.list 2>/dev/null &
Условный запуск команд подразумевает запуск второй команды в том случае, если предыдущая команда завершилась успешно (&&) или неудачно (||)/ Пример:
…~>grep alla /etc/passwd && grep alla /etc/group
поиск пользователя alla в файле групп произойдет только в том случае, если он присутствует в файле паролей.
…~>grep alla /etc/passwd || echo alla is not present
если пользователя alla нет в файле паролей, выдается соответствующее сообщение.
Текстовый редактор VI
В Linux имеются многотекстовых редакторов, включая vi, ex, pico, jove, также как GNU Emacs и его вариации, вроде Lucid Emacs (который содержит расширение для использования под X Windows) и joe. Многие пользователи UNIX до сих пор используют "простые" редакторы вроде vi, которые требуют минимальных ресурсов (по причине своего «преклонного возраста»). Для освоения текстового редактора vi ознакомьтесь с документом Начала_vi.doc .