LINUX.ORG.RU

Как раскрасить вывод в консоли, желательно через pipe?

 , grc,


0

1

Проблема:

Хочу видеть цветным вывод любых утилит выдающих списки блочных устройств: blkid,lsblk, parted и просто less,cat.

Я пробовал метод через grc, но он требует прописывания каждой утилиты в .bashrc, и не со всеми утилитами работает.
Например добавил по аналогии с другими alias blkid="grc --colour=auto blkid" — Не сработал, вывод остался чб.

Мне бы больше подошёл вариант через pipe, явно направить вывод без регистрации и смс. Подскажите пжл такие варианты

Ответ на: комментарий от Myp3ik

Спасибо, вариант, но это какая-то раздражающая и бесполезная ЛГБТ подстветка клавиатуры. Градиент от яркого к тёмному. справа плохо читается, никак не разделяет данные. Нужно чтобы цвета чередовались для улучшения считывания столбцов, а не это вот всё. Ключи глянул, не нашёл.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Ключи глянул, не нашёл.

lsblk -J выведет в json, который можно обработать скриптом, питон, перл и т.д. Отформатировать и раскрасить вывод.

Универсального варианта наверное нет.

dmitry237 ★★★★★
()

Например добавил по аналогии с другими alias blkid="grc --colour=auto blkid" — Не сработал, вывод остался чб.

В /etc/grc.conf прописаны поддерживаемые команды, а в /usr/share/grc/ лежат собственно конфиги, говорящие, как именно раскрашивать каждую из них. Там довольно простой формат — скопируй один из них и переделай для нужных тебе утилит по аналогии.

Наверное можно даже потом в grc попробовать закоммитить — вряд ли же они прям решительно против поддержки большего количества довольно стандартных утилит.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

Как прописать конфиг для blkid? /usr/share/grc/conf.blkid Я сходу не понимаю этого перла с регулярками. Пробовал копировать на его место конфиги mount и lsblk, чтобы хоть за что-то зацепиться, но не нашёл совпадений. Странно, что для такой мейнстримной команды нет конфига

hikikomori ★★★
() автор топика
Ответ на: комментарий от CrX
# ~/.bashrc


alias blkid="grc --colour=auto blkid" 
/etc/grc.conf 


# blkid
^([/\w\.]+\/)?blkid\b
conf.blkid


$ cat  /usr/share/grc/conf.blkid 
# Blk
regexp=^(/dev/)(.+):\s
colours=default,green,bright_green
======
# Blk mapper
regexp=^/dev/(mapper/)(.+):\s
colours=unchanged,underline green,bright_green
======
# UUID
regexp=\sUUID="([^"]+)
colours=bold yellow,blue
======
#UUID_SUB
regexp=\sUUID_SUB="([^"]+)
colours=green,bright_green
======
# TYPE
regexp=TYPE="([^"]+)
colours=bold cyan,cyan
======
# LABEL
regexp=\sLABEL="([^"]+)
colours=bold bright_cyan,bright_cyan
======
# PARTLABEL
regexp=\sPARTLABEL="([^"]+)
colours=bold green,red
# PARTUUID
regexp=PARTUUID="([^"]+)
colours=green,magenta

и не подсвечивает sudo blkid. Может дело в судо? но без него не получится. дублировать конфиг для судо тоже не хочу.

upd: Да, дело в sudo. как же мне его подсветить, тащить .bashrc из хомяка?

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Странно, что для такой мейнстримной команды нет конфига

В руководстве у этой команде есть выделенный жирным параграф:

It is recommended to use lsblk(8) command to get information about block devices, or lsblk --fs to get an overview of filesystems, or findmnt(8) to search in already mounted filesystems.

anonymous
()
Ответ на: комментарий от CrX

Спс. Понятно. Смена синтаксиса, убирать судо в начало. Какие сложности, когда вытаскиваешь одну команду из history и хочешь её выполнить от себя и от root.

hikikomori ★★★
() автор топика
Ответ на: комментарий от alx777

Это правда, что консольные приложения на Rust часто напоминают новогоднюю ёлку (не все, но многие), но раскрашивать вывод «обычных» команд nu не будет, если они не в структурированных форматах.

anonymous
()
Ответ на: комментарий от anonymous

но раскрашивать вывод «обычных» команд nu не будет, если они не в структурированных форматах

Судя по примерам и описанию, nushell может довольно легко структурировать текстовый вывод практически любой консольной команды и представить его в виде таблицы

Думаю и раскрасить его, если понадобится, будет не сильно сложно

alx777 ★★
()
Ответ на: комментарий от hikikomori

Это какая-то замена bash?

Скорее это один из вариантов интерактивного шелла, типа fish или zsh

bash сегодня в качестве такового рассматривать сложно, но и выкинуть его в обозримом будущем вряд ли удастся из-за огромного количества легаси скрипоты

alx777 ★★
()
Ответ на: комментарий от alx777

Судя по примерам и описанию, nushell может довольно легко структурировать текстовый вывод практически любой консольной команды и представить его в виде таблицы

lsblk -fJ | from json | table -c

Выглядит как-то так: https://ibb.co/wFxHmCmZ

Dr64h ★★★★
()