Если вы начинаете изучать Linux или работаете с командной строкой, скорее всего, уже сталкивались с командой cat. Но что именно она делает и зачем она нужна? В этой статье я подробно объясню, для чего предназначена команда cat, как она работает и как использовать её в повседневной работе.
Что такое команда cat в Linux?
Команда cat (сокращение от слова «concatenate» — «склеивать») — это стандартная команда Linux, которая используется для отображения содержимого текстовых файлов прямо в терминале. Также она позволяет объединять файлы и создавать новые.
Почему команда cat полезна?
- Простая и быстрая для просмотра небольших текстовых файлов.
- Хороша для объединения файлов без использования дополнительных программ.
- Позволяет легко создавать новые файлы и редактировать текст с помощью командной строки.
Основные функции команды cat
- Вывод содержимого файла на экран
- Объединение (склейка) нескольких файлов
- Создание новых файлов
- Дополнение файла содержимым других файлов
- Как работает команда cat: подробное объяснение
- Отдельные опции и примеры использования
Вывод содержимого файла на экран
Самая популярная функция — вывести на экран содержимое файла. Например:
cat название_файла
команда выведет содержимое файла в окно терминала:
[root@waky practice]# cat shakespeare_part1.txt
Shall I compare thee to a summer’s day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer’s lease hath all too short a date:
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm’d;
And every fair from fair sometime declines,
[root@waky practice]#
Мы получили вывод содержимого файла shakespeare_part1.txt.
Объединение (склейка) нескольких файлов
Можно объединить вывод сразу из нескольких файлов и вывести их подряд. Например:
cat файл1.txt файл2.txt
— команда покажет содержимое обоих файлов одно за другим:
[root@waky practice]# cat shakespeare_part1.txt shakespeare_part2.txt
Shall I compare thee to a summer’s day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer’s lease hath all too short a date:
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm’d;
And every fair from fair sometime declines,
By chance or nature’s changing course untrimm’d;
But thy eternal summer shall not fade
Nor lose possession of that fair thou owest;
Nor shall Death brag thou wander’st in his shade,
When in eternal lines to time thou growest:
So long as men can breathe or eyes can see,
So long lives this and this gives life to thee.
[root@waky practice]#
Как вы могли догадаться, порядок поступления файлов команде cat имеет значение:
[root@waky practice]# cat shakespeare_part2.txt shakespeare_part1.txt
By chance or nature’s changing course untrimm’d;
But thy eternal summer shall not fade
Nor lose possession of that fair thou owest;
Nor shall Death brag thou wander’st in his shade,
When in eternal lines to time thou growest:
So long as men can breathe or eyes can see,
So long lives this and this gives life to thee.
Shall I compare thee to a summer’s day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer’s lease hath all too short a date:
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm’d;
And every fair from fair sometime declines,
[root@waky practice]#
От этого зависит порядок вывода.
Используя перенаправление вывода, результат исполнения можно сохранить в отдельный файл.
Например, сохраним обе части стихотворения в новый файл следующей командой:
[root@waky practice]# cat shakespeare_part1.txt shakespeare_part2.txt > shakespeare.txt
[root@waky practice]#
Теперь файл shakespeare.txt содержит обе части из других файлов. > — это оператор, осуществляющий перенаправление вывода с перезаписью.
Создание новых файлов
Можно использовать cat для создания файла и ввода текста вручную.
Например:
cat > новый_файл.txt
После выполнения команды вводите текст, а чтобы закончить — нажмите Ctrl + D:
[root@waky practice]# cat > tongue_twisters.txt
Peter Piper picked a peck of pickled peppers.
[root@waky practice]#
Проверим, что наш текст записался в файл:
[root@waky practice]# cat tongue_twisters.txt
Peter Piper picked a peck of pickled peppers.
[root@waky practice]#
Дополнение файла содержимым других файлов
Можно добавить содержимое одного файла в конец другого, для этого используется оператор >>. Он не перезаписывает файл, а добавляет данные в конец файла:
cat файл2.txt >> файл1.txt
Например:
[root@waky practice]# cat shakespeare_part2.txt >> shakespeare_part1.txt
[root@waky practice]#
Можете убедиться, теперь файл shakespeare_part1.txt содержит обе части:
[root@waky practice]# cat shakespeare_part1.txt
Shall I compare thee to a summer’s day?
Thou art more lovely and more temperate:
Rough winds do shake the darling buds of May,
And summer’s lease hath all too short a date:
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm’d;
And every fair from fair sometime declines,
By chance or nature’s changing course untrimm’d;
But thy eternal summer shall not fade
Nor lose possession of that fair thou owest;
Nor shall Death brag thou wander’st in his shade,
When in eternal lines to time thou growest:
So long as men can breathe or eyes can see,
So long lives this and this gives life to thee.
[root@waky practice]#
Как работает команда cat: подробное объяснение
Команда cat считывает содержимое указанных файлов посимвольно и выводит его на экран или в другой файл. Она использует стандартные механизмы чтения и вывода данных в Linux. Вот как это происходит шаг за шагом:
- Обработка аргументов — команда получает список файлов или других параметров.
- Чтение файлов — cat последовательно открывает файлы и читает их содержимое.
- Вывод данных — считанные данные выводятся в терминал или перенаправляются в файл.
- Завершение работы — после обработки всех указанных файлов команда завершает свою работу.
Отдельные опции и примеры использования
Обычно cat используется без каких либо дополнительных параметров, но стоит помнить, что у команды есть пару полезных опций, которые пригодятся в отдельных случаях.
—n оказать содержимое файла с номерами строк:
cat -n файл.txt
— добавит номера строк перед каждой строкой. Например:
[root@waky practice]# cat -n shakespeare.txt
1 Shall I compare thee to a summer’s day?
2 Thou art more lovely and more temperate:
3 Rough winds do shake the darling buds of May,
4 And summer’s lease hath all too short a date:
5 Sometime too hot the eye of heaven shines,
6 And often is his gold complexion dimm’d;
7 And every fair from fair sometime declines,
8 By chance or nature’s changing course untrimm’d;
9 But thy eternal summer shall not fade
10 Nor lose possession of that fair thou owest;
11 Nor shall Death brag thou wander’st in his shade,
12 When in eternal lines to time thou growest:
13 So long as men can breathe or eyes can see,
14 So long lives this and this gives life to thee.
[root@waky practice]#
—E — показать специальные символы:
cat -E файл.txt
— покажет символ $ в конце каждой строки, что удобно для определения пустых строк. Например:
[root@waky practice]# cat -E shakespeare_part2.txt
By chance or nature’s changing course untrimm’d;$
But thy eternal summer shall not fade$
Nor lose possession of that fair thou owest;$
Nor shall Death brag thou wander’st in his shade,$
When in eternal lines to time thou growest:$
So long as men can breathe or eyes can see,$
So long lives this and this gives life to thee.$
[root@waky practice]#
Заключение
Команда cat — это один из самых простых и полезных инструментов в Linux, который помогает просматривать, объединять и создавать текстовые файлы. Она незаменима при работе с файлами в командной строке, особенно для тех, кто только начинает изучать Linux.
Если вы хотите использовать cat для быстрого просмотра файла или объединения нескольких файлов, достаточно запомнить её базовую синтаксис и пару полезных опций.