Я знаю, что подобный вопрос задавался здесь:
хотя я не совсем понял ответ и не смог его реализовать.
Однако я попробовал что-то другое. Я решил прочитать страницу руководства, ls
и там упоминаются различные переменные среды, которые можно задать при работе с ls
командой. Если перейти к -G
опции, там говорится, что нужно посмотреть CLICOLOR
переменные среды. Я так и сделал.чтоone ссылается на документацию по LSCOLORS
переменной окружения. Я зашел туда и там упоминается:
«Значение этой переменной описывает, какой цвет использовать для какого атрибута, когда цвета включены с помощью CLICOLOR. Эта строка представляет собой конкатенацию пар формата fb, где f — цвет переднего плана, а b — цвет фона».
Также упоминается, что значение LSCOLORS по умолчанию — "exfxcxdxbxegedabagacad", и что каждая часть определяет цвет определенной вещи в команде ls. Например, первая пара ex в example определяет цвет каталогов. вторая fx — цвет символических ссылок и т. д. e означает синий, а x означает «передний план» по умолчанию.
1) Во-первых, что это значит: «когда цвета включены с помощью CLICOLOR»?
2) Что делает"передний план"иметь в виду?
Какими должны быть переменные окружения, чтобы ls
команда могла раскрасить вывод так, как мне нужно?
Я также попробовал:
ls --color
Но он выдал мне следующую ошибку:
ls: illegal option -- - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Та же ошибка произошла, когда я это сделал ls --color=auto
: он сам по себе также выдает ошибку. Я понятия не имею, почему, и не уверен, было ли это из-за iTerm2 или OS X или почему это произошло. Кажется, это работает на других системах...
решение1
Пытаясь ответить на свой вопрос, я пробовал разные варианты, и все получилось путем экспериментов.
1) Я предполагаю, что «включение CLICOLOR» означает установку его в 1 (т.е. true), потому что как только я установил эту переменную в 1, LSCOLOR начал работать.
2) В этом контексте "Foreground" означает фоновую подсветку, которую он будет применять. Например, bc для первой пары означает, что он окрасит символы для каталогов в красный цвет, а фон/подсветка для него будет зеленым. Например, если ваша переменная окружения выглядит так: export LSCOLORS="bCfxcxdxbxegedabagacad"
то выполнение ls покажет что-то вроде этого:
Очевидно, чтобы это работало, команда ls должна иметь псевдоним ls -G (или просто выполнять ls -G каждый раз), и в вашем .bashrc или любом другом rc-файле оболочки, который вы используете, должны быть следующие строки:
export CLICOLOR=1
export LSCOLORS="gxfxcxdxbxegedabagacad"
Теперь вы можете изменить LSCOLORS по своему усмотрению, как указано в файле man ls.
Возможно, есть разные способы заставить это работать, но вот как это сработало у меня в Unix в OS X Mavericks на iTerm2.
решение2
Заменить --color
на -G
при запуске ls
.