Лабораторная работа командные файлы linux

3. Порядок выполнения работы

1. Ознакомиться с файловой структурой ОС LINUX. Изучить команды работы с файлами.

2. Используя команды ОС LINUX, создать два текстовых файла.

3. Полученные файлы объединить в один файл и его содержимое просмотреть на экране.

4. Создать новую директорию и переместить в нее полученные файлы.

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

6. Добавить для всех трех файлов право выполнения членам группы и остальным пользователям.

7. Просмотреть атрибуты файлов.

8. Создать еще один каталог.

9. Установить дополнительную связь объединенного файла с новым каталогом, но под другим именем.

10. Создать символическую связь.

11. Сделать текущим новый каталог и вывести на экран расширенный список информации о его файлах.

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

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

14. Сдать отчет о работе и удалить свои файлы и каталоги.

4. Контрольные вопросы

1. Что считается файлами в OC LINUX?

2. Объясните назначение связей с файлами и способы их создания.

3. Что определяет атрибуты файлов и каким образом их можно просмотреть и изменить?

4. Какие методы создания и удаления файлов, каталогов Вы знаете?

5. В чем заключается поиск по шаблону?

6. Какой командой можно получить список работающих пользователей и сохранить его в файле?

Создание и выполнение командных файлов в среде ос linux

1. Цель работы

Целью работы является изучение методов создания и выполнения командных файлов на языке Shell — интерпретатора.

2. Теоретическая часть

В предыдущих лабораторных работах взаимодействие с командным интерпретатором Shell осуществлялось с помощью командной строки. Однако, Shell является также и языком программирования, который применяется для написания командных файлов (shell — файлов). Командные файлы также называются скриптами и сценариями. Shell — файл содержит одну или несколько выполняемых команд (процедур), а имя файла в этом случае используется как имя команды.

2.1. Переменные командного интерпретатора

Для обозначения переменных Shell используется последовательность букв, цифр и символов подчеркивания; переменные не могут начинаться с цифры. Присваивание значений переменным проводится с использованием знака = , например, РS2 = ‘

— позиционные переменные вида $n, где n — целое число;

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

— специальные переменные # ? — ! $ устанавливаются интерпретатором и позволяют получить информацию о числе позиционных переменных, коде завершения последней команды, идентификационном номере текущего и фонового процессов, о текущих флагах интерпретатора Shell.

Простые переменные. Shell присваивает значения переменным:

Здесь переменной x присвоено значение z.

Позиционные переменные. Переменные вида $n, где n — целое число, используются для идентификации позиций элементов в командной строке с помощью номеров, начиная с нуля. Например, в командной строке

Читайте также:  Панель управления minecraft сервер linux

саt text_1 text_2. text_9

аргументы идентифицируются параметрами $1. $9. Для имени команды всегда используется S0. В данном случае $0 — это саt, $1 — text_1, $2 — text_2 и т.д. Для присваивания значений позиционным переменным используется команда set, например:

set arg_1 arg_2. arg_9

здесь $1 присваивается значение аргумента arg_1, $2 — arg_2 и т.д.

Для доступа к аргументам используется команда echo, например:

Для получения информации обо всех аргументах (включая последний) используют метасимвол *. Пример:

arg_2 arg_3 . arg_10 arg_11 arg_12

С помощью позиционных переменных Shell можно сохранить имя команды и ее аргументы. При выполнении команды интерпретатор Shell должен передать ей аргументы, порядок которых может регулироваться также с помощью позиционных переменных.

Специальные переменные. Переменные — ? # $ ! устанавливаются только Shell. Они позволяют с помощью команды echo получить следующую информацию:

— – текущие флаги интерпретатора (установка флагов может быть изменена командой set);

# – число аргументов, которое было сохранено интерпретатором при выполнении какой-либо команды;

? – код возврата последней выполняемой команды;

$ – числовой идентификатор текущего процесса PID;

! – PID последнего фонового процесса.

Источник

Лаба 3

Целью работы является изучение методов создания и выполнения командных файлов на языке Shell — интерпретатора.

  1. Ход работы:
    1. Создали каталог и в нем создали файл со своей фамилией и текущим временем (рисунок 1).

    Рисунок 1 – Создание каталога DIR и файла Myfile.txt

      1. Переименовали файл Myfile.txt в Old_Myfile.txt с помощью команды mv и установили у него атрибут ReadOnly (рисунок 2).

      Рисунок 2 – Изменение файла Myfile.txt

        1. Вычислили омическое сопротивление двух параллельно соединенных резисторов. Создадили shell-файл с программой, позволяющей вычислить омическое сопротивление (рисунок 3).

        Рисунок 3 – Вычисление омического сопротивления

          1. Переведем заданное десятичное число в шестнадцатеричную форму. Ввод десятичного числа с клавиатуры в диапазоне от 0 до 4096. Создадим shell-файл и запишем в него код программы (рисунок 4).

          Рисунок 4 – Перевод десятичного числа в шестнадцатеричную форму

            1. Организуем запрос и ввод имени пользователя, сравнение с текущим логическим именем пользователя и вывод сообщения: верно/неверно (рисунок 5).

            Рисунок 5 – Сравнение введенного имени пользователя с текущим

              1. Создадим shell-файл, выполняющий запрос и ввод имени файла в текущем каталоге и вывод сообщения о типе файла (рисунок 6).

              Рисунок 6 – Определение типа файла

                1. Создадим shell-файл, выполняющий циклическое чтение системного времени и очистку экрана в заданный момент (рисунок 7).

                Рисунок 7 – Циклическое чтение времени и очистка экрана

                  1. Создали скрипт, выполняющий циклический просмотр списка файлов и выдачу сообщения при появлении заданного имени в списке (рисунок 8).

                  Вывод: В ходе данной лабораторной работы были изучены методы создания и выполнения командных файлов на языке Shell — интерпретатора.

                  3. Ответы на контрольные вопросы:

                  3.1. Какое назначение имеют shell — файлы?

                  Командные файлы также называются скриптами и сценариями. Shell — файл содержит одну или несколько выполняемых команд (процедур), а имя файла в этом случае используется как имя команды. Это делает возможным для пользователя выполнение целого набора команд, используя при этом только один вызов имени файла в командной строке.

                  3.2. Как создать shell — файл и сделать его выполняемым?

                  Создать файл с расширением .sh, например командой: touch shell_file.sh.

                  При заполнении файла на первой строке указать путь к интерпретатору: #! /bin/sh.

                  3.3. Какие типы переменных используются в shell — файлах?

                  Простые переменные. Значения переменных может задавать пользователь или они могут устанавливаться интерпретатором:

                  Здесь переменной x присвоено значение z.

                  Позиционные переменные. Переменные вида $n, где n — целое число, используются для идентификации позиций элементов в командной строке с помощью номеров, начиная с нуля. Например, в командной строке

                  аргументы идентифицируются параметрами $1. $9. Для имени ко-манды всегда используется S0. В данном случае $0 — это саt, $1 — text_1, $2 — text_2 и т.д. Для присваивания значений позиционным переменным используется команда set, например:

                  здесь $1 присваивается значение аргумента arg_1, $2 — arg_2 и т.д.

                  С помощью позиционных переменных Shell можно сохранить имя команды и ее аргументы. При выполнении команды интерпретатор Shell должен передать ей аргументы, порядок которых может регулироваться также с помощью позиционных переменных.

                  Специальные переменные. Переменные — ? # $ ! устанавливаются только Shell. Они позволяют с помощью команды echo получить следующую информацию:

                  — – текущие флаги интерпретатора (установка флагов может быть изменена командой set);

                  # – число аргументов, которое было сохранено интерпретатором

                  при выполнении какой-либо команды;

                  ? – код возврата последней выполняемой команды;

                  $ – числовой идентификатор текущего процесса PID;

                  ! – PID последнего фонового процесса.

                  3.4. В чем заключается анализ цепочки символов?

                  При анализе цепочки символов можно, например сравнить её с другой цепочкой или провести подсчет числа символов в ней.

                  Сопоставление символов с указанием числа совпадающих символов:

                  concur=` expr «abcdefgh» : «abcde»`

                  Операция сопоставления обозначается двоеточием (:). Результат — переменная соncur.

                  Подсчет числа символов в цепочках символов. Операция выполняется с использованием функции length в команде expr:

                  chain=»The program is written in Assembler»

                  Здесь результат подсчета обозначен переменной str.

                  3.6. Как производится управление программами?

                  Команды true и false служат для установления требуемого кода завершения процесса: true — успешное завершение, код завершения 0; false — неуспешное завершение, код может иметь несколько значений, с помощью которых определяется причина неуспешного завершения. Коды завершения команд используются для принятия решения о дальнейших действиях в операторах цикла while и until и в условном операторе if. Многие команды LINUX вырабатывают код завершения только для поддержки этих операторов.

                  3.7. Назовите операторы создания циклов.

                  Оператор цикла с условием while true и while false. Команда while (пока) формирует циклы, которые выполняются до тех пор, пока команда while определяет значение следующего за ним выражения как true или false. Фоpмат оператора цикла с условием while true:

                  Здесь list1 и list2 — списки команд. While проверяет код возврата списка команд, стоящих после while, и если его значение равно 0, то выполняются команды, стоящие между do и done. Оператор цикла с условием while false имеет формат:

                  В отличие от предыдущего случая условием выполнения команд между do и done является ненулевое значение возврата. Программный цикл может быть размещен внутри другого цикла (вложенный цикл). Оператор break прерывает ближайший к нему цикл. Если в программу ввести оператор break с уровнем 2 (break 2), то это обеспечит выход за пределы двух циклов и завершение программы.

                  Оператор continue передает управление ближайшему в цикле оператору while.

                  Оператор цикла с перечислением for:

                  где name — переменная; wordlist — последовательность слов; list — список команд. Переменная name получает значение первого слова последовательности wordlist, после этого выполняется список команд, стоящий между do и done. Затем name получает значение второго слова wordlist и снова выполняется список list. Выполнение прекращается после того, как кончится список wordlist.

                  Ветвление по многим направлениям case. Команда case обеспечивает ветвление по многим направлениям в зависимости от значений аргументов команды. Формат:

                  3десь list1, list2 . listn — список команд. Производится сравнение шаблона string с шаблонами s1, s2 . sk . sn. При совпадении выполняется список команд, стоящий между текущим шаблоном sk и соответствующими знаками ;;. Пример:

                  echo -n ‘Please, write down your age’

                  test $age -le 20) echo ‘you are so young’ ;;

                  test $age -le 40) echo ‘you are still young’ ;;

                  test $age -le 70) echo ‘you are too young’ ;;

                  *)echo ‘Please, write down once more’

                  В конце текста помещена звездочка * на случай неправильного ввода числа.

                  Источник

                  11_лаб работа. создание и выполнение командных файлов в среде ос linux

                  Единственный в мире Музей Смайликов

                  Самая яркая достопримечательность Крыма

                  Скачать 359.52 Kb.

                  Кыргызский государственный технический университет

                  Кафедра «Программное обеспечение компьютерных систем»

                  дисциплина: «Операционные системы»

                  тема: «СОЗДАНИЕ И ВЫПОЛНЕНИЕ КОМАНДНЫХ ФАЙЛОВ

                  Цель работы: Целью работы является изучение методов создания и выполнения командных файлов на языке Shell — интерпретатора.

                  Составьте и выполните shell — программы, включающей следующие действия:

                  1. Вывод на экран списка параметров командной строки с указанием номера каждого параметра.

                  1. Присвоение переменным А, В и С значений 10, 100 и 200, вычисление и вывод результатов по формуле D=(A*2 + B/3)*C.

                  1. Формирование файла со списком файлов в домашнем каталоге, вывод на экран этого списка в алфавитном порядке и общего количества файлов.

                  1. Переход в другой каталог, формирование файла с листингом каталога и возвращение в исходный каталог.

                  1. Запрос и ввод имени пользователя, сравнение с текущим логическим именем пользователя и вывод сообщения: верно/неверно.

                  1. Запрос и ввод имени файла в текущем каталоге и вывод сообщения о типе файла.

                  1. Циклическое чтение системного времени и очистка экрана в заданный момент.

                  Очистил экран если совпадает с текущим временем

                  1. Циклический просмотр списка файлов и выдача сообщения при появлении заданного имени в списке.

                  Источник

Оцените статью
Adblock
detector