- •«Работа в ос 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 строка_ключей переменная [список_слов]
- •Примеры команд и скриптов
- •Примеры команд интерактивного режима
- •Создание текстового файла
- •Работа с файлами
- •Определить трех пользователей системы, чьи домашние каталоги с содержащимися в них файлами занимают больше всего дискового пространства
- •Примеры скриптов
- •Выдать имена всех файлов каталога-параметра и всех его подкаталогов, отступами показывая вложенность каталогов. Если параметр не задан, начать с текущего каталога.
- •Порядок выполнения работы
- •Примеры заданий на использование команд в интерактивном режиме
- •Список вариантов заданий на разработку командных файлов
- •Контрольные вопросы
Порядок выполнения работы
Лабораторная работа выполняется в лаборатории, оснащенной компьютерами с возможностью доступа к ОС LinuxилиUNIX. Студенты получают задание на написание командных файлов, изучают команды по приведенному описанию, осваивают применение команд на практике, пишут и отлаживают пакетный файл, готовят отчет.
Отчет о лабораторной работе оформляется на бумаге в печатном или рукописном виде. На титульном листе указывается название работы и состав бригады. В отчете приводится формулировка задания, а также тексты разработанных командных файлов с необходимыми пояснениями.
Когда студенты готовы к сдаче работы, преподаватель дает им 2-3 задания на применение команд в интерактивном режиме, проверяет выполнение заданий, а затем проверяет отчет. При выполнении заданий разрешается пользоваться данным описанием, другой литературой или справочной системой UNIX. Преподаватель может задать дополнительные вопросы, выясняя уровень освоения команд.
Не требуется заучивание наизусть всех описанных команд и тем более их ключей, более важно понимание основ UNIXи умение быстро найти требуемую информацию в справочной системе.
Примеры заданий на использование команд в интерактивном режиме
Преподаватель при сдаче лабораторной работы просит студентов выполнить 2-3 задания из этого списка. Номера диалоговых заданий не связаны с номерами вариантов заданий на разработку пакетных файлов.
Не требуется включать какие-либо из заданий этого раздела в отчет по лабораторной работе.
Выдать список номеров виртуальных терминалов, на которых уже был выполнен вход пользователя в систему. (Для этого предварительно изучить выдачу команды «ps -e»).
Создать новый каталог и разместить в нем несколько жестких ссылок на файлы другого каталога и несколько символических ссылок.
Запустить три фоновых процесса, выдающих сообщения о своей работе с интервалами 3, 5 и 8 секунд. Потом поубивать всех.
Выдать список всех команд, запомненных в списке истории, в которых запускалась заданная команда (например, команда ls).
Получить числовой идентификатор текущего пользователя. Воспользовавшись этим идентификатором, выдать список процессов, выполняемых текущим пользователем.
Создать текстовый файл, скопировать его с другим именем, с помощью редактора (например, вызываемого по F4в оболочкеmc) внести несколько изменений в копию, а затем выполнить команду, которая находит все отличия.
Выдать список всех подкаталогов текущего каталога, начиная с наиболее свежего по дате изменения.
Выдать список всех файлов текущего каталога, доступных владельцу на выполнение. (Для этого предварительно изучить выдачу команды «ls -l»).
Выдать список всех строк всех файлов текущего каталога, содержащих сочетание ‘the’, независимо от регистра.
Определить переменную среды abcdсо значением «Goog morning!». Затем заменить ее значение на «Good night!». Выдать значение переменной на экран. Затем удалить переменнуюabcd.
Выдать список всех подкаталогов текущего каталога в порядке уменьшения занимаемого дискового пространства.
Выдать список всех пользователей системы, содержащий имя входа и полное имя каждого пользователя.
Выдать список всех определенных переменных, имеющих пустое значение. Если таких переменных нет, то предварительно определить несколько.
Взять небольшой текстовый файл и отсортировать его строки в алфавитном порядке. Результат сортировки выдавать на экран.