Перенаправлення вводу виводу linux
Одна з найбільш цікавих і корисних тем для системних адміністраторів і нових користувачів, які тільки починають розбиратися в роботі з терміналом - це перенаправлення потоків введення виведення Linux. Ця особливість терміналу дозволяє перенаправляти висновок команд в файл, або вміст файлу на введення команди, об`єднувати команди разом, і утворити конвеєри команд.
У цій статті ми розглянемо як виконується перенаправлення потоків введення виведення в Linux, які оператори для цього використовуються, а також де все це можна застосовувати.
Як працює перенаправлення вводу виводу
Всі команди, які ми виконуємо, повертають нам три види даних:
- Результат виконання команди, зазвичай текстові дані, які запросив користувач;
- Повідомлення про помилки - інформують про процес виконання команди і в разі виникнення непередбачених обставин;
- Код повернення - число, яке дозволяє оцінити чи правильно відпрацювала програма.
У Linux все субстанції вважаються файлами, в тому числі і потоки введення виведення linux - файли. У кожному дистрибутиві є три основних файлу потоків, які можуть використовувати програми, вони визначаються оболонкою і ідентифікуються за номером дескриптора файлу:
- STDIN або 0 - цей файл пов`язаний з клавіатурою і більшість команд отримують дані для роботи звідси;
- STDOUT або 1 - це стандартний висновок, сюди програма відправляє всі результати своєї роботи. Він пов`язаний з екраном, або якщо бути точним, то з терміналом, в якому виконується програма;
- STDERR або 2 - всі повідомлення про помилки виводяться в цей файл.
Перенаправлення вводу / виводу дозволяє замінити один з цих файлів на свій. Наприклад, ви можете змусити програму читати дані з файлу в файлової системі, а не клавіатури, також можете виводити помилки в файл, а не на екран і т д. Все це робиться за допомогою символів "Lt;" і "Gt;".
Перенаправити висновок в файл
Все дуже просто. Ви можете перенаправити висновок в файл за допомогою символу gt ;. Наприклад, збережемо висновок команди top:
$ Cat top.log
символ "Gt;" перезаписує інформацію з файлу, якщо там вже щось є. Для додавання даних в кінець використовуйте "Gt; gt;". Наприклад, перенаправити висновок в файл linux ще для top:
$ Top -bn 5 1gt; top.logПеренаправити помилки в файл
Щоб перенаправити висновок помилок в файл вам потрібно явно вказати дескриптор файлу, який збираєтеся перенаправляти. Для помилок - це номер 2. Наприклад, при спробі отримання доступу до каталогу суперкористувача ls видасть помилку:
Відео: LPIC 103.4 Використання потоків, конвеєрів і перенаправлень
$ Ls -l / root / 2gt; ls-error.log$ Cat ls-error.log

Щоб додати дані в кінець файлу використовуйте той же символ:
$ Ls -l / root / gt; ls-error.log 2gt; 1
Спочатку буде відправлений висновок команди ls в файл ls-error.log c допомогою першого символу перенаправлення. Далі в той же самий файл будуть спрямовані всі помилки. Другий метод простіше:
$ Ls -l / root / gt; gt; ls-error.logСтандартний введення з файлу
Більшість програм, крім сервісів, отримують дані для своєї роботи через стандартний ввід. За замовчуванням стандартний ввід очікує даних від клавіатури. Але ви можете змусити програму читати дані з файлу за допомогою оператора "Lt;":
$ Sort sort.output
Відео: 18. Перенаправлення RHEL 7.2
Таким чином, ми в одній команді перенаправляємо введення висновок linux.
Використання тунелів
Можна працювати не тільки з файлами, але і перенаправляти висновок однієї команди в якості введення інший. Це дуже корисно для виконання складних операцій. Наприклад, виведемо п`ять недавно змінених файлів:
Відео: 3.Linux для Початківців - Робота з терміналом
$ Echo test / tmp / | xargs -n 1 cp -v testfile.sh
Тут параметр -n 1 задає, що для однієї команди потрібно підставляти тільки один параметр, а опція -v в cp дозволяє виводити докладну інформацію про переміщення. Ще одна, корисна в таких випадках команда - це tee. Вона читає дані зі стандартного вводу і записує в стандартний висновок або файли. наприклад:
Команда exit - завершити роботу командного процесора або поточного командного файлу.
Команда doskey - редагування і повторний виклик команд windows- створення макросів doskey.
Історія команд linux
Як користуватися ssh
Як створити файл в терміналі
Як очистити термінал linux
Як подивитися прогрес dd linux
Команда echo - висновок тексту на екран консолі
Команда clip
Команда sleep - задати період очікування.
Type - висновок на екран вмісту текстового файлу.
Команда find - пошук рядка символів в файлі
Корисні alias linux
Відключаємо пароль sudo в linux
Команда cls - очистити екран консолі.
Команда sort - сортування рядків у текстовому файлі
Команда sort в linux
Команда echo в linux
Підключення пристрою linux
Робота з bash
Команда cat linux
Підключення пристрою linux
Команда cat linux
Історія команд linux
Як подивитися прогрес dd linux