📋 Текст домашнего задания 7 (из LMS)
- Создать файл
/tmp/file.txtпри помощи vi или nano - Добавить в него первые 3 строки вывода команды
df -h - Дать группе права на запись и исполнение
- Убрать все права для остальных
- Создать файл
myfirstbashscript.sh, сделать его исполняемым - Завести переменную
USER, которая равна вашему имени - Добавить команду/вызов переменной, чтобы скрипт написал из какой директории он запущен
- Дописать в
/tmp/file.txtсодержимое скрипта - Дописать в
/tmp/file.txtисторию команд (history) - Прислать файл через
export_file /tmp/file.txt
Подготовка окружения
1. Подключение к серверу
ssh -i ~/.ssh/id_rsa ec2-user@linux.itcareerhub.de
Убедитесь, что вы на удалённом сервере (приглашение изменится: ec2-user@ip-xxx-xxx-xxx-xxx).
2. Проверка vi/nano
which vi # должен вернуть путь /usr/bin/vi
which nano # или /usr/bin/nano
Если nano не установлен — используйте vi. Базовые команды vi: i — режим вставки, Esc — выход из режима вставки, :wq — сохранить и выйти.
Пошаговое решение
Шаг 1. Создать /tmp/file.txt
vi /tmp/file.txt
В vi нажмите i для перехода в режим вставки. Введите первые три строки вывода df -h. Чтобы получить реальный вывод — откройте второй терминал или запустите df -h заранее.
Шаг 2. Добавить 3 первые строки df -h
Удобнее через перенаправление (не открывая vi):
# Сначала создать файл с 3 строками df -h
df -h | head -3 > /tmp/file.txt
# Проверить содержимое
cat /tmp/file.txt
Вывод будет примерно таким:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 483M 0 483M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
Шаг 3. Дать группе права на запись и исполнение, убрать у остальных
# Текущие права:
ls -la /tmp/file.txt
# -rw-r--r-- (обычно после создания)
# Дать группе только запись и исполнение (w+x = 3):
chmod g+wx /tmp/file.txt
# По заданию группе нужны w и x, но НЕ чтение — поэтому g+wx, а не g+rwx.
# Убрать все права у остальных (o-rwx):
chmod o-rwx /tmp/file.txt
# Или одной командой (6=rw-, 3=-wx, 0=---):
chmod 630 /tmp/file.txt
# Проверка:
ls -la /tmp/file.txt
# -rw--wx--- (что соответствует 630)
Шаг 4. Создать myfirstbashscript.sh
vi myfirstbashscript.sh
Содержимое скрипта:
myfirstbashscript.sh
#!/bin/bash
USER="Andrew"
echo "Hello, I am $USER"
echo "Script is running from directory:"
pwd
Сохранить в vi: Esc → :wq → Enter.
Шаг 5. Сделать скрипт исполняемым и запустить
chmod +x myfirstbashscript.sh
./myfirstbashscript.sh
# Hello, I am Andrew
# Script is running from directory:
# /home/ec2-user
Шаг 6. Дописать содержимое скрипта в /tmp/file.txt
# Дописать (>>) содержимое скрипта в файл
cat myfirstbashscript.sh >> /tmp/file.txt
# Проверить
cat /tmp/file.txt
Шаг 7. Дописать историю команд
history >> /tmp/file.txt
# Проверить итоговое содержимое файла
cat /tmp/file.txt
Шаг 8. Отправить файл преподавателю
export_file /tmp/file.txt
Финальная проверка
# 1. Права на файл (ожидаем -rw--wx--- или 630)
ls -la /tmp/file.txt
# 2. Содержимое файла (должно быть: df -h + скрипт + history)
cat /tmp/file.txt
# 3. Права на скрипт (ожидаем x у владельца)
ls -la myfirstbashscript.sh
# 4. Скрипт работает
./myfirstbashscript.sh
Что закрепляет это задание
- Права rwx — chmod 630, дать группе w+x, убрать у остальных
- Первый bash-скрипт — shebang, переменная USER, pwd, chmod +x
- Перенаправление вывода (
>>) — дописать df -h, скрипт и history в один файл