Лекция: Группирование команд

Группы команд или сложные команды могут формироваться с помощью специальных символов (метасимволов):

& — процесс выполняется в фоновом режиме, не дожидаясь окончания предыдущих процессов;

? — шаблон, распространяется только на один символ;

* — шаблон, распространяется на все оставшиеся символы;

| — программный канал — стандартный вывод одного процесса является стандартным вводом другого;

> — переадресация вывода в файл;

< — переадресация ввода из файла;

; — если в списке команд команды отделяются друг от друга точкой с запятой, то они выполняются друг за другом;

&& — эта конструкция между командами означает, что последующая команда выполняется только при нормальном завершении предыдущей команды ( код возврата 0 );

|| — последующая команда выполняется только, если не выполнилась предыдущая команда ( код возврата 1 );

() — группирование команд в скобки;

{ } — группирование команд с объединенным выводом;

[] — указание диапазона или явное перечисление ( без запятых);

>> — добавление содержимого файла в конец другого файла.

 

Примеры.

who | wc — подсчет количества работающих пользователей командой (word count — счет слов);

cat text.1 > text.2 — содержимое файла text.1 пересылается в файл text.2;

mail student < file.txt — электронная почта передает файл file.txt всем пользователям, перечисленным в командной строке;

cat text.1,text.2 — просматриваются файлы text.1 и text.2;

cat text.1 >> text.2 — добавление файла text.1 в конец файла text.2;

cc primer.c & — трансляция СИ — программы в фоновом режиме. Имя выполняемой программы по умолчанию a.out.

cc -o primer.o primer.c — трансляция СИ-программы с образованием файла выполняемой программы с именем primer.o;

rm text.* — удаление всех файлов с именем text;

{cat text.1; cat text.2} | lpr — пpосмотp файлов text.1 и text.2 и вывод их на печать;

ps [al] [number] — команда для вывода информации о процессах:

-a — вывод информации обо всех активных процессах, запущенных с вашего терминала;

-l — полная информация о процессах;

number — номер процесса.

Команда ps без параметров выводит информацию только об активных процессах, запущенных с данного терминала, в том числе и фоновых. На экран выводится подробная информация обо всех активных процессах в следующей форме:

 

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

 

1 S 200 210 7 0 2 20 80 30 703a 03 0:07 cc

1 R 12 419 7 11 5 20 56 20 03 0:12 ps

 

F — флаг процесса (1 — в оперативной памяти, 2 — системный процесс, 4 — заблокирован в ОЗУ, 20 — находится под управлением другого процесса, 10 — подвергнут свопингу);

S — состояние процесса (O — выполняется процессором, S — задержан, R — готов к выполнению, I — создается);

UID — идентификатор пользователя;

PID — идентификатор процесса;

PPID — номер родительского процесса;

C — степень загруженности процессора;

PRI — приоритет процесса, вычисляется по значению переменной NICE и чем больше число, тем меньше его приоритет;

NI — значение переменной NICE для вычисления динамического приоритета, принимает величины от 0 до 39;

ADDR — адрес процесса в памяти;

SZ — объем ОЗУ, занимаемый процессом;

WCHAN — имя события, до которого процесс задержан, для активного процесса — пробел;

TTY — номер управляющего терминала для процесса;

TIME — время выполнения процесса;

CMD — команда, которая породила процесс.

nice [-приращение приоритета] команда[аргументы] — команда изменения приоритета. Каждое запущенное задание (процесс) имеет номер приоритета в диапазоне от 0 до 39, на основе которого ядро вычисляет фактический приоритет, используемый для планирования процесса. Значение 0 представляет наивысший приоритет, а 39 — самый низший. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Команда nice -10 ls -l увеличивает номер приоритета, присвоенный процессу ls -l на 10.

renice 5 1836 — команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5. Увеличить приоритет процесса может только администратор системы.

kill [-sig] <идентификатор процесса> — прекращение процесса до его программного завершения. sig — номер сигнала. Sig = -15 означает программное (нормальное) завершение процесса, номер сигнала = -9 — уничтожение процесса. По умолчанию sig= -9. Вывести себя из системы можно командой kill -9 0. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.

mc — вызов файлового менеджера (программы — оболочки) Midnight Commander, аналогичного Norton Commander.

sort [-dr] — сортировка входных файлов и вывод результата на экран.

Задание №1.Для выполнения данной работы будем использовать ранее установленный Linux Ubuntu. Запускаем Linux. После прохождения идентификации включаем терминал.

Рис 1. Терминал Linux Ubuntu

  • Для работы в терминале Ubuntu требуются права пользователя root, но, к сожалению, по умолчанию, он недоступен, поэтому для выполнения некоторых (не всех) команд надо писать sudo <команда>, и подтверждать свои права вводом пароля. И не пугайтесь того, что его не видно в терминале! Наберите точно по памяти, по окончании ввода нажмите Enter.
  • Для получении справки о дополнительных возможностях некоторых программ следует набрать <команда> –help
  • Потренируйтесь в выполнении команд:

· date

· oclock

· finger

· hwclock

· uname

· history

· clear

· ls

  • Создайте нового пользователя, при помощи терминала Ubuntu, и введите его в группу admin. Создайте пароль пользователю. Войдите под ним в систему. Процесс создания и ввода в группу внесите в отчет.
  • Разберите выполнение незадействованных команд таблицы 2. Потренируйтесь в выполнении, определите их назначение и область применения.
еще рефераты
Еще работы по информатике