Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab2os

.docx
Скачиваний:
23
Добавлен:
27.09.2023
Размер:
1.45 Mб
Скачать

Баранов вадим ивт-33 ОС2

  • Переключение между виртуальными терминалами осуществляется с помощью команды:

chvt номер_терминала

  • Виртуальные терминалы именуются как tty1, tty2, …. Каждому виртуальному терминалу соответствует файл с тем же именем в каталоге /dev.

  • Количество виртуальных терминалов задается в конфигурационном файле /etc/systemd/logind.conf - параметр NAutoVTs.

1)войдите в систему через граф экранный менеджер

2) запустите терминал FLY

3)Узнайте название запущенного терминала. К какому типу относится данный терминал.

тип- виртуальный терминал т.к эмулятор терминала реализован в ядре ОС ну и в целом не является каким-то самостоятельным устройством, чтобы быть аппаратным терминалом

- tty имя терминала

  • Определение текущего терминала — tty, настройка - stty (просто решил попробовать)

4)Откройте еще одну вкладку в терминале, перейдите на эту вкладку. Какое имя у этого терминала?

5)Посмотрите содержимое каталога /dev/pts.

ls -l /dev/pts/

где ls [ключ] [файл]

-l - использовать широкий формат

6)Перейдите на третий виртуальный терминал и войдите в систему.

7) Узнайте количество строк и столбцов на текстовом терминале (Подсказка: используйте команду tput и справочную информацию из man)

Чтобы вывести доп информацию напишу функцию man --help

tput cols - столбцы

tput lines -строчки

8)С помощью механизма дополнения имен команд выведите все команды, которые начинаются на «ls».

наберем ls и затем  Tab два раза. Терминал автоматически дополнит название команды всеми доступными в системе командами, начинающимися с ls. 

9)С помощью механизма дополнения имен переменных выведите все переменные, которые начинаются с «HIST».

compgen -v HIST

10) Узнайте, сколько команд может храниться в файле истории.

  • Для получения значения переменной используется специальный символ «$»

echo $VAR_NAME или echo ${VAR_NAME}

11)Выведите имена файлов и каталогов из домашнего каталога, которые начинаются с «.c».

Эта команда использует шаблон [c]*, который означает, что в названии файла должна быть буква "c" и любые другие символы. Также используется ключ -d для вывода только имен файлов и каталогов, без вывода содержимого каталогов. Команда начинается с /., чтобы ограничить поиск только файлами и каталогами из домашнего каталога

12) команда nano /.bashrc.

потом export HISTTIMEFORMAT="%F %T " и сохраняем

13-14)Настройте автоматическое сохранение набираемых команд в файле истории.

надо установить переменную окружения HISTSIZE равной ненулевому значению. Например, можно добавить следующию строку в файл /.bashrc: HISTSIZE=1000

Чтобы создать переменную DATE, в которую нужно записать текущую дату нужно выполнить следующую команду DATE=$(date +%Y-%m-%d) Здесь %Y-%m-%d задает формат даты, соответствующий году, месяцу и дню. Чтобы создать переменную TIME, в которую нужно записать текущее время нужно выполнить следующую команду TIME=$(date +%H:%M:%S) Здесь %H:%M:%S задает формат времени, соответствующий часам, минутам и секундам. Чтобы создать переменную DATE_TIME, в которую нужно поместить значения из переменных DATE и TIME, разделенных пробелом нужно выполнить следующую команду $DATE_TIME="${DATE} ${TIME}"

15) Выведите имена файлов, содержащие хотя бы одну цифру, из каталогов /bin и /sbin. ind /bin /sbin -type f -regex '.*[0-9].*' Здесь мы используем опцию -type f, чтобы ограничить поиск только файлами, а не каталогами или другими типами файлов. Регулярное выражение .*[0-9].* означает любую строку, содержащую по крайней мере одну цифру.

16)Сделайте так, чтобы при выполнении команды sudo vipw вызывался редактор mcedit.

Чтобы легко сменить редактор, вводим команду sudo select-editor и выбираем mcedit. Теперь, при выполнении команды sudo vipw будет открываться редактор mcedit

17)Измените приглашение так, чтобы выводились имя хоста, имя пользователя и время: имя_пользователя@имя_хоста-HH:MM> . Используйте переменные bash и команду date.

Для изменения приглашения в bash можно изменить переменную PS1. Для вывода имени пользователя можно использовать переменную \u, для имени хоста - переменную \h. Для вывода текущего времени можно использовать команду date и ее флаг "+%H:%M". PS1='\u@\h-$(date "+%H:%M")> 

18)Запустите еще один bash. Какой вид у приглашения и почему? Выйдите из запущенного командного интерпретатора bash.

Если вы запустили новый терминал, то он будет использовать настройки, заданные в вашем профиле или в файле настроек терминала. Для изменения настроек приглашения на постоянной основе следует изменить файл настроек shell, например, /.bashrc для bash.

19)Сделайте так, чтобы в запускаемом интерпретаторе bash выводилось приглашение, установленное в родительском интерпретаторе bash.

Чтобы во вновь запущенном интерпретаторе bash приглашение имело такой же вид, как в текущем bash, нужно добавить строку с определением переменной PS1 в файл /.bashrc.

  1. Откройте файл /.bashrc в текстовом редакторе:

nano /.bashrc

  1. Добавьте следующую строку в конец файла

PS1='\u@\h-$(date "+%H:%M")> ' (рис. 2.15)

  1. Сохраните изменения и закройте файл.

Чтобы изменения вступили в силу в текущем сеансе bash, выполните следующую команду: source /.bashrc 

20)Одной командной строкой создайте в домашнем каталоге подкаталоги для каждого месяца текущего года вида YYYY-MM(год реализуйте с помощью команды date и командной подстановки)

Для создания подкаталогов для каждого месяца текущего года в формате "YYYY-MM" можно использовать следующую команду mkdir -p /$(date +"%Y-%m")/{01..12} (рис. 2.17) Эта команда создаст в домашнем каталоге подкаталоги для каждого месяца текущего года, начиная с января и заканчивая декабрем. В каждом подкаталоге будет пропущена последовательность от 01 до 12. Ключ -p позволяет создавать родительские директории, если они отсутствуют.

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

  1. Как выполнить повторно команду, но от имени суперпользователя, если при предыдущем запуске не хватило привилегий?

Для выполнения команды от имени суперпользователя (как правило, root) в Astra Linux, если при предыдущем запуске не хватило привилегий, можно воспользоваться командой sudo. sudo позволяет выполнить команду с привилегиями суперпользователя без необходимости входа в систему под учетной записью root.

  1. Как создать директории для хранения архивов по годам (2019-2021гг) и месяцам (01–12)?

mkdir -p архивы/{2019..2021}/{01..12}

Эта команда создаст директории для архивов сначала по годам (2019, 2020, 2021), а затем по месяцам (01, 02, ..., 12) внутри каждого года. Директории будут созданы в текущей рабочей директории (например, в вашей домашней директории, если вы выполнили cd ~).

  1. Как создать файл с именем вида пользователь-хост-текущая_дата (ддммгг), например: john-srv12-080721?

touch "$(whoami)-$(hostname)-$(date +'%d%m%y')"

whoami - это команда, которая возвращает имя текущего пользователя.

hostname - это команда, которая возвращает имя текущего хоста (компьютера).

date +'%d%m%y' - это команда, которая возвращает текущую дату в формате "ddmmyy", где "%d" обозначает день, "%m" - месяц, а "%y" - год.

Команда touch используется для создания файла с указанным именем. В данном случае, она использует комбинацию значений, полученных из whoami, hostname и date, чтобы создать имя файла в нужном формате.

После выполнения этой команды будет создан файл с именем вида "john-srv12-080721" (при условии, что имя пользователя - "john", имя хоста - "srv12", а текущая дата - "08.07.21").

Соседние файлы в предмете Операционные системы