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

💻 Примеры — Занятие 04

Запускаемые примеры перенаправлений и piping из лекции. Попробуйте в JSLinux.

⚡ Ключевые примеры

date > file.txt           # записать дату в файл
date >> file.txt          # дозаписать дату
cat file.txt              # прочитать файл
cat file.txt | wc -l      # посчитать строки
history | tail -3         # последние 3 команды
ls -la / | tail -4        # последние 4 объекта в корне

Примеры перенаправления

Запись и дозапись даты

# Записать текущую дату в файл (СОЗДАСТ или ПЕРЕЗАПИШЕТ):
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).