Как сохранить вывод команды терминала (Bash) в текстовый файл

Когда вы работаете в терминале, весь вывод команд, естественно, вы видите в реальном времени прямо в окне терминала. Но бывают случаи когда вывод нужно сохранить, дабы поработать с ним позже (проанализировать его, сравнить, и т.п). Так вот, работая в Bash у вас есть возможность перенаправлять отображаемую информацию с окна терминала в текстовый файл. Рассмотрим как это делается.
Вариант 1: только перенаправляем вывод терминала в файл
В этом случае весь результат работы любой команды будет записан в текстовый файл, без отображения его на экране. То есть, мы в прямом смысле перенаправим информацию с экрана в файл. Для осуществления этого нужно использовать операторы > и >> и путь к файлу в который нужно писать, в конце выполняемой команды.
Оператор > сохранит результат работы команды в указанный файл и, если в нем уже будет находиться какая-либо информация, перезапишет ее.
Оператор >> перенаправит вывод команды в файл, и если в нем также будет находиться информация, новые данные будут добавлены в конец файла.
Рассмотрим на примере команды ls, которая отображает список файлов и папок в указанной директории. Давайте запишем результат ее работы в текстовый файл. Нам нужно написать команду, поставить оператор и указать путь к файлу:
ls > /home/ruslan/пример
Теперь посмотрим, все ли сработало. Для этого можно воспользоваться любым текстовым редактором, какой у вас есть. Также это можно сделать прямо в терминале при помощи команды cat:
cat /home/ruslan/пример
Все работает.
Помните, что “>” перезапишет все данные, которые были до этого в файле, поэтому, если вам нужно дописать что-либо в файл используйте оператор “>>“
Допустим, что после того, как мы перенаправили вывод команды ls в файл “пример” мы решили узнать версию ядра системы и также сохранить вывод в тот же файл. Чтобы узнать версию ядра воспользуемся командой uname и параметром -a, затем говорим Bash как и куда нужно сохранить результат ее выполнения:
uname -a >> /home/ruslan/пример
Снова проверим результат:
cat /home/ruslan/пример
Как видим, у нас сохранились результаты работы и ls, и uname.
Вариант 2: перенаправляем вывод в файл и отображаем его на экране
Не всем и не всегда удобно пользоваться операторами > и >>, так как все же лучше когда волнение команд можно наблюдать в реальном времени в окне терминала. В таком случае мы можем воспользоваться командой tee, которая и отобразит выполнение команд на экране, и сохранит его в файл. Синтаксис ее такой:
команда | tee /путь/к/файлу
Этот вариант подобен оператору > из предыдущего пункта, то есть при записи в файл, все старые данные будут удалены. Если вам нужно дописать в файл, в конструкцию нужно добавить параметр -a:
команда | tee -a /путь/к/файлу
В Bash есть еще несколько операторов и команд, выполняющих идентичные задачи, их часто используют во время написания различных скриптов, но для обычного пользователя, которому нужно сохранить вывод команды чтобы запостить его на форуме, вполне достаточно и этих вариантов. Надеюсь, что помог вам, до новых постов!
А как уже набранный текст скопировать ?