Вы можете использовать пакетe2ansi , который предоставляет поддержка подсветки синтаксиса для пейджеров, таких как more
и less
.
Пакет использует мать всех текстовых редакторов, Emacs , для выполнить фактическую подсветку синтаксиса. В качестве дополнительного бонуса все остальные преобразования, обычно выполняемые Emacs --, такие как распаковка файлов --также выполняется.
Ниже приведен результат просмотра файла с помощью less
иe2ansi
:
Пакет содержит команду -линейный инструмент e2ansi-cat
, которая запускает Emacs в пакетном режиме открывает файлы, выделяет их синтаксис и отображает результат с использованием последовательностей ANSI.
Вы можете интегрировать это в less
, установив следующие переменные например, (расположение вашего файла инициализации может отличаться):
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
В приведенной выше конфигурации less
восстанавливает исходный терминал. содержимое окна, тогда как more
просто выводит новое содержимое после быстрый.
Примечание. :Если вы используете старую версию less
, она может не поддерживать ||
или синтаксис -
, в этом случае вам может понадобиться использовать просто LESSOPEN=|/usr/local/emacs...
.
less
в трубах Символ " -" в LESSOPEN
указывает, что входной фильтр должен также можно использовать при передаче текста в less
. В этом случае Emacs может полагаться только на сам текст (, а не на имя файла ). К счастью, Emacs предоставляет для этого систему. Кроме того, предоставленный файл file e2ansi-magic.el
устанавливает дополнительные типы файлов. Например:
e2ansi
цвета в тема сохраняется при просмотре файла в less
. Вы можете выбрать подходящую цветовую тему из нескольких источников или создайте свою собственную. less
(за вычетом ограничений формата последовательности ANSI и терминала окно ). less
будет использовать возможности Emacs, которые выполняют автоматический преобразование, например, распаковка файлов. На самом деле, вы можете научить Emacs для выполнения любых преобразований, таких как автоматическое преобразование двоичный файл в удобочитаемую форму с помощью внешнего инструмента. /USER@HOST:FILENAME
. e2ansi
распространяется на Melpa и может быть установлен с помощью стандартная система пакетов Emacs e2ansi
размещен на GitHube2ansi
в Emacs Wikiless
. В MS Windows консоль изначально не поддерживает последовательности ANSI. К счастью, приложение less
способно их отображать. я мне неизвестно о каком-либо современном бинарном распределении less
для MS Windows и предоставленные файлы сборки сложны в использовании. К счастью, легко построить less
с помощью CMake , см. этот текст для подробности.
OS X распространяет устаревшую версию less
. К счастью,это легко собрать современную версию прямо из исходников.
rabin2 -l
показывает прямые зависимости бинарника, т.е. те, которые перечислены в самом бинарнике. ldd
показывает полностью -разрешенное дерево зависимостей (насколько это возможно ); это включает транзитивные зависимости. Таким образом, если бинарному файлу нужны liba
и libb
, а liba
нужен libd
, который сам нуждается в libe
, rabin2 -l
будет перечислять только liba
и libb
, тогда как ldd
покажет все четыре библиотеки (, если они все доступны ).
Вы можете сопоставить результат ldd
вручную, используя rabin2 -l
, перечислив зависимости первого двоичного файла, затем зависимости каждой отдельной зависимости и так далее, пока не будет идентифицирована новая зависимость.
Чтобы узнать, используется ли библиотека на самом деле, вы можете использовать двоичный файл с ltrace
во всех интересующих вас сценариях. Это идентифицирует вызываемые библиотечные функции. Обратите внимание, что использование некоторых библиотек будет зависеть от конфигурации -; например, библиотеки Kerberos предположительно будут использоваться только в том случае, если Kerberos настроен.
См. также ldd vs rpm -q --требует .