Установка переменной среды TOPCOLORS

Проблема, с которой Вы сталкиваетесь, состоит в том, что оболочка сначала анализирует командную строку и видит две простых команды, разделенные && оператор: find . -iname \*.csv -exec grep foo {}, и echo {} \;. Заключение в кавычки && (find . -iname \*.csv -exec grep foo {} '&&' echo {} \;) обходы, что, но теперь команда, выполняемая find что-то как grep с аргументами foo, wibble.csv, &&, echo и wibble.csv. Необходимо сообщить find выполнять оболочку, которая интерпретирует && оператор:

find . -iname \*.csv -exec sh -c 'grep foo "$0" && echo "$0"' {} \;

Обратите внимание что первый аргумент после sh -c SOMECOMMAND $0, нет $1.

Можно сэкономить время запуска процесса оболочки для каждого файла путем группировки вызовов команды с -exec … +. Для простоты обработки передайте некоторое фиктивное значение как $0 так, чтобы "$@" перечисляет имена файлов.

find . -iname \*.csv -exec sh -c 'for x in "$@"; do grep foo "$x" && echo "$x"; done' \ {} +

Если команда оболочки является всего двумя программами, разделенными &&, find может сделать задание отдельно: запишите два последовательных -exec действия и второе будут только выполняться, если первый выйдет с состоянием 0.

find . -iname \*.csv -exec grep foo {} \; -exec echo {} \;

(Я принимаю это grep и echo только для цели иллюстрации, как -exec echo может быть заменен -print и получающийся вывод не особенно полезен так или иначе.)

5
09.12.2013, 18:24
3 ответа

Переменная TOPCOLORS в этом top (также называемый unixtop), не доступно в версии, которую Вы используете. Это сначала появилось в версии 3.6 этой утилиты, как указано в Страницах с цветными иллюстрациями файла README. По некоторым причинам кажется, что обычные BSD не включают обновленную версию вершины (FreeBSD 9.1 имеет 3.5beta12).

Если можно установить или скомпилировать обновленную версию, страница справочника должна дать Вам больше информации о том, как выбрать цвета. В версии 3.8beta1, именно это это печатает:


TOPCOLORS

Указывает цвета для использования и условия, для которых они должны использоваться. В настоящее время только числа в сводной области дисплея могут быть окрашены. В будущей версии будет возможно выделить числа в области дисплея процесса также. Переменная среды является единственным способом указать цвет: нет никакого эквивалентного параметра командной строки. Обратите внимание, что переменная среды TOPCOLOURS также понята. Британское написание имеет приоритет. Использование цвета только работает над терминалами, которые понимают и обрабатывают escape-последовательности цвета ANSI.

Переменная среды является последовательностью спецификаций цветов, разделенных двоеточиями. Каждая спецификация принимает форму tag=min,max#code где

  • tag название значения для проверки,
  • min и max укажите диапазон для значения, и
  • code цветовой код ANSI.

Несколько цветовых кодов могут быть перечислены и разделены с точками с запятой. Отсутствие min подразумевает самое низкое значение (обычно 0) и отсутствие max подразумевает бесконечность. Запятая должна всегда присутствовать.

При определении чисел для средних чисел загрузки они должны быть умножены на 100. Например, спецификация:

  • 1min=500,1000#31 указывает, что среднее число загрузки 1 минуты между 5 и 10 должно быть отображено в красном.

Атрибуты цвета могут быть объединены. Например, спецификация:

  • 5min=1000,#37;41 указывает, что 5-минутное среднее число загрузки выше, чем 10 должно быть отображено с белыми символами на красном фоне.

Называют специальный тег header используется для управления цветом заголовка для дисплея процесса. Это должно быть указано без нижних и верхних пределов, конкретно header=,# сопровождаемый цветовым кодом ANSI.

Вы видите список цветовых кодов, распознанных этой установкой вершины с -T опция. Это также покажет текущий набор тестов, используемых для цветного выделения, как указано в среде.


(конец извлечения страницы справочника)

Цветовые коды

color.h файл от исходного кода перечисляет теги, и кодирует утилиту, понимает. Теги:

/*
 * These color tag names are currently in use
 * (or reserved for future use):
 *
 * cpu, size, res, time, 1min, 5min, 15min, host
 */

И цвет является ANSI:

/*
 * Valid ANSI values for colors are:
 *
 * 0    Reset all attributes
 * 1    Bright
 * 2    Dim
 * 4    Underscore  
 * 5    Blink
 * 7    Reverse
 * 8    Hidden
 * 
 *  Foreground Colours
 * 30   Black
 * 31   Red
 * 32   Green
 * 33   Yellow
 * 34   Blue
 * 35   Magenta
 * 36   Cyan
 * 37   White
 * 
 *  Background Colours
 * 40   Black
 * 41   Red
 * 42   Green
 * 43   Yellow
 * 44   Blue
 * 45   Magenta
 * 46   Cyan
 * 47   White
 */

Пример

Используя следующую установку, можно получить представление о возможностях (здесь для вершины 3.8beta1 скомпилированный на FreeBSD):

export TOPCOLORS="header=,#1\
:1min=,399#32:1min=400,799#33:1min=800,#31\
:5min=,299#32:5min=300,599#33:5min=600,#31\
:15min=,199#32:15min=200,399#33:15min=400,#31\
:cpu.user=,9#32:cpu.user=10,49#33:cpu.user=50,#31\
:cpu.system=,9#32:cpu.system=10,49#33:cpu.system=50,#31\
:cpu.interrupt=,9#32:cpu.interrupt=10,49#33:cpu.interrupt=50,#31"

Вызов к top -T непосредственно покажет Вам, если вершина поймет цветную установку, Вы объявили. Это также перечислит все понятые теги (который в моем случае, где несколько отличающийся от содержания color.h файл).

Альтернативы

В различных системах UNIX используются альтернативы. В соответствии с Linux Вы обычно находите top утилита, прибывающая из procps пакета. Можно также установить htop, который является хорошей красочной альтернативой, которая также доступна на OSX и FreeBSD (где это полагается на уровень Linux), но AFAIK не на Солярисе.

7
27.01.2020, 20:35
  • 1
    Очень хороший ответ. –  jasonwryan 09.12.2013, 21:55
  • 2
    Спасибо за всесторонний ответ и подходящую информацию, что это не поддерживается в той версии. Однако Вы на самом деле не дали полный пример работы значение TOPCOLORS. Предположите в течение минуты, что занятой человек не имеет времени для чтения этого конкретного руководства и хочет просто испытать несколько готовых примеров. –  Captain Lepton 10.12.2013, 12:24
  • 3
    , Чтобы быть завершенным, я добавил TOPCOLORS рабочий пример. –  Tonin 21.12.2013, 15:26
  • 4
    Heh просто заметил это, еще раз спасибо за Вашу справку –  Captain Lepton 08.12.2016, 17:57

PI USB + Ethernet поступает из одного тупая настольного чипа, который подключается к одному порту на Pi GPU = то есть USB Ethernet Dongle не будет просто «Link Direct», чтобы встроить Ethernet

, когда вы попытаетесь перенести Данные из одного интерфейса на другую пропускную способность выполняются, поскольку каждый байт должен быть прочитан CPU, подождите, пока ЦП сообщает GPU выбрать другой интерфейс (на внешнем чипе), после чего ЦП может записывать данные ГПУ и выход на другой интерфейс.

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

В зависимости от того, как кодируются драйверы Ethernet & USB 'Dongle, шансы - это ваши 100-метровые Ethernet, будут уменьшены менее 10 мбс (я видел некоторые отчеты в диапазоне KBS)

-121--105493-

Удачный пример выше. Я попробовал что-то намного проще (хотя и немного более привлекательным) на FreeBSD 10.1. Мне нужно было установить верхнюю часть 3.8 из источника. Следующие работы Fomr CSH / TCSH

    setenv TOPCOLORS "header=,#35;1:1min=,#31;1:5min=,#31;1:15min=,#31;1:cpu.user=,#32:cpu.system=,#32:cpu.nice=,#32:cpu.interrupt=,#32:cpu.idle=,#32:memory.wired=,#36:memory.active=,#36:memory.inact=,#36:memory.cache=,#36:memory.buf=,#36:memory.free=,#36:kernel.ctxsw=,#33:kernel.trap=,#33:kernel.intr=,#33:kernel.soft=,#33:kernel.fork=,#33:kernel.flt=,#33:kernel.pgin=,#33:kernel.pgout=,#33:kernel.fr=,#33:swap.total=,#34;1:swap.used=,#34;1:swap.free=,#34;1:swap.inuse=,#34;1:swap.in=,#34;1:swap.out=,#34;1"
1
27.01.2020, 20:35

Не совсем то, что вы ищете, но я нашел этот .toprc , который работает с версией 3.3.9 и более поздних версий и устанавливает где-то здесь собственные цвета:

Blockquote

 RCfile для "сверху с окнами" 
Id: a, Mode_altscr = 0, Mode_irixps = 1, Delay_time = 3.000, Curwin = 0 
Def fieldscur = AEHIOQTWKNMbcdfgjplrsuvyzX 
winflags = 63800, sortindx = 10 , maxtasks = 0 
summclr = 2, msgsclr = 1, headclr = 3, taskclr = 1 
Job fieldscur = ABcefgjlrstuvyzMKNHIWOPQDX 
winflags = 62777, sortindx = 0, maxtasks = 0 { {1}} summclr = 6, msgsclr = 6, headclr = 7, taskclr = 6 
Mem fieldscur = ANOPQRSTUVbcdefgjlmyzWHIKX 
winflags = 62777, sortindx = 13, maxtasks = 0 
summclr = 5, msgsclr = 5, headclr = 4, taskclr = 5 
Usr fieldscur = ABDECGfhijlopqrstuvyzMKNWX 
winflags = 62777, sortindx = 4, maxtasks = 0 
summclr = 3, msgsclr = 3, headclr = 2, taskclr = 3 
 
2
27.01.2020, 20:35

Теги

Похожие вопросы