Linux количество строк консоли

Команда Wc в Linux (подсчет количества строк, слов и символов)

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

В этом руководстве мы покажем вам, как использовать команду wc на простых и практических примерах.

Как использовать команду wc

Синтаксис команды wc следующий:

Команда wc может принимать ноль или более входных имен FILE . Если FILE не указан или если FILE равен — , wc будет читать стандартный ввод. Слово — это строка символов, разделенных пробелом, табуляцией или новой строкой.

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

Например, следующая команда отобразит информацию о виртуальном файле /proc/cpuinfo :

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

448 3632 22226 /proc/cpuinfo 
  • 448 — это количество строк.
  • 3632 — количество слов.
  • 22226 — количество символов.

При использовании стандартного ввода имя файла не отображается:

Чтобы отобразить информацию о более чем одном файле, передайте имена файлов в качестве аргументов, разделенных пробелом:

wc /proc/cpuinfo /proc/meminfo

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

448 3632 22226 /proc/cpuinfo 49 143 1363 /proc/meminfo 497 3775 23589 total 

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

  • -l , —lines — Вывести количество строк.
  • -w , —words — Вывести количество слов.
  • -m , —chars — Вывести количество символов.
  • -c , —bytes — Вывести количество байтов.
  • -L , —max-line-length — Вывести длину самой длинной строки.

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

Например, чтобы отобразить только количество слов, которые вы бы использовали:

Вот еще один пример, который напечатает количество строк и длину самой длинной строки.

Параметр —files0-from=F позволяет wc читать ввод из файлов, указанных в файле F именами, завершающимися NUL. Если F — то читать имена со стандартного ввода. Например, вы можете искать файлы с помощью команды find и предоставлять эти файлы в качестве входных данных для wc :

find /etc -name 'host*' -printf0 | wc -l --files0-from=-

В выводе будет показано количество строк для всех файлов в каталоге /etc , имена которых начинаются с «host»:

4 /etc/host.conf 27 /etc/avahi/hosts 1 /etc/hostname 14 /etc/hosts 46 total 

Подсчитайте количество строк

Команда wc в основном используется с параметром -l для подсчета только количества строк в текстовом файле. Например, чтобы подсчитать количество строк в /etc/passwd вы должны ввести:

Читайте также:  Просмотр содержимого папки linux терминал

В первом столбце указано количество строк, а во втором — имя файла:

Подсчитайте количество слов

Чтобы подсчитать только количество слов в текстовом файле, используйте wc -w за которым следует имя файла. В следующем примере подсчитывается количество слов в файле ~/Documents/file.txt :

Количество слов показано в первом столбце:

513 /home/linuxize/Documents/file.txt 

Примеры команд Wc

wc можно использовать в сочетании с другими командами через конвейер. Вот несколько примеров.

Подсчет файлов в текущем каталоге

Команда find передает список всех файлов в текущем каталоге с каждым именем файла в одной строке команде wc , которая подсчитывает количество строк и выводит результат:

Подсчитайте количество пользователей

В приведенном ниже примере wc используется для подсчета количества строк в выводе команды getent .

Выводы

Команда wc означает «подсчет слов» и имеет довольно простой синтаксис. Он позволяет подсчитывать количество строк, слов, байтов и символов в одном или нескольких текстовых файлах.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Количество строк в текстовой консоли

После изменения шрифта в текстовой консоли у меня на экран помещается 25 строк, а в настройках tty прописано 28. Соответственно 3 строки находятся за нижней границей монитора.

Есть способ настроить данный параметр командой stty rows 25 , но это не подходит, т.к. работает только для текущей сессии.

Вопрос такой: где находится конфиг, в котором можно прописать количество строк текстовой консоли?

По дефолту нигде ничего такого не прописывается. Что за дистрибутив?

работает только для текущей сессии

saahriktu ★★★★★ ( 07.12.16 23:48:34 MSK )
Последнее исправление: saahriktu 07.12.16 23:49:40 MSK (всего исправлений: 1)

Gentoo. Текущее количество строк посмотрел так:

$ stty -a speed 38400 baud; rows 28; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc 

У меня было предположение что это возможно как-то разрулить при помощи openrc (я его использую), но я ничего похожего не нашёл.

Читайте также:  Linux версия для хакера

В .bashrc не подходит, т.к. мне это нужно до логина. Например при загрузке система просит меня ввести пароль от шифрованных разделов. Для /home это происходит после того как отработал consolefont, т.е. за пределами экрана. Менять порядок загрузки скриптов, имхо — не решение

Может ядру что-то передаётся в /boot/grub/grub.cfg ? Или в /etc есть какие-то настройки?

Ни там ни там ничего нет (я погрепал).

Вообще у меня тоже было предположение, что это делается через ядро. По крайней мере в параметрах ядра есть опция consoleblank= , задающая timeout для sceensaver’а. Логично предположить что количество строк задаётся там же, но я ничего похожего не нашёл.

Тогда, может, каким-то образом разрешение не соответствует разрешению монитора, в том смысле что оно больше физического?

Обычно ядро автоматически определяет текстовое разрешение по разрешению и размеру шрифта.

Явным образом прописал GRUB_GFXMODE=1920×1080 , не помогло. Тут особенность в том что дефолтовый шрифт отображается нормально. Уезжают строки, т.к. я поставил шрифт ч большим размером. Подумал что количество строк не должно определяться ядром, т.к. оно про шрифт ничего не знает — это скрипт, который запускается openrc. Мне всё же кажется то должен быть какой-то конфиг для этого.

Нет, там другой механизм. Шрифты в tty загружаются через setfont, который передаёт их прямо в ядро. И прямо в ядре есть серьёзные ограничения на шрифты: шрифт не более 64 Кб и один символ не более 32×32 пикселей. В явном виде в vt.c это было написано в версии 2.5.36 (сентябрь 2002-го года). Прямо перед кодом, который загружает и обрабатывает шрифты.

Конфиг может быть, но тогда это нечто специфичное для дистрибутива. В LFS’е такого нет.

Интересно. В генте консольный шрифт задаётся через файл /etc/conf.d/consolefont и меняется прямо на ходу через /etc/init.d/consolefont restart . Этот же скрипт прописывается на загрузку в openrc. Соответственно во время загрузки у меня сначала идёт текст одним шрифтом, затем резко меняется. Ладно, как только смогу залогиниться на гентушный форму — у них поспрашиваю. Спасибо за помощь 🙂

Шрифты в tty загружаются через setfont

В генте консольный шрифт задаётся через файл /etc/conf.d/consolefont и меняется прямо на ходу через /etc/init.d/consolefont restart

Читайте также:  Linux command package version

Так /etc/conf.d/consolefont и запускает setfont . Загляни в него: это ж скрипт. В отличии от systemd, в openrc ты можешь видеть что конкретно делает запуск сервиса.

И, да, у тебя что-то наворочено. fbterm? splashutils? Покажи участок grub, который отвечает за загрузку ядра (все строки соотв. пункта меню).

И, да, у тебя что-то наворочено. fbterm? splashutils? Покажи участок grub, который отвечает за загрузку ядра (все строки соотв. пункта меню).

Да не, вроде всё в рамках приличия:

Источник

Как мне увеличить количество строк, отображаемых в окне терминала Ubuntu?

Я разработчик Ruby on Rails. Я запустил сервер Ruby on Rails в окне терминала. Ruby on Rails выводит информацию журнала в окна терминала. Но из-за длинного журнала первые строки журнала для меня недоступны из-за прокрутки окна.

Как я могу увеличить количество строк, отображаемых в окне терминала?

Введите описание здесь

3 ответа

Нажмите Редактировать → Профили → Прокрутка . Затем увеличьте значение прокрутки с ограничением до: или снимите его, чтобы прокрутить неограниченное количество строк.

Терминальные настройки

Из комментария Кевина: будьте осторожны, сняв этот флажок. Если программа сходит с ума и выливает много данных на ваш терминал, у вас могут возникнуть проблемы с памятью.

Откройте настройки профиля для терминала через

Или щелкнув правой кнопкой мыши в терминале:

Изменить значение для Limit scrollback или уберите отметку для неограниченной прокрутки.

Думая об этом по-другому, вы также можете перенаправить вывод в файл, а затем использовать less +F для потоковой передачи файла в less , прессование ctrl + c остановит поток и наберет shift + f продолжу поток.

Это также дает вам дополнительное преимущество возможности выделять вещи, которые вам небезразличны. Например, набрав /my_search_term (перемотка вперед) или ?my_search_term (обратный поиск) также выделит my_search_term в файле. Это выделение будет продолжено по мере поступления новых потоков данных.

Как вывести в файл?
Есть несколько вариантов, но для полноты, это может быть лучше:

start_rails_server &>> my_new_logfile 

&> направит как stdout, так и stderr в файл журнала. (Вы можете выбрать один или другой, используя номер, 1 для выхода и 2 для stderr, хотя stdout неявный, так что вы можете просто сделать cmd > file и вы получите стандартный вывод в ваш файл.)

Угловая скобка отправляет вывод my_new_logfile и тот факт, что есть два, означает, что он будет добавлен в файл, если он существует, и создаст новый, если нет. Если вы использовали одну угловую скобку, то любой существующий файл будет перезаписан:

start_rails_server &> my_new_logfile 

Источник

Оцените статью
Adblock
detector