Как сохранить в Ubuntu в терминале

Обновлено: 02.07.2024

Когда вы запускаете команду или сценарий в терминале Linux, вывод выводится на экран для немедленного просмотра.

В некоторых случаях вам потребуется сохранить вывод в файл для дальнейшего использования. Теперь вы, безусловно, можете копировать и вставлять в терминал Linux, но есть лучшие способы сохранить вывод сценария оболочки или команды в командной строке Linux. Позвольте мне показать их вам.

Способ 1. Используйте перенаправление для сохранения вывода команды в файл в Linux

Для этой цели в Linux можно использовать перенаправление. С оператором перенаправления вместо отображения вывода на экране он переходит к предоставленному файлу.

  • Кнопка > перенаправляет вывод команды в файл, заменяя любой существующий контент в файле.
  • Перенаправление >> добавляет вывод команды в конец существующего содержимого (если оно есть) файла.

Используйте оператор перенаправления STDOUT > для перенаправления вывода в файл следующим образом:

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

Пример ниже демонстрирует это лучше. Сначала он сохраняет вывод команды ls -l. А позже он заменяет содержимое файла выводом команды ls *.c.

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

Этот пример демонстрирует это лучше:

Даже здесь, если файл не существует, он создается автоматически.

Дополнительный совет: сохраните выходные данные команды Linux, а также ошибку в файл

Если ваша команда Linux возвращает ошибку, она не сохраняется в файле. Вы можете сохранить вывод команды и ошибку команды в одном файле, используя 2>&1 следующим образом:

команда > файл.txt 2>&1

В основном 0 означает стандартный ввод, 1 — стандартный вывод и 2 — стандартную ошибку. Здесь вы перенаправляете (>) стандартную ошибку (2) на тот же адрес (&), что и стандартный вывод (1).

Метод 2: используйте команду tee для отображения вывода и сохранения его в файл

Кстати, вы заметили, что когда вы отправляете вывод команды в файл, вы больше не видите его на дисплее? Команда tee в Linux решает эту проблему за вас.

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

Опять же, файл будет создан автоматически, если он еще не существует.

Вы также можете использовать команду tee в режиме добавления с опцией -a следующим образом:

Позвольте мне продемонстрировать это на нескольких простых примерах:

В своих примерах я использовал простые команды Linux. Но будьте уверены, вы можете использовать эти методы и для сохранения вывода скриптов bash.

Примечание. Избегайте ловушек конвейера при сохранении вывода команды в файл

Вы, вероятно, знакомы с перенаправлением каналов. Вы можете использовать его для объединения команд Linux, но вы не можете передать вывод в файл. Это приведет к ошибке, что команда имени файла не найдена:

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

Если вы плохо знакомы с командной строкой Linux, я надеюсь, что это краткое руководство немного расширит ваши знания о Linux. Перенаправление ввода-вывода — важная концепция, о которой следует знать.

 Сохранить вывод команды в файл в Linux

Команды, упомянутые в этой статье, были выполнены в системе Ubuntu 18.04 LTS.

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

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

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

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

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

Перенаправить вывод команды в файл

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

Содержимое файла, отображаемое в редакторе

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

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

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

Перенаправить вывод команды в файл и добавьте содержимое

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

Результат

Распечатка вывода на терминале и сохранение в файл

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

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

Используйте ширину тройника

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

Вывод распечатывается в файл с тройник

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

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

Использование опции добавления тройника команда

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

добавление текста с помощью команды tee

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

Похожие сообщения:

Карим Буздар

Об авторе: Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Вы можете связаться с Каримом в LinkedIn

Поиск

Об этом сайте

Последние руководства


сообщить об этом объявлении

:)

Используйте F3 и F4 для переключения между терминалами влево и вправо. Закройте окно графического интерфейса в любое время. Когда вы снова открываете Byobu, все ваши терминалы восстанавливаются. Показать активность в этом сообщении.

Как записать журнал терминала в Linux?

Linux: запись сеанса терминала, протоколирование вывода оболочки

  1. Установите для параметра Terminal Scrollback значение Unlimited, Copy and Save. Один из способов — настроить ваш терминал на неограниченную прокрутку, затем просто выберите все, скопируйте, затем вставьте и сохраните в редакторе. …
  2. Использование команды «script» для регистрации сеанса. Начните вести журнал, как этот скрипт ~/session. …
  3. Использование Shell внутри Emacs. …
  4. Добавьте метку времени в командную строку.

Как сохранить файл в Ubuntu?

:x

После того как вы изменили файл, нажмите [Esc], чтобы перейти в командный режим, нажмите :w и нажмите [Enter], как показано ниже. Чтобы сохранить файл и одновременно выйти, вы можете использовать клавишу ESC и клавишу [Enter] . При необходимости нажмите [Esc] и введите Shift + Z Z, чтобы сохранить файл и выйти из него.

Как сохранить файл в терминале Linux?

Чтобы сохранить файл, вы должны сначала войти в командный режим. Нажмите Esc, чтобы войти в командный режим, а затем введите :wq, чтобы записать и закрыть файл.

Дополнительные ресурсы Linux.

Команда Назначение
i Переключиться в режим вставки.
Esc Переключиться в режим Command режим.
:w Сохранить и продолжить редактирование.
:wq или ZZ Сохранить и выйти/выйти из vi.

Что вы используете для пересылки ошибок в файл?

  1. Перенаправить stdout в один файл, а stderr в другой файл: command > out 2>ошибка.
  2. Перенаправить стандартный вывод в файл ( >out ), а затем перенаправить стандартный вывод в стандартный вывод ( 2>&1 ): command >out 2>&1.

Как сохранить файл в истории Linux?

Сохранение списка истории. По умолчанию при запуске нового сеанса Bash считывает список истории из файла . файл истории bash. Список команд, выполняемых в текущем сеансе, сохраняется в памяти и сохраняется в файл при закрытии сеанса.

Как скопировать файл в Linux?

Копирование файлов с помощью команды cp

В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов. Если файл назначения существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i.

Что такое бёбу Ubuntu?

Byobu — это простая в использовании оболочка для терминального мультиплексора tmux (или screen ). … Основные функции Byobu включают в себя несколько окон консоли, разделенные панели в каждом окне, уведомления и значки состояния для отображения состояния хоста, а также постоянные сеансы для нескольких подключений.

Как открыть второй терминал в Linux?

  1. Ctrl+Shift+T откроет новую вкладку терминала. – …
  2. Это новый терминал… …
  3. Я не вижу причин использовать xdotool ctrl+shift+n при использовании gnome-terminal, у вас есть много других вариантов; см. man gnome-terminal в этом смысле. – …
  4. Ctrl+Shift+N откроет новое окно терминала. –

Как переключаться между вкладками в терминале Linux?

В Linux почти каждая вкладка поддерживает терминал, например, в Ubuntu с терминалом по умолчанию вы можете нажать:

  1. Ctrl + Shift + T или щелкните Файл/Открыть вкладку.
  2. и вы можете переключаться между ними, используя Alt + $ (*например, Alt + 1 )

Как просмотреть файл журнала в Linux?

Для поиска файлов используется следующий синтаксис команды: grep [опции] [шаблон] [файл] , где «шаблон» — это то, что вы хотите найти. Например, чтобы найти слово «ошибка» в файле журнала, вы должны ввести grep «ошибка» junglediskserver. log , и все строки, содержащие «ошибку», будут выведены на экран.

Как вы читаете файл в Linux?

Существуют различные способы открыть файл в системе Linux.

Открыть файл в Linux

Мне интересно, есть ли быстрый способ сохранить команду в терминале Ubuntu. Сценарий:

  1. Ввел [длинную команду]
  2. Забыл, что мне нужно запустить [другую команду], прежде чем я смогу запустить [длинную команду]

Я забыл упомянуть, что тоже не хотел эха.


10 ответов 10

Это не ваш терминал, это ваша оболочка.

Название механизма оболочки, которое вы ищете, — киллбуфер. Люди забывают, что они есть в редакторах командной строки оболочки. Они есть в ZLE в оболочке Z, а также в GNU Readline в оболочке Bourne Again, libedit в оболочке Almquist (FreeBSD), строковом редакторе оболочки Korn и строковом редакторе оболочки TENEX C.

Во всех этих оболочках в режиме emacs просто перейдите в конец строки для сохранения, уничтожьте ее в буфере уничтожения головы с помощью ⎈ Control + U , введите и запустите промежуточную команду, а затем скопируйте буфер уничтожения. содержимое с помощью ⎈ Control + Y . Убедитесь, что вы ничего не делаете с буфером уничтожения при вводе промежуточной команды.

В оболочке Z в режиме vi у вас есть последовательности префиксов vi для указания именованного буфера в стиле vi, в который нужно уничтожить строку. Вы можете использовать один из других буферов вместо буфера по умолчанию. Просто используйте что-то вроде " a d d (в режиме vicmd), чтобы удалить всю строку в буфер "a", введите и запустите промежуточную команду, а затем поместите содержимое этого буфера с помощью " a p .

В своих режимах vi оболочка Korn, GNU Readline в оболочке Bourne Again и libedit в оболочке (FreeBSD) Almquist не имеют именованных буферов в стиле vi, а только один вырезанный буфер. d d , чтобы удалить строку в этом буфере, а затем поместить содержимое буфера с помощью p , будет работать. Но он использует тот же буфер в стиле vi, что и уничтожение и выдергивание при вводе промежуточной команды.

Читайте также: