В Linux мы постоянно работаем с текстовыми файлами, такими как файлы конфигурации, исходные коды, веб-страницы и многие другие. Следовательно, важно иметь быстрый способ просмотра содержимого текстового файла в командной строке перед редактированием файла.
Это краткое руководство призвано показать вам различные подходы, которые вы можете использовать для отображения содержимого текстового файла в терминале.
Но для начала разберемся, что вообще такое текстовые файлы?
Что такое текстовый файл?
Скорее всего, вы знакомы с текстовым файлом. Однако напомним, текстовый файл — это цифровой файл, содержащий необработанный текст; это означает, что файл не должен содержать никакого форматирования, такого как полужирный шрифт, курсив, подчеркивание и т. д. Кроме того, текстовые файлы не содержат мультимедийных данных, таких как изображения, видео или аудио.
По умолчанию текстовые файлы имеют расширение .txt. Однако они принимают другие формы, такие как исходный код на языках программирования, таких как C (.c), C ++ (.cpp, .h), Python (.py) и многих других. Более того, они не обязательно должны быть с каким-то расширением. Например, файл конфигурации, такой как /etc/vim/vimrc, не имеет расширения.
ПРИМЕЧАНИЕ. Мы также называем текстовые файлы текстовыми файлами ASCII.
Чтобы просмотреть тип файла в Linux, используйте команду file:
/var/log/kern.log: текст ASCII
# 1 – Cat
Cat — популярная и простая команда для вывода содержимого файла на терминал.
Чтобы использовать команду cat, передайте имя файла команде cat как:
cat [ имя файла ]
[nehrena@manjaro-nout ~]$ cat /etc/pamac.conf
### Pamac configuration file
## When removing a package, also remove those dependencies
## that are not required by other packages (recurse option):
#RemoveUnrequiredDeps
## How often to check for updates, value in hours (0 to disable):
RefreshPeriod = 6
## When there are no updates available, hide the tray icon:
NoUpdateHideIcon
## When applying updates, enable packages downgrade:
#EnableDowngrade
## When installing packages, do not check for updates:
#SimpleInstall
## Allow Pamac to search and install packages from AUR:
EnableAUR
Cat прост, но эффективен при использовании с другими опциями. Чтобы узнать, как использовать команду cat, прочтите -> man cat.
Если попытаться вывести через команду cat содержимое очень большого текстового файла в терминал, он скорее всего зависнет. И это приведет к нарушению его работы, чтобы этого избежать используют различные модификаторы и сортировку.
Один из способов упростить работу cat — использовать дополнительно утилиту less.
# 2 – Less
Если вы когда-нибудь читали справочную страницу по какой-либо команде Linux, значит, вы работали с less.
Less позволяет просматривать содержимое файла по одной странице за раз. Используя клавишу пробела, вы можете прокручивать текстовый файл. Два двоеточия в нижней части экрана обозначают каждую страницу текстового файла.
Например, большой файл, такой как /var/log/Xorg.0.log, не подойдет для cat. Чтобы использовать less, нужно ввести:
less /var/log/Xorg.0.log
Когда вы дойдете до конца файла, вы можете прокручивать его вверх и вниз с помощью клавиш со стрелками ВВЕРХ и ВНИЗ.
Чтобы выйти из команды less, нажмите Q. Less завершает сеанс без нарушения работы терминала.
Сочетание less с другими командами дает вам контроль и огромную функциональность.
# 3 – More
Еще одна команда, которую вы можете использовать для отображения содержимого текстового файла — это команда more. More очень похоже на команду less, однако он выгружает содержимое файла прямо в терминал и завершает работу в конце файла.
Команда more в linux — одна из самых примитивных команд для работы с текстом. Её ближайшая родственница — команда less — обладает куда большим набором опций и дополнительных возможностей.
Забавный факт: при подготовке этого текста я обнаружил что в Manjaro команды more вообще нет. Она просто вызывает less, что вполне логично, так как они очень похожи.
# 4 –Head and Tail
Да, такие команды есть. Команды head и tail очень похожи и используются для отображения первых и последних десяти строк файла соответственно.
Однако вы можете изменить, сколько первых и последних строк выводит команда head и tail, используя параметр -n.
Например, чтобы показать первые 15 строк файла /var/log/Xorg.0.log:
[nehrena@manjaro-nout ~]$ head -n 10 /var/log/Xorg.0.log [ 6.529] (--) Log file renamed from "/var/log/Xorg.pid-767.log" to "/var/log/Xorg.0.log" [ 6.680] X.Org X Server 1.20.11 X Protocol Version 11, Revision 0 [ 6.680] Build Operating System: Linux Manjaro Linux [ 6.680] Current Operating System: Linux manjaro-nout 5.4.124-1-MANJARO #1 SMP PREEMPT Thu Jun 3 14:16:42 UTC 2 021 x86_64 [ 6.680] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4-x86_64 root=UUID=57ae15b3-4cb1-4c5f-95ea-146087715df 5 rw quiet rcutree.rcu_idle_gp_delay=1 modprobe.blacklist=nouveau [ 6.680] Build Date: 13 April 2021 04:11:08PM [ 6.680] [ 6.680] Current version of pixman: 0.40.0 [nehrena@manjaro-nout ~]$
Чтобы просмотреть последние 15 строк файла /var/log/Xorg.0.log:
[nehrena@manjaro-nout ~]$ tail -n 10 /var/log/Xorg.0.log [ 26137.885] (EE) event10 - Logitech M215: client bug: event processing lagging behind by 17ms, your system is too slow [ 26183.868] (EE) event7 - HID 04f3:0103: client bug: event processing lagging behind by 18ms, your system is too slow [ 26243.336] (EE) event7 - HID 04f3:0103: client bug: event processing lagging behind by 23ms, your system is too slow [ 26247.547] (EE) event10 - Logitech M215: client bug: event processing lagging behind by 14ms, your system is too slow [ 26247.547] (EE) event10 - Logitech M215: WARNING: log rate limit exceeded (5 msgs per 60min). Discarding future m essages. [ 26867.317] (EE) event7 - HID 04f3:0103: client bug: event processing lagging behind by 33ms, your system is too slow [ 26867.317] (EE) event7 - HID 04f3:0103: WARNING: log rate limit exceeded (5 msgs per 60min). Discarding future m essages. [ 27165.481] (EE) client bug: timer event10 debounce short: scheduled expiry is in the past (-6ms), your system is too slow [ 27848.738] (EE) client bug: timer event10 debounce short: scheduled expiry is in the past (-1ms), your system is too slow [ 29294.621] (EE) event10 - Logitech M215: client bug: event processing lagging behind by 11ms, your system is too slow [nehrena@manjaro-nout ~]$
# 5 – Текстовый редактор
Если по какой-то причине у вас нет ни одной из описанных выше команд, вы можете использовать текстовый редактор, такой как nano, чтобы показать текстовый файл. Однако это больше похоже на редактирование файла, чем на просмотр содержимого.
Вот команда для этого:
nano /var/log/Xorg.0.log
# Не уверен, но думаю редактировать файл журнала вам никогда не понадобиться.
Заключение
Теперь вы знаете, как отобразить содержимое файла в командной строке Linux. Спасибо за чтение. Если нашли ошибку в тексте, сообщите пожалуйста в комментариях.
Ну это уже совсем элементарные вещи, смысл про такое писать?