Як зберегти вивід команди термінала (Bash) в текстовий файл

Працюючи в терміналі, весь вивід команд, ви бачите в реальному часі прямо в вікні терміналу. Але бувають випадки, коли його потрібно зберегти, аби потім попрацювати з ним окремо (проаналізувати, порівняти тощо).

В Bash, є можливість перенаправляти відображену інформацію з вікна терміналу в текстовий файл. Розглянемо, як це робиться.

Варіант 1: лише перенаправляємо вивід термінала в файл

У цьому випадку весь результат роботи будь-якої команди буде записано в текстовий файл без відображення його на екрані. Тобто ми буквально перенаправимо інформацію з екрану в файл. Для цього потрібно використовувати оператори > та >>, а також в кінці виконуваної команди вказати шлях до файлу, в який потрібно записувати.

Оператор > зберігає результат виконання команди в зазначений файл і, якщо в ньому вже є якась інформація, перезапише її.

Оператор >> перенаправляє вивід команди в файл, і якщо в ньому є інформація, нові дані будуть додані в кінець файлу.

Розглянемо на прикладі команди ls, яка виводить список файлів і папок в указаній директорії. Запишемо результат її роботи в текстовий файл. Для цього потрібно написати команду, поставити оператор і вказати шлях до файлу:

ls > /home/geek/example

Тепер перевіримо, чи все працює. Для цього можна використати будь-який текстовий редактор, який у вас є. Також це можна зробити прямо в терміналі за допомогою команди cat:

cat /home/geek/example

Приклад 1

Все працює.

Пам’ятайте, що > перезапише всі дані, які були до цього в файлі, тому, якщо вам потрібно дописати щось в файл, використовуйте оператор >>.

Припустимо, що після того, як ми перенаправили вивід команди ls в файл “example”, ми вирішили дізнатися версію ядра системи і також зберегти вивід у той самий файл. Для того щоб дізнатися версію ядра, скористаємося командою uname з параметром -a, а потім скажемо Bash, як і куди зберігати результат її виконання:

uname -a >> /home/geek/example

Знову перевіримо результат:

cat /home/geek/example

Приклад 2

Як бачимо, у нас збереглися результати роботи як ls, так і uname.

Варіант 2: перенаправляємо вивід в файл і відображаємо його на екрані

Не всім і не завжди зручно користуватися операторами > і >>, адже все ж краще, коли результат виконання команд можна спостерігати в реальному часі в вікні терміналу. В такому випадку ми можемо скористатися командою tee, яка і відобразить виконання команд на екрані, і збереже його в файл. Синтаксис її такий:

команда | tee /шлях/до/файлу

Цей варіант схожий на оператор > з попереднього пункту, тобто при записі в файл всі старі дані будуть видалені. Якщо вам потрібно дописати в файл, в конструкцію треба додати параметр -a:

команда | tee -a /шлях/до/файлу

Приклад 3

В Bash є ще кілька операторів і команд, що виконують подібні завдання, їх часто використовують під час написання різних скриптів, але для звичайного користувача, якому потрібно зберегти вивід команди, щоб потім викласти його на форумі, цілком достатньо і цих варіантів. Сподіваюся, що допоміг вам, до нових постів!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *