Вы хотите улучшить свои навыки работы с командной строкой в Linux? Не смотрите дальше! В этом сообщении блога мы отправим вас в захватывающее путешествие по перенаправлениям ввода и вывода в Linux. К концу у вас будет четкое представление о том, как манипулировать данными, оптимизировать задачи и стать мастером командной строки. Давайте погрузимся и раскроем секреты перенаправления ввода и вывода!
Индекс:
- Что такое перенаправление ввода и вывода?
- Понимание стандартного ввода, вывода и ошибок
- Перенаправление стандартного ввода
- Перенаправление стандартного вывода: магия «›»
- Добавление в файл: сила «››»
- Что такое перенаправление ввода и вывода?
Думайте о своей командной строке как о оживленном коммуникационном центре, а о перенаправлениях ввода/вывода — как о каналах, управляющих потоком информации. С операторами перенаправления у вас есть возможность решать, откуда поступают данные и куда они идут. Эта концепция необходима для освоения командной строки.
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