Продолжая изучать Linux, вы видели, как команды выдают вывод. Это подводит нас к важной теме ввода-вывода (I/O), в частности, к стандартному выводу или stdout. Давайте рассмотрим эту концепцию, выполнив следующую команду:
echo Hello World > peanuts.txt
После выполнения этой команды вы обнаружите новый файл с именем peanuts.txt в текущем каталоге. Если вы просмотрите его содержимое, вы увидите текст "Hello World". Давайте разберем, что произошло.
Понимание стандартного вывода (stdout)
Сначала рассмотрим команду без специального символа:
echo Hello World
По умолчанию многие команды отправляют свои результаты в stdout, то есть на экран вашего терминала. Именно поэтому echo Hello World отображает текст прямо в вашей оболочке. Процессы используют потоки ввода-вывода для получения входных данных (стандартный ввод или stdin) и отправки вывода. Перенаправление ввода-вывода позволяет нам изменить это поведение по умолчанию, предоставляя нам больший контроль над нашими данными.
Перенаправление stdout с помощью >
Символ > является оператором перенаправления. Он перехватывает данные, направляющиеся в stdout, и отправляет их в новое место назначения.
>
В нашем примере он отправляет вывод echo Hello World в файл вместо экрана. Если файл не существует, он будет создан. Будьте осторожны, так как если файл уже существует, этот оператор полностью перезапишет его содержимое.
Добавление stdout с помощью >>
Что, если вы хотите добавить данные в файл, не стирая его содержимое? Для этого мы используем оператор >>.
echo Hello World >> peanuts.txt
Этот оператор добавляет вывод в конец указанного файла. Если файл еще не существует, он будет создан, как и с оператором > . Освоение перенаправления stdout — это фундаментальный шаг в вашем путешествии по Linux.