- •«Работа в ос unix/Linux и программирование на языке shell»
- •Интерпретатор команд (shell)
- •Структура команд unix
- •Простые команды
- •Стандартные ввод и вывод
- •Параметры
- •Составные команды
- •Специальные символы и подстановка значений
- •Переменные
- •Логические выражения и операторы управления
- •Оператор if:
- •Оператор while:
- •Оператор until:
- •Оператор case:
- •Оператор for:
- •Альтернативная форма оператора for:
- •Оператор select:
- •Оператор break:
- •Оператор continue:
- •Оператор shift:
- •Арифметические выражения
- •Работа пользователя в системе unix
- •Начало и завершение работы в системе
- •Запуск и выполнение команд
- •Фоновые процессы и управление заданиями
- •Скрипты
- •Некоторые команды
- •Справочные команды
- •Man [том]имя_команды
- •Info имя_команды
- •Help имя_встроенной_команды
- •Информационные команды
- •Ls [ключи] параметры
- •History [-c] [число]
- •Hostname [ключи]
- •Ps [ключи]
- •Uname [ключи]
- •Date [ключи] [новая_дата]
- •Cal [ключи] [месяц [год]]
- •Du [ключи] [список_имен]
- •Stat [список_имен]
- •Mv файл1 файл2илиmvсписок_файловкаталог
- •Find список_каталогов [ключи]
- •Rmdir [ключи] список_каталогов
- •Cat список_файлов
- •Команды для работы с данными
- •Echo [ключи] параметры
- •More [файл]
- •Sort [ключи] [-k от_поля [, до_поля]] [список_файлов]
- •Cut [ключи] [файлы]
- •Команды управления процессами
- •Testсписок_аргументов
- •Read [ключи] [список_переменных]
- •Getopts строка_ключей переменная [список_слов]
- •Примеры команд и скриптов
- •Примеры команд интерактивного режима
- •Создание текстового файла
- •Работа с файлами
- •Определить трех пользователей системы, чьи домашние каталоги с содержащимися в них файлами занимают больше всего дискового пространства
- •Примеры скриптов
- •Выдать имена всех файлов каталога-параметра и всех его подкаталогов, отступами показывая вложенность каталогов. Если параметр не задан, начать с текущего каталога.
- •Порядок выполнения работы
- •Примеры заданий на использование команд в интерактивном режиме
- •Список вариантов заданий на разработку командных файлов
- •Контрольные вопросы
Команды управления процессами
sleep время
Выполняет задержку на указанное число секунд. Время можно также указать в минутах, записав после числа суффикс m, в часах (суффиксh) или в днях (суффиксd).
logout
Завершает выполнение shell, запущенного при входе пользователя, т.е. выполняет выход пользователя из системы.
exit [код_завершения]
Вызывает завершение выполнения скрипта и возвращает заданный код завершения. Если код не задан, возвращает код завершения последней команды перед exit. Если командаexitвведена в интерактивном режиме, она завершает выполненияshell, что обычно означает выход пользователя из системы.
wait [процесс / задание]
В качестве параметра может быть указан либо числовой идентификатор процесса, либо спецификация задания (см. п.2.4.3).
Команда вызывает ожидание завершения указанного процесса либо всех процессов указанного задания. Если параметр не задан, shellждет завершения всех порожденных процессов.
kill [-s сигнал] [процесс / задание]
Посылает указанный сигнал процессу или заданию. Сигнал может быть задан либо его номером, либо именем (например, SIGKILL– завершить процесс). Список имен сигналов можно получить по командеkill -l. Если сигнал не задан, то по умолчанию посылаетсяSIGTERM, который также завершает процесс, однако, в отличие отSIGKILL, может быть проигнорирован процессом.
В качестве получателя сигнала может быть указан либо числовой идентификатор процесса, либо спецификация задания (см. п.2.4.3).
jobs [ключи] [спецификация]
Выдает список всех заданий, как приостановленных, так и выполняющихся в фоновом режиме. Знаком +в списке выделяется текущее задание (последнее из запущенных или приостановленных), знаком-– предыдущее задание. Если указана спецификация задания, выдает информацию только об этом задании. С ключом–lвключает в выдачу идентификаторы процессов.
bg [спецификация]
Продолжает выполнение указанного задания в фоновом режиме.
fg [спецификация]
Продолжает выполнение указанного задания в режиме переднего плана. Имя команды bgможет быть опущено, достаточно задать только спецификацию задания.
true
Возвращает код завершения 0 («истина»). Обычно используется в конструкциях вида «while true; do ... ; done»
false
Возвращает код завершения 1 («ложь»).
eval [строка]
Выполняет все положенные подстановки в строке-аргументе (подстановку переменных, замену по шаблонам, раскрытие кавычек и др.), после чего выполняет получившуюся строку как команду. Кодом завершения evalбудет код завершения выполненной команды. Таким образом, командаevalпозволяет динамически формировать как имя команды, подлежащей выполнению, так и ее параметры и ключи.
Если строка-аргумент не задана или при подстановках дает пустое значение, то evalвозвращает код завершения 0.
Команды для работы с переменными
let список_арифм_выражений
Выполняет вычисление арифметических выражений. Возвращает код завершения 1, если значение последнего выражения равно 0, иначе возвращает 0.
При использовании bashвместо командыletудобнее записывать выражения в двойных скобках (см. 2.3.8), однакоlet– более стандартное средство, имеющееся в разных версиях шелла.
set [ключи] [список_слов]
Без ключей и параметров – выдает список всех определенных переменных с их значениями, а также список определенных функций (в данной работе функции shellне рассматриваются). С ключами используется для установки разнообразных режимов работыshell. Если задан список слов-параметров, то эти слова присваиваются позиционным параметрам$1,$2, …
unset имя_переменной
Объявляет указанную переменную неопределенной.
export [ключи] [переменная1[=значение1]] [переменная2[=значение2]] ...
Объявляет указанные переменные экспортируемыми, т.е. доступными для скриптов, запускаемых из данного шелла. Попутно можно присвоить переменным значения. Экспортируемые переменные передаются скриптам «по значению», т.е. изменения значений, сделанные внутри скрипта, не сохраняются после его завершения.
Ключ –nобъявляет указанные переменные неэкспортируемыми.
Если ни одна переменная не указана или если указан ключ –p, то команда выдает список всех экспортируемых переменных.