Мне было интересно, если можно изменить цвет вывода команды в Linux на цвет, отличный от цвета командной строки, где я набираю. Это немного однообразно и трудно найти, где начинается вывод. нравиться,
@USER/Destop$ ----> blue
/*
--------------
output file in white
-----------
*/
Благодарность
preexec () { echo -n "\\e[40;34m" }
;precmd
функция ИМХО не надо, кажется ЗШ перезагружается сам по себе цвет перед отображением подсказки. Но это работает только для тех команд, которые не изменят сам цвет (яркий примерls
), как указал Аарон. Сcat
,bc
, встроенные оболочки команд и т.д. (дажеalpine
) это работает отлично."\\e[40;34m"
ее в конец своейPROMPT
preexec () { echo -n "\\e[40;37m" }
zle_highlight=(default:fg=cyan)
последнюю версию zsh. Zsh также предлагает динамическую окраску, какfish
; см. раздел ВЫДЕЛЕНИЕ ХАРАКТЕРА в man zshzle.Ответы:
На самом деле, нет; Цвет вывода данной программы контролируется командой, а не терминалом.
Тем не менее, предполагая, что ваш терминал понимает управляющие коды ANSI для цвета (большинство делают), вы можете использовать управляющие коды, чтобы установить желаемый цвет подсказки в начале подсказки и желаемый выходной цвет в конце; это приведет к тому, что ваши командные строки также будут в том цвете, который вы установили для вывода, но это, вероятно, примерно так же близко, как вы собираетесь получить то, что вы ищете. Например, следующее:
даст вам приглашение, которое выглядит так:
с 'user' и 'host' в фиолетовом, 'wd' (ваш cwd) в коричневом (темно-желтый) и всем, что после вашего терминала использует светло-синий, после '$'. (Значение по умолчанию для xterm будет отображаться синим цветом; gnome-терминал по умолчанию выглядит довольно красивым оттенком василькового.)
Фактический код цвета, указанный в необходимом формате для bash, например
\[\033[00;35m\]
, где00;35
- фактическая спецификация цвета; ведущий00
редко изменяется, но может создавать эффекты полужирного (01), подчеркивания (??) и обратного видео (??) в IIRC, в то время как конечный «35» является фактическим цветом, который в данном случае является фиолетовым.Удивительно трудно найти достойный список цветовых кодов ANSI, но цвета переднего плана выполняются с 30 по 37, а цвета фона с 40 по 47, следующим образом:
Имейте в виду, что, поскольку вы устанавливаете цвет по умолчанию для всего, что следует за вашим приглашением, программы, которые вы запускаете и которые не устанавливают свои собственные цвета с помощью escape-кодов, получат этот цвет - например, если вы запустите пейджер, вы, вероятно, увидите его вывод в том же цвете, который вы установили для других команд. В то же время, команды , которые действительно устанавливают свои собственные цвета с помощью эвакуационных кодов будет игнорировать ваши усилия полностью.
источник
tput
для раскрашивания намного удобнее для чтения. Например, мой запрос (в bash)export PS1="[\t \[$(tput setaf 9)\]\u\[$(tput setaf 15)\]@\[$(tput setaf 12)\]\h \[$(tput sgr0)\]\w ] \$ "
выводит время, затем имя пользователя в одном цвете,@
в другом и имя хоста в третьем (красный, белый и синий в данный момент), а затем печатает PWD и$
. Очень легко сразу увидеть, где находятся строки подсказок при прокрутке истории.~/.bashrc
; найдите строку, в которой он устанавливает PS1, которая является вашей строкой приглашения, и измените ее, как описано в ответе. Что изменить, зависит от того, как настроена ваша строка приглашения, но большинство существенных деталей в моем ответе, а остальное можно найти, немного погуглив. Я не уверен, что вы подразумеваете под "есть ли способ сохранить последний такой же, как у цвета раньше?"Вы можете передать вывод программе, которая выполняет раскраску. Например, есть такие программы, как
pycolor
:Чтобы построить свой собственный:
Подробнее о выводе цвета.
источник
Да, у меня это работает для Bash, по крайней мере на Linux и Mac OS.
Сначала установите некоторые переменные атрибута, и PS1 предложит оставить терминал установленным с требуемыми атрибутами командной строки, например:
Затем используйте ловушку bash DEBUG, которая выполняется перед каждой командой, чтобы изменить текстовые атрибуты для вывода команды:
источник
Другой альтернативой (по командам на основе команд) является grc - универсальный colorizer. Требуется немного поработать, чтобы настроить регулярные выражения, которые используются для раскрашивания. Я узнал об этом здесь:
/unix/8414/how-to-have-tail-f-show-colored-output?newsletter=1&nlcode=17737|321c
и тут:
/unix/26313/colored-find-output
Я не флеш с регулярными выражениями, поэтому я мало работал с этими командами.
источник
Добавьте их в файл .bashrc, а затем сохраните файл после сохранения.
Как только это будет сделано, вы можете использовать любой из них в своем терминале постоянно или пока вы не закомментируете переменные или не удалите их полностью. Вы можете использовать их в сценариях на вашем компьютере или с подстановкой команд или как угодно. Вот следующий пример того, как я использую их лично:
Я обычно использую их с отдельными командами
echo
и / илиprintf
командами, но вы можете использовать их для раскрашивания других команд, таких какping
команда. Добавьте следующее,.bashrc
чтобы получить эффекты. Затем создайте.bashrc
файл и введитеcping
команду для использованияping
с фиолетовым текстом. Вы можете настроить каждую командную функцию на использование любого цвета, поддерживаемого вашим терминалом.Тогда попробуйте:
Ваш вывод
cping
будет фиолетовым. Если вы хотите использовать несколько цветов в одном выводе, вы можете добавить их уникальными способами. Как вы это делаете, полностью зависит от вас. Например:источник
Вы должны взглянуть на команду hl, доступную на git hub:
github: git clone http://github.com/mbornet-hl/hl
и на:
http://www.flashnux.com/notes/page_000022_US.html
hl это команда linux, написанная на C, специально разработанная для окрашивания текстового файла или вывода команды. Вы можете использовать до 42 цветов одновременно и использовать файл конфигурации для упрощения командной строки. Вы можете раскрасить вывод каждой команды, которая может быть передана другой. И если вы знаете, что такое регулярные выражения, вам будет очень легко пользоваться. Вы можете использовать справочную страницу, чтобы понять, как ее использовать.
источник