Как записать в файл linux

Обновлено: 25.06.2024

Есть ли способ без использования какого-либо программного обеспечения? Я хотел бы знать, как это сделать.

10 ответов 10

Да, это возможно, просто перенаправьте вывод (AKA stdout ) в файл:

Или, если вы хотите добавить данные:

Если вы хотите использовать stderr, используйте это:

или это добавить:

если вы хотите, чтобы и stderr, и вывод отображались на консоли и в файле, используйте это:

(Если вам нужен только вывод, отбросьте 2 выше)

Обратите внимание, что someCommand 2> someFile.txt и someCommand 2>> someFile.txt также перенаправляют stterr в someFile.txt

Я пытаюсь сделать это с помощью команды gcc, но это не работает. Он работает с другими командами, но не с этой. Он просто создает выходной файл, в котором ничего нет.

@Nik-Lz Часто это происходит из-за того, что команда отправляет все свои выходные данные на стандартный вывод. Если gcc генерирует сообщения об ошибках, это кажется вероятным. См. комментарий Slothworks о том, как захватить stderr вместо stdout.

Для записи вывода команды в файл существует 10 наиболее часто используемых способов.

Обзор:

Обратите внимание, что нет. в колонке синтаксиса означает "не существует".
Существует способ, но он слишком сложен, чтобы поместиться в колонку. Вы можете найти полезную ссылку об этом в разделе «Список».

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

Стандартный поток вывода будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.

команда 2> output.txt

Стандартный поток ошибок будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, он будет перезаписан.

команда 2>> output.txt

Стандартный поток ошибок будет перенаправлен только в файл, он не будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.

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

И стандартный вывод, и стандартный поток ошибок будут перенаправлены только в файл, в терминале ничего не будет видно. Если файл уже существует, новые данные будут добавлены в конец файла..

команда | файл output.txt

Стандартный поток вывода будет скопирован в файл, он по-прежнему будет виден в терминале. Если файл уже существует, он будет перезаписан.

команда | тройник -a output.txt

Стандартный поток вывода будет скопирован в файл, он по-прежнему будет виден в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.

Bash не имеет сокращенного синтаксиса, позволяющего передавать только StdErr во вторую команду, которая здесь потребуется в сочетании с tee снова для завершения таблицы. Если вам действительно нужно что-то подобное, посмотрите «Как передать stderr, а не stdout?» о переполнении стека, чтобы узнать, как это можно сделать, например. путем замены потоков или использования подстановки процессов.

команда |& tee output.txt

Как стандартный вывод, так и стандартные потоки ошибок будут скопированы в файл, оставаясь при этом видимыми в терминале. Если файл уже существует, он будет перезаписан.

команда |& tee -a output.txt

Как стандартный вывод, так и стандартные потоки ошибок будут скопированы в файл, оставаясь при этом видимыми в терминале. Если файл уже существует, новые данные будут добавлены в конец файла.

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

Существует несколько способов чтения и записи файла в bash. Проще всего использовать операторы «>» и «>>».

  • Операция «>» перезапишет существующие данные.
  • Оператор «>>» добавит данные

Общий формат использования операторов перенаправления:

Давайте разберем процедуру записи в файл на примере:

Как записать файл с помощью операторов перенаправления

Как обсуждалось выше, простой и понятный подход к записи в файл заключается в использовании операторов перенаправления. Например, если вы хотите изменить текст уже существующего файла, то сначала создайте текстовый файл с именем «testfile.txt» и напишите в нем что-нибудь:


Сохраните текстовый файл.

Введите в терминале указанную ниже команду:


Передрессировка может быть рискованной; поэтому рекомендуется включать «noclobber». Установка «noclobber» заблокирует любую перезапись любого существующего файла.


Но если вы хотите обойти «noclobber», используйте «>|» оператор вместо «>»:

Или вы можете просто отключить «noclobber»:


Но эта команда снимет защиту со всех файлов.

Приведенный выше вывод указывает на то, что существующий текст был перезаписан. Теперь воспользуемся оператором «>>»:


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


Давайте разберемся с концепцией на примере скрипта bash. Откройте Vim, набрав «vim» в терминале. Если на вашем устройстве нет редактора Vim, установите его с помощью:

Введите скрипт:

Команда «cat» используется для создания и редактирования файлов. Сохраните приведенный выше скрипт в Vim, переключив режим после нажатия клавиши «Esc», а затем введите «:w myscript.sh». Откройте терминал и запустите код:


Как написать файл с помощью Heredoc

Если вы хотите написать несколько строк, самый простой способ — использовать Heredoc. Здесь документ, также известный как «Heredoc», представляет собой многоцелевой кодовый блок. Синтаксис Heredoc:

Команда », «>>». Для записи нескольких строк можно использовать «heredoc», а если вы хотите записать одни и те же данные в несколько строк, то вполне удобна команда «tee».

Об авторе

Сэм Ю

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

Bash-скрипты: как записывать данные в текстовые файлы

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

Linux использует три основных потока данных при общении с пользователем и компьютером:

  1. стандартный ввод (стандартный ввод)
  2. стандартный вывод (СТАНДАРТНЫЙ ВЫВОД)
  3. stderr (STandarD ERRor)

stdin stdout stderr

1. стандартный ввод

Это поток данных для ввода информации. Любой ввод с любого устройства, такого как клавиатура или мышь, относится к стандартному потоку входных данных. стандартный ввод представлен 0 идентификатором потока.

2. стандартный вывод

Это поток данных для вывода данных. Вывод с устройств (таких как монитор, динамик и т. д.) входит в стандартный поток выходных данных. stdout представлен 1 идентификатором потока.

3. стандартный вывод

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

Стандартная ошибка используется для обработки любых ошибок, создаваемых командами. Любой поток устройства (например, монитор, динамик и т. д.), который предупреждает пользователя о том, что что-то пошло не так, относится к stderr. stderr представлен 2 ID потока.

Как вы записываете данные в файл?

Используйте операторы перенаправления, чтобы получить данные из потоков stdout и stderr и перенаправить их в текстовый файл.

Перенаправление: перенаправление — это функция Linux, используемая для смены устройств ввода/вывода при выполнении команды.

Перенаправление вывода/ошибки

Чтобы записать данные в текстовый файл из сценария Bash, используйте перенаправление вывода/ошибки с операторами перенаправления > и >>.

> Перезаписывает данные в текстовом файле.

>> Добавляет данные в текстовый файл.

Создание базового скрипта и понимание перенаправления

Здесь вывод обеих команд будет добавлен к файлу test1.txt, а файл test2.txt будет содержать только вывод команды who.

Перенаправление вывода

Дальнейшая работа с перенаправлением

Приведенный выше скрипт будет перенаправлять только выходные данные и завершится ошибкой. Чтобы работать с перенаправлением для вывода, ошибки или того и другого, необходимо указать дополнительные параметры.

Для перенаправления вывода: > или >> или 1> или 1>>

Для ошибки перенаправления: 2> или 2>>

Для перенаправления: &> или &>>

Ошибки перенаправления

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

Перенаправление вывода

Отличные загрузки DevOps

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

Сценарий для других команд написан так же, как и сценарий выше, и требует операторов, показанных выше.

Подведение итогов

Перенаправление данных в stdout или stderr очень удобно как для разработчиков, так и для системных администраторов. Понимание этих инструментов и их результатов поможет вам создавать новые файлы, устранять неполадки и собирать информацию о системе.

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

1) сенсорная команда

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

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



команда touch для создания нескольких файлов

2) Стандартный символ перенаправления(>)

Также довольно легко понять команду создания текстового файла в терминале с минимальными усилиями. Это работает очень хорошо для быстрого создания одного текстового файла, но для создания нескольких текстовых файлов одновременно становится немного утомительно. Команда просто использует стандартный символ перенаправления (>), за которым следует имя файла.

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

Приведенная выше команда создает три пустых текстовых файла. Символ перенаправления довольно экономит время, если вы просто хотите создать один текстовый файл. Создание нескольких пустых текстовых файлов занимает гораздо больше времени, чем команда touch.


Использование символа перенаправления для создания файлов.

3) CAT-команда

Теперь этот метод также довольно прост и удобен в использовании. Просто введите CAT с двумя символами перенаправления (>>) и именем файла (не обязательно использовать символы >>, пользователь также может использовать символ >, но если пользователь по ошибке вводит уже существующий файл, существующий содержимое в текстовом файле будет перезаписано с использованием одного символа >). Этот метод является своего рода комбинацией команд касания и символа перенаправления. Этот метод немного причудлив, поэтому вы предпочитаете использовать две приведенные выше команды только в том случае, если хотите создать пустой никогда не редактируемый файл. Если вы хотите сразу же создать и ввести текстовый файл, это, безусловно, блестящий метод. Это сэкономит вам время на открытие редактора, да и сама команда довольно проста.

Приведенная ниже команда создает пустой, но отредактированный файл, поскольку она предлагает пользователю создать текстовый файл и одновременно ввести его. Итак, если вы не хотите редактировать файл, просто нажмите CTRL+C, и он просто выйдет и создаст пустой файл.

Но если вы хотите добавить текст в файл, вы можете ввести его после этого, например:

Чтобы прекратить редактирование и сохранение в файле, просто нажмите CTRL+C, он создаст, сохранит и закроет файл. Таким образом, этот метод довольно экономит время, если вы хотите очень быстро отредактировать текстовый файл. Следующая команда добавит текст к уже существующему файлу.С другой стороны, если вы используете один символ перенаправления (>), он перезапишет содержимое файла, поэтому вы предпочитаете использовать двойные символы перенаправления только из соображений безопасности.


Использование команды cat для создания файла.


Использование команды cat для создания и записи файла.

4) Использование эха/printf

Это также похоже на команду cat, но сравнительно очень гибкая. Следующая команда обычно используется для печати текста на терминале, но мы также можем использовать ее для записи в файл или создания пустого файла. Команда echo используется вместе с двойными символами перенаправления (один символ > также будет работать), за которыми следует имя файла.

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

Мы также можем добавить в команду echo функциональные возможности для быстрого создания и записи в текстовый файл точно так же, как и в команду cat.

echo -e ‘Это будет текст в файле \n это новая строка’ >> file.txt

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


использование команды echo для создания файлов.


Использование команды echo для создания и записи в файл.

Подобно команде echo, у нас также есть команда printf. Команда print делает то же самое, что и команда echo, но в стиле C, а не в стиле командной оболочки.

printf «Здесь текст \n Вторая строка \n Третья строка» >> file.txt

Команда печати делает некоторые довольно похожие на C вещи, такие как символ новой строки и имена переменных, которые также можно использовать, но это не для простого текстового файла. Тем не менее, во многих случаях команда printf может быть полезна для редактирования файлов на ходу.


Использование команды printf для создания файлов.


Использование printf для создания и записи файлов.

5) Любой текстовый редактор командной строки (Vim, nano)

Это самый трудоемкий и не самый быстрый метод, но он может быть полезен для новичков в Linux. Если вы хотите сильно отредактировать текстовый файл, вы можете использовать текстовые редакторы командной строки, такие как Vim, nano, а также другие варианты. Но большинство людей используют nano, так как он прост в использовании и быстро работает. Vim также можно использовать, но большинству новичков будет сложно его использовать, поэтому в этом примере мы остановимся на nano.

Теперь мы находимся в редакторе nano(или vim). Вы можете ввести то, что вам нужно, и просто нажать CTRL+S для сохранения и CTRL+X для выхода. В Vim немного по-другому. Мы не будем делать здесь руководство по vim, поэтому вы можете ознакомиться со статьей «Текстовый редактор Nano в Linux» или «Начало работы с vim» от гиков для гиков.


Использование Nano для создания и записи файлов.

На этом методы быстрого создания текстового файла или записи в него заканчиваются. Каждый метод может использоваться по-разному в зависимости от ситуации и случая. Не каждый метод будет самым быстрым, но это были одни из самых быстрых способов создать текстовый файл с помощью командной строки в Linux.

Созданные файлы в оболочке Linux

Как мы все знаем, Linux – это операционная система, которую в основном используют гики и разработчики, которые в основном работают на клавиатуре и любят писать команды, а не использовать графический интерфейс пользователя (GUI). В отличие от операционной системы Windows, где большая часть работы выполняется несколькими щелчками мыши, в Linux есть команды для всего, например, основные операции с файлами, сжатие или извлечение файлов и т. д. Эти команды выполняются в командной строке Linux, известной как терминал. или оболочка. Терминал или оболочка — это утилита в Linux, отвечающая за выполнение команд. Сегодня я расскажу о различных методах, которые вы можете использовать для создания файла в Linux с помощью терминала.

Введение

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

  • Контроль над системой.
  • Облегчение многих задач, таких как массовое переименование тысяч файлов.
  • Возможность использования скриптов.
  • Меньше памяти и выше производительность.

Теперь я расскажу о различных методах создания файла в Linux.

Создать файл в оболочке Linux

<р>1. С помощью команды «кошка».
2. Использование команды «touch».
3. Использование символа перенаправления «>»

Мы обсудим их один за другим.

В этом руководстве я использую вариант Ubuntu операционной системы Linux. Таким образом, скриншот для демонстрации будет основан на Ubuntu. Но все команды доступны и в других дистрибутивах Linux, таких как Debian и CentOS.

1. Использование команды cat

  • Создание одного или нескольких файлов.
  • Просмотр содержимого файла в командной строке
  • Перенаправить вывод одного файла на экран терминала или в другой файл

Однако в этом руководстве мы сосредоточимся только на создании файла. Итак, давайте посмотрим, как мы можем создать файл с помощью команды «cat».

Шаг 1. Прежде всего, откройте Терминал, щелкнув панель запуска Ubuntu и набрав Терминал.

Шаг 2. Теперь нажмите на терминал и подождите, пока он откроется.

Шаг 3: По умолчанию терминал находится в «домашнем» месте, но чтобы проверить, куда сейчас указывает терминал, мы будем использовать команду «pwd». «pwd» вернет путь, на который в данный момент указывает терминал. Прямо сейчас мы создаем файл в месте по умолчанию, на которое указывает терминал, но если вы хотите создать файл в другом месте, вы можете изменить путь, используя команду «cd» для изменения каталога. Общий синтаксис команды cd: «cd ‘путь к папке’».

Шаг 4: Теперь, чтобы создать файл, напишите команду «cat > filename.ext», где имя файла будет именем вашего файла, а расширение будет расширением файла. Например. в демо я использую dummy.txt

Шаг 5. После выполнения команды создается текстовый файл по пути по умолчанию с указанным вами именем. В нашем случае это файл dummy.txt

Теперь вы можете видеть, что курсор мигает в ожидании ввода от пользователя. По сути, команда просит ввести желаемый текст, который вы хотите записать в файл. Если вы хотите оставить файл пустым, просто нажмите «Ctrl + D» или если вы хотите записать содержимое в файл, введите его, а затем нажмите «Ctrl + D». Содержимое сохранено в файле, и вы вернетесь в главный терминал.

Вы можете проверить текст, открыв файл, как показано на скриншоте.

Ширина текстового файла, созданного в оболочке

Поздравляем! Ваш файл был создан с помощью команды «cat».

Примечание. Перед созданием нового файла убедитесь, что он еще не создан. Для этого вы можете использовать команду «ls».

2. Использование сенсорной команды

В операционной системе Linux каждый файл имеет временную метку, например, время последнего доступа к файлу или его изменения и т. д. Каждый раз, когда файл открывается или изменяется, эта временная метка обновляется. Команда «touch» — это утилита Linux, которая используется для создания, изменения или модификации временной метки файла.

Давайте посмотрим, как мы можем создать файл с помощью команды «touch».

Шаг 1. Прежде всего, откройте Терминал, щелкнув панель запуска Ubuntu и набрав Терминал.

Шаг 2. Теперь нажмите на терминал и подождите, пока он откроется.

Шаг 3: По умолчанию терминал находится в «домашнем» месте, но чтобы проверить, куда сейчас указывает терминал, мы будем использовать команду «pwd». «pwd» вернет путь, на который в данный момент указывает терминал. Прямо сейчас мы создаем файл в месте по умолчанию, на которое указывает терминал, но если вы хотите создать файл в другом месте, вы можете изменить путь, используя команду «cd» для изменения каталога. Общий синтаксис команды cd: «cd ‘путь к папке’».

Шаг 4: Теперь, чтобы создать файл, напишите команду «touch filename.ext», где filename будет именем вашего файла, а ext будет расширением файла. Например. в демо я использую dummy.txt. После выполнения команды терминал создаст файл по пути, как показано на следующих снимках экрана:

Создать файл командой cat

Поздравляем! Ваш файл был создан с помощью команды «touch».

Примечание. Перед созданием нового файла убедитесь, что он еще не создан. Для этого
вы можете использовать команду «ls».

3. Использование перенаправления > оператор

В Linux ‘>’ известен как оператор перенаправления вывода, предоставляющий возможность перенаправить вывод команды в файл вместо стандартного экрана терминала. Мы также можем использовать оператор перенаправления для создания файла.

давайте посмотрим, как мы можем создать файл с помощью команды «touch».

Шаг 1. Прежде всего, откройте Терминал, щелкнув панель запуска Ubuntu и набрав Терминал.

Шаг 2. Теперь нажмите на терминал и подождите, пока он откроется.

Шаг 3: По умолчанию терминал находится в «домашнем» месте, но чтобы проверить, куда сейчас указывает терминал, мы будем использовать команду «pwd». «pwd» вернет путь, на который в данный момент указывает терминал. Прямо сейчас мы создаем файл в месте по умолчанию, на которое указывает терминал, но если вы хотите создать файл в другом месте, вы можете изменить путь, используя команду «cd» для изменения каталога. Общий синтаксис команды cd: «cd ‘путь к папке’».

Шаг 4: Теперь, чтобы создать файл, напишите команду «echo «это фиктивный текст» > имя_файла.ext», где имя файла будет именем вашего файла, а расширение — расширением. файла. Например. в
демонстрации я использую файл dummy.txt. После выполнения команды терминал создаст файл по пути, как показано на следующем снимке экрана:

Использование оператора перенаправления для создания файла

Заключение

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

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