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