Перейти до основного вмісту
Модуль 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 спроб