Командная строка Linux, вывод и чтение содержимого: команды echo, cat, less
Обновлено 11.11.2024
Приветствую!
Это третий пост из цикла, посвященного работе в командной строке Linux. Сегодня мы рассмотрим команды вывода текста в консоль и просмотра содержимого файлов: echo
, cat
, less
.
Если вы только начинаете изучать Linux, то настоятельно рекомендую посмотреть предыдущие посты:
- Командная строка Linux, введение: типы команд, plain text, файловая система, shell prompt
- Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd
Практические примеры из постов данного цикла выполнялись в среде дистрибутива 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
3. Вывод нескольких аргументов:
name="Ivan"
age=30
echo "Имя: $name, Возраст: $age"
4. Использование опций:
echo -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
Полезные источники
- Книга «Командная строка Linux. Полное руководство. Уильям Шоттс» – itsecforu.ru
- Стандартные потоки – Википедия
- Мануал команды echo – OpenNet
- Мануал команды cat – OpenNet
- Как использовать команду less в Linux – toadmin.ru
- Vim – Википедия