Терминал Linux. Команды просмотра текстовых файлов.

В этой статье рассмотрим команды просмотра текстовых файлов в терминале Linux.

Комментирование приветствуется.

Цикл статей о терминале.

  1. Терминал Linux. Команды навигации в терминале.
  2. Терминал Linux. Создание, удаление, копирование, перемещение, переименование файлов и директорий.
  3. Терминал Linux. Как сохранить в файл вывод терминала.
  4. Терминал Linux. Команды поиска файлов и директорий.
  5. Терминал Linux. Команды просмотра текстовых файлов.
  6. Терминал Linux. Права доступа к каталогам и файлам в Linux, команды chmod и chown.

Команды постраничного просмотра текстовых файлов less и more.

Для того, чтобы просмотреть огромный текстовый файл применяются команды для постраничного просмотра. Такие как more и less.

Команда more.

В общем виде команда more выглядит следующим образом:

more <путь_к_файлу/имя_файла>

Откроем для просмотра текстовый файл:

more less.txt

Теперь можно управлять просмотром текста с помощью нажатия следующих кнопок на клавиатуре:

SPACE Переместиться на одну страницу вниз
ENTER Переместиться на одну строку вниз
d Переместиться на полстраницы вниз
b Переместиться на одну страницу вверх
h Помощь
q Выход

У команды more есть и опции.

Если мы хотим читать текст по определенному количеству строк, то указываем - (тире/минус) и количество строк:

more -5 less.txt 

Если хотим начать чтение с определенной строки, то указываем + (плюс) и номер строки, с которой нужно начать чтение:

more +5 less.txt

У команды more очень много недостатков. Нельзя читать текст вверх, только вниз. Текст остается в терминале после просмотра. Поэтому и была разработана less

Команда less.

Просто совет, забыть, что есть такая команда, как more и использовать less.

В общем виде команда less выглядит следующим образом:

less <путь_к_файлу/имя_файла>

Откроем текстовый файл для просмотра:

less less.txt

Сразу стоит упомянуть, что less умеет всё тоже, что и more. Поэтому не буду повторяться с опциями, которые позволяют начать чтения с определенной строки и количество строк на страницу.

Кнопки для управления просмотра текста:

стрелка_вверх Переместиться на одну строку вверх
стрелка_вниз Переместиться на одну строку вниз
PageUp Переместиться на одну страницу вверх
PageDown Переместиться на одну страницу вниз
SPACE Переместиться на одну страницу вниз
ENTER Переместиться на одну строку вниз
d Переместиться на полстраницы вниз
b Переместиться на одну страницу вверх
h Помощь
q Выход

Удобно искать слова в тексте.

Поиск текста вниз.

Просто набираем слеш / и вводим любой текст для поиска. Клавиша n – переход к следующему найденному тексту. Клавиша N – переход к предыдущему найденному тексту. 

Обратный поиск.

Просто набираем ? (знак вопроса) и вводим любой текст для поиска. Клавиша n – переход к следующему найденному тексту. Клавиша N – переход к предыдущему найденному тексту.

Для перехода в начало документа используется клавиша g, для перехода в конец документа - G. Кроме того, мы можем перейти на определенную строку введя число и g, к примеру, 50g переведет нас на 50 строку.

Для того, чтобы открыть в редакторе просматриваемый файл, то нужно нажать клавишу v.

Для того, чтобы отобразить номера строк в файле, можно указать опцию -N или ввести её прямо во время просмотра:

Кроме того, команды less и more можно использовать для просмотра стандартных потоков вывода (подробнее о них в 3-ей статье). Для этого нужно указать в конце команды: | less или | more. К примеру, хотим просмотреть список установленных приложений постранично:

apt list --installed | less -10

При просмотре стандартного потока вывода, как в команде выше, если нажать s, то можно сохранить этот просматриваемый поток вывода в файл.

Ну и последнее, что хочется упомянуть, что если нажать F, то курсор будет переведён в конец файла и будет ожидание добавление новых строк (аналогично команде tail -f).

Команды head и tail.

Как не трудно догадаться по названиям (легко запомнить), то команда head отображает "голову" текстового файла, а tail - его "хвост". Они очень простые в использовании, давайте рассмотрим их более подробнее.

Команда head.

Выполнение команды head выведет первые 10 строк текстового файла, в общем виде выглядит следующим образом:

head [опции] <путь_к_файлу/имя_файла>

Давайте выведем первые 10 строк:

head error.log

Если мы хотим вывести определенное количество строк (вместо 10 по умолчанию) с начала текстового файла, то укажем опцию - (тире/минус) и количество строк:

head -12 error.log

Команда tail.

Если команду head мне не приходилось использовать никогда, то команда tail очень нужная и очень часто используется.

Выполнение команды tail выведет последние 10 строк файла, в общем виде выглядит следующим образом:

tail [опции] <путь_к_файлу/имя_файла>

Давайте выведем последние 10 строк:

tail error.log

Если хотим вывести определение количество строк с конца текстового документа, то нужно указать опцию (как и в случае с heaf) - (тире/минус) и количество строк:

tail -5 error.log

Либо -n и количество строк. Если указывать другие опции, помимо количества строк, то нужно использовать именно эту конструкцию:

tail -n 5 error.log

Данная команда tail очень полезна, если нужно смотреть текстовый файл, в частности файл лога, в который добавляются новый строки. То есть, смотреть изменение файла в реальном времени. Например, работает у вас какое-то серверное приложение и вам надо отслеживать ошибки лога. В этом случае, нужно к команде tail добавить опцию -f:

tail -f error.log

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

C опцией -f можно указать количество строк -n:

Очень часто использую её для просмотра логов в режиме реального времени.

Команды cat и tac.

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

В общем виде выглядит следующим образом:

cat [опции] <путь_к_файлу/имя_файла>

Например:

cat test1

Чтобы отобразить номера строк, нужно использовать опцию -n:

cat -n file.txt

С помощью перенаправления стандартного потока вывода мы можем делать интересные вещи.

К примеру, можно создать копию текущего файла:

cat test1 > test3

Можно добавить текст из одного файла в другой:

cat test2 >> test3

Можно объединить несколько файлов в один:

cat test1 test2 > test4

Как упоминалось выше, |less и |more можно использовать для просмотра стандартных потоков вывода. Команда cat не исключение:

cat less.txt | less

Команда tac - это тоже самое, что и cat, только отображает строки в обратном порядке.

tac [опции] <путь_к_файлу/имя_файла>

Для лучшего понимания, о чём идёт речь, просто посмотрите на следующий скриншот:

Вот и всё.