Як використовувати команди Linux Cat (з прикладами)

У кожній операційній системі користувачі взаємодіють із файлами, виконуючи дії, такі як створення, видалення та зчитування. Linux не є винятком у цьому відношенні.

Хоча в Linux можна керувати файлами за допомогою графічного інтерфейсу, багато користувачів Linux віддають перевагу роботі з операційною системою через термінал.

З цієї причини Linux надає набір команд, що дозволяють користувачам працювати з файлами безпосередньо з терміналу. Однією з таких команд є команда cat.

Згідно з довідковими сторінками Linux, команда cat використовується для поєднання файлів та виведення їхнього вмісту на стандартний вихід. Довідкові сторінки Linux – це файли з документацією, створені для того, щоб допомогти користувачам зрозуміти команди Linux та їхнє застосування.

Щоб відкрити довідку до будь-якої команди Linux, достатньо ввести man <ім'я_команди>. Наприклад, для перегляду довідкової інформації про команду cat, в терміналі введіть:

man cat

Для чого призначена команда cat

Як вже зазначалося, команда cat використовується для відображення вмісту файлу на екрані. Інше її призначення – це об’єднання файлів та виведення їхнього вмісту. Це означає, що якщо команда cat отримує кілька файлів, вона об’єднає їхній вміст та відобразить його на екрані.

Простими словами, команда cat збирає вміст з різних файлів та виводить його на екран. При цьому, команда cat не створює жодного нового файлу, а вихідні файли залишаються без змін.

Команда cat також використовується для перенаправлення. Перенаправлення – це спосіб, за допомогою якого користувачі можуть змінювати джерело стандартного введення та місце призначення для стандартного виведення та стандартних помилок. Стандартний ввід, стандартний вивід та стандартна помилка – це стандартні потоки, що використовуються для обміну даними в Linux.

За замовчуванням, стандартним вводом є клавіатура, а стандартний вивід та стандартні помилки виводяться на екран.

Таким чином, перенаправлення означає, що замість отримання стандартного вводу з клавіатури, що є типовим, ми можемо перенаправити його на файл або інше джерело.

Коли мова йде про стандартний вивід та стандартну помилку, які зазвичай виводяться на екран, через перенаправлення ви можете записати ці дані у файл.

Синтаксис команди cat

Синтаксис команди cat наступний:

cat [ОПЦІЯ]... [ФАЙЛ]...

У довідкових сторінках Linux все, що зазначено у квадратних дужках, є необов’язковим. Таким чином, у наведеному вище синтаксисі, команда cat не обов’язково потребує аргументу ОПЦІЯ чи навіть ФАЙЛ. Вона може мати щось одне, обидва, або взагалі нічого.

Три крапки (…) використовуються, щоб вказати, що дозволений один або декілька попередніх операндів або аргументів. Таким чином, команда cat може приймати одну або декілька ОПЦІЙ або ФАЙЛІВ.

ФАЙЛ – це файли, які команда cat хоче об’єднати та вивести. ОПЦІЯ – це прапорці, які можна додати до команди cat, щоб змінити її поведінку. Нижче наведено параметри, які можна використовувати з командою cat:

Команда cat працює, беручи передані файли та виводячи їхній вміст на стандартний вивід, яким є вікно терміналу. Якщо їй передано декілька файлів, їхній вміст об’єднується та виводиться у вікно терміналу.

Команда cat також поводитиметься по-різному залежно від переданого їй прапорця. Наприклад, передача прапорця -n призведе до того, що команда cat пронумерує всі вихідні рядки. Залежно від того, як ви хочете, щоб вона поводилася, ви можете передати будь-який з прапорців, що доступні для використання з командою cat.

Як використовувати команду cat

Щоб використовувати команду cat, достатньо ввести команду та ім’я файлу(ів), які ви хочете об’єднати та прочитати. Наприклад, для відображення вмісту файлу з назвою rainbow.txt виконайте команду:

cat rainbow.txt

Ви також можете додати параметр для зміни поведінки команди cat. Наприклад, ви можете пронумерувати всі вихідні рядки, використовуючи прапорець -n. У нашому прикладі вище, щоб пронумерувати всі вихідні рядки у файлі rainbow.txt, виконайте наступну команду:

cat -n rainbow.txt

Результати двох команд наведено нижче:

Щоб поєднати прапорці чи параметри, що можуть використовуватись з командою cat, просто запишіть їх один за одним або розмістіть їх поряд. Будь-який із цих способів працює. Прапорець -E, показаний нижче, використовується для додавання знака долара ($) в кінці рядків виводу.

Це може бути корисним під час відображення грошових значень. Нижче наведено різні способи поєднання декількох прапорців з командою cat:

Для об’єднання та відображення кількох файлів за допомогою команди cat, просто введіть імена файлів одне за одним, розділивши їх пробілами. Наприклад, для об’єднання двох файлів з іменами rainbow.txt та primary.txt, виконайте наступний рядок:

cat rainbow.txt primary.txt

Результат команди показано нижче:

Після цієї операції два файли rainbow.txt та primary.txt залишаться без змін. Зауважте, що порядок відображення файлів в команді визначає порядок відображення вмісту. Вміст виводиться від першого файлу до останнього. Ви також можете додати прапорці під час об’єднання та виведення декількох файлів, як показано нижче:

І останнє, що слід зазначити стосовно команди cat – у випадку, коли до команди не надано файл, або надано дефіс (-), команда cat читатиме зі стандартного вводу замість файлу. Стандартний ввід – це клавіатура.

Тому команда cat просто відображатиме все, що користувач вводить з клавіатури. Щоб переконатися в цьому на практиці, виконайте команду:

cat

Команда переведе вас до миготливого курсору, що очікує введення з клавіатури. Введіть будь-який текст та натисніть Enter. Все, що ви введете, буде виведено на стандартний вивід, як показано нижче:

Натисніть CTRL + C, щоб вийти та припинити передачу даних команді cat.

Ми також можемо використовувати команду cat для об’єднання та виведення вмісту всіх файлів певного типу в поточному каталозі. Це робиться за допомогою символу підстановки – зірочки (*).

cat *.txt

Наприклад, щоб отримати весь вміст текстових файлів (.txt) у певному каталозі, ми б виконали наступний код:

Результат команди показано нижче:

Приклади використання команди cat

Крім стандартного використання команди cat, її функціональність можна розширити за допомогою перенаправлення. Як зазначалося раніше, команда cat за замовчуванням виводить дані на екран терміналу.

Однак, використовуючи перенаправлення, ми можемо перенаправити її вивід до іншого файлу, замість того, щоб він виводився на екран.

Оператором перенаправлення виводу в Linux є > (символ “більше”, що також називають шевроном).

cat rainbow.txt

Наприклад, якщо ми виконаємо рядок:

Вміст файлу rainbow.txt буде виведено на екран.

cat colors.txt > rainbow.txt

Однак, якщо ми виконаємо:

Вміст файлу rainbow.txt не буде відображатись на екрані. Натомість він буде перенаправлений та записаний у файл colors.txt. Це може бути чудовим способом копіювання вмісту з одного файлу в інший.

За замовчуванням, перенаправлення виводу в Linux перезаписує весь вміст файлу, до якого ми перенаправляємо. Наприклад, у наведеному вище прикладі весь вміст файлу rainbow.txt буде перезаписано вмістом з файлу colors.txt. Щоб зберегти існуючий вміст у файлі, до якого ви перенаправляєте, та додати до нього новий вміст, використовуйте >> під час перенаправлення.

Зауважте, що у файлі colors.txt тепер є кольори, знайдені у файлі rainbows.txt після перенаправлення результату з файлу rainbows.txt у файл colors.txt за допомогою >>

Щоб розширити функціональність команди cat, ми можемо поєднати перенаправлення та типову поведінку команди cat – читання зі стандартного вводу, коли не надано файлу, щоб використовувати команду cat для створення файлу та запису до нього.

cat > dark.txt

Якщо ви виконаєте наведений нижче код:

Ми будемо перенаправляти до dark.txt. Оскільки ми не надали файл, вміст якого буде перенаправлено до dark.txt, команда cat очікуватиме введення з клавіатури.

Тому введіть будь-який текст, який ви хочете зберегти в dark.txt, натисніть Enter для переходу на наступний рядок та натисніть CTRL + D після завершення, щоб зберегти введене у файлі, до якого ви перенаправляєте.

Оскільки ми перенаправляємо до файлу, якого не існує, dark.txt буде створено автоматично, а те, що ми ввели за допомогою клавіатури, буде збережено у файлі. Таким чином, ми можемо використовувати команду cat для створення файлів та запису в них під час їхнього створення.

Результат операції показано нижче:

cat >> dark.txt

Команду cat також можна використовувати для додавання тексту в кінець файлу. Використовуючи dark.txt, ми можемо додати до нього більше кольорів, виконавши:

Потім ви можете додати додаткову інформацію, ввівши її з клавіатури, а потім натиснувши CTRL + D, щоб зберегти та додати новий вміст до dark.txt, як показано нижче:

cat file1 file2 file3 > file4

Команду cat також можна використовувати для об’єднання декількох файлів в один. Синтаксис такої операції наведено нижче:

Вміст файлів file1, file2 та file3 буде об’єднано разом та записано до file4. Ви також можете використовувати >>, якщо не хочете перезаписувати вміст у file4. Якщо file4 не існує, він буде створений автоматично.

Приклад цього показано нижче:

cat colors.txt primary.txt > allColors.txt

Щоб записати вміст colors.txt та primary.txt у allColors.txt, ми виконуємо:

cat primary.txt >> colors.txt

Ви також можете додати вміст з одного або декількох файлів до іншого за допомогою команди cat. Це робиться за допомогою >> під час перенаправлення виводу. Це дозволяє уникнути перезапису того, що вже зберігається в іншому файлі. Наприклад, щоб додати вміст primary.txt до colors.txt, виконайте наведений нижче код:

Результат цієї операції показано нижче:

Висновок

Команда cat – це надзвичайно корисна команда Linux, що дозволяє користувачам об’єднувати та відображати вміст файлів. Команда має кілька прапорців, які можна додати до неї, щоб змінити її поведінку.

За допомогою перенаправлення функціональність команди cat може бути значно розширена, дозволяючи користувачам створювати та копіювати файли, об’єднувати кілька файлів в один файл, та додавати до існуючого файлу. Щоб дізнатися більше про команду cat, відвідайте її довідкові сторінки.

Ви також можете дослідити деякі команди Linux, що корисні для системних адміністраторів.