
- •Особенности системы. Основные понятия
- •Основные компоненты ос unix
- •Начало работы с командной строкой, командами, процессами
- •Вход пользователя
- •Ввод простых команд
- •Печать времени
- •Получение информации о работающих пользователях
- •Уничтожение процесса
- •Выход пользователя
- •Формирование команд
- •Формат команд
- •Стандартные файлы
- •Перенаправление стандартного ввода-вывода
- •Организация конвейеров команд
- •Использование метасимволов
- •Файловая система ос unix
- •Общие сведения
- •Структура
- •Именование файлов
- •Механизм защиты файлов
- •Работа с файлами и каталогами
- •Вывод содержимого каталога
- •Изменение текущего каталога
- •Создание каталога
- •Вывод имени текущего каталога
- •Переименование каталога
- •Удаление пустого каталога
- •Вывод содержимого файла, конкатенация файла и создание файла
- •Переименование и перемещение файлов
- •Копирование файлов
- •Удаление файлов и каталогов
- •Установка и изменение режима доступа к файлу
- •Лабораторная работа №6 Управление процессами в ос Linux
- •Введение
- •О процессах linux
- •Клонирование процессов, процессы init и exec
- •Стандартные ввод и вывод
- •Элементарные операции над процессами
- •Перенаправление ввода и вывода
- •Операторы перенаправления ввода-вывода Linux перечислены в таблице 1.
- •Связывание процессов с помощью каналов (конвейеров)
- •Многозадачность
- •Приоритетный и фоновый режимы
- •Мониторинг многозадачной среды
- •Информация о состоянии процессов. Мониторинг процессов с помощью ps
- •Теперь, посмотрим результат вывода следующей команды:
- •Получение списка пользователей, работающих в системе
- •Запуск команд в заданное время с помощью команд at и batch
- •Запуск команд в определенное время с помощью команды at
- •Первая команда
- •После ввода всей команды вы увидите на дисплее нечто, наподобие:
- •Управление многозадачностью
- •Использование команды nohup
- •Изменение приоритета команд с помощью nice
- •Изменение приоритета работающего процесса с помощью renice
- •Прекращение процесса с помощью kill
- •Лабораторная работа №7 Командный интерпретатор shell
- •Запуск и выход из оболочки
- •Интерпретация командной строки
- •Последовательное выполнение команд (символ ;)
- •Специальные символы
- •Поиск всех символов (метасимвол *)
- •Поиск по одному символу (метасимвол ?)
- •Использование кавычек для отмены значения символа пробел
- •Создание простых программ shell и их выполнение
- •Ограничения при именовании программ shell
- •Переменные
- •Позиционные параметры
- •Специальные параметры
- •Именованные переменные
- •Удаление переменных
- •Присвоение значений переменным
- •Использование команды read
- •Арифметические операции: команда let
- •Конструкции языка программирования Shell
- •Комментарии
- •Оператор for
- •Оператор while
- •Условные операторы. Оператор if ... Then
- •Общий формат конструкции if
- •Безусловная передача управления
- •Отладка программы
- •Лабораторная работа №8 Работа в графической среде X Windows
- •К кнопка
- •Линейка пиктограмм
- •Кнопки виртуальных Рабочих столов
- •Список задач
- •Настройка kde
- •Центр управления kde
- •Настройка Панели
- •Добавление ссылок на приложения в Панель kde
- •Работа с файлами и каталогами в kde
- •Файловая система
- •Файловый менеджер Konqueror
- •Операции с файлами и каталогами с помощью файлового менеджера Konqueror
- •Создание файлов и каталогов
- •Изменение атрибутов файла
- •Редактирование файла
- •Работа со стандартными приложениями kde
- •Уничтожение окон в kde (аварийное закрытие программ)
- •Выход из kde
- •Ваши последние действия
- •Содержание
-
Запуск команд в заданное время с помощью команд at и batch
ОС Linux предоставляет различные возможности контроля выполнения команд. Например, можно составить список команд и определить, когда они должны быть запущены. Команда at, например, получает список команд (введенный с клавиатуры или находящийся в файле) и запускает их в определенное в команде время. Команда batch подобна команде at, но запускается не в определенное пользователем время, а когда система сама решит, что загрузка позволяет ей запустить дополнительные процессы.
-
Запуск команд в определенное время с помощью команды at
Для запуска одной или более команд в заранее определенное время используется команда at. В ней вы можете определить время и дату запуска той или иной команды. Как минимум, следует указать два параметра – время запуска и какая команда должна быть запущена.
Общий формат команды:
at <время>
Первая команда
…
последняя команда
<Ctrl+D>
Аргумент <время> состоит из времени дня и даты, если дата не сегодняшняя (в случае, когда дата не будет указана, – она подразумевается сегодняшней). В нашем примере в заданный день и заданное время будут распечатаны все файлы каталога /usr/sal/reports и пользователю boss будет направлено уведомление об этом. При использовании команды at нельзя забывать, что по окончании ввода всей команды необходимо нажать сочетание клавиш <Ctrl+D>.
#at 1:23 Jan 24
at>lp /usr/sal/reports/*
at>echo “Files printed, Boss!” | mail –s “Job done” boss
at><EOT>
После ввода всей команды вы увидите на дисплее нечто, наподобие:
warning: commands will be executed using /bin/sh
job 14 at 2002-01-24 1:23
Это означает, что указанные выше команды будут запущены, как и было заказано, в 1:23 24-го января. Здесь приведен также идентификатор задания (14), который понадобиться, например, если вы решите отменить задание. Для этого к вашим услугам at с опцией –d:
#at –d 14
Если список команд находится в файле (например, getdone) и вы хотите запустить все перечисленные в нем команды в 10:00, то необходимо ввести:
#at 10:00 < getdone
Задания, определяемые вами, помещаются в очередь, которую операционная система периодически просматривает. Для того, чтобы просмотреть очередь заданий – введите at –L , и все запланированные задания появятся на экране.
И, наконец, несколько примечаний о работе с командой at:
-
команда at работает в фоновом режиме;
-
вы можете увидеть на экране только свои задания команде at.
-
Управление многозадачностью
Linux предоставляет множество возможностей одновременного запуска процессов, а также дает пользователю и администратору инструменты для контроля над ними. К ним относятся, например, средства для выполнения следующих задач:
-
запуск процесса, выполнение которого будет продолжаться даже после вашего выхода из системы (команда nohup);
-
запуск процесса с приоритетом, отличающимся от приоритетов других процессов (команда nice);
-
изменение приоритета уже работающего процесса (команда renice);
-
завершение работы процесса (команда kill).
-
Использование команды nohup
Обычно дочерний процесс прекращается после родительского. Таким образом, если вы запустили фоновый процесс, то он будет прекращен при вашем выходе из системы. Для того чтобы процесс продолжал выполняться даже после вашего выхода из системы, применяется команда nohup. Ее просто следует поместить в начало командной строки. Например:
#nohup sort worknew.dat
Эта простая команда заставляет операционную систему игнорировать ваш выход из нее и продолжать выполнение до тех пор, пока процесс не закончится сам по себе. Таким образом, вы запустите процесс, который может выполняться неделями, не требуя вашего контроля т.е. он окажется без контролирующего терминала (в столбце TTY команды ps –uax этого процесса будет стоять знак ?). Поэтому, для того чтобы в дальнейшем «засечь» этот процесс, вам будет необходимо использовать опцию –x к команде ps. Кроме того, при работе с этой командой следует учитывать, что она не переводит запускаемый процесс автоматически в фоновый режим, а при указании в конце строки знака & – вы можете не получить приветствие после нажатия клавиши <Enter>. В этом случае надо просто пару раз нажать на клавишу <> (которая, как вы знаете из Unix’а, – возвращает в командную строку вводимые ранее вами команды) и приветствие вновь появится, либо – можно просто смело вводить новые команды и они будут работать.
Обычно, вывод запущенной с помощью nohup команды перенаправляется в файл nohup.out, о чем система честно предупреждает вас при запуске команды:
#nohup sort worknew.dat
nohup: appending output to ‘nohup.out’
Итак, отсортированный файл и все возможные в процессе работы сообщения об ошибках после окончания работы окажутся в файле nohup.out. Однако, в следующем примере все сообщения об ошибках будут направлены в файл nohup.out, но отсортированный файл окажется помещенным в worknew.srt.
#nohup sort worknew.dat > worknew.srt &
nohup: appending output to ‘nohup.out’