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

Очень часто при работе в терминале возникает необходимость в сохранении результата работы команд (или же какого-либо консольного приложения) в текстовый файл или проще говоря лог. В ОС Linux есть множество способов для реализации этой идеи и в этой статье мы рассмотрим некоторые из них.

Описание
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода ошибок (StdErr) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода ошибок (StdErr) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода данных (StdOut) И Стандартный поток вывода ошибок (StdErr) будут перенаправлены в файл и отображаться в терминале не будут. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода данных (StdOut) И Стандартный поток вывода ошибок (StdErr) будут перенаправлены в файл и отображаться в терминале не будут. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и одновременно будет отображен в терминале. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и одновременно будет отображен в терминале. Если файл уже существует, то новые данные будут дописаны в конец файла.
Как сохранить файл в nano Linux
Текстовый редактор nano — это один из самых популярных редакторов среди новичков в Linux. Он доступен по умолчанию в большинстве дистрибутивов, довольно простой в использовании и прекрасно справляется с редактированием конфигурационных файлов.
В этой небольшой статье мы рассмотрим как сохранить файл в nano Linux. Это может понадобится если вы уже отредактировали конфигурационный файл и хотите сохранить изменения.
Как сохранить изменения в nano
1. Обычное сохранение
Здесь всё делается довольно просто. Для того чтобы сохранить изменения после завершения работы с файлом необходимо нажать сочетание клавиш Ctrl+O. В принципе об этом написано в нижней части окна программы. Здесь перечислены все сочетания клавиш, которые вы можете использовать. Тут знак ^ означает Ctrl:

После нажатия этого сочетания клавиш редактор попросит ввести имя файла для сохранения:

Когда всё будет готово, достаточно нажать Enter. Если вы передумали сохранять документ и хотите вернутся к редактированию в этом окне нужно нажать Ctrl+X. После сохранения программа сообщит, что файл успешно сохранён:

Теперь вы можете закрыть редактор нажав сочетание клавиш Ctrl+X.
2. Сохранение если нет доступа на запись
Однако, если вы попытаетесь сохранить данные в файл, принадлежащий другому пользователю или суперпользователю, к которому у вас нет доступа (например, файлы конфигурации в директории /etc), то получите ошибку: «Ошибка записи /имя/файла: Отказано в доступе«:

Проще всего, закрыть редактор, нажав Ctrl+X не сохраняя изменений. На вопрос редактора про сохранение буфера надо ответить No:

А затем открыть редактор уже от имени суперпользователя:
sudo nano /etc/passwd
После этого вы сможете записать данные в файл как было описано выше. Если изменения не хочется терять, во время запроса имени файла можно указать путь к новому файлу в вашей домашней директории, например,

Новый файл сохранится туда, потом вы сможете переместить его вместо старого в помощью команды mv уже используя sudo:
Не забывайте, что все системные файлы необходимо редактировать от имени суперпользователя.
Выводы
В этой небольшой статье мы рассмотрели как сохранить изменения в nano при обычном использовании редактора, а также если вы забыли использовать sudo для редактирования системных файлов. Как видите, всё довольно просто. В принципе, если файл нельзя редактировать, то в нижней части окна редактора выводится об этом сообщение. Будьте внимательны. Если у вас остались вопросы, спрашивайте в комментариях.
Сохранение вывода команды из терминала Linux в файл
Мы все знаем, что выполнение команды в командной строке Linux приводит к выполнению команды и печати результатов в самом Терминале. Иногда этого немедленного вывода недостаточно, особенно если мы хотим сохранить вывод для последующего использования. К счастью, Linux bash и все операционные системы bash, если на то пошло, оснащены возможностью печати вывода команды в указанный файл.
Сохранение вывода команд в файл
Мы выполним несколько примеров, в которых вывод команд будет сохранен в указанном нами имени файла.
Если вы хотите сохранить вывод команды в новый файл или заменить содержимое уже существующего файла выводом команды, используйте следующий синтаксис:
Например, я использую команду lscpu (которая отображает системную информацию) и затем выведу ее содержимое в файл с именем systeminf.txt. Этот файл еще не существует в моей системе.
Когда я обращаюсь к этому файлу через файловый менеджер, он выглядит следующим образом:

Добавление вывода в уже существующий файл
Если вы хотите сохранить вывод команды Linux в файл, не изменяя его уже существующего содержимого, вы можете использовать следующий синтаксис:
Например, следующая команда добавит результат команды ls в конец уже существующего файла systeminformation.txt.
Следующий файл, который раньше содержал только информацию о моей системе, теперь также содержит результат моей команды ls:

Печать вывода на терминале и сохранение его в файл
Вы могли заметить, что команды, о которых мы говорили выше, только сохраняют вывод в файл, не печатая его на Терминале. Если вы хотите просмотреть вывод команды на Терминале, используйте следующий синтаксис:
Например, текст, который мы хотим передать эхом на следующем рисунке, теперь будет передан эхом на Терминале, а также распечатан в файл myfile.txt.
Если вы хотите добавить вывод команды в уже существующий файл. Пожалуйста, следуйте следующему синтаксису:
Например, на следующем рисунке показано, как будет выведено еще несколько текстов, а затем добавлено в уже существующий файл:
Как вывести команды Linux в файл

При использовании терминала Linux вы можете захотеть сохранить вывод командной строки в текстовый файл для дальнейшего использования, но вы не понимаете, как это сделать. Сохранять выходные данные команд в файл проще, чем вы думаете! Это просто требует небольшого понимания символа перенаправления в Bash. Вот как вы можете выводить команды Linux в файл.
Что за символ перенаправления?
Символ перенаправления (он же оператор перенаправления), в общих чертах, позволяет отправлять входные и выходные данные из одного места в другое.
Перенаправление означает вывод. Эти два оператора могут делать множество вещей, и существует множество вариантов использования перенаправления в Linux и Unix-подобных операционных системах в целом. С учетом сказанного, в этой статье мы сосредоточимся только на том, как можно использовать перенаправление для вывода команд Linux в файл.
Вывод команд терминала в файл
Сохранить вывод команды из терминала в текстовый файл очень просто, и он работает за счет использования символа> для отправки результатов.
В терминах Bash при использовании> любой ввод будет перенаправлен в другое место. В нашем случае мы можем взять перенаправление и использовать его, чтобы переместить вывод команды терминала и поместить его в красивый аккуратный текстовый файл для безопасного хранения.
Например, если вы используете Ubuntu и хотите сохранить текущую версию своей операционной системы в файл, вы должны запустить команду lsb_release и добавить в конце символ>.
Вот и все! Вы успешно вывели команду в текстовый файл. Вот и все! Не стесняйтесь настраивать приведенную выше команду. Просто следуйте синтаксису ниже.
Добавление в существующий файл
Вы можете захотеть добавить несколько команд в один текстовый файл, а не в один вывод команды.
Чтобы распечатать несколько выходных данных в одном, начните с первой команды и используйте символ> для создания нового файла.
Благодаря символу перенаправления наш вывод сохраняется. Теперь не стесняйтесь добавлять что-то в тот же файл, используя символ >>.

Выборочное сохранение команд
Отправка вывода команды в файл полезна, особенно когда вам нужно что-то сохранить на потом. Но вы когда-нибудь хотели сохранить определенный фрагмент текста в вашем терминале в файл? Или, возможно, текст с определенными ключевыми словами? Благодаря помощи команды grep это возможно.
Что такое grep? Grep — это инструмент командной строки, который позволяет пользователям Linux (и других Unix-подобных операционных систем) искать указанные шаблоны в строках открытого текста. По сути, это очень полезный инструмент поиска для терминала.
Примеры выборочного сохранения
Возможно, одним из лучших вариантов использования «выборочного сохранения» является сочетание инструмента grep с командой ls для отправки отфильтрованного списка папок / файлов в заданном каталоге в файл для быстрого чтения:

Еще одно применение выборочного сохранения — это фильтрация страниц справки по командам. Чтобы сохранить определенный раздел страницы справки команды в текстовый файл, попробуйте приведенный ниже пример.
Достаточно сказать; есть десятки вариантов использования выборочного сохранения. Вы можете делать с ним что угодно, если вы следуете синтаксису ниже.
Хотите добавить что-то в свой файл, используйте;
Просмотр файлов
Итак, вы сохранили вывод команды терминала в файл. Теперь вам нужно его просмотреть — но как? Что ж, в терминале Linux есть несколько способов просмотра текстовых файлов.
Один из основных способов просмотра содержимого файлов в терминале — это cat. Это простая утилита, которая считывает содержимое файлов и выводит его на экран. Лучше всего то, что инструмент cat работает со всеми типами файлов, поэтому независимо от того, с каким расширением файла сохранен ваш вывод, он его прочитает.
Чтобы просмотреть файл, запустите терминал и напишите cat, а затем укажите местоположение. Например:
Если результат длинный, подумайте о том, чтобы добавить еще в конце. Это позволит вам медленно просматривать файл, нажимая клавишу пробела или Enter на клавиатуре.
Вам нужно отредактировать текст вывода вашей команды? Попробуйте вместо этого открыть его в текстовом редакторе! В Linux существует множество текстовых редакторов, но для простого редактирования проще всего использовать Nano.
Примечание: не все дистрибутивы Linux поставляются с Nano, поэтому вам может потребоваться сначала установить его, прежде чем вводить команду ниже.