Similar presentations:
Начало работы с 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.html7. Преимущества 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/vimrc41. Переменная окружения
• Объекты, которые задаются именами и содержат данные,используемые по крайней мере одним, обычно несколькими
приложениями, называются переменными среды.
• Значениями переменной среды может быть редактор по
умолчанию, который будет использоваться, например,
расположение всех файлов, которые могут быть выполнены
в системе или локальные настройки для системы.
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+D16. Подключитесь к серверу (как в п.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.
programming