Командная строка Linux, вывод и чтение содержимого: команды echo, cat, less

Командная строка Linux, вывод и чтение содержимого: команды echo, cat, less

Обновлено 23.02.2024

Приветствую!

Это третий пост из цикла, посвященного работе в командной строке Linux. Сегодня мы рассмотрим команды вывода текста в консоль и просмотра содержимого файлов: echo, cat, less.

Если вы только начинаете изучать Linux, то настоятельно рекомендую посмотреть предыдущие посты:

Практические примеры из постов данного цикла выполнялись в среде дистрибутива Linux Mint 21.

Приступим.

Про стандартные потоки данных в Linux: ввод, вывод, вывод ошибок

Стандартные потоки ввода, вывода и вывода ошибок в Linux (и в других операционных системах Unix) являются основными механизмами для взаимодействия между программами и операционной системой. Они представлены следующим образом:

  • Стандартный ввод (stdin) – это поток данных, предназначенных для ввода в программу. Обычно это клавиатура, но также может быть перенаправлен на чтение из файла или другого источника данных.
  • Стандартный вывод (stdout) – это поток данных, предназначенных для вывода результатов работы программы. Обычно это экран терминала, но также может быть перенаправлен на запись в файл или другой программе в качестве аргументов.
  • Стандартный вывод ошибок (stderr) – это поток данных, предназначенных для вывода ошибок и диагностических сообщений программы. Он отличается от стандартного вывода, чтобы разделить ошибки от обычного вывода. Обычно это также экран терминала, но также может быть перенаправлен на запись в файл или другой приемник данных.

В Linux и других операционных системах Unix используются специальные символы перенаправления, такие как >, < и |, чтобы перенаправлять данные между потоками и файлами.

По данной теме в ближайшем будущем сделаю отдельный пост с практическими примерами и подробным разбором. А пока просто знайте, что это такое и как называется)

Список команд

Итак, сегодня наш арсенал инструментов пополнится следующими командами:

КомандаОписание
echoвыводит передаваемый текст, используется также для вывода значений переменных (механизм подстановки)
catвыводит содержимое файла или нескольких файлов
lessпострочный просмотр стандартного вывода

Команда echo – вывод передаваемого текста

Синтаксис:

echo [ключи] [аргументы]

В квадратных скобка необязательные аргументы команды.

Команда echo в Linux – это простая команда, которая выводит аргументы, переданные ей, на стандартный вывод. Она является одной из базовых команд. Широко используемых в скриптах командной оболочки для вывода текстовых сообщений или переменных.

В качестве аргументов для данной команды могут выступать текстовые строки или переменные, которые требуется вывести. Можно передать один или несколько аргументов, разделенных пробелами.

Примеры использования команды echo:

1. Простой вывод текстовой строки:

echo "Hello, R4ven!"

2. Вывод значения переменной:

hello="Привет, R4ven!"

echo $hello
Задаём переменную “hello” и выводим её значение на экран.

3. Вывод нескольких аргументов:

name="Ivan"

age=30

echo "Имя: $name, Возраст: $age"
Выводит “Имя: Ivan, Возраст: 30” на экран.

4. Использование опций:

echo -n "Текст без новой строки"
Выводит “Текст без новой строки” без символа перехода (\n) новой строки в конце.

Команда echo – это простой и удобный инструмент для вывода текстовых данных в терминале Linux. Однако, стоит быть осторожным при её использовании с переменными, содержащими специальные символы, так как они могут быть интерпретированы командной оболочкой. В таких случаях рекомендуется использовать механизм экранирования, чтобы избежать неправильной интерпретации данных. Про данный механизм я также расскажу в отдельном посте.

Команда cat (concatenate) – вывод содержимого файла/ов

Синтаксис:

cat [ключи] [имя_файла]

Данная команда выполняет вывод содержимого файла или несколько файлов (конкатенация) объединяя их в один поток.

Для примера создадим файл text_file.txt с помощью графического файлового менеджера в нашей домашней директории. Далее наполним его любым содержимым:

Теперь вернёмся в терминал и выведем содержимое только что созданного файла text_file.txt с помощью команды cat:

cat text_file.txt

Команда показала текст, добавленный нами в этот файл:

Для примера работы команды cat создадим еще один файл text_file2.txt и добавим в него любое содержимое. Чтобы было интереснее сделаем это через терминал:

touch text_file2.txt

xed text_file2.txt

Команда touch создаёт пустой файл, который мы откроем с помощью xed – это имя графического текстового редактора в Linux Mint.

Теперь выполним команду в терминале:

cat text_file.txt text_file2.txt

Как видно, при указании команде cat в качестве аргументов двух текстовых файлов, их вывод объединился в один поток.

Попрактикуйтесь с данной командой, просмотрев содержимое скрытых (начинаются с точки) конфигурационных файлов, лежащих в вашей домашней директории, например посмотрите (и ужаснитесь) содержимое файла конфига оболочки bash:

cat ~/.bashrc

Идём дальше.

Команда less – построчный просмотр содержимого

Синтаксис:

less [ключи] имя_файла

Как вы могли заметить при просмотре содержимого файлов командой cat окно терминала прокручивается до конца содержимого, что не всегда удобно при просмотре больших файлов.

Эту проблему с лихвой решает команда less. Попробуем посмотреть содержимое файла конфигурации нашей оболочки с помощью “леса” 😉

less $HOME/.bashrc

Как видим вывод окно терминала не убежало вперед, а зафиксировалось на начале содержимого файла. Используйте клавиши стрелок вверх и вниз на клавиатуре для навигации по файлу.

При использовании команды less вы попадаете в интерактивный режим просмотра файлов, который имеет удобный функционал навигации с использованием горячих клавиш в стиле vim-like. К слову данный стиль широко используется в unix-подобных системах в виде встроенного механизма навигации по содержимому во многих консольных программах. Знание этих горячих клавиш бывает очень полезно. Главное знать как выйти 😉

Для примера расскажу про поиск. Делается это так: в режиме просмотра нажмите слэш / и вы попадёте в режим ввода значений для поиска по содержимому.

Тут необходимо помнить, что Unix-подобные ОС чувствительны к регистру.

Далее вводим ключ поиска, для примера выполним поиск слова alias:

alias

Затем нужно нажать Enter. Найденные совпадения будут подсвечены. Нажимая клавишу n курсор поиска будет двигаться вперед по тексту, а при нажатии клавиши N (Shift+n) будет выполнен поиск в обратном направлении.

В режиме ввода ключей для поиска сохраняется история. Можно просмотреть ранее введенные значения используя стрелочки на клавиатуре, как с командами в терминале.

Чтобы убрать подсветку результатов поиска используйте сочетание клавиш Alt+u

Эта же комбинация и включает подсветку обратно.

less поддерживает постраничный просмотр, который выполняется с помощью клавиш PageUp/PageDown на клавиатуре.

Чтобы вернуться в начале файла нажмите клавишу g, а чтобы переместиться в конце нажмите клавишу G (Shift+g).

Для выхода из режима просмотра используйте клавишу q

Обращаю ваше внимание, что если у вас в режиме просмотра команды less включена раскладка клавиатуры отличная от английской, то горячие клавиши работать не будут. Для решения просто переключите раскладку на английскую и всё будет ок. Закрывать окно терминала и перезагружать компьютер не нужно 😉

Послесловие

Сегодня мы научились выводить и просматривать содержимое в терминале Linux. Также немного поговорили про базовые механизмы взаимодействия ОС и программ: стандартные потоки данных.

В следующем посте мы рассмотрим команды по управлению файлами в терминале: touch, mkdir, cp, mv, rm.

Спасибо, что читаете. Успехов в изучении Linux

Полезные источники

Предыдущие посты цикла

  1. Командная строка Linux, введение: типы команд, plain text, файловая система, shell prompt
  2. Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии