Главная страница
Навигация по странице:

  • 2 Переменные используемые оболочкой 2.1 Переменные настройки локализации

  • Задание 1

  • 2.3 Переменные устанавливаемые оболочкой

  • Задание 3

  • 1 Монтирование и демонтирование файловых систем

  • Задание 2

  • Лабораторная работа 1 Изучение основных команд для работы с файлами. 1 Общие сведения


    Скачать 348.5 Kb.
    НазваниеЛабораторная работа 1 Изучение основных команд для работы с файлами. 1 Общие сведения
    Анкорaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas
    Дата12.06.2022
    Размер348.5 Kb.
    Формат файлаdoc
    Имя файлаKurs_laboratornykh_rabot__DOC__410KB_.doc
    ТипЛабораторная работа
    #586437
    страница3 из 4
    1   2   3   4

    5 Средства оболочки предназначенные для работы с процес­
    сами


    Список — последовательность из одного или более конвейеров разделенных операторами ;, &, && или ||. Более высокий приоритет у операторов && и ||. Если команда завершается оператором &, то оболочка выполняет ее в фоновом режиме. Если между двумя командами стоит оператор &&, то вторая команда будет выполнена только в том случае, если первая завершится успешно. Если между двумя командами стоит ||, то вторая команда будет выполнена только в том случае, если код завершения первой команды отличен от нуля. Если команды разделены точкой с запятой, то вторая команда будет выполнена после завершения первой, независимо от результата выполнения первой команды.

    Оболочка содержит несколько встроенных команд для работы с процессами:

    wait [pid]

    Ожидает завершения процесса с указаным идентификатором. Если идентификатор опу­щен, то ожидает завершения всех процессов запущеных оболочкой.

    exec команда [аргумент]...

    Указанная команда заменяет оболочку и получает в качестве параметров заданные ар­гументы.

    exit [n]

    Приводит к завершению оболочки с кодом завершения n. Если арумент опущен, то код завершения ноль.

    trap [действие условие...]

    Устанавливает обработчик события. Условие либо EXIT, либо имя сигнала без префик­са SIG. EXIT соответствует завершению работы оболочки. Если действие равно “-”, то обработчик сбрасывается в значение по умолчанию. Например, после выполнения команды:

    trap "echo PRESSED" INT

    оболочка будет выводить слово PRESSED после каждого нажатия клавиш CTRL-C. (На­жатие клавиш CTRL-C приводит к посылке сигнала SIGINT процессам подключенным к терминалу).

    6 Практическое задание

    1. Освойте работу с командой ps. Попробуйте запускать ее с различными аргументами. Если вывод команды не помещается на экране, используйте команду less.

    2. Выведите в файл отчета1 (lab4.txt) следующую информацию о запущенных Вами процессах: pid, ppid, tty, ruid, command. Вывод должен быть отсортирован по номеру процесса.

    3. Выведите в файл отчета информацию о процессах запущенных пользователем root. Вывод должен быть отсортирован по номеру процесса.

    4. Ключи -c, -v, -j, -u изменяют формат вывода команды. Попробуйте выполнить команду ps с каждым из этих ключей. Результат сохраните в файле отчета.

    5. Запустите команду /home/labs/back. Выполните команду ps и найдите в выведенном списке процесс /home/labs/back. Отправьте процессу сигнал SIGTERM. Снова выпол­ните ps.

    ____________________________________________________________________________________

    1Если дано задание вывести что-либо в файл отчета, то это означает, что сначала надо вывести результат на экран, убедиться в отсутствии ошибок и только после этого повторно выполнить команду, перенаправив её вывод в файл отчета. Лишняя информация в файле отчета наказуема.
    6. Запустите команду:

    /home/labs/looper first & nice /home/labs/looper secnd&

    Программа looper выполняет 100 000 000 пустых циклов, выводит первый аргумент и номер цикла, после чего все повторяется.

    1. При помощи команды ps, запущеной на другом терминале, определите номера процессов looper и уничтожьте их.

    2. Создайте в домашнем каталоге именованный канал fifo. Выполните команду cat /home/labs/dao.txt >fifo Теперь с другого терминала выполните команду cat fifo

    3. При помощи команд tty, w, uname, uptime выведите в файл отчета (lab3.txt) имя текуще­го терминала, информацию о пользователях, работающих в системе, название и версию операционной системы, время работы системы.

    10. Установите обработчик сигнала SIGINT. Для этого выполните команду:

    trap "echo иполучен сигнал SIGINT " INT

    Пошлите несколько раз оболочке сигнал SIGINT. Для этого следует нажать клавиши CTRL-C.

    11. Добавьте в начало файла отчета строку с номером лабораторной работы и Вашим именем.


    Лабораторная работа №5

    Настройка оболочки.

    1 Файлы инициализации.

    При запуске в режиме сеансовой оболочки (при входе в систему) bash выполняет команды со­держащиеся в файле /etc/profile, а затем ищет в домашнем каталоге пользователя файлы .bash_profile, .bash_login и .profile и выполняет команды содержащиеся в первом из найденных файлов. Если интерпретатор запускается в интерактивном режиме, но не в качестве сеансовой оболочки (например, при запуске xterm), то он выполняет команды содержащиеся в файле .bashrc из домашнего каталога пользователя. Наконец, если интерпретатор запуска­ется не в интерактивном режиме (например, при выполнении сценария), то он, после запуска, выполняет команды содержащиеся в файле, имя которого хранится в переменной BASH_ENV.

    Указанные файлы могут использоваться для настройки рабочей среды в соответствии с по­требностями пользователя. Как правило в этих файлах содержатся присвоения значений пере­менным, определения алиасов и функций. Там же могут содержаться команды запуска программ.

    2 Переменные используемые оболочкой

    2.1 Переменные настройки локализации

    Для определения языковых настроек используются следующие переменные окружения:

    LANG определяет значение по умолчанию. Имеет самый низкий приоритет.

    LC_ALL

    если эта переменная определена, то ее значение перекрывает значения всех остальных переменных локализации.

    LC_COLLATE

    значение этой переменной определяет порядок сортировки символов.

    LC_CTYPE

    значение этой переменной указывает на используемые классы символов.

    LC_MESSAGES

    значение переменной определяет язык, на котором программы должны выводить сооб­щения.

    LC_NUMERIC

    определяет формат вывода чисел.

    Этим переменным присваиваются значения вида:

    язык_СТРАНА.КОДОВАЯСТРАНИЦА

    или значение C для локали POSIX. Например, для использования русского языка следует при­своить переменной LANG значение ru_RU.KOI8-R.

    Задание 1: Сравните вывод команд date и LANG=C date
    2.2 Переменные используемые оболочкой и некоторыми программами

    Следующие переменные влияют на работу оболочки и некоторых других программ: PATH определяет путь поиска испольняемых файлов.

    HOME домашний каталог пользователя.

    CDPATH

    путь поиска для команды cd.

    PROMPT_COMMAND

    перед выводом приглашения, интерпретатор выполняет команду, содержащуюся в дан­ной переменной.

    PS1 значение этой переменной определяет вид приглашения командной строки. В данной пе­ременной могут использоваться следующие специальные символы, предваренные обрат­ной косой чертой:

    a звуковой сигнал.

    d текущая дата.

    e escape символ.

    h короткое имя хоста.

    H длинное имя хоста.

    l имя терминала.

    n символ новой строки.

    t текущее время в 24-часовом формате.

    T текущее время в 12-часовом формате.

    u имя пользователя.

    w полный текущий рабочий каталог.

    W короткое имя текущего каталога.

    $ символ доллара если UID отличен от нуля и символ “#” если равен нулю.

    Пример: PS1="\d \T\n\u \$ "

    Задание 2: Измените приглашение командной строки так, чтобы в нем выводилось вре­мя, имя пользователя и текущий рабочий каталог. Заканчиваться приглашение должно символом доллара. Сохраните команду определяющую приглашение в файле .bashrc, чтобы приглашение восстанавливалось при каждом запуске оболочки.

    TMOUT если значение данной переменной больше нуля, то оно определяет время, в секундах, в течение которого оболочка ожидает ввода пользователя.

    EDITOR

    многие программы используют значение данной переменной для определения предпочи­таемого пользователем текстового редактора.

    PAGER значение этой переменной используется, например, справочной системой man для опре­деления программы просмотра справочных страниц.

    2.3 Переменные устанавливаемые оболочкой

    Следующие переменные устанавливаются самой оболочкой. Присваивать им значения в файлах инициализации не имеет смысла.

    PPID номер родительского процесса оболочки.

    PWD текущий рабочий каталог.

    OLDPWD

    каталог, который был рабочим до текущего.

    UID идентификатор пользователя, запустившего оболочку.

    RANDOM

    при извлечении значения данной переменной возвращается случайное число от 0 до 32767.

    LINENO

    номер текущей строки сценария.

    HOSTNAME

    имя хоста.

    Задание 3: Просмотрите значения переменых PPID, PWD, OLDPWD, UID, RANDOM и HOST­NAME и сохраните их в файле отчёта (lab5.txt) в формате “имя_переменной=значение”.

    3 Псевдонимы команд

    Bash позволяет определять псевдонимы для наиболее часто используемых команд. Например, если Вы часто используете команду netstat -ran -f inet, то, чтобы не набирать ее каждый раз, Вы можете определить для этой команды псевдоним nsr и использовать его вместо команды. Для определения такого псевдонима используется команда:

    alias nsr=’netstat -ran -f inet’

    Псевдоним действует до завершения процесса оболочки. Если Вы хотите использовать псевдо­ним постоянно, то следует записать команду, определяющую псевдоним, в файл .bashrc.

    Команда alias выполненная без параметров, выводит список определенных псевдонимов. Если в качестве параметра задано только имя, то выводится определение указанного псевдонима. Если команда выполнена в виде:

    alias имя=команда

    то создаётся новый (или переопределяется существующий) псевдоним. Первое слово команды может, в свою очередь, также являться псевдонимом, однако если оно совпадает с именем исходного псевдонима, то оболочка не будет его преобразовывать. Например, можно определить псевдоним ls для команды ls -F, и оболочка не будет раскрывать его рекурсивно. Для удаления псевдонима используется команда unalias. Псевдонимы можно использовать только в интерактивном режиме.


    Задание 4: Создайте

    псевдонимы:




    Is

    для команды

    Is

    -G




    11

    для команды

    Is

    -1




    la

    для команды

    Is

    -a




    pa

    для команды ps

    ax




    X

    для команды

    startx




    Сохраните команды, определяющие псевдонимы

    в файле .bashrc, чтобы они выполнялись каж-

    дый раз

    при запуске о

    болочки.






    4 Функции

    Функции определяются следующим образом:

    [ function ] имя() { список; }

    Данная конструкция определяет функцию с указанным именем. Список команд, заключённый в фигурные скобки, является телом функции. Этот список выполняется каждый раз при вызове функции. Выполнение функции осуществляется в том же процессе, что и её вызов, т.е. все изменения окружения процесса остаются в силе после выхода из функции. Вызов функции осуществляется по её имени так же, как и запуск любой команды. Функции могут передаваться аргументы. Во время выполнения функции аргументы заменяют позиционные параметры ($1, $2, ...), после выхода из функции позиционные параметры восстанавливаются.

    Команда return завершает выполнение функции и осуществляет переход к команде следу­ющей за вызовом функции. Функции могут быть рекурсивными. Пример функции:

    func1() { mkdir $1; touch $1/$2; }

    Выполните вызов данной функции следующим образом:

    func1 dir1 file1

    Задание 5: Определите функцию lab, которая будет выводить строку "Лабораторная работа N", где N передаётся функции в качестве аргумента, а затем строку содержащую Ваши имя и фамилию. Сохраните определение функции в файле .bashrc. Добавьте результат работы функции в файл отчета.

    Лабораторная работа № 6

    Работа с файловыми системами.

    1 Монтирование и демонтирование файловых систем

    В UNIX все файловые системы (на различных жестких дисках, дискетах, приводах CD-ROM, импортируемые из сети) объединяются в единую иерархическую структуру. Одна из файловых систем является корневой, к её каталогам монтируются другие файловые системы и т.д. По­сле монтирования файловой системы к некоторому каталогу, при обращении к этому каталогу осуществляется доступ к корневому каталогу подмонтированной файловой системы. При этом становится невозможно получить содержимое каталога к которому подмонтирована файловая система. Каталог, к которому подмонтирована некоторая файловая система, называется точкой монтирования данной файловой системы.

    Для монтирования файловых систем и вывода списка смонтированных файловых систем слу­жит команда mount. В различных операционных системах эта команда может иметь различный синтаксис. В ОС FreeBSD команда используется следующим образом: mount [-dpruvw] [-o параметры] [-t тип ] [устройство точка_монтирования ]

    Значения параметров следующие:

    -d выполнить все действия, за исключением собственно монтирования.

    -p вывести информацию в формате файла fstab.

    -r смонтировать файловую систему только для чтения.

    -w смонтировать файловую систему для чтения и записи.

    -u изменить состояние уже смонтированной файловой системы.

    -v вывести подробную информацию.

    -o за этим ключом следует список параметров, разделенных запятыми. Допустимы следу­ющие параметры:

    nodev не использовать файлы устройств. noexec

    запретить запуск программ с файловой системы. nosuid

    запретить использование бита suid для файловой системы. rdonly

    то же, что и -r

    union объединить пространство имён файловой системы и каталога, являющегося точкой монтирования.

    -t позволяет указать тип монтируемой файловой системы. Возможны следующие типы:

    ufs файловая система UFS. Используется по умолчанию. ext2fs

    файловая система ОС Linux.

    msdos FAT.

    ntfs NTFS. cd9660

    файловая система используемая в CD-ROM.

    nfs сетевая файловая система NFS.
    Параметр устройство обозначает файл устройства, на котором находится файловая система. В системе FreeBSD жестким дискам IDE соответствуют файлы устройств /dev/ad?s?, дискетам — /dev/fd?. Например, первый раздел первого диска IDE — /dev/ad0s1, первый дисковод гибких дисков — /dev/fd0.

    Задание 1: Просмотрите список смонтированных файловых систем. Создайте в домашнем ката­логе каталог floppy. Скопируйте в этот каталог файл /home/labs/text.txt. Просмотрите содержимое каталога floppy. Вставьте в дисковод отформатированную дискету. Подмонтируй-те дискету к каталогу floppy. Просмотрите содержимое каталога floppy. Выведите в файл отчета список смонтированных файловых систем.

    Для того, чтобы отключить используемую файловую систему, применяется команда umount. В качестве аргумента, команде umount передаётся точка монтирования (т.е. каталог, к кото­рому подмонтирована файловая система). Если не размонтировать файловую систему, перед её отключением, то возможна потеря информации.

    Задание 2: Размонтируйте дискету. Просмотрите содержимое каталога floppy и список смон­тированных файловых систем.

    2 Создание новой файловой системы

    Для того, чтобы использовать диск, необходимо создать на нём файловую систему, т.е. от­форматировать его. Для этой цели используется команда newfs. Данная команда создаёт на диске файловую систему UFS. Как правило достаточно указать имя файла устройства в каче­стве параметра данной команды, но возможно, также, указывать различные параметры файловой системы.

    Для создания файловой системы FAT можно использовать команду newfs_msdos: newfs_msdos [-F FAT][-L метка][-c разм-класт][-f формат] устройство

    Параметры имеют следующее значение:

    -F определяет тип FAT (12, 16, 32).

    -L задаёт метку диска.

    -c определяет размер кластера в секторах.

    -f определяет формат гибкого диска. Возможные значения: 360, 720, 1200, 1440, 2880.

    Для низкоуровнего форматирования гибких дисков используется команда fdformat. Как правило, в качестве параметра достаточно указать имя файла устройства.
    1   2   3   4


    написать администратору сайта