Вы хотите улучшить свои навыки работы с командной строкой в ​​Linux? Не смотрите дальше! В этом сообщении блога мы отправим вас в захватывающее путешествие по перенаправлениям ввода и вывода в Linux. К концу у вас будет четкое представление о том, как манипулировать данными, оптимизировать задачи и стать мастером командной строки. Давайте погрузимся и раскроем секреты перенаправления ввода и вывода!

Индекс:

  1. Что такое перенаправление ввода и вывода?
  2. Понимание стандартного ввода, вывода и ошибок
  3. Перенаправление стандартного ввода
  4. Перенаправление стандартного вывода: магия «›»
  5. Добавление в файл: сила «››»
  6. Что такое перенаправление ввода и вывода?

Думайте о своей командной строке как о оживленном коммуникационном центре, а о перенаправлениях ввода/вывода — как о каналах, управляющих потоком информации. С операторами перенаправления у вас есть возможность решать, откуда поступают данные и куда они идут. Эта концепция необходима для освоения командной строки.

2. Понимание стандартного ввода, вывода и ошибок:

Прежде чем углубиться в перенаправления, давайте проясним термины «stdin», «stdout» и «stderr»:

  • Стандартный ввод (stdin): это источник ввода по умолчанию для команды. Обычно это клавиатура, но ее можно перенаправить из файла или вывода другой команды.
  • Стандартный вывод (stdout): это назначение вывода по умолчанию для команды. Обычно он появляется на терминале, но вы можете перенаправить его в файл или другую команду.
  • Стандартная ошибка (stderr): этот поток используется для отображения сообщений об ошибках и диагностики. Он также отображается на терминале по умолчанию, но его можно перенаправить отдельно от стандартного вывода.

3. Перенаправление стандартного ввода:

Сила «‹» Устали копировать и вставлять данные в команды? Знакомьтесь, оператор «‹»! Это позволяет вам передавать содержимое файла непосредственно в команду.

Пример 1. Подсчет строк в файле

Представьте, что у вас есть файл с именем «data.txt» со следующими строками:

This is some sample text.
It has multiple lines.
Count me!

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

cat data.txt
wc -l < data.txt

Вывод будет:

This is some sample text.
It has multiple lines.
Count me!
3

Объяснение. Команда «cat» отображает содержимое файла «data.txt» до фактического выполнения команды. Затем оператор «‹» передает содержимое «data.txt» в качестве входных данных для команды wc -l, которая подсчитывает строки и возвращает результат «3».

Пример 2. Вычисление суммы чисел в файле

Рассмотрим файл с именем «numbers.txt» со следующими номерами:

10
20
15

Чтобы вычислить сумму этих чисел, вы можете использовать следующую команду:

cat numbers.txt
awk '{sum+=$1} END {print sum}' < numbers.txt

Вывод будет:

10
20
15
45

Объяснение. Команда «cat» отображает содержимое файла «numbers.txt» перед выполнением фактической команды. Затем оператор «‹» передает содержимое «numbers.txt» в качестве входных данных для команды awk, которая вычисляет сумму чисел и возвращает результат «45».

4. Перенаправление стандартного вывода: магия «›»

Хотите организовать вывод команд? Оператор «›» — ваш друг! Он перенаправляет вывод команды в файл.

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

Предположим, вы хотите составить список файлов в каталоге и сохранить вывод в файл с именем «file_list.txt». Вы можете использовать следующую команду:

ls -l
ls -l > file_list.txt

Вывод будет:

total 4
-rw-r--r-- 1 user user 0 Jun 19 2023 file1.txt
-rw-r--r-- 1 user user 0 Jun 19 2023 file2.txt
-rw-r--r-- 1 user user 0 Jun 19 2023 file3.txt

Объяснение. Команда «ls -l» отображает список файлов и их сведения перед выполнением фактической команды. Затем оператор «›» перенаправляет вывод в файл «file_list.txt».

Пример 4. Создание списка установленных пакетов

Чтобы создать список установленных пакетов в системе на основе Debian и сохранить его в файл с именем «packages.txt», используйте следующую команду:

dpkg -l
dpkg -l > packages.txt

Вывод будет:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name             Version      Architecture Description
+++-================-============-============-===================================
ii  package1         1.0          amd64        Description of package1
ii  package2         2.0          amd64        Description of package2
ii  package3         3.0          amd64        Description of package3

Объяснение.Команда «dpkg -l» отображает список установленных пакетов перед выполнением фактической команды. Затем оператор «›» перенаправляет вывод в файл «packages.txt».

5. Добавление в файл: сила «››»

Нужно добавить больше данных в существующий файл? Оператор «››» здесь, чтобы помочь!

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

command
command >> logfile.txt

Объяснение.Первая «команда» отображает выходные данные на терминале, а вторая строка добавляет выходные данные «команды» к существующему файлу «logfile.txt», позволяя вам непрерывно регистрировать выполнение команды. выход.

Пример 6. Добавление новых записей в существующий файл журнала

Чтобы добавить новую запись, например «Новая запись», в существующий файл журнала с именем «log.txt», вы можете использовать следующую команду:

cat log.txt
echo "New entry" >> log.txt

Вывод будет:

Existing entry 1
Existing entry 2
New entry

Объяснение. Команда «cat» отображает содержимое файла «log.txt» перед выполнением фактической команды. Затем оператор «››» добавляет новую запись в конец файла «log.txt».

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

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

Подпишитесь на меня, чтобы узнать больше о командной строке, подсказках и рекомендациях!

Ресурсы:

Развитие навыков работы с командной строкой: полное руководство по символам и командам Bash и Linux