Перейти к основному содержимому
Модуль 3 · Урок 1 из 26/11 в курсе~15 min
Уроки модуля (1/2)

Вывод и перенаправления (echo, cat, >)

В Linux почти все команды считывают данные из входного потока и записывают результаты в выходной поток. Эти каналы называются стандартными потоками:

  • Стандартный ввод (stdin): поток, из которого команда считывает вводимые данные (по умолчанию — клавиатура).
  • Стандартный вывод (stdout): поток, в который команда записывает успешный вывод (по умолчанию — экран терминала).
  • Стандартная ошибка (stderr): поток, в который команда записывает сообщения об ошибках (по умолчанию — экран).

Используя командную строку, мы можем перенаправить эти потоки для сохранения результатов непосредственно в файлы.


Печать текста: echo

Команда echo просто записывает свои аргументы на стандартный вывод (экран):

Bash
echo "Hello everyone"

Перенаправление вывода (перезапись): >

Если вы хотите сохранить вывод команды в файл, а не отображать его на экране, вы можете использовать оператор перенаправления «больше чем» >:

Bash
echo "Hello everyone" > greetings.txt

Эта команда запускает echo и перенаправляет выходные данные в файл greetings.txt.

[!ВАЖНО] Если файл greetings.txt не существует, он создается. Если он уже существует, его существующее содержимое полностью удаляется и заменяется новым выводом.


Чтение содержимого файла: cat

Чтобы просмотреть содержимое одного или нескольких текстовых файлов на лету, используйте команду cat (сокращение от concatenate):

Bash
cat greetings.txt

Добавление вывода: >>

Если вы хотите добавить новые строки в конец существующего файла, а не перезаписывать его, вы должны использовать оператор добавления >>:

Bash
echo "New line of text" >> greetings.txt

Теперь при чтении файла с помощью cat greetings.txt будут показаны как первая, так и вторая строки.


Примеры использования и распространенные ошибки

Вы можете передать несколько файлов в cat одновременно, чтобы отображать их последовательно (объединено):

Bash
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.

Вы можете перенаправить объединенный вывод в третий файл с помощью оператора >:

Bash
cat notes.txt info.txt > combined.txt

Если вы попытаетесь прочитать несуществующий файл, cat напишет сообщение об ошибке:

Bash
cat nonexistent_file.txt
# Output:
# cat: nonexistent_file.txt: No such file or directory

Попробуйте сами

Упражнение 1. Создайте файл с приветствием

Упражнение#linux.m3.l1.e1
Попыток: 0Загрузка…

Создайте файл с именем «hello.txt», содержащий именно текст «Hello World», используя echo и оператор >.

Загрузка редактора…
Показать подсказку

Используйте echo, за которым следует строка в кавычках, оператор > и hello.txt.

Решение доступно после 3 попыток

Упражнение 2. Добавление заметок в файл

Упражнение#linux.m3.l1.e2
Попыток: 0Загрузка…

Добавьте строку «Linux — это весело» в конец существующего файла «notes.txt», не удаляя его текущее содержимое.

Загрузка редактора…
Показать подсказку

Используйте оператор >>, чтобы добавить текст в файл Notes.txt.

Решение доступно после 3 попыток

Упражнение 3. Объединение файлов

Упражнение#linux.m3.l1.e3
Попыток: 0Загрузка…

Объедините содержимое файлов «notes.txt» и «info.txt» и сохраните объединенный вывод в новый файл с именем «combined.txt».

Загрузка редактора…
Показать подсказку

Используйте cat, за которым следуют имена двух исходных файлов, и перенаправьте вывод с помощью > в файл назначения.

Решение доступно после 3 попыток