Элтекс
BASH
Структура команды
Многострочные команды
Доступ к BASH
Полная документация BASH
Преимущества BASH
Преимущества BASH
Навигация по файловой системе
Использование символов подстановки
Генерация строк
Подстановка и арифметические вычисления
Маскировка специальных символов
Основные команды
Основные команды
Основные команды
Основные команды
История команд
Дополнение имен
Основные команды
Переменные окружения
Коннекторы
Конвейеры (pipe)
Перенаправление вывода
Перенаправление ввода
Информация о правах доступа к файлу
Права доступа к файлу
Текстовый редактор
Начало работы с vi
Режимы
Начало работы vi
Начало работы с vi
Работа с файлами
Выход из vi
Перемещение по тексту
Перемещение по тексту командами
Перемещение по тексту командами
Удаление текста командами
Гнездовая команда
Конфигурационный файл с настройками vi
Переменная окружения
Переменные
Переменные bash и переменные окружения
Переменные среды по умолчанию
Переменные среды Bash Shell Bourne
Переменные среды Shell bash
Переменные среды Shell bash
Переменные среды Shell bash
Переменные среды Shell bash
Переменные среды Shell bash
Мультиплексор терминалов - утилита screen
Утилита screen: командная строка
Утилита screen: управляющие команды
Задания. Раздел 1.
Задания. Раздел 1
Задания. Раздел 2
Задания. Раздел 2
Задания. Раздел 3
1.20M
Category: programmingprogramming

Начало работы с vi (Практика) vi

1. Элтекс

Модуль 1 занятие 2
Практика

2. BASH

• Bourne again shell
• Командный процессор, который работает интерактивно в окне
• Используется для приема команд пользователя и отправки
команд ОС для обработки

3. Структура команды


Структура командной строки имеет следующий вид
имя_команды параметры аргументы
• Параметры (options, опции) - изменяют поведение команды
• Аргументы - объекты, на которые команда воздействует. Часто в
качестве объектов выступают файлы и каталоги
• Разделителем между частями командной строки является пробельный
символ (whitespace): пробел или табуляция.
ls –al /bin /sbin
Поддерживаются следующие форматы записи параметров:
1. Формат POSIX
• параметры односимвольные
• перед параметром ставится символ минус («-»)
• параметры могут «склеиваться»
2. Формат BSD
• перед параметром не ставится минус, в остальном как в POSIX
3. Формат GNU (длинный параметр, long options)
• параметр - слово и два минуса перед ним

4. Многострочные команды


В одной строке можно написать несколько команд, разделяя их
символом «;». Команды будут выполняться последовательно.
команда1; команда2; команда3
Условное выполнение команд (выполнение команды зависит от
успешности выполнения предыдущей) осуществляется путем
помещения символов «&&» (логическое И) и «||» (логическое ИЛИ)
между командами.
команда1 || команда2 && команда3
Длинные командные строки можно разбить на несколько строчек с
помощью символа «\» и немедленного нажатия на клавишу Enter

5. Доступ к BASH

• BASH – оболочка
• Взаимодействие оболочки и ОС обеспечивается с помощью
терминала
• Примеры терминала: lxterm, xterm, gnome-terminal

6. Полная документация BASH

https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html

7. Преимущества BASH

• Позволяет работать со структурами «[[»
• Поддерживает работу с массивами
• Доступно множество расширений, выполненных по стандартам C,
включая циклы с тремя аргументами «for((i=0;i<=3;i++))»,
возможность присваивать инкремент «+=»
• Поддерживает синтаксис «<<<‘here strings’»
• Работает с расширениями «.{png,jpg}»

8. Преимущества BASH

• Доступны алиасы для перенаправления, подобно «Csh», подобно
«&|» для «2>&1 |» и «&>» для «> … 2>&1»
• Поддерживает сопроцессы с перенаправлением «<>»
• Огромный комплект расширений нестандартных конфигураций,
включая изменение регистра
• Существенно увеличены возможности арифметики (правда, нет
поддержки чисел с плавающей точкой)
• Переменные «$RANDOM», «$SECONDS», «$PIPESTATUS[@]» и
«$FUNCNAME» в Bash являются расширениями
• Доступно огромное количества функций, обеспечивающих работу
в интерактивном режиме. Хотя на поведение скриптов они не
влияют

9. Навигация по файловой системе

• pwd Показать текущее местоположение в каталогах
• mkdir Создать новый каталог
• cd
Перемещение в домашний каталог
• cd ~ Перемещение в домашний каталог
• cd .. Перемещение на один уровень выше
• cd - Перемещение в предыдущий каталог
• cd Directory1
Перемещение в каталог Directory1
• cd Directory1/Directory2
Перемещение в каталог Directory2 по
указанному пути

10. Использование символов подстановки

Символы подстановки используются для составления шаблонов для
имен файлов и позволяют работать с группой файлов:
1. * - заменяет любое количество любых символов, в том числе и их
отсутствие
2. ? - заменяет любой одиночный (непустой) символ;
3. [диапазон_символов] - заменяет одиночный символ из диапазона
4. [!диапазон_символов] - заменяет любой символ из НЕ диапазона
5. Имена файлов, начинающихся с точки (т. н. скрытые файлы) не
соответствуют шаблонам, начинающимся с * или ?
6. Символ ~ соответствует домашнему каталогу текущего
пользователя, а ~имя_пользователя соответствует домашнему
указанного пользователя

11. Генерация строк

• Конструкции типа префикс{строка1,строка2, … ,строка N}постфикс
приводят к созданию строк префиксстрока1постфикс
префиксстрока2постфикс …
Пример: a{bc, cd, e} → abc acd ae
• В фигурных скобках могут также использоваться числа или
одиночные символы (а не наборы символов). Числа разделяются двум
точками, первое число - начальное значение, второе - конечное, третье
– шаг
Пример: file{1..7..2}.txt file1.txt file3.txt file5.txt file7.txt

12. Подстановка и арифметические вычисления

• Механизм командной подстановки позволяет подставить результат
выполнения команды в другую командную строку:
команда …$(команда …) …
Пример: результат команды which, которая ищет команду в каталогах из
переменной PATH и выводит ее абсолютное имя, подставляется в
командную строку, выводящую информацию о файле:
ls -l $(which passwd)
• Целочисленная арифметика выполняется с помощью конструкции
$((число1 операция число2))
Примеры:
echo $((4 / 2)) → 2
echo $(($((2 +3))*5)) → 25
A=2; B=5; echo $((A*B)) → 10

13. Маскировка специальных символов

• '…' – маскировка значений всех специальных символов
• “…” – маскировка значений всех специальных символов, кроме $ ` \ !
• \ – маскировка специального значения одного следующего символа
touch '$USER.txt' -> создан файл $USER.txt
touch "$USER.txt" -> создан файл имя_текущего_пользователя.txt
touch new\ file.txt -> создан файл new file.txt, с пробелом в имени

14. Основные команды

• man – отображение руководства команды
• cat – считать файл, вывести содержимого (может быть несколько
файлов)
• echo – вывести свои аргументы в канал вывода
• head – прочитать первые 10 строк любого текса и вывести
• head -50 – прочитать и вывести первые 50 строк
• tail – прочитать последние 10 строк с конца и вывести
• tail -f test.txt – смотреть добавляемые строки в режиме реального
времени

15. Основные команды

• less – переместиться по файлу
•G
Перемещает в конец файла
•g
Перемещает в начало файла
• :50
Перемещает на 50 строку файла
•q
Выход из less
• /searchterm
Поиск строки, совпадающей с ‘searchterm’, ниже текущей строки
•/
Перемещает на следующий подходящий результат поиска
• ?searchterm
Поиск строки, совпадающей с ‘searchterm’, выше текущей строки
•?
Перемещает на следующий подходящий результат поиска
• up
Перемещает на одну строку выше
• down
Перемещает на одну строку ниже
• pageup
Перемещает на одну страницу выше
• pagedown
Перемещает на одну страницу ниже

16. Основные команды

• true – возвращает 0 в качестве индикатора успеха
• false – возвращает не 0 в качестве статуса неудачи
• $? – содержит код возврата программы. 0 – успех, >0 – ошибка
• grep – поиск строки в файле
• -i
• -r
• -w
• -c
• -n
• -v
Отключение чувствительности к регистру
Рекурсивный поиск по директориям
Поиск только целых слов
Вывод количества найденных элементов
Вывод всей строки, содержащей запрос
Вывод инвертированного совпадения

17. Основные команды

• sed – потоковый редактор для преобразования входных
текстовых данных
• export – установка переменных окружения для передачи
дочерним процессам
• ps – список запущенных процессов (ID, terminal type, time, cmd)
• awk – найти и заменить текст в файле по шаблону

18. История команд

• История команд хранится в файле, имя которого определяется
переменной HISTFILE (по умолчанию ~/.bash_history)
• Количество хранимых в файле команд определяется переменной
HISTFILESIZE
• При запуске командного интерпретатора история команд из
файла
загружается в буфер, при выходе из командного интерпретатора
команды из буфера добавляются в файл
• Количество команд в буфере определяется переменной HISTSIZE
• Вывод всей истории команд - history
• Вывод указанного количества последних строк - history число
• Команда history -a добавляет в файл историю команд из буфера

19. Дополнение имен

• Интерпретатор bash умеет дополнять имена файлов, имена
переменных, имена домашних каталогов пользователей
• Многие команды также поддерживают дополнение подкоманд,
параметров, значений параметров (apt, systemctl, useradd и др.)
• После ввода первых символов следует:
• нажать клавишу TAB - если есть только один вариант
продолжения, то строка дополнится
• если дополнения не произошло, то следует еще раз нажать
клавишу TAB. После повторного нажатия либо будут
предложены варианты для выбора дополнения или ничего
не произойдет, что говорит об ошибке в наборе первых
символов

20. Основные команды

• wget – скачать файл из сети в текущий каталог
• nc – утилита отладки сети
• ping – тестирование сетевого подключения
• git – запуск системы контроля версий

21. Переменные окружения

• Именованные переменные, содержащие значения,
используемые приложениями
• Переменная PATH содержит список каталогов, в которых система
ищет исполняемые файлы
• Переменная HOME содержит путь к домашнему каталогу
текущего пользователя

22. Коннекторы

• Позволяют запускать несколько команд одновременно
• && Первая команда исполняется всегда, вторая — только в
случае успешного завершения первой
• || Первая команда исполняется всегда, вторая — только в
случае неудачного завершения первой
•;
Команды исполняются всегда

23. Конвейеры (pipe)

• Позволяют соединять входные и выходные каналы различных
команд
• Например ls –l | head вывод команды ls будет передан в head

24. Перенаправление вывода

• Можно перенаправить вывод с экрана в файл ls > file.txt
• Если файла нет, он будет создан. Если есть, то перепишется
• Как сделать, чтобы не переписался? Вот так: >> Запись будет
добавлена в конец файла

25. Перенаправление ввода

• Можно сделать ввод не с клавиатуры, а из файла
• sort < file.txt

26. Информация о правах доступа к файлу

• ls –l text.txt
• -rw-rw-r-- 1 user group 1097374 January 26 2:48 test.txt
• - файл
• d каталог
• rwПрава доступа владельца файла
• rwПрава доступа членов группы-владельца файла
• r—
Права доступа прочих пользователей
• user
Имя владельца файла
• group Имя группы-владельца файла

27. Права доступа к файлу

• chmod меняет права доступа к файлу
• u – владелец
• g – члены группы
• o – прочие пользователи
• a – все пользователи
• Пример: chmod ug+rw test.txt
• То же самое в бинарном виде: chmod 660 test.txt

28. Текстовый редактор

• В любой системе Linux, даже при самой минимальной
конфигурации, всегда присутствует текстовый редактор
• Текстовым редактором, который обязательно запустится из
любой командной строки Linux, является Vi

29. Начало работы с vi

• В терминале написать команду vi
• Можно открыть файл vi file.txt
• Терминал становится текстовым редактором
• # курсор
• ~ в этом месте буфера нет ничего, даже пустой строки

30. Режимы

• Командный – нажатие любой клавиши считается командой и
выполняется
• Вставка – нажатие клавиши приводит к появлению символа в файле
• Командная строка – ввод команд, отображаемых на экране

31. Начало работы vi

• Всегда командный режим
• Нажатие на любую клавишу – это команда
• Есть своя командная строка, для ее запуска нужно нажать :
• Главная команда – вызов подсистемы помощь :help
• Можно вызвать :help object для получения справки по object
• Можно получить справку о том, что делает конкретная кнопка,
например help I
• Чтобы сделать настройки, используется команда :set имя_настройки

32. Начало работы с vi

• Чтобы перейти из командного режима в режим вставки, нужно
нажать клавишу i
• В режиме вставки можно вводить текст
• В некоторых версиях vi в режиме ввода не работают никакие
команды перемещения по тексту. В таком случае исправления
вносятся потом в командном режиме
• Чтобы выйти из режима вставки обратно в командный режим,
нужна клавиша esc
• Войти в режим вставки можно разными способами:
• O – вводим текст с новой строки
• I – вводим текст с начала текущей строки
• A – вводим текст в конце строки

33. Работа с файлами

• Используя vi, работаем не с файлом, а с буфером. Если открыт
существующий файл, его содержимое копируется в буфер. Все
изменения производятся именно с буфером, а сам файл не
меняется
• Чтобы записать изменения в файл, нужна команда :w
• Если не указать имя файла, то буфер записывается в текущий
файл
• Файл можно указать в качестве параметра :w

34. Выход из vi

• Команда :q
• Если не хотим сохранять изменения :q !

35. Перемещение по тексту

• При редактировании в тексте есть точка, в которой пользователь
находится.
• Новые символы появляются в точке
• Удаляются символы из точки
• Перемещение по тексту производится только стрелками

36. Перемещение по тексту командами

• 0 (ноль) – перемещение на начало текущей строки
• ^ – перемещение на первый непробельный символ в строке
• $ – перемещение на конец строки
• G – перемещение в конец файла
• gg – перемещение в начало файла
• Абзац – фрагмент текста до пустой строки
• { } – перемещение в начало предыдущего/следующего абзаца

37. Перемещение по тексту командами

• w – передвинуть курсор на начало следующего слова
• b – передвинуть курсор на начало предыдущего слова
• ( ) – передвинуть курсов к началу предыдущего\следующего
предложения
• Команду не нужно повторять несколько раз. Используется
множитель. Например, 3w – три раза переместить курсор на
слово вперед
• Поиск шаблона в тексте – это команда перемещения: /шаблон
• Перейти в следующее слова по шаблону *
• Перейти в предыдущее слово по шаблону #

38. Удаление текста командами

• x – удалить символ, на котором стоит курсор
• dd – удалить строку, на которой стоит курсор

39. Гнездовая команда

• Применяет указанное действие к указанному отрезку текста
• cw – заменяет текст от курсора до начала следующего слова
• c) –заменяет текст от курсора до начала следующего
предложения

40. Конфигурационный файл с настройками vi

• /etc/vim/vimrc

41. Переменная окружения

• Объекты, которые задаются именами и содержат данные,
используемые по крайней мере одним, обычно несколькими
приложениями, называются переменными среды.
• Значениями переменной среды может быть редактор по
умолчанию, который будет использоваться, например,
расположение всех файлов, которые могут быть выполнены
в системе или локальные настройки для системы.

42. Переменные

• Переменная – именованная область памяти, значение которой
может изменяться
• Создание переменной с присвоением ей значения имеет
синтаксис:
VAR_NAME=значение
• Перед и после знака = пробелы не допустимы!
• Для получения значения переменной используется
специальный символ «$»
echo $VAR_NAME или echo ${VAR_NAME}
• Удаление переменной осуществляется командой
unset VAR_NAME

43. Переменные bash и переменные окружения

• Переменные можно разделить на два класса:
• переменные командного интерпретатора bash(shell variables)
• переменные окружения (environment variables)
• Переменные окружения передаются в процессы, порожденные
командным интерпретатором, а переменные командного
интерпретатора - нет
• Команда export позволяет объявить переменную bash переменной
окружения
export VAR_NAME или export VAR_NAME=значение
• Получить список всех переменных можно командой set
• Получить список переменных окружения можно командой printenv

44. Переменные среды по умолчанию

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin/:usr/bin/:/usr/games:/usr/local/games:/
bin:/sbin:/snap/bin
Можно добавить свои

45. Переменные среды Bash Shell Bourne

• CDPATH: список каталогов, разделенных двоеточиями, используемых в качестве пути
поиска для команды cd.
• HOME: домашний каталог текущего пользователя.
• IFS: список символов, которые разделяют поля, используемые оболочкой для
разделения текстовых строк.
• MAIL: имя файла для почтового ящика текущего пользователя. Оболочка bash
проверяет этот файл для новой почты.
• MAILPATH: список из нескольких имен файлов для почтового ящика текущего
пользователя. Оболочка bash проверяет каждый файл в этом списке для новой почты.
• OPTARG: значение последнего аргумента параметра, обрабатываемого командой
getopts.
• OPTIND: значение индекса последнего аргумента параметра, обработанного командой
getopts.
• PATH: список каталогов, разделенных двоеточиями, где оболочка ищет команды.
• PS1: строка приглашения командной строки основной командной строки.
• PS2: строка приглашения интерфейса командной строки вторичной оболочки.

46. Переменные среды Shell bash

• BASH: полное имя пути для выполнения текущего экземпляра оболочки bash.
• BASH_ENV: при установке каждый сценарий bash пытается запустить файл запуска,
определенный этой переменной перед запуском.
• BASH_VERSION: номер версии текущего экземпляра оболочки bash.
• BASH_VERSINFO: массив переменных, содержащий отдельные основные и младшие
номера версий текущего экземпляра оболочки bash.
• COLUMNS: содержит ширину терминала терминала, используемую для текущего
экземпляра оболочки bash.
• COMP_CWORD: индекс в переменной COMP_WORDS, который содержит текущую
позицию курсора.
• COMP_LINE: текущая командная строка.
• COMP_POINT: индекс текущей позиции курсора относительно начала текущей
команды.
• COMP_WORDS: переменный массив, содержащий отдельные слова в текущей
командной строке.
• COMPREPLY: переменный массив, содержащий возможные коды завершения,
генерируемые функцией оболочки.

47. Переменные среды Shell bash

• DIRSTACK: массив переменных, содержащий текущее содержимое стека директорий.
• EUID: эффективный идентификатор пользователя текущего пользователя.
• FCEDIT: редактор по умолчанию, используемый командой fc.
• FIGNORE: список суффиксов, разделенных двоеточиями, для игнорирования при выполнении
завершения имени файла.
• FUNCNAME: имя исполняемой в данный момент функции оболочки.
• GLOBIGNORE: список разделенных двоеточиями шаблонов, определяющих набор имен файлов,
которые следует игнорировать, расширяя имя файла.
• GROUPS: переменный массив, содержащий список групп, членом которого является текущий
пользователь.
• histchars: до трех символов, которые управляют расширением истории.
• HISTCMD: номер истории текущей команды.
• HISTCONTROL: Управляет тем, какие команды вводятся в списке истории оболочки.
• HISTFILE: имя файла для сохранения списка истории оболочки (по умолчанию — история .bash).
• HISTFILESIZE: максимальное количество строк для сохранения в файле истории.
• HISTIGNORE: список шаблонов, разделенных двоеточием, используемый для определения того,
какие команды игнорируются для файла истории.
• HISTSIZE: максимальное количество команд, хранящихся в файле истории.

48. Переменные среды Shell bash

• HOSTFILE: содержит имя файла, который должен быть прочитан, когда оболочке
необходимо заполнить имя хоста.
• HOSTNAME: имя текущего хоста.
• HOSTTYPE: Строка, описывающая машину bash-shell, работает.
• IGNOREEOF: количество последовательных символов EOF, которые должна получить
оболочка перед выходом. Если это значение не существует, по умолчанию оно равно
единице.
• INPUTRC: имя файла инициализации Readline (по умолчанию — .inputrc).
• LANG: категория локали для оболочки.
• LC_ALL: переопределяет переменную LANG, определяя категорию локали.
• LC_COLLATE: устанавливает порядок сортировки, используемый при сортировке
строковых значений.
• LC_CTYPE: Определяет интерпретацию символов, используемых при расширении имени
файла и сопоставлении с образцом.
• LC_MESSAGES: определяет параметр локали, используемый при интерпретации строк с
двойными кавычками, которым предшествует знак доллара.
• LC_NUMERIC: указывает локальную настройку, используемую для форматирования чисел.

49. Переменные среды Shell bash

• LINENO: номер строки в исполняемом скрипте.
• LINES: Определяет количество линий, доступных на терминале.
• MACHTYPE: строка, определяющая тип системы в формате cpu-company-system.
• MAILCHECK: как часто оболочка должна проверять (по умолчанию 60 секунд) для
новой почты.
• OLDPWD: предыдущий рабочий каталог, используемый в оболочке.
• OPTERR: если установлено значение 1, оболочка bash отображает ошибки,
сгенерированные командой getopts.
• OSTYPE: Строка, определяющая операционную систему, в которой работает
оболочка.
• PIPESTATUS: переменный массив, содержащий список значений статуса выхода из
процессов процесса переднего плана.
• POSIXLY_CORRECT: если установлено, bash запускается в режиме POSIX.
• PPID: идентификатор процесса (PID) родительского процесса оболочки bash.
• PROMPT_COMMAND: если установлено, команда для выполнения перед
отображением первичного приглашения.

50. Переменные среды Shell bash

• PS3: приглашение использовать команду select.
• PS4: подсказка, отображаемая до того, как командная строка будет эхом, если
используется параметр bash -x.
• PWD: текущий рабочий каталог.
• RANDOM: возвращает случайное число от 0 до 32767. Присвоение значения этой
переменной сгенерирует генератор случайных чисел.
• REPLY: переменная по умолчанию для команды чтения.
• SECONDS: количество секунд с момента запуска оболочки. Присвоение значения
сбрасывает таймер на значение.
• SHELLOPTS: список разрешенных опций оболочки bash, разделенных двоеточием.
• SHLVL: указывает уровень оболочки, увеличивающийся на единицу при каждом запуске
новой оболочки bash.
• TIMEFORMAT: формат, определяющий, как оболочка отображает значения времени.
• TMOUT: значение того, как долго (в секундах) команды выбора и чтения должны ждать
ввода. Значение по умолчанию, равное нулю, означает, что нужно ждать бесконечно.
• UID: реальный идентификатор пользователя текущего пользователя.

51. Мультиплексор терминалов - утилита screen

Утилита screen предназначена для запуска и управления
множественными псевдотерминалами и позволяет пользователям:
• Запускать многооконные сессии с работающими
процессами в отсоединенном режиме
• Подключаться к отсоединенной сессии
• Получать список сессий и окон внутри сессий
• Переключаться между окнами внутри сессий
• Принудительно завершать окна
• Журналировать вывод, поступающий на окна
Использование мультиплексора особенно полезно в тех случаях,
когда пользователь использует удаленный терминальный доступ
(например, ssh).

52. Утилита screen: командная строка

• screen -ls - просмотр списка сессий, запущенных утилитой
screen (сама команда с параметром -ls новую сессию не запускает);
• screen -S имя_сессий -d -m командная_строка - создается
псевдотерминал с заданным именем в отсоединенном состоянии,
на котором в ведущем окне запускается указанная командная
строка (Примечание: рекомендуется задавать «говорящие» имена
сессий, например, связанные с именем запускаемой программой.
Иначе будет сформировано имя сессии по умолчанию);
• screen -r имя_сессии - подсоединение к сессии, работающей в
отсоединенном режиме.

53. Утилита screen: управляющие команды

В рамках сессии, созданной утилитой screen, можно использовать
управляющие команды. Управляющие команды начинаются
комбинацией клавиш Ctrl-a:
• Ctrl-a ? - вывести информацию об управляющих командах;
• Ctrl-a " - список окон;
• Ctrl-a c - создать новое окно;
• Ctrl-a d - отсоединиться от текущей сессии;
• Ctrl-a n - переход в следующее окно;
• Ctrl-a p - переход в предыдущее окно;
• Ctrl-a k - принудительно завершить текущее окно;
• Ctrl-a A - изменить название окно.

54. Задания. Раздел 1.

0. Отчет – команды и результаты в файле pdf.
1. Подключитесь к серверу для выполнения практических работ, используя клиент для
протокола ssh: ssh, putty, smartty (попробуйте их все и остановитесь на наиболее удобном
для вас).
2. Запустите новую сессию утилиты screen, с именем по умолчанию, посмотрите список
подключенных пользователей командой w, отключитесь от сессии.
3. Запустите отсоединенную сессию утилиты screen, при этом запустите в этой сессии
команду top. Назовите сессию именем «top».
4. Получите список сессий, созданных утилитой screen.
5. Подсоединитесь к сессии top.
6. Создайте еще одно окно в сессии top.
7. В созданном окне выполните команду:
8. watch /usr/bin/vmstat
9. Получите список окон.
10. Переименуйте второе окно как «vmstat».
11. Перейдите в окно, в котором работает top.
12. Отсоединитесь от сессии top.
13. Запустите новую сессию и запустите в окне команду:
vi report_part1.txt
14. Отсоединитесь от сессии и получите список сессий.

55. Задания. Раздел 1

15. Отключитесь от сервера, используя команду logout или комбинацию клавиш Ctrl+D
16. Подключитесь к серверу (как в п.1), и получите список сессий screen
17. Подключитесь к сессии с редактором и запишите в файл
"ФИО часть 1 модуля 1 успешно завершена дата и время"
18. Закройте редактор, сохранив файл и закройте все сессии screen.

56. Задания. Раздел 2

1.
2.
3.
4.
5.
6.
7.
Запустите новую сессию с именем "`whoami`_part2". Все команды
сохраняйте в файле $USER_part.log, проследите за тем, чтобы он не
содержал esc-последовательности форматирования и расцветки.
С помощью механизма дополнения имен команд выведите все команды,
которые начинаются на «ls».
С помощью механизма дополнения имен переменных выведите все
переменные, которые начинаются с «HIST».
Узнайте, сколько команд может храниться в файле истории.
Выведите имена файлов и каталогов из домашнего каталога, которые
начинаются с «.».
Настройте вывод даты выполнения команд, хранящихся в истории.
Настройте автоматическое сохранение набираемых команд в файле
истории:
• введите любую команду, например, команду date;
• проверьте, есть ли эта команда в кэше и файле истории команд;
• определить переменную PROMPT_COMMAND так, чтобы кэш истории
сохранялся в файле истории;
• ввести любую команду и проверить, появилась ли эта команда в кэше и
файле истории.

57. Задания. Раздел 2

Создайте переменную DATE, в которую запишите текущую дату. Проверьте
содержимое переменной.
11. Создайте переменную TIME, в которую запишите текущее время. Проверьте
содержимое переменной.
12. Создайте переменную DATE_TIME в которую поместите значения из
переменных DATE и TIME, разделенных пробелом. Проверьте содержимое
переменной.
13. Выведите имена файлов, содержащие хотя бы одну цифру, из каталогов /bin
и /sbin.
14. Измените приглашение так, чтобы выводились имя хоста, имя пользователя и
время: имя_пользователя@имя_хоста-HH:MM> (Используйте переменные
bash и команду date)
15. Сделайте так, чтобы в запускаемом интерпретаторе bash выводилось
приглашение, установленное в родительском интерпретаторе bash.
16. Одной командной строкой создайте в домашнем каталоге подкаталоги для
каждого месяца текущего года вида YYYY-MM(год реализуйте с помощью
команды date и командной подстановки).
10.

58. Задания. Раздел 3

Перейдите в домашний каталог, создайте файл $USER_part3.log. Используемые в разделе 3
команды дописывайте в файл командой echo, не забудьте про экранирование.
2. Создайте иерархию вложенных каталогов D1/D2/D3.
3. В каталоге D2 создайте обычный пустой файл file.txt.
4. Добавьте произвольный текст в файл file.txt.
5. В каталоге D3 создайте символическую и жесткие ссылки на file.txt.
6. Докажите, что ссылки созданы успешно.
7. Переместите файл file.txt в каталог D1.
8. Проверьте работу ранее созданных ссылок на файл file.txt. Какая ссылка оказалась рабочей и
почему?
9. Удалите каталог D2 со всем содержимым.
10. Найдите все файлы в системе размером больше 20МБ. Убедитесь в том (du), что найденные
файлы имеют нужный размер. Запишите в файл $USER_part3_gt50M.log список найденных
файлов.
11. В домашнем каталоге и его подкаталогах найдите обычные файлы, которые
12. были изменены в течение последних 24х часов.
13. В каком каталоге находится команда find?
14. Определите характер содержимого файла find командой file.
15. Установите, к какому типу относятся файлы /boot/initrd.img*.
1.
English     Русский Rules