Примеры перенаправления
Запись и дозапись даты
# Записать текущую дату в файл (СОЗДАСТ или ПЕРЕЗАПИШЕТ):
date > current_date.txt
# Посмотреть содержимое:
cat current_date.txt
# Дозаписать дату ещё раз (файл теперь содержит две строки):
date >> current_date.txt
# Проверить:
cat current_date.txt
После выполнения: в файле будут две строки с датами. Если бы второй раз использовали > — осталась бы только одна строка (перезапись).
Ввод из файла
# Использовать файл как источник ввода для cat:
cat < current_date.txt
# Комбинированное: читать из одного файла, писать в другой:
cat < current_date.txt > output.txt
Перенаправление ошибок
# Попытаться прочитать несуществующий файл:
# (ошибка идёт в stderr, на экран — не в файл)
cat nosuchfile.txt
# Перенаправить и stdout и stderr в файл:
cat nosuchfile.txt > output.txt 2>&1
# Теперь ошибка в output.txt, экран чистый
Примеры piping из лекции
cat + wc: подсчёт строк в файле
cat /etc/group | wc -l
Pipe передаёт всё содержимое /etc/group команде wc, которая считает строки. Альтернатива: wc -l < /etc/group (перенаправление ввода).
echo: вывод текста и запись в файл
echo "Hello world" # на экран
echo "Start" > start.txt # в файл (перезапись)
echo "Second line" >> start.txt # дозаписать
head и tail: первые и последние строки
# Первые 10 строк (по умолчанию):
cat /etc/group | head
# Первые 3 строки:
cat /etc/group | head -n 3
# Последние 10 строк:
cat /etc/group | tail
# Последние 4 строки:
cat /etc/group | tail -n 4
Сохранение истории через pipe
# Последние 3 команды из истории:
history | tail -3
# Дозаписать их в файл:
history | tail -3 >> /tmp/file
# Проверить:
cat /tmp/file
Комбинированный конвейер: ls + tail
# Последние 4 объекта в корневой директории (все, включая скрытые):
ls -la / | tail -4
Это именно то, что нужно в ДЗ 3 (пункт 5).