- Сохранение выполненных команд Linux в файл
- IT-поддержка
- Сохранение вывода команды из терминала Linux в файл
- Сохранение вывода команд в файл
- Добавление вывода в уже существующий файл
- Печать вывода на терминале и сохранение его в файл
- Как сохранить в файл вывод консоли (терминала) в Linux
- Описание
- Примеры
- 🐧 Как записать все, что вы делаете в терминале Linux
- Запишите все, что вы делаете в терминале, используя команду Script в Linux
Сохранение выполненных команд Linux в файл
Работая в командной строке Linux, мы часто используем лишь небольшую долю ее возможностей. Сегодня я напишу еще о одной возможности bash shell, которая поможет вам в работе, а также сэкономит ваше время.
Возможно, бывало так, что вы вводили какую-нибудь команду с большим количеством параметров и, эта команда позже была для вас снова необходима. Ну не вводить же ее заново! Да и надо вспоминать все то, что вводил..
Те, кто уже освоил работу с историей команд в Linux, с легкостью справятся с этой задачей. Но, как мы знаем, история введенных команд в Linux тоже постепенно затирается. На смену старым введенным командам приходят новые, недавно введенные нами..
И, все же, выход есть. Bash shell позволяет сохранять, вводимые с клавиатуры команды, в файл, используя перенаправление потока ( команда > ). А значит эту возможность и можно использовать!
Предположим, вы только что выполнили какую-нибудь команду Linux, результат которой, вас весьма впечатлил (время, затраченное на «рождение» команды, стоило того!) и вы хотели бы сохранить ее для дальнейшего использования.
Выполним в командной строке следующую команду:
Эта команда позволит извлечь из истории команд последнюю введенную вами команду и сохранить ее в файл с именем lastcommand (его название можете заменить на любое другое).
Добавив после имени файла расширение .sh, вы превратите файл в скрипт (только не забудьте, при помощи команды chmod, назначить ему права на выполнение):
Используя эту возможность, мы сможем также и добавлять ранее выполненные команды в скрипт. К примеру, команда:
позволит вам добавить в файл скрипта еще одну, ранее выполненную вами, команду.
Уверен, что и эта возможность будет вам полезна!
IT-поддержка
Оказываем квалифицированную помощь в поддержке Вашей IT-инфраструктуры
Сохранение вывода команды из терминала Linux в файл
Мы все знаем, что выполнение команды в командной строке Linux приводит к выполнению команды и печати результатов в самом Терминале. Иногда этого немедленного вывода недостаточно, особенно если мы хотим сохранить вывод для последующего использования. К счастью, Linux bash и все операционные системы bash, если на то пошло, оснащены возможностью печати вывода команды в указанный файл.
Сохранение вывода команд в файл
Мы выполним несколько примеров, в которых вывод команд будет сохранен в указанном нами имени файла.
Если вы хотите сохранить вывод команды в новый файл или заменить содержимое уже существующего файла выводом команды, используйте следующий синтаксис:
[команда] > [/file/location/filename]
Например, я использую команду lscpu (которая отображает системную информацию) и затем выведу ее содержимое в файл с именем systeminf.txt. Этот файл еще не существует в моей системе.
lscpu > /home/user/systeminfo.txt
Когда я обращаюсь к этому файлу через файловый менеджер, он выглядит следующим образом:
Добавление вывода в уже существующий файл
Если вы хотите сохранить вывод команды Linux в файл, не изменяя его уже существующего содержимого, вы можете использовать следующий синтаксис:
[команда] >> [/file/location/filename]
Например, следующая команда добавит результат команды ls в конец уже существующего файла systeminformation.txt.
ls >> /home/user/systeminfo.txt
Следующий файл, который раньше содержал только информацию о моей системе, теперь также содержит результат моей команды ls:
Печать вывода на терминале и сохранение его в файл
Вы могли заметить, что команды, о которых мы говорили выше, только сохраняют вывод в файл, не печатая его на Терминале. Если вы хотите просмотреть вывод команды на Терминале, используйте следующий синтаксис:
[команда] | tee [/file/location/filename]
Например, текст, который мы хотим передать эхом на следующем рисунке, теперь будет передан эхом на Терминале, а также распечатан в файл myfile.txt.
echo "print text to file" | tee /home/user/myfile.txt
Если вы хотите добавить вывод команды в уже существующий файл. Пожалуйста, следуйте следующему синтаксису:
[команда] | tee -a [/file/location/filename].
Например, на следующем рисунке показано, как будет выведено еще несколько текстов, а затем добавлено в уже существующий файл:
echo "some more text" | tee -a /home/sana/myfile.txt
Используйте pipe для сохранения вывода команды в файл.
Как сохранить в файл вывод консоли (терминала) в Linux
Очень часто при работе в терминале возникает необходимость в сохранении результата работы команд (или же какого-либо консольного приложения) в текстовый файл или проще говоря лог. В ОС Linux есть множество способов для реализации этой идеи и в этой статье мы рассмотрим некоторые из них.
Стандартный поток вывода данных (StdOut) — Это вся информация, которая выводится в результате исполнения команды, за исключением ошибок.
Стандартный поток вывода ошибок (StdErr) — Это информация об ошибке, если она была.
Описание
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода ошибок (StdErr) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода ошибок (StdErr) будет перенаправлен в файл и отображаться в терминале не будет. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода данных (StdOut) И Стандартный поток вывода ошибок (StdErr) будут перенаправлены в файл и отображаться в терминале не будут. Если файл уже существует, то он будет перезаписан.
Стандартный поток вывода данных (StdOut) И Стандартный поток вывода ошибок (StdErr) будут перенаправлены в файл и отображаться в терминале не будут. Если файл уже существует, то новые данные будут дописаны в конец файла.
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и одновременно будет отображен в терминале. Если файл уже существует, то он будет перезаписан.
команда | tee -a logfile.txt
Стандартный поток вывода данных (StdOut) будет перенаправлен в файл и одновременно будет отображен в терминале. Если файл уже существует, то новые данные будут дописаны в конец файла.
Примеры
🐧 Как записать все, что вы делаете в терминале Linux
Несколько дней назад мы опубликовали руководство, в котором объяснялось, как сохранять команды в самом терминале и использовать их по требованию.
Это очень полезно для тех, кто не хочет запоминать длинные и сложные команды Linux.
Сегодня в этом руководстве мы увидим, как записывать все, что вы делаете в Терминале, используя команду «script».
Возможно, вы выполнили команду, или создали каталог, или установили приложение в Терминале.
Команда Script просто сохраняет все, что вы делали в Терминале.
Затем вы можете просмотреть все это, если хотите узнать, что вы сделали несколько часов или дней назад. Я знаю, что знаю, мы можем использовать клавиши со стрелками ВВЕРХ / ВНИЗ или команду истории для просмотра ранее запущенных команд.
Однако вы не можете просмотреть вывод этих команд.
Но команда Script записывает и отображает завершенные действия терминала.
Команда script создает машинописный текст всего, что вы делаете в Терминале.
Не имеет значения, устанавливаете ли вы приложение, создаете каталог / файл, удаляете папку.
Все будет записано, включая команды и соответствующие выходы.
Э та команда будет полезна тем, кто хочет получить бумажную запись интерактивного сеанса в качестве доказательства назначения.
Будь вы студент или преподаватель, вы можете сделать копию всего, что вы делаете в Терминале, вместе со всеми результатами.
Запишите все, что вы делаете в терминале, используя команду Script в Linux
Команда script поставляется предварительно установленной в большинстве современных операционных систем Linux.
Итак, давайте не будем беспокоиться об установке.
Давайте продолжим и посмотрим, как использовать его в режиме реального времени.
Выполните следующую команду, чтобы начать запись сеанса терминала.
$ script -a my_terminal_activities
Где, -a флаг используется для добавления вывода в файл или в машинопись, сохраняя предыдущее содержимое.
Приведенная выше команда записывает все, что вы делаете в Терминале, и добавляете вывод в файл с именем «my_terminal_activities» и сохраняете его в текущем рабочем каталоге.
Script started, file is my_terminal_activities