Поиск по сайту:

Сохранение вывода команды из терминала Debian в файл


Мы все знаем, как запуск команды в командной строке Debian, Терминале, приводит к выполнению команды и печати результатов, если таковые имеются, в самом Терминале. Иногда этого немедленного отображения вывода недостаточно, особенно если мы хотим сохранить вывод для дальнейшего использования. К счастью, Linux bash и все операционные системы bash, если уж на то пошло, оснащены возможностью вывода вывода команды в указанный файл. В этой статье мы будем работать над следующими двумя сценариями:

  • Сохранение вывода команды в файл
  • Печать вывода в терминале и последующее сохранение его в файл

Мы выполнили команды и процедуры, упомянутые в этой статье, в системе Debian 11 Bullseye.

Мы запустим несколько примеров, в которых вывод команд будет сохранен в указанном нами имени файла.

Чтобы открыть Терминал, откройте поиск в Панели запуска приложений с помощью клавиши Super/Windows, а затем найдите Терминал следующим образом:

Создать новый файл/Заменить существующий файл

Если вы хотите сохранить вывод команды в новый файл или заменить содержимое уже существующего файла выводом команды, используйте следующий синтаксис:

$[команда] > [/filelocation/имя файла]

Например, я буду использовать команду lscpu (которая отображает системную информацию), а затем распечатаю ее содержимое в файл с именем systeminformation.txt. Этот файл еще не существует в моей системе.

lscpu > /home/sana/systeminformation.txt

Когда я получаю доступ к этому файлу через файловый менеджер, он выглядит так:

Добавить вывод в уже существующий файл

Если вы хотите сохранить вывод команды Linux в файл, не изменяя его уже существующее содержимое, вы можете использовать следующий синтаксис:

$[команда] >> [/filelocation/имя файла]

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

ls >> /home/sana/systeminformation.txt

Следующий файл, который когда-то содержал только мою системную информацию, теперь также содержит выходные данные моей команды ls:

Возможно, вы заметили, что команды, которые мы упомянули выше, сохраняют вывод только в файл, не печатая его на самом терминале. Используйте следующий синтаксис, если вы хотите также просмотреть вывод команды на терминале:

$[команда] | тройник [/filelocation/имя файла]

Например, текст, который мы хотим отобразить на следующем изображении, теперь будет отображаться на Терминале, а также печататься в файле myfile.txt.

echo "print this text to my file" | tee /home/sana/myfile.txt

Вот содержимое файла, созданного с помощью команды:

Если вы хотите добавить вывод команды в уже существующий файл. Пожалуйста, следуйте этому синтаксису:

$[команда] | tee -a [/filelocation/имя файла]

Например, на следующем изображении показано, как будет отображено еще немного текста, а затем добавлено в мой уже существующий файл:

echo "here is some more text for printing" | tee -a /home/sana/myfile.txt

Вот как сейчас выглядит файл:

Эти ориентированные на вывод текстовые файлы, которые мы создали в этой статье, в некоторых случаях могут быть гораздо более полезными, чем обычная печать вывода на терминале. Вот насколько мощным является Debian bash!

Статьи по данной тематике: