<Попередній | зміст | Наступна>
Трубопроводи
Здатність команд читати дані зі стандартного введення та надсилати на стандартний вихід використовується функцією оболонки, яка називається трубопроводи. Використання оператора pipe «|» (вертикальна смуга), стандартний висновок однієї команди може бути трубопровідний у стандартний вхід іншого:
команда1 | команда2
команда1 | команда2
Щоб повністю продемонструвати це, нам знадобляться деякі команди. Пам’ятаєте, як ми сказали, що є один, який ми вже знаємо, який приймає стандартний введення? Його менше. Ми можемо використовувати менше для відображення, сторінка за сторінкою, виводу будь-якої команди, яка надсилає свої результати на стандартний вихід:
[me@linuxbox ~]$ ls -l /usr/bin | менше
[me@linuxbox ~]$ ls -l /usr/bin | менше
Це надзвичайно зручно! Використовуючи цю техніку, ми можемо зручно досліджувати вихід будь-якої команди, яка створює стандартний вихід.
Різниця між > і |
На перший погляд може бути важко зрозуміти перенаправлення, яке виконує оператор трубопроводу | порівняно з оператором перенаправлення >. Простіше кажучи, оператор перенаправлення з’єднує команду з файлом, тоді як оператор конвеєра з’єднує вихід однієї команди з введенням другої команди.
команда1 > файл1 команда1 | команда2
Багато людей спробують наступне, коли дізнаються про конвеєри, «просто щоб побачити, що станеться».
команда1 > команда2
Відповідь: Іноді щось дуже погане.
Ось фактичний приклад, поданий читачем, який адміністрував серверний пристрій на базі Linux. Як суперкористувач він зробив це:
# компакт-диск /usr/bin
# ls > менше
Перша команда помістила його в каталог, де зберігається більшість програм, а друга команда вказала оболонку перезаписати файл менше з виходом ls команда. Оскільки / usr / bin У каталозі вже містився файл з назвою «less» (the менше програма), друга команда замінила менше програмний файл з текстом з ls таким чином знищуючи менше програму в його системі.
Урок тут полягає в тому, що оператор перенаправлення мовчки створює або перезаписує файли, тому вам потрібно ставитися до нього з великою повагою.