Перенаправление стандартного ввода-вывода

Операционные системы и операционные оболочки.

Работа с ОС 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 (добавить в файл данные о пользователях).

 

· для перенаправления стандартного ввода используется знак <; эта возможность используется реже, чем перенаправление вывода; можно одновременно перенаправить и ввод, и вывод.