Перенаправление стандартного ввода-вывода
Операционные системы и операционные оболочки.
Работа с ОС UNIX
Продолжительность работы:4 часа.
Цель работы:Изучение основных команд ОСUNIX, наработка практических навыков работы с ними. Отработка практических навыков работы на ПК под управлением ОСUNIX.
Краткие теоретические сведения
Особенности системы. Основные понятия
1.1. Основные компоненты ОС UNIX
Ядро–управляющая программа, взаимодействующая с аппаратными средствами. Её функции:
· управление памятью и процессами;
· обслуживание внешних устройств;
· обслуживание всех программ.
Все действия, связанные с вводом-выводом и вызовом программ, выполняются в ОСUNIX c помощью системных вызовов. Системные вызовы реализуют интерфейс между программами и ядром (программный интерфейс).
Интерпретатор команд Shell (оболочка) обеспечивает интерфейс пользователя – ядро при введении пользователем команд с терминала (командный интерфейс). Он интерпретирует команды, вводимые из командного файла, и является также языком программирования, на котором пишут командные файлы (Shell-файлы).
Начало работы с командной строкой, командами, процессами
Вход пользователя
Процедуры входа пользователя могут отличаться в различных ОСUNIX. Загрузка ОС UNIX определяется системным администратором. Например, после включения компьютера и загрузки ОС на экране появляется сообщение:
login:
Введите слово user и номер своего компьютера и нажмите <enter>;
password:
Нажмите <enter>
Приветствие UNIX
$
Вы получили доступ к средствам ОС UNIX.
Пример
login: user1
password: нажмите <enter>
$
Ввод простых команд
Печать времени
Введите команду date
$ date
На экране появится сообщение:
Вск Май 13 11:38:41 MSD 2001
Получение информации о работающих пользователях
Введите команду who
$ who
На экране появится следующая информация:
user1 tty1 May 13 11:30
user5 tty5 May 13 12:32
Каждая строка сообщения на экране содержит следующую информацию:
· идентификатор пользователя: user1, user5;
· идентификатор терминала: tty1, tty5;
· дату и время подключения пользователя к системе: May 13 11:30.
Вариант (получение информации о собственном имени):
$ who am i
user1 tty1 May 13 11:30
Если вы ошиблись при наборе текста, можно использовать клавиши <BackSpace> и <Del>.
2.3. Приостановка/продолжение вывода на экран
· ^S - приостановка;
· ^Q - продолжение.
Остановка выполнения команды
· ^C или клавиша BREAK.
2.5. Начало работы пользователя с процессами: вывод информации о процессах, уничтожение процессов
Состояние процессов
Команда: ps(process status)
Формат: ps[флаги] [number]
Действие: эта команда предоставляет информацию о текущих активных процессах в системе
Флаги: команда имеет три флага, которые могут задаваться вместе или по отдельности:
· а – вывод информации обо всех активных процессах;
· l – создание листинга длинного формата;
· x – печать информации о процессах, не связанных ни с каким терминалом;
· number – номер процесса.
Пример
$ ps -a
PID TTY TIME CMD
2036 tty1 00:00:00 login
2043 tty1 00:00:01 ps
На экране отображена следующая информация о процессах:
PID – идентификатор процесса;
TTY – номер терминала;
TIME – суммарное время выполнения;
CMD – имя команды в командной строке. В этом столбце представлены обрабатываемые в текущий момент команды.
Уничтожение процесса
Команда: kill(прекратить)
Формат: kill[флаги] processid
processid – идентификатор процесса
Действие: эта команда используется для завершения процесса; уничтожить процесс имеет право либо тот, кто его инициировал, либо привилегированный пользователь
Флаги: команда kill посылает процессу сигнал (сигналам соответствуют числа); с помощью killгенерируются следующие сигналы:
· 15 – программное завершение процесса;
· 9 – безусловное завершение процесса;
· 11 – полностью завершить работу системы.
Пример
$ kill 2043
Примечание
Если пользователь введёт в командной строке
$ kill –90 или
$ kill –9<номер процесса>
при входе в систему, то он выведет себя из системы. Обычный (непривилегированный) пользователь может прекратить только процессы, связанные с его собственным терминалом.
Выход пользователя
Для выхода из системы нажмите <CTRL>-<D>.
$
login:
Подсказка login: сообщает, что пользователь вышел из системы.
Формирование команд
Формат команд
Формат команд следующий:
Имя команды [флаги] [параметры] [метасимволы].
Длина имени команды от 2 до 9 символов. Имя команды записывается строчными буквами и цифрами. Флаги (опции) – одна или несколько букв со знаком минус – задают различные варианты работы команды. Порядок флагов не является существенным, кроме специально оговариваемых случаев. Параметрами обычно задаются объекты для обработки. Метасимволы – не обязательная составляющая командной строки.
Команды разделяются либо концом строки, либо точкой с запятой.
Пример
$ who; date
user1 tty1 May 13 11:45
Вск Май 13 11:45:38 MSD 2001
Стандартные файлы
Многие команды работают по умолчанию со стандартными файлами:
· Standard Input (S.I.);
· Standard Output (S.O.);
· Diagnostic Output (D.O.).
Однако есть средства изменения умолчания, т.е. возможность указать другие файлы вместо стандартных. Эти средства называются перенаправлением (redirection) ввода и вывода.
Перенаправление стандартного ввода-вывода
· для перенаправления вывода используется знак >;
Пример
$ date - вывод на экран текущей даты (standard output);
$ date > dirconts - вывод в файл dirconts.
Пробелы вокруг символа > необязательны.
· возможно перенаправление вывода с добавлением (с дописыванием в файл); обозначается >>;
Пример
$ who >> dirconts (добавить в файл данные о пользователях).
· для перенаправления стандартного ввода используется знак <; эта возможность используется реже, чем перенаправление вывода; можно одновременно перенаправить и ввод, и вывод.