Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Дисциплина:
«Операционные системы»
Преподаватель:
Алексеев Кирилл Анатольевич
учебный год 2020/2021
online.mirea.ru
Тема 2
Оболочки операционных систем
Занятие 2.1
лекция
КОМАНДНАЯ ОБОЛОЧКА BASH И УТИЛИТЫ
КОМАНДНОЙ СТРОКИ
online.mirea.ru
Командная оболочка bash и утилиты командной строки
Учебные вопросы:
1) Определения.
2) Команды в bash.
3)потоками
Литература
Основная:
1) Купер Мендель. Искусство программирования на языке сценариев командной
оболочки.
2) Bash Reference Manual (http://www.gnu.org/software/bash/manual/bash.html)
Дополнительная:
1) Справочные страницы ОС GNU/Linux (man <имя команды>)
online.mirea.ru
1. Определения
Оболочка операционной системы (от англ. shell «оболочка») – программа, предоставляющая
интерфейс для взаимодействия пользователя с функциями системы.
В общем случае различают оболочки с двумя типами интерфейса для взаимодействия с
пользователем: текстовый пользовательский интерфейс (text user interface, TUI) и графический
пользовательский интерфейс (graphical user interface, GUI).
Текстовый пользовательский интерфейс – разновидность
интерфейса пользователя, использующая при вводе-выводе и
представлении информации исключительно набор буквенноцифровых символов и символов псевдографики.
Программы с текстовым интерфейсом могут реализовывать
оконный
интерфейс,
чему
особенно
способствует
применение псевдографических символов.
Графический пользовательский интерфейс – система
средств
для
взаимодействия
пользователя
с
компьютером, основанная на представлении всех
доступных пользователю системных объектов и функций в
виде графических компонентов экрана (окон, значков,
меню, кнопок, списков и т. п.).
online.mirea.ru
1. Определения
Интерфейс командной строки (англ. Command line interface, CLI) –
разновидность текстового интерфейса (TUI) между человеком и компьютером,
в котором инструкции компьютеру даются в основном путём ввода с
клавиатуры текстовых строк (команд), в UNIX-системах возможно применение
мыши. Также известен под названиями «консоль» и «терминал».
online.mirea.ru
1. Определения
Командная оболочка (интерпретатор командной строки, command line shell,command-line
interpreter) – программа, считывающая строки из терминала, текстового файла и других
источников и интерпретирующая их в качестве команд некоторой системы.
Режимы исполнения команд:
• интерактивный
• пакетный.
Bash (от англ. Bourne again shell, «Born again» shell –
«возрождённый»
shell)
–
усовершенствованная
и
модернизированная вариация командной оболочки Bourne
shell. Одна из наиболее популярных современных
разновидностей командной оболочки UNIX. Особенно
популярна в среде Linux, где она часто используется в качестве
предустановленной командной оболочки.
Представляет собой командный процессор, работающий, как
правило, в интерактивном режиме в текстовом окне. Bash
также может читать команды из файла, который называется
скриптом (или сценарием). Как и все Unix-оболочки, он
поддерживает автодополнение имён файлов и каталогов,
подстановку вывода результата команд, переменные,
контроль над порядком выполнения, операторы ветвления и
цикла. Ключевые слова, синтаксис и другие основные
особенности языка были заимствованы из sh. Другие функции,
например, история, были скопированы из csh и ksh. Bash в
основном соответствует стандарту POSIX, но с рядом
online.mirea.ru
расширений.
Пути в bash
Структура каталогов типовой ОС семейства GNU/Linux
online.mirea.ru
Пути в bash
Абсолютные пути
начинаются с / (/ – корень файловой системы)
Примеры:
/dev
/usr
/usr/bin
/usr/local/bin
Указывая путь /usr/local/bin в качестве аргумента команде cd мы говорим ей перейти в
корневую директорию /, затем в директорию usr, потом в local и bin.
online.mirea.ru
Пути в bash
Относительные
пути
–
пути,
отсчитываемые относительно текущей
директории.
Пример:
$ cd /usr
$ cd local/bin
$ pwd
/usr/local/bin
Использование «..»
указывает на родительскую директорию по
отношению к рабочей директории
Пример:
$ pwd
/usr/local/bin
$ cd ..
$ pwd
/usr/local
$ cd ../share
$ pwd
/usr/share
Рабочий (текущий) каталог «.»
$ ./myprog – запуск исполняемого файла в текущем каталоге (путь к myprog не внесен в
переменную окружения PATH)
online.mirea.ru
2. Команды в bash
Синтаксис команды
<имя> [<ключи>] [<аргументы>]
<> - обязательный элемент, [] – опциональный элемент
Виды команд
• запускающие внешние программы
$ /bin/pwd
/home/student
• встроенные
$ pwd
/home/student
Структура строки приглашения:
userx@acer-pc:~$
текущий
пользователь
имя
сетевого узла
userx@acer-pc:/home/userx#
текущий пользователь не является
суперпользователем
текущий пользователь является
суперпользователем
текущий каталог
~ - псевдоним домашнего каталога текущего пользователя:online.mirea.ru
/home/userx
Команда cd
Синтаксис команды
cd [<ключи>] [<каталог>]
Назначение
Переход в другой каталог
Каталог
. текущий
.. родительский
~ домашний
- предыдущий
online.mirea.ru
Команда ls
Синтаксис команды
ls [<ключи>] [<имена>]
Назначение
Вывод информации об именованном объекте (файле, каталоге,
специальном файле и т.д.)
Ключи
-a также выводить имена файлов, начинающиеся с «.»
-F добавлять в начало каталогов «/», именованных каналов —
«|», исполняемых файлов — «*»
-l выводить подробную информацию (тип, права доступа, количество
ссылок, . . . )
-d выводить информацию только о директориях
-R выводить информацию о файлах находящихся в директории рекурсивно
online.mirea.ru
Команда mkdir
Синтаксис команды
mkdir [<ключи>] [<каталог>]
Назначение
Создание каталогов
Ключи
-p не выдавать ошибку, если каталог существует, создавать
при необходимости родительские каталоги
-m <права> задать создаваемому каталогу указанные права
online.mirea.ru
Команды mv, cp
Синтаксис команд
а) mv [<ключи>] <источник> <назначение>
б) cp [<ключи>] <источник> <назначение>
Назначение
а) перемещение файлов (каталогов)
б) копирование файлов (каталогов)
Ключи
-r рекурсивно копировать каталоги вместе с содержимым
-p сохранять атрибуты (права доступа и время) при
копировании перемещение файлов (каталогов)
online.mirea.ru
Команды touch, cat
Синтаксис команд
а) touch [<ключи>] <файл> [ <файл> … ]
б) cat [<ключи>] [ <файл> … ]
Назначение
а) создание файлов (обновление времени последнего
доступа и изменения файла)
б) объединение и вывод содержимого файлов
online.mirea.ru
Команда find
Синтаксис команды
find [<ключи>] [ <каталог> … ] [<выражение>]
Назначение
Поиск файлов (каталогов)
Ключи
-L
следовать за символическими ссылками
-name
<файл>
поиск файлов с именем, соответствующем шаблону
-size
<условие>
поиск файлов c размером, равным, больше или меньше заданного
-atime
<условие>
поиск файлов c датой доступа, определяемой условием
-mtime
<условие>
поиск файлов c датой изменения, определяемой условием
-сtime
<условие>
поиск файлов c датой изменения атрибутов файла (владелец, группа, количество
ссылок), определяемой условием
-type <тип>
тип искомого объекта («f» - файл, «d» - каталог, …)
online.mirea.ru
Команда find (продолжение)
-perm <права> поиск файлов с правами, совпадающими заданным
-newer
<файл>
поиск файла, время изменения которого больше, чем у
заданного
-a
конъюнкция условий
-o
дизъюнкция условий
-!
отрицание условия
(…)
порядок
-exec
<команда>
выполнить команду, признак окончания — «;», заменитель
файла — «{}»
-print
выводить полный путь к файлу
online.mirea.ru
Примеры использования команды find
$ find . -name "my*" -type f
$ find /var/ftp/mp3 -name "*.mp3" -type f \
> -exec chmod 644 {} \;
$ find . -size +100k -a -size -500k
online.mirea.ru
Команда grep
Синтаксис команды
grep [<ключи>] <строка> [<файл> …]
grep <-R>[<ключи>] <строка> [<каталог>]
Назначение
Поиск образца в текстовых файлах, выдача всех строк, содержащих этот образец
Ключи
-i
без учета регистра
-n
отображать номера строк
-v
отображать строки, не содержащие шаблона
-w
«слово целиком»
-x
точное совпадение строки
-R
рекурсивный поиск по файлам начиная с заданного каталога
-type <тип>
тип искомого объекта («f» - файл, «d» - каталог, …)
online.mirea.ru
Элементы регулярных выражений команды
grep
^
соответствует началу строки
$
соответствует концу строки
.
соответствует одному любому символу
[<символы>
]
соответствует одному любому символу из перечисленных в
скобках
[^<символы
>]
соответствует одному любому символу, которого нет в скобках
символсимвол
Внутри скобок определяет диапазон символов между
находящимися слева и справа от «-»: «[a-d]» эквивалентно
«[abcd]». Если символ
«-» граничит со скобками, он рассматривается как литерал.
Например: «[-+]» соответствует «-» или «+».
online.mirea.ru
Элементы регулярных выражений команды
grep
\(<образец>\)
Задаёт подвыражение
<образец>*
Соответствует образцу 0 или больше
раз
<образец>\{<число>\}
Соответствует образцу заданное количество раз
<образец>\{<число>,\}
Соответствует образцу как минимум
заданное количество раз
<образец>\{<число>,
<число>\}
Соответствует образцу количество
раз в заданном диапазоне
online.mirea.ru
Примеры использования команды
grep
grep apple fruitlist.txt
grep ^a.ple fruitlist.txt
Поиск по содержимому в файлах с расширением xml:
find . -name "*.xml" -exec grep "ERROR" ’{}’ \; -print
online.mirea.ru