- How do I save terminal output to a file?
- 10 Answers 10
- Overview:
- List:
- Редактор Nano, как пользоваться
- Установка редактора Nano
- Создание и открытие файлов
- Файл только для чтения
- Резервная копия файла
- Редактирование файлов
- Поиск и замена текста
- Вырезание, копирование и вставка текста
- Как удалить весь текст из файла
- Сохранение и выход
- Список основных горячих клавиш для работы с редактором Nano
- Категории
- Свежие записи
- Как сохранить и выйти из nano в терминале
- Как сохранить файл в Nano
- Как выйти из Nano
- Подведение итогов
- Похожие записи:
How do I save terminal output to a file?
How do I save the output of a command to a file? Is there a way without using any software? I would like to know how.
10 Answers 10
Yes it is possible, just redirect the output (AKA stdout ) to a file:
Or if you want to append data:
If you want stderr as well use this:
if you want to have both stderr and output displayed on the console and in a file use this:
SomeCommand 2>&1 | tee SomeFile.txt
(If you want the output only, drop the 2 above)
Note that someCommand 2> someFile.txt and someCommand 2>> someFile.txt also redirects stterr to someFile.txt
I’m trying to do this with gcc command but it doesn’t work. It works with other commands, but not this one. It simply creates the output file with nothing inside it.
@Nik-Lz Often this is because the command is sending all its output on stderr. If gcc is generating error messages, this seems likely. See Slothworks comment for how to capture stderr instead of stdout.
NB: to get the output of the make command into a file it requires this syntax instead: make > someFile.txt 2>&1 (source: linuxquestions.org/questions/linux-newbie-8/…)
To write the output of a command to a file, there are basically 10 commonly used ways.
Overview:
Please note that the n.e. in the syntax column means «not existing».
There is a way, but it’s too complicated to fit into the column. You can find a helpful link in the List section about it.
|| visible in terminal || visible in file || existing Syntax || StdOut | StdErr || StdOut | StdErr || file ==========++==========+==========++==========+==========++=========== > || no | yes || yes | no || overwrite >> || no | yes || yes | no || append || | || | || 2> || yes | no || no | yes || overwrite 2>> || yes | no || no | yes || append || | || | || &> || no | no || yes | yes || overwrite &>> || no | no || yes | yes || append || | || | || | tee || yes | yes || yes | no || overwrite | tee -a || yes | yes || yes | no || append || | || | || n.e. (*) || yes | yes || no | yes || overwrite n.e. (*) || yes | yes || no | yes || append || | || | || |& tee || yes | yes || yes | yes || overwrite |& tee -a || yes | yes || yes | yes || append
List:
- command > output.txt The standard output stream will be redirected to the file only, it will not be visible in the terminal. If the file already exists, it gets overwritten.
- command >> output.txt The standard output stream will be redirected to the file only, it will not be visible in the terminal. If the file already exists, the new data will get appended to the end of the file.
- command 2> output.txt The standard error stream will be redirected to the file only, it will not be visible in the terminal. If the file already exists, it gets overwritten.
- command 2>> output.txt The standard error stream will be redirected to the file only, it will not be visible in the terminal. If the file already exists, the new data will get appended to the end of the file.
- command &> output.txt Both the standard output and standard error stream will be redirected to the file only, nothing will be visible in the terminal. If the file already exists, it gets overwritten.
- command &>> output.txt Both the standard output and standard error stream will be redirected to the file only, nothing will be visible in the terminal. If the file already exists, the new data will get appended to the end of the file..
- command | tee output.txt The standard output stream will be copied to the file, it will still be visible in the terminal. If the file already exists, it gets overwritten.
- command | tee -a output.txt The standard output stream will be copied to the file, it will still be visible in the terminal. If the file already exists, the new data will get appended to the end of the file.
- (*) Bash has no shorthand syntax that allows piping only StdErr to a second command, which would be needed here in combination with tee again to complete the table. If you really need something like that, please look at «How to pipe stderr, and not stdout?» on Stack Overflow for some ways how this can be done e.g. by swapping streams or using process substitution.
- command |& tee output.txt Both the standard output and standard error streams will be copied to the file while still being visible in the terminal. If the file already exists, it gets overwritten.
- command |& tee -a output.txt Both the standard output and standard error streams will be copied to the file while still being visible in the terminal. If the file already exists, the new data will get appended to the end of the file.
Редактор Nano, как пользоваться
Занимаясь веб-разработкой, достаточно часто возникает необходимость в редактировании конфигурации удаленного сервера и сделать это можно только удаленно через терминал. В этом помогают консольные текстовые редакторы. Ниже я опишу простой консольный редактор Nano, который включен почти во все дистрибутивы Linux.
Открыл для себя удобный консольный редактор Micro, с поддержкой мышки, рекомендую попробовать.
Установка редактора Nano
Если Nano у вас не установлен, установить его можно командой:
sudo apt update
sudo apt install nano
Команда выше подходит для операционных систем Debian/Ubuntu.
Создание и открытие файлов
Чтобы открыть существующий файл или создать новый, в командной строке наберите nano и название файла:
Сразу откроется окно редактора:
В нижней части окна располагается список основных команд и вызывающих их сочетаний клавиш ( все управление в nano выполняется с клавиатуры с использованием горячих клавиш).
В сокращениях символ ^ означает клавишу Ctrl. Например, для получение справки нужно выполнить ^G, это означает сочетание клавиш Ctrl+G.
Файл только для чтения
Если вам нужно открыть файл только для чтения используется ключ -v:
Резервная копия файла
Так же можно сделать чтобы при изменения файла создавалась его резервная копия. Для этого используется ключ -B:
После сохранения файла будет создана резервная копия файла с содержимым, которое было до изменения. Имя резервной копии соответствует имени исходного файла со значком тильды ~ на конце.
Редактирование файлов
Сразу после открытия редактора вы можете приступить к редактированию файла (в отличии, например, от редактора vim).
Поиск и замена текста
Чтобы найти какой либо текст внутри файла используйте сочетание клавиш Ctrl+W, далее введите строку поиска и нажмите Enter. Курсов переместиться на первое вхождение (относительно курсора) искомого текста, чтобы проложить поиск, нажмите сочетание клавиш Alt+W и курсор переместиться к следующему вхождению.
Чтобы найти и заменить какой-либо текст внутри файла, вам потребуется сочетание клавиш Ctrl+\. После его нажатия появится запрос на ввод текста который нужно найти и заменить, введите его и нажмите Enter. Далее нужно ввести текст на который выходите заменить, введите его и нажмите Enter.
Далее режим работы такой, при нажатии клавиши:
A — будет произведена замена всех вхождений искомого текста.
Y — заменить текст около курсора.
N — пропустить и не менять текст около курсора.
Вырезание, копирование и вставка текста
Если вам нужно вырезать и вставить целую строку, то переместите курсор на эту строку и нажмите сочетание клавиш Ctrl+K. Затем, чтобы вставить вырезанную строку из буфера, нажмите Ctrl+U.
Для копирования и вставки произвольного текста вам нужно сначала выделить его. Чтобы это сделать поместите курсор на начало текста, который планируется копировать, и нажмите сочетание клавиш Ctrl+6, затем перемещайте курсор клавишами влево вправо, чтобы выделить нужный фрагмент. Далее чтобы скопировать текст нажмите Alt+6 или вырезать Ctrl+K. Чтобы вставить используйте уже знакомое сочетание Ctrl+U.
Если вы работаете с Nano в Ubuntu через Windows Subsystem for Linux (WSL2), то сочетание клавиш Ctrl+6 работать не будет, для выделения текста используйте Alt+Shift+6
Или можно нажать Esc+Esc+6
Кстати, двойное нажатие на клавиши Esc можно использовать вместо Ctrl, т.е. Ctrl = Esc Esc
Для вставки текста из другого файла используется клавиша Ins.
Зажатой клавишей Shift и стрелками можно выделять текст.
Как удалить весь текст из файла
Комбинация клавиш Alt + T сотрет все от курсора и до конца файла. Если поставить курсор в начало файла, то сотрется все содержимое.
Сохранение и выход
Если вы просто хотите сохранить изменения и продолжить работу не закрывая редактор, то используйте сочетание клавиш Ctrl+O, далее введите имя файла или оставьте старое и нажмите Enter.
Если вам нужно сохранить изменения и выйти из редактора, то используйте сочетание клавиш:
Дальше, если вы изменяли файл, то появится вопрос: «Save modified buffer?». Если вы хотите сохранить изменения нажмите клавишу Y, появится вопрос на ввод имени файла. Введите новое имя файла или оставьте старое и нажмите Enter. Если не хотите сохранять изменения, то нажмите клавишу N.
При нажатии Ctrl+C вы вернетесь обратно в редактор.
Список основных горячих клавиш для работы с редактором Nano
Сочетание | Что делает |
---|---|
Ctrl+A | Переместить курсор в начало строки. |
Ctrl+E | Переместить курсор в конец строки. |
Ctrl+Y | Переместить курсор на 1 страницу вверх (аналог PageUp) |
Ctrl+V | Переместить курсор на 1 страницу вниз (аналог PageDown) |
Ctrl+_ | Перейти к определенной строке (после нажатия введите номер строки). |
Ctrl+C | Показать на какой строке и в какой позиции находится курсор. |
Ctrl+W | Поиск текста в файле (после нажатия введите что искать). |
Ctrl+\ | Поиск и замена текста в файле (после нажатия введите что найти/заменить, а после на что менять). |
Ctrl+D | Удалить символ под курсором. |
Ctrl+K | Удалить текущую строку. |
Ctrl+O | Сохранить изменения, не закрывая редактор. |
Ctrl+X | Выход из редактора. Если файл был изменен, появится запрос на сохранение изменений. |
Вот собственно и все основы по работе в редакторе Nano. Я думаю этого хватит для простого редактирования файлов конфигурации, но если я что-то существенное упустил, напишите в комментариях. Например я не затронул тему кастомизации редактора Nano, но мне правда она никогда не требовалась.
Категории
Свежие записи
Как сохранить и выйти из nano в терминале
Nano — это редактор на основе командной строки, известный своей простотой по сравнению с другими редакторами, такими как Vim и Emacs. Но если вы новичок в Nano, выполнение основных операций, таких как создание файлов, сохранение файла и выход из редактора, может вызвать у вас недоумение. Поэтому в этой статье я хочу показать вам, как сохранить ваш код в Nano и выйти из него.
Как сохранить файл в Nano
Шаг 1: Откройте терминал, введите «nano» и нажмите ENTER, чтобы попасть в редактор кода Nano
Шаг 2: Напишите свой код или текст на любом языке. На скриншоте ниже я написал немного PHP.
Если у вас не работает подсветка синтаксиса, включите ее, нажав ALT + 4. Если подсветка синтаксиса все еще не появилась, сохраните файл.
Шаг 3: Нажмите CTRL + O, чтобы сохранить файл, введите имя файла и нажмите ENTER.
Теперь подсветка синтаксиса включена:
Если вы уже открыли файл, набрав
Когда вы закончите вносить изменения, нажмите CTRL + O и нажмите ENTER, чтобы сохранить изменения.
Как выйти из Nano
Чтобы выйти из nano, достаточно нажать CTRL + X.
Если у вас есть изменения, которые не были сохранены, вам будет предложено сохранить изменения перед выходом из редактора.
Подведение итогов
Надеюсь, эта статья помогла вам узнать, как сохранить файл в Nano и выйти из редактора, когда захотите.
- Набрав nano, вы попадаете в редактор Nano в терминале.
- CTRL + O сохраняет файл в Nano
- CTRL + X выход из Nano