Alterando as cores do shell: “comando dircolors -b não encontrado”

1

(Prefácio: Sou novo no Linux.)

Problema

Estou tentando mudar para cores do sistema de arquivos no shell bash. Eu alterei meu arquivo .bashrc de acordo com:

link .

Mas, ao reinicializar o shell ou obter o .bashrc , recebo a mensagem de erro:

dircolors -b : command not found

O que eu fiz de errado?

Configuração e até agora

Estou executando um novo Ubuntu Server 13.04.

Eu criei um arquivo .dir_colors no meu diretório pessoal usando:

dircolors -p > ~/.dircolors

Eu então alterei meu .bashrc para ficar assim:

# enable color support of ls and also add handy aliases
    if [ "$TERM" != "dumb" ]; then
        [ -e "$HOME/.dircolors" ] && DIR_COLORS="$HOME/.dircolors"
        [ -e "$DIR_COLORS" ] || DIR_COLORS=""
        eval "'dircolors -b $DIR_COLORS'"
        alias ls='ls --color=auto'
        #alias dir='ls --color=auto --format=vertical'
        #alias vdir='ls --color=auto --format=long'
    fi    

Eu também tenho force_color_prompt ativado

EDIT: impressão de <~/.bashrc grep dircolors | od -t x1

0000000 20 20 20 20 65 76 61 6c 20 22 27 64 69 72 63 6f
0000020 6c 6f 72 73 20 2d 62 20 24 44 49 52 5f 43 4f 4c
0000040 4f 52 53 27 22 0a
0000046

EDIT: impressão de whereis dircolors

dircolors: /usr/bin/dircolors /usr/bin/X11/dircolors /usr/share/man/man1/dircolors.1.gz
    
por Dominic Woodman 06.10.2013 / 22:42

1 resposta

2

Minha configuração final. Eu usei este comando para criar o arquivo de configuração dircolors no meu diretório de usuários.

dircolors -p > ~/.dircolors 

Eu editei meu .bashrc . A condição if foi substancialmente diferente da minha condição final se identifiquei o local correto procurando:

# enable color support of ls and also add handy aliases

Em seguida, alterei essa seção para:

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
    [ -e "$HOME/.dircolors" ] && DIR_COLORS="$HOME/.dircolors"
    [ -e "$DIR_COLORS" ] || DIR_COLORS=""
    eval "'dircolors -b $DIR_COLORS'"
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi

A parte crucial que eu errei foi que usei aspas simples ' em vez de backticks (veja o comentário @steeldriver, não consigo imprimir), na seguinte linha.

    eval "'dircolors -b $DIR_COLORS'"
    
por Dominic Woodman 07.10.2013 / 16:16