Когда пользователь Linux вводит любую команду в командной строке bash, терминал обычно распечатывает вывод вызванной команды, чтобы вы могли сразу его прочитать. Однако bash также позволяет «redirect» или сохранять вывод любой команды в системе.
В этой статье мы обсудим три различные процедуры перенаправления вывода команды top в любой файл.
Метод 1: перенаправление вывода одного файла
Чтобы использовать перенаправление bash, выполните любой сценарий, затем определите оператор > или >>, за которым следует путь к файлу, на который должен быть перенаправлен вывод.
- Оператор «>>» используется для использования вывода команды в файл, включая вывод текущего содержимого файла.
- Оператор «>» используется для перенаправления вывода команды в один файл и замены текущего содержимого файла.
Можно сказать, что технически это перенаправление файла для «stdout», что является нормальным отображением. Теперь мы выполним демонстрационный пример. Команда ls отображает содержимое папок и файлов текущего каталога после ее выполнения.
$ ls
ls > /path/to/file
Однако эта команда сохранит вывод в указанный файл в следующем примере, а не печатает его на терминале.
ls > /home/andreyex/outputfile
Используйте указанный синтаксис команды для проверки содержимого файла.
cat /path/to/file
Теперь напишите приведенную ниже команду для печати содержимого «выходного файла» в терминале.
$ cat /home/andreyex/outputfile
Оператор «>» перезаписывает содержимое файла результатом выполнения команды. Вместо этого вы можете использовать оператор «>>» для сохранения вывода нескольких команд в один файл. Например, выполнение данной команды добавит системную информацию в конкретный файл.
uname -a >> /path/to/file
$ uname -a >> /home/andreyex/outputfile $ cat /home/andreyex/outputfile
Метод 2: перенаправление вывода терминала в один файл
Не понравилась идея использования оператора «>» или «>>» для перенаправления вывода? Не волнуйтесь! Команда tee здесь, чтобы спасти вас.
command | tee /path/to/file
$ ls | tee /home/andreyex/outputfile
Приведенная ниже команда tee перезапишет содержимое файла выводом команды, аналогичным оператору «>».
$ uname -a | tee -a /home/andreyex/outputfile
Метод 3: команда top
Системные администраторы также используют команду top для просмотра в реальном времени системной статистики, такой как средняя загрузка, время безотказной работы системы, запущенные задачи, используемая память, конкретная информация о каждом запущенном процессе и сводка потоков или процессов. Используя флаг -b, эта команда помогает получить информацию о текущих процессах, выполняемых в системе. Команда top разрешает вершине работать в пакетном режиме, а флаг -n определяет количество итераций, которые команда должна выполнять в качестве вывода.
$ top -b -n 1 > topfile.txt
Весь вывод, полученный в результате выполнения команды top, будет перенаправлен в указанный файл. Теперь напишите команду less для проверки содержимого файла.
$ less topfile.txt
Флаг -n отправит единственный снимок выполненной команды в указанный файл. Чтобы получить только первую итерацию, укажите «1» после флага «-n».
$ top -b -n 1 > top-iteration.txt
Используйте команду cat для просмотра информации о запущенных задачах.
$ cat top-iteration.txt | grep Tasks
Заключение:
В Linux для перенаправления вывода в файл используйте операторы перенаправления «>» и «>>» или команду top. Перенаправление позволяет вам сохранить или перенаправить вывод команды в другой файл в вашей системе. Вы можете использовать его для сохранения выходных данных и использования их позже для различных целей.