Перейти к содержимому

Как вывести содержимое файла в консоль linux

  • автор:

Как вывести содержимое файла в консоль linux


Next: Экранный редактор vi Up: Работа с текстом Previous: Просмотр текста Contents Index

Простейший способ вывести текст — использование стандартного вывода. Это удобно для быстрого просмотра части текста, или для передачи ее другим инструментам командной строки.

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

Используйте опцию `-v’ для cat, чтобы вывести символы, не отображаемые на печати, например, управляющие символы. При указанной опции cat выводит эти символы в нотации «с крышкой» , т.е. они представляются сочетанием `^’ и символа, соответствующего управляющему символу (например, символ звукового сигнала будет представлен как `^G’ ).

Чтобы вывести управляющие символы файла `translation’, введите:

$ cat -v translation | less [Enter]

Чтобы визуально отобразить конец строки в каждой строке, используйте опцию `-E’; она приведет к тому, что в конце каждой строки появится символ `$’ .

Полезной является опция `-T’, которая выводит все табуляции в виде `^I’ .

Опция `-A’ комбинирует все три вышеуказанные опции — как если бы Вы указали опции с помощью `-vET’.

Чтобы вывести только начало текстового файла, используйте команду head. По умолчанию она выводит на экран первые десять строк из своего ввода.

Чтобы вывести первые десять строк файла `placement-list’, введите:

$ head placement-list [Enter]

Вы можете указать требуемое число строк для вывода. Если Вы укажете больше строк, чем содержится в файле, head просто выведет весь текст.

Чтобы вывести первую строку файла `placement-list’, введите:

$ head -1 placement-list [Enter]

Чтобы вывести 66 строк от начала файла `placement-list’, введите:

$ head -66 placement-list [Enter]

Чтобы вывести определенное число символов, а не строк, укажите число символов для вывода через аргумент опции `-c’.

Чтобы вывести первый символ файла `placement-list’, введите:

$ head -c1 placement-list [Enter]

Утилита tail работает подобно head, но выводит последнюю часть своего ввода. Как и в head, по умолчанию выводятся десять строк.

Чтобы вывести последние десять строк файла `placement-list’, введите:

$ tail placement-list [Enter]

Чтобы вывести последние четырнадцать строк файла `placement-list’, введите:

$ tail -14 placement-list [Enter]

Иногда требуется просматривать конец файла непрерывно; это полезно для «растущих» файлов, записываемых другими процессами. Чтобы непрерывно просматривать конец файла, используйте tail с опцией `-f’. Нажмите Ctrl-c для прекращения просмотра.

Чтобы непрерывно просматривать конец файла `access_log’, введите:

$ tail -f access_log [Enter]

Чтобы вывести на экран определенную строку из файла, используйте утилиту sed. Укажите в кавычках номер нужной строки и сочетание `!d’. Вторым аргументом должно быть имя файла.

Чтобы вывести строку 47 из файла `placement-list’, введите:

$ sed ’47!d’ placement-list [Enter]

Чтобы вывести участок файла в несколько строк, укажите номера стартовой и конечной строки через запятую.

Чтобы вывести строки с 47 по 108 из файла `placement-list’, введите:

$ sed ‘47,108!d’ placement-list [Enter]

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

Чтобы вывести десятую строку файла `placement-list’, введите:

$ head placement-list tail -1 [Enter]|

Чтобы вывести пятую и четвертую строки с конца файла `placement-list’, введите:

$ tail -5 placement-list head -2 [Enter]|

Чтобы вывести 500-й символ файла `placement-list’, введите:

$ head -c500 placement-list tail -c1 [Enter]|

Чтобы вывести первый символ пятой строки файла `placement-list’, введите:

$ head -5 placement-list tail -1 | head -c1 [Enter]|

Вы можете использовать sed для выделения текста между строками определенного вида и вывода выделенного текста или всего текста, кроме выделенногог участка.Строки для поиска — это либо слова, либо регулярные выражения.

Для выделения определенного абзаца используйте опцию `-n’ с указанием строки `’/first/,/last/p», где first и last — границы выделения. Это полезно, например, для вывода отдельных глав или разделов текста, если Вы знаете способ его разделения.

Чтобы вывести текст из файла `book-draft’ между строками `Chapter 3′ и `Chapter 4′, введите:

$ sed -n ‘/Chapter 3/,/Chapter 4/p’ book-draft [Enter]

Чтобы вывести весь текст, кроме указанного участка, опустите опцию `-n’.

Чтобы вывести весь текст из файла `book-draft’, кроме текста между строками `Chapter 3′ и `Chapter 4′, введите:

$ sed ‘/Chapter 3/,/Chapter 4/p’ book-draft [Enter]

Alex Otwagin 2002-12-16

Чтение файлов — Основы командной строки

Ранее в курсе мы обсудили общее устройство файловой системы в POSIX-совместимых операционных системах.

Пора приступать к взаимодействию с файлами. В этом уроке рассмотрим различные способы чтения текстовых файлов.

Команда cat

Самый простой способ прочитать файл — команда cat :

cat NAME cat -- concatenate and print files SYNOPSIS cat [-benstuv] [file . ] . 

Команда cat ожидает аргументы — пути до файлов, которые надо читать. В простейшем случае достаточно передать один путь. Это удобно, когда надо посмотреть содержимое небольшого файла:

cat .bash_logout # ~/.bash_logout: executed by bash(1) when login shell exits. # when leaving the console clear the screen to increase privacy if [ "$SHLVL" = 1 ]; then [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q fi 

Команды head и tail

Иногда нужно посмотреть только начало файла или его конец, в такой ситуации помогают команды head и tail . Они тоже принимают на вход путь до файла, только head показывает первые 10 строк, а tail — последние 10 строк файла.

Это поведение можно менять, задавая желаемое количество строк через опцию -n :

Посмотрим, как работает head :

head -n 2 .bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 

Похожим образом работает tail :

tail -n 2 .bashrc fi fi 

Некоторые файлы наполняются очень интенсивно. Например, быстро наполняются логи — это текстовые файлы, в которые заносится информация о происходящих процессах в определенной системе.

В Linux логи лежат в каталоге /var/log . Туда пишет и сам Linux, и большая часть установленных программ. Основной файл логов Linux называется syslog .

Туда попадает ключевая информация о происходящих процессах в операционной системе и возникающих ошибках.

В WSL syslog не включен по умолчанию. Чтобы включить его, сперва установите его как:

sudo add-apt-repository ppa:adiscon/v8-stable sudo apt-get install rsyslog 

А затем запустите, используя команду sudo service rsyslog start .

Представим, что нам нужно изучить события, которые происходят часто. Знакомые команды в этой ситуации не помогут:

  • Пользоваться командой cat неудобно, потому что syslog слишком большой
  • Команда tail тоже не подойдет, потому что при высокой скорости записи логов мы рискуем пропустить часть события

В этой ситуации поможет tail , запущенный в особом режиме — с флагом -f .

Команда tail -f path/to/file не просто выводит последние строчки файла, но и ждет появления новых. Как только файл дописывается, tail сразу выводит на экран добавленные строки.

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

# Если у вас не хватает прав, чтобы смотреть файл syslog, наберите sudo перед командой tail, как показано ниже # Есть вероятность, что sudo попросит вас ввести пароль # Сделайте это и нажмите Enter # При наборе пароля курсор не будет двигаться # Это сделано для безопасности sudo tail -f syslog Aug 28 18:00:01 ip-10-0-1-223 systemd-udevd[15400]: Could not generate persistent MAC address for veth5c6ed9c: No such file or directory Aug 28 18:00:01 ip-10-0-1-223 kernel: [126412.013499] device veth6969122 entered promiscuous mode Aug 28 18:00:01 ip-10-0-1-223 systemd[1]: Starting Update resolvconf for networkd DNS. Aug 28 18:00:01 ip-10-0-1-223 systemd-timesyncd[522]: Network configuration changed, trying to establish connection. Aug 28 18:00:01 ip-10-0-1-223 systemd-timesyncd[522]: Synchronized to time server 91.173.73.198:123 (ntp.ubuntu.com). Aug 28 18:00:01 ip-10-0-1-223 sh[15415]: sed: cant read /run/systemd/netif/leases/*: No such file or directory Aug 28 18:00:01 ip-10-0-1-223 kernel: [126412.086162] IPv6: ADDRCONF(NETDEV_UP): veth6969122: link is not ready Aug 28 18:00:01 ip-10-0-1-223 systemd-udevd[15403]: Could not generate persistent MAC address for veth6969122: No such file or directory Aug 28 18:00:02 ip-10-0-1-223 systemd-timesyncd[522]: Network configuration changed, trying to establish connection. Aug 28 18:00:02 ip-10-0-1-223 systemd-timesyncd[522]: Synchronized to time server 91.173.73.198:123 (ntp.ubuntu.com). Aug 28 18:00:02 ip-10-0-1-223 systemd-timesyncd[522]: Network configuration changed, trying to establish connection. 

Для остановки выполнения этой команды нажмите Ctrl + C .

Пейджеры

Особая категория программ для просмотра содержимого файла — пейджеры. Пейджер похож на текстовый редактор, открытый только в режиме чтения. Самый распространенный пейджер называется less . Попробуем открыть с помощью него файл syslog :

# Снова придется воспользоваться sudo sudo less syslog # Здесь много вывода 

Пейджер less открывает файл и остается в этом режиме. Он позволяет производить поиск и перемещаться по файлу вперед и назад.

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

В целом, пейджер less предоставляет несколько десятков команд для перемещения по тексту и его поиску, про большинство из них можно прочитать в соответствующем мануале. Здесь затронем основные:

  • Выход — q
  • Вперед на страницу — f
  • Назад на страницу — b
  • Поиск введенного текста — вводим / , печатаем текст и нажимаем Enter
  • Переход к следующему совпадению — n
  • Переход к предыдущему совпадению — N

Поведение пейджеров похоже на то, что мы наблюдали в мануалах. Дело в том, что когда мы запускали man , то перед нами открывался less с загруженным туда контентом. Как вы увидите позже, пейджеры невероятно популярны и неявно запускаются другими программами.

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Как открыть текстовый файл в Linux

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

Вот вы скажете, а что их там открывать, открыл и посмотрел или изменил, и все. Да, но не совсем, терминал Linux настолько гибкий инструмент, что даже обычный просмотр файлов можно очень сильно оптимизировать. Просмотр содержимого файлов Linux — это тоже искусство. В этой инструкции мы рассмотрим все команды, с помощью которых можно открыть текстовый файл linux, поговорим о том как ими пользоваться, а также приведем несколько примеров.

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

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

$ cat опции адрес_файла .

Например просмотр содержимого файла linux /etc/passwd:

Также можно посмотреть сразу несколько файлов:

cat /etc/passwod /etc/group

Если файл доступен только для пользователя root, то нужно перед командой написать sudo:

sudo cat /etc/shadow

Опция -n включает нумерацию строк:

cat -n /var/log/Xorg.0.log

Для удобства, можно включить отображение в конце каждой строки символа $

cat -e /var/log/Xorg.0.log

А также отображение табуляций, все табуляции будут заменены на символ ^I:

cat -T /var/log/Xorg.0.log

Больше о ней говорить не будем, потому что большинство её опций направлены на форматирование вывода, более подробную информацию вы можете посмотреть в статье: Команда cat в Linux.

Просмотр файла в Linux с прокруткой

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

$ less опции файл

Также ее можно комбинировать с cat:

$ cat адрес_файла | less

Например, посмотрим лог Х сервера:

Теперь мы можем листать содержимое файла в Linux с помощью стрелок вверх-вниз. Для того чтобы выйти нажмите q. Также эта утилита поддерживает поиск. Для поиска по файлу нажмите слеш «/». О более правильном способе поиска мы поговорим дальше.

Просмотр только начала или конца файла

Очень часто нам не нужен файл целиком. Например, достаточно посмотреть несколько последних строчек лога, чтобы понять суть ошибки, или нужно увидеть только начало конфигурационного файла. Для таких случаев тоже есть команды. Это head и tail (голова и хвост).

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

Можно открыть сразу два текстовых файла в Linux одновременно аналогично cat:

head /etc/passwd /etc/group

Так можно открыть текстовый файл linux или несколько и вывести по десять первых строчек каждого из них.

Если вам не нужны все 10 строчек, опцией -n и цифрой можно указать количество строк которые нужно вывести. Например, 5:

head -n5 /var/log/apt/history.log

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

head -5 /var/log/apt/history.log

Также можно задать количество байт, которые нужно вывести с помощью опции -с и числа. Например: 45:

head -c45 /var/log/apt/history.log

Тоже хотите подсчитать действительно ли там 45 символов? Используйте команду wc:

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

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

Утилита tail тоже поддерживает изменение количества строк, с помощью опции -n. Но она обладает еще одной интересной и очень полезной опцией -f. Она позволяет постоянно обновлять содержимое файла и, таким образом, видеть все изменения сразу, а не постоянно закрывать и открывать файл. Очень удобно для просмотра логов linux в реальном времени:

tail -f /var/log/Xorg.0.log

Просмотр содержимого файла с поиском

В большинстве случаев нам нужен не полностью весь файл, а только несколько строк, с интересующей нас информацией. Можно выполнить просмотр файла linux предварительно отсеяв все лишнее с помощью grep. Сначала синтаксис:

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

Или в комбинации с cat:

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

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

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

Но это еще не все, многие не знают, но у этой утилиты еще несколько полезных опций.

С помощью опции -A можно вывести несколько строк после вхождения:

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

С помощью -B — до вхождения:

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

А опция -С позволяет вывести нужное количество строк до и после вхождения шаблона:

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

Также с помощью grep можно подсчитать количество найденных строк:

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

Шаблоном может быть строка и простые спецсимволы замены. Если вы хотите использовать регулярное выражение укажите опцию -e или используйте egrep. Многие спрашивают, а какая разница между этими утилитами — уже никакой, в большинстве дистрибутивов egrep это ссылка на grep -e. А теперь пример:

cat /var/log/Xorg.0.log | egrep ‘WW|EE’

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

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

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

Например, открываем сжатый файл для просмотра:

Или более практичный пример, распаковываем и копируем конфигурационный файл ядра в текущую директорию:

zcat /porc/cofig.gz .config

Так же можно использовать less, для просмотра сжатых файлов с прокруткой:

А для фильтрации сжатых файлов по шаблону есть zgrep и zegrep. Например, ищем в сжатом логе ошибки:

zgrep ‘EE’ /var/log/Xorg.log.gz

Редактирование файлов в Linux

Довольно часто, обычного просмотра файла недостаточно и в нём надо что-то поправить. Для решения этой задачи cat уже не подойдёт, надо использовать текстовый редактор. В терминале можно пользоваться nano или vim, а в графическом интерфейсе — gedit. Чтобы открыть файл в терминале выполните:

$ nano /путь/к/файлу

sudo nano /etc/default/grub

Для большинства файлов в директории /etc/ запись доступна только пользователю root. Поэтому команду надо выполнять от имени суперпользователя с помощью sudo. После нажатия клавиши Enter утилита запросит пароль. Введите его, несмотря на то, что символы пароля не отображаются, это нормально. После внесения изменений сохраните их с помощью сочетания клавиш Ctrl + O.

Аналогично, можно открыть этот же файл в текстовом редакторе:

sudo gedit /etc/default/grub

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

Выводы

Вот и все. Разобрал все достаточно подробно. Теперь вы точно знаете как правильно открыть файл в терминале Linux. Если остались еще вопросы, оставляйте комментарии.

5 команд для просмотра содержимого файла в командной строке Linux 1 мин для чтения

PlayStation размахивает молотком запретов так, как мечтают игроки Xbox

Favorite

Добавить в избранное

Главное меню » Операционная система Linux » 5 команд для просмотра содержимого файла в командной строке Linux

5 команд для просмотра содержимого файла в командной строке Linux

Если вы новичок в Linux и ограничены терминалом, вы можете спросить, как просмотреть файл в командной строке.

Чтение файла в терминале Linux — это не то же самое, что открытие файла в блокноте. Поскольку вы находитесь в режиме командной строки, вы должны использовать команды для чтения файлов в Linux.

Не беспокойтесь, это совсем не сложно для отображения файла в Linux. Также легко научиться читать файлы в строке.

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

5 команд для просмотра файлов в Linux

Перед тем, как просмотреть файл в Unix-подобных системах, позвольте нам пояснить это, когда мы имеем в виду текстовые файлы здесь. Существуют различные инструменты и команды, если вы хотите читать двоичные файлы.

1. Cat

Это самая простая и, пожалуй, самая популярная команда для просмотра файла в Linux.

Cat просто печатает содержимое файла на стандартном экране, т.е. на экране. Это не может быть проще, чем это, не так ли?

Cat становится мощной командой, когда используется с ее параметрами. Мы рекомендуем прочитать это подробное руководство по использованию команды cat.

Проблема с командой cat в том, что она отображает текст на экране. Представьте, что вы используете команду cat с файлом, содержащим 2000 строк. Весь ваш экран будет заполнен 200 строками, и это не идеальная ситуация.

Итак, что вы делаете в таком случае? Используйте команду less в Linux (объяснено позже).

2. nl

Команда nl почти как команда cat. Разница лишь в том, что она добавляет номера строк при отображении текста в терминале.

Есть несколько вариантов с командой nl, которая позволяет вам контролировать нумерацию.

Читать Как исключить определенный размер файлов от копирования в Linux

3. Less

Команда Less просматривает файл по одной странице за раз. Лучше всего, чтобы вы выходили меньше (нажимая q), на экране не отображаются строки. Ваш терминал остается чистым и нетронутым.

Мы настоятельно рекомендуем изучить несколько параметров команды Less, чтобы вы могли использовать ее более эффективно.

4. Head

Команда Head — это еще один способ просмотра текстового файла, но с небольшой разницей. Команда head отображает первые 10 строк текстового файла по умолчанию.

Вы можете изменить это поведение, используя опции с командой head, но основной принцип остается тем же: команда head начинает работать с заголовка (начала) файла.

5. Tail

Команда Tail в Linux аналогична и все же противоположна команде head. В то время как команда head отображает файл с начала, команда tail отображает файл с конца.

По умолчанию команда tail отображает последние 10 строк файла.

Команды Head и Tail могут быть объединены для отображения выбранных строк из файла. Вы также можете использовать команду tail для просмотра изменений, внесенных в файл в режиме реального времени.

Бонус: Strings

Хорошо! Мы обещали показывать только команды для просмотра текстового файла. И этот имеет дело как с текстовыми, так и с двоичными файлами.

Команда Strings отображает читаемый текст из двоичного файла.

Нет, он не конвертирует двоичные файлы в текстовые файлы. Если бинарный файл состоит из реально читаемого текста, команда strings отображает этот текст на вашем экране.

Заключение

Некоторые пользователи Linux используют Vim для просмотра текстового файла, но мы думаем, что это излишне. Наша любимая команда открыть файл в Linux — это команда less. Она оставляет экран чистым и имеет несколько параметров, которые значительно упрощают просмотр текстового файла.

Читать Лучшие приложения для мониторинга буфера обмена для Linux

Какую команду вы предпочитаете?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *