Bash shell de cores no Mac?


8

Como você pode fazer um shell bash listar arquivos executáveis ​​em uma cor diferente dos arquivos não executáveis?

Tentei editar ~/.bashrcpara conter a seguinte linha (caso contrário, está vazia):

 LS_OPTIONS='--color=auto'

Mas não está funcionando. O que estou fazendo errado? Estou trabalhando no Mac OS X.

Respostas:


7

Para ativar a saída em cores do lscomando sem precisar criar um alias lsou fazer download de qualquer software adicional, adicione o seguinte ao seu ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Se você não gosta dessas cores, pode usar este gerador de cores sl para personalizar essa lista de cores ao seu gosto.

Você precisará fazer:

source ~/.bash_profile

Após fazer as alterações para que entrem em vigor no shell existente.


Não, isso não ajuda em todos os
holms

6

O problema é que o OS X não possui GNU ls; embora lsele suporte a coloração do nome do arquivo, ele só pode ser feito pelo tipo de arquivo (arquivo, diretório, link simbólico, arquivo especial do dispositivo, fifo, soquete ...). Instale coreutilsno Fink / MacPorts / HomeBrew e use alias ls='gls --color=auto'.


Obrigado. Eu instalei coreutilsdo MacPorts. A aliaslinha deve estar dentro ~/.bashrc? É onde eu coloquei, mas não estou vendo nenhuma diferença.
AP257 22/03/11

~/.bash_aliasespode funcionar melhor. Também descobri que precisava correr eval $(gdircolors -s)para configurá-lo.
Geekosaur

@ AP257: No meu Mac, eu coloquei aliases no .bash_profile
Hai Vu

@Hai Vu: Isso só funciona se você nunca usar sub-conchas.
geekosaur 29/03

@geekosaur gdircolors: invalid option -- 's'você quer dizer --sh?
Anentropic

6

BSD ls funciona um pouco diferente

alias ls='ls -G'

Deveria trabalhar.

E isso não é uma coloração festiva, está lsfazendo a colorização. Quando o bash faz uma lista de arquivos (tente echo *em um diretório), não há como colorir. A digitação ls -Gfuncionaria em qualquer shell, embora um shell (como o bash) que possua aliases o facilite.


6

No Mac, você precisa usar

export CLICOLOR=1

Coloquei isso no .bash_profile. No entanto, prefiro a solução de Rich Homolka ao pseudônimo ls com a flag -G. Se você deseja personalizar as cores:

man ls

e pesquise LSCOLORS


1

Considere instalar brewe usar a versão GNU de ls e outras ferramentas.

Instale o XCode na AppStore.

Instale o Homebrew ...

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Instale coreutils ...

brew install coreutils

Adicione ao fundo do seu .profile...

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

Eu alias lsno meu .profilepara fazer cores para tudo e um atalho para a lista completa.

alias ls='ls --color'
alias l='ls -lah'
# -l     use a long listing format
# -a     do not ignore entries starting with .
# -h     with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G)

Existem váriasLS_COLORS opções no github .


-1

bashé apenas um shell, ele não lista arquivos. Ele executa comandos, como ls.

A --coloropção (e opções longas em geral) é específica da versão lsdo GNU coreutils , que vem com a maioria das distribuições Linux. Por outro lado, o Mac OS X tem raízes BSD e usa a versão BSD da lsqual não suporta cores.


1
-1: Ele faz apoio coloração, apenas com uma bandeira de linha de comando diferente: -G.
Wuffers 29/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.