Перенаправлення вводу виводу 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