Как выключить цвет с 'ls'?

Это полностью ваше дело, но большинство программ делает что-то как это

program --help

Usage: program [][ ...]

Options:
--help         show this message, then exit
--something    after some spaces for alignment, an explenation follows.

Необходимо проверить getopt, который большинство программ (это также доступно на языках программирования), и использование сценариев. Таким образом, люди, использующие Ваш сценарий, не запутаются.

Наконец, необходимо добавить все опции, даже если они кажутся тривиальными Вам, чтобы быть завершенными. Так, я добавил бы и - справка и - версия в разделе Options использования.

50
15.08.2019, 08:01
10 ответов

Вывод цвета для ls обычно включается через псевдоним в большинстве дистрибутивов в наше время.

$ alias ls
alias ls='ls --color=auto'

Можно всегда отключать псевдоним временно путем добавления префикса его обратную косую черту.

$ \ls

Выполнение вышеупомянутого сорвет псевдоним только для этого вызова. Можно использовать его любое время, Вы хотите отключить любой псевдоним.

70
27.01.2020, 19:33
  • 1
    Вы могли также использовать command ls, конечно, но это немного быстрее. –  iconoclast 01.01.2014, 21:45
  • 2
    Аккуратный прием! Должен обновить сценарии, чтобы иметь продвижение ''. –  Viet 27.04.2017, 13:15

С GNU ls, можно указать ls --color=never явно отключить вывод цвета. (Даже если Вы имеете alias ls='ls --color=auto', когда Вы работаете ls --color=never, это расширится до ls --color=auto --color=never, и более поздняя опция имеет приоритет.)

28
27.01.2020, 19:33
  • 1
    Это - действительно ответ, который я искал, но я сохраню ответ slm как выбранный, так как он обрабатывает случаи не-GNU ls, как BSD-полученные версии (OS X, Солярис, и конечно *BSD). –  iconoclast 01.01.2014, 18:42
alias ls=ls

или

unalias ls

Это отключает постоянно окраски.

2
27.01.2020, 19:33
  • 1
    Конечно, это немного похоже на уничтожение мухи с ружьем: Вы теряете все другие опции, к которым Вы добавили ls псевдонимы, и Вы теряете их для целой сессии вместо просто единственной команды. –  iconoclast 06.08.2015, 01:50
  • 2
    Вот почему я сказал "постоянно", что :-) –  Slyx 07.08.2015, 03:23

Можно также просто использовать (в качестве на DOS):

dir

Это покажет результаты без цвета, можно добавить аргументы то же к ls, как -l.

3
27.01.2020, 19:33

Чтобы отключить цвет: unalias ls

Чтобы включить цвет: alias ls = 'ls --color = auto'

Чтобы временно отключить цвет: \ ls -ltr

0
27.01.2020, 19:33

Во многих дистрибутивах Linux это по умолчанию включено в users .bashrc .

Отредактируйте ~ / .bashrc и удалите строку, которая выглядит так:

alias ls='ls --color=auto'

Если вы хотите отключить эту функцию для всех новых учетных записей, созданных на этом компьютере в будущем, удалите ту же строку из:

/etc/skel/.bashrc 
2
27.01.2020, 19:33

В Centos7 это устанавливается в /etc/profile.d/colorls.sh... последние 3 строки этого скрипта:

alias ll='ls -l --color=auto' 2>/dev/null
alias l.='ls -d.* --color=auto' 2>/dev/null
alias ls='ls --color=auto' 2>/dev/null

Если у вас есть желание и разрешения... закомментирование нежелательной строки должно помочь.

2
27.01.2020, 19:33

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

Псевдоним, как правило, плохая идея, потому что вы никогда не сможете избавиться от этой опции, и вы привыкнете к личным настройкам, которые вы, возможно, не сможете перенести с собой на какую-то другую машину, на которой вам придется работать. Если вам нужно отключить его, чтобы передать его чему-то другому, используйте переключатель в этом канале. Но цветов не должно быть в трубе.

Для lsпроверьте, поддерживает ли ваш компьютер переменную окружения LS_COLORS. trapd00r/LS _ЦВЕТА показывает, как это работает. dircolors позволяет настраивать цвета поминутно и для каждого типа файла. Если вы не установили LS_COLORS, но включили раскрашивание, lsсделает кучу системных вызовов, чтобы выяснить типы файлов и атрибуты, чтобы понять, что нужно раскрасить. Разработчики Sherlock обнаружили, что настройка LS_COLORSпозволяет избежать всего этого и дает 40-кратное увеличение скорости . Прочитайте их кровавые подробности, чтобы увидеть, что они нашли.

Я заставляю все типы файлов использовать цвета по умолчанию:

$ export LS_COLORS='bd=0:ca=0:cd=0:di=0:do=0:ex=0:pi=0:fi=0:ln=0:mh=0:no=0:or=0:ow=0:sg=0:su=0:so=0:st=0:tw=0:'

Вот файл LS _COLORS, который я передал в dircolors:

BLK                   0
CAPABILITY            0
CHR                   0
DIR                   0
DOOR                  0
EXEC                  0
FIFO                  0
FILE                  0
LINK                  0
MULTIHARDLINK         0
NORMAL                0
ORPHAN                0
OTHER_WRITABLE        0
SETGID                0
SETUID                0
SOCK                  0
STICKY                0
STICKY_OTHER_WRITABLE 0

Для grep,посмотрите, поддерживает ли ваш GREP_COLORSили GREP_OPTIONS.

0
27.01.2020, 19:33

добавив к ответу @brian -d -foy, в большинстве случаев есть простой раздражающий цвет, который вам нравится менять, например, невидимый синий каталога или " OTHER _WRITABLE" ярко-зеленый, так что давайте использовать наш 24 -битный дисплей:)

export LS_COLORS='di=04;01;38;5;33:ow=04;01;38;5;33;48;2;60;10;0'

чтобы переопределить только цвет каталога и его другой -перезаписываемый цвет

04: underline;
01: bold/brighter;
38;5;33: redifined-blue;
48;2;60;10;0: dark red background

подробнее о де Код ANSI

-1
27.01.2020, 19:33
# chmod -x /path/to/dircolors

напр.

# chmod -x /usr/bin/dircolors

кажется эффективным способом отключить color ls на некоторых системах.

-1
21.11.2020, 17:01

Теги

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