Домашнее задание 4 (условие)
Работаем в JSLinux. Задание:
- Записать в новый файл дату.
- Дописать информацию о занятом пространстве на корневом разделе файловой системы (/).
- Дописать в файл три последних команды из истории команд.
- Дописать в файл информацию из
/etc/passwd, отфильтровав строки со словомcron. - Дописать в файл количество строк со словом
rootиз/etc/group. - В текстовом редакторе добавить второй строкой фразу "Modified with text editor".
- Экспортировать файл при помощи
export_file.
Правильное решение (с сессии)
Шаг 1: Записать дату — создать файл
date > /tmp/file.txt
Здесь > создаёт файл и записывает туда дату. Если файл уже существует — перезаписывает.
Шаг 2: Дозаписать место на /
df -h | grep -w / >> /tmp/file.txt
>> — ДОЗАПИСАТЬ (не перезаписывать!). grep -w / — строка только с корневым разделом.
Шаг 3: Дозаписать 3 последние команды
history | tail -3 >> /tmp/file.txt
Пайп | передаёт историю команд в tail -3, который берёт три последних строки.
Шаг 4: Строки с cron из /etc/passwd
cat /etc/passwd | grep cron >> /tmp/file.txt
Фильтруем системный файл паролей по слову cron.
Шаг 5: Количество строк с root из /etc/group
grep root /etc/group | wc -l >> /tmp/file.txt
wc -l подсчитывает строки. Важно: ключ -l (буква «эль»), не -1 (единица).
Шаг 6: Добавить строку в текстовом редакторе
vi /tmp/file.txt
# Действия в vi:
# gg — перейти в начало файла
# o — открыть новую строку под первой строкой
# Набрать: Modified with text editor
# Esc → :wq — сохранить и выйти
Шаг 7: Экспортировать файл
export_file /tmp/file.txt
Команда специфична для JSLinux — скачивает файл из песочницы в браузер.
Решение закрепляющего задания (с сессии)
# Шаг 1: доступное место на всех дисках (название + доступно)
df -h | awk '{print $1, $4}'
# Шаг 2: количество строк в /etc/group со словом user2
cat /etc/group | grep "user2" | wc -l
# Шаг 3: 2-й столбец /etc/group — сколько x и сколько *
cat /etc/group | awk -F: '{print $2}' | grep x | wc -l
cat /etc/group | awk -F: '{print $2}' | grep -v x | wc -l
# Шаг 4: работа с разделителем (проверка awk -F)
cat /etc/group | awk -F: '{print $2}'
# Шаг 5: последние 3 строки /etc/group → файл, заменить 1000 на 777
tail -3 /etc/group > /tmp/file
sed -i 's/1000/777/g' /tmp/file
# Шаг 6–7: заменить user2 в файле (через vi), дозаписать пользователей из /etc/passwd
cat /etc/passwd | awk -F: '{print $1}' >> /tmp/file
# Шаг 8: дописать в начале каждой строки слово Username
sed -i 's/^/Username: /' /tmp/file