✅ Решения задания для закрепления

К оглавлению урока

⚡ Все 8 шагов

df -h | awk '{print $1, $4}'
cat /etc/group | grep "root" | wc -l
cat /etc/group | awk -F: '{print $2}' | grep x | wc -l
cat /etc/group | awk -F: '{print $2}' | grep -v x | wc -l
cat /etc/group | awk -F: '{print $2}'
tail -3 /etc/group > /tmp/file
sed -i 's/1000/777/g' /tmp/file
# vi /tmp/file — заменить user2 вручную
cat /etc/passwd | awk -F: '{print $1}' >> /tmp/file
sed -i 's/^/Username: /' /tmp/file

Шаг 1. Название диска и доступное место

df -h | awk '{print $1, $4}'

Столбец $1 — имя устройства (диска), столбец $4 — доступное место (Available).

Шаг 2. Количество строк с root в /etc/group

cat /etc/group | grep "root" | wc -l

Также можно: grep root /etc/group | wc -l — результат тот же.

Шаг 3. Количество x и * во 2-м столбце /etc/group

# Сколько строк содержат x:
cat /etc/group | awk -F: '{print $2}' | grep x | wc -l
# Сколько строк НЕ содержат x (т.е. содержат *):
cat /etc/group | awk -F: '{print $2}' | grep -v x | wc -l

Второй столбец /etc/group — поле пароля (обычно x или *).

Шаг 4. Вывести 2-й столбец с разделителем :

cat /etc/group | awk -F: '{print $2}'

Шаг 5. Последние 3 строки → файл, заменить 1000 на 777

tail -3 /etc/group > /tmp/file
sed -i 's/1000/777/g' /tmp/file

Флаг g в sed — глобальная замена всех вхождений в строке.

Шаг 6. Замена user2 в текстовом редакторе

vi /tmp/file
# Найти user2: /user2 + Enter
# i — войти в режим вставки
# Вручную изменить на: user1 user2 user3
# Esc → :wq

Или в nano: nano /tmp/file — найти строку и отредактировать, затем Ctrl+O и Ctrl+X.

Шаг 7. Дозаписать пользователей из /etc/passwd

cat /etc/passwd | awk -F: '{print $1}' >> /tmp/file

Первый столбец /etc/passwd — имя пользователя. >> — дозаписать (не перезаписать).

Шаг 8. Добавить Username в начало каждой строки

sed -i 's/^/Username: /' /tmp/file

Якорь ^ в regex означает начало строки — sed вставляет туда текст.