Как вывести содержимое файла Linux? Открываем текстовый файл в Linux



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


Просмотр текстового файла в Linux полностью


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


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



Представьте, что надо посмотреть содержимое файла с названием myfile.txt:


cat myfile.txt



Также можно вместо имени прописать адрес (путь) к файлу:


cat /etc/passwd



Если нужно посмотреть несколько файлов сразу, это тоже не вызовет проблем:




Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n:


cat -n file.txt





Команда nl функционирует аналогично команде cat с опцией -n, выводя номера строк в столбце слева.


nl file.txt



При необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $:


 cat -e test



Вывод будет следующим:


hello everyone, how do you do?$
$
Hey, am fine.$



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




Как просмотреть файл в Linux с прокруткой


Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:


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



Команда less обеспечит постраничный просмотр, что очень удобно. При этом:
1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать - (тире или минус) и количество строк:


less -5 myfile.txt



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


less +5 myfile.txt



Открыв текст, мы можем управлять его просмотром:




Просматриваем начало или конец файла в Linux


Порой, нам не нужно выводить содержимое всего файла и мы хотим, к примеру, посмотреть лишь несколько строчек лога. Такое часто бывает, если мы подозреваем, что в начале или в конце конфигурационного файла есть ошибки. Для решения данного вопроса у нас существуют команды head и tail (как вы уже догадались, это голова и хвост).


Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux:


head /etc/passwd



Вот, что мы увидим:


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
adm:x:3:4:adm:/var/adm:/bin/false
lp:x:4:7:lp:/var/spool/lpd:/bin/false
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/var/spool/news:/bin/false
uucp:x:10:14:uucp:/var/spool/uucp:/bin/false



Кстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов:


 head /etc/passwd /etc/shadow



Если же вас не интересуют все 10 строчек, то, как и в случае с cat, можно использовать опцию –n, цифрой указывая число строк к выводу:


 head -n5 /var/log/emerge.log



В итоге мы вывели только пять строк:


1394924012: Started emerge on: Mar 15, 2014 22:53:31
1394924012: *** emerge --sync
1394924012: === sync
1394924012: >>> Synchronization of repository 'gentoo' located in '/usr/portage'...
1394924027: >>> Starting rsync with rsync://212.113.35.39/gentoo-portage



По правде говоря, букву n можно и не использовать, достаточно просто передать цифру:


 head -5 /var/log/emerge.log



Кстати, выводить содержимое текстового файла в Linux можно не построчно, а посимвольно. Давайте зададим число символов, которое нужно вывести (используем опцию -с):


 head -c45 /var/log/emerge.log



Итак, выводим 45 символов:


1394924012: Started emerge on: Mar 15, 2014 2



Не верите, что их действительно 45? Проверить можно командой wc:


 head -c45 /var/log/emerge.log | wc -c
45



С «головой» разобрались, давайте поговорим про «хвост». Очевидно, что команда tail работает наоборот, выводя десять последних строк текстового Linux-файла:


 tail /var/log/emerge.log



Количество строк при выводе тоже можно менять. Однако в tail есть такая полезная опция, как -f. С её помощью содержимое текстового файла будет постоянно обновляться, в результате чего вы станете видеть изменения сразу (постоянно открывать и закрывать файл не придётся). Это весьма удобно, если вы хотите просматривать логи Linux в реальном времени:


 tail -f /var/log/emerge.log



Просматриваем содержимое файла по шаблону в Linux


На практике зачастую нам необходим не весь текстовый файл, а лишь несколько строк из него. Используя grep, мы можем вывести Linux-файл, предварительно отсеяв лишнее:


grep опции шаблон файл



Команду можно применять и совместно с cat:


cat файл | grep опции шаблон



Давайте выведем из лога лишь предупреждения:


cat /var/log/Xorg.0.log | grep WW



Вывод:


(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 85.839] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[ 85.839] (WW) Disabling Keyboard0
[ 85.839] (WW) Disabling Mouse0
[ 87.395] (WW) evdev: A4TECH USB Device: ignoring absolute axes.



Есть и ряд полезных опций: -A, -B, -C. Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:


 $ ifconfig | grep -A2 enp2s0



Вывод из файла:


enp2s0: flags=4163 mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::beae:c5ff:febe:8bb7 prefixlen 64 scopeid 0x20



А теперь, то же самое, но до вхождения loop:


 ifconfig | grep -B2 loop



Вывод:


inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)



Можно по две строки как до, так и после loop:


ifconfig | grep -C2 loop



Вывод из файла:


inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 9810 bytes 579497 (565.9 KiB)
RX errors 0 dropped 0 overruns 0 frame



Просматриваем Linux-файл в сжатом виде


Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.


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


zcat test.gz



Или выполним просмотр сжатого файла с прокруткой:


zless test



Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.


Источники:
- https://blld.ru/kak-otkryt-tekstovyj-fajl-linux;
- https://linuxrussia.com/terminal-view-text-files.html;
- https://pingvinus.ru/note/show-text-file.


Добавить комментарий

Автору будет очень приятно получить обратную связь.

Комментариев 0