Aliases: diferença entre .bash_rc, .bash_aliases e / usr / local / bin

7

Brincando com o Terminal, notei que há muitas maneiras de criar aliases permanentes .

Sou um novato no Linux e, pelo que sei, estou fazendo:

  1. sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. adicionando desired_alias = '/path/to/executable' a ~/.bashrc
  3. descomentando essas linhas em ~/.bashrc :

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    

    e colocando desired_alias = '/path/to/executable' no ~/.bash_aliases

todos têm o mesmo efeito.

Qual é a diferença entre o primeiro e o segundo métodos?

    
por Strae 18.08.2010 / 01:21

1 resposta

9

Com o primeiro método você não está criando um alias, você está criando um symlink. Os links simbólicos são curtos para links simbólicos:

  

Links simbólicos são arquivos que funcionam como   ponteiros para outros arquivos. [...] UMA   link simbólico é um tipo especial de   arquivo cujo conteúdo é uma string que   é o nome do caminho outro arquivo, o arquivo   a que o link se refere. Em outro   palavras, um link simbólico é um ponteiro para   outro nome, e não a um subjacente   objeto.

Leia mais sobre links simbólicos aqui e aqui .

Somente com o segundo método você está, na verdade, criando um alias.

  

Aliases permitem que uma string seja   substituída por uma palavra quando é usada   como a primeira palavra de um comando simples.   O shell mantém uma lista de aliases   que pode ser definido e não definido com o   comandos internos alias e unalias   (veja COMANDOS DE SHELL BUILTIN abaixo).   A primeira palavra de cada simples   o comando, se não estiver marcado, é marcado para   veja se tem um alias. Se sim, isso   palavra é substituído pelo texto da   alias.

Você pode definir um alias em qualquer lugar onde você pode digitar um comando e ter o shell ( bash neste caso) interpretá-lo, porém para que o alias esteja disponível em outros shells ele precisa ser definido em um arquivo que é interpretado pelo shell na inicialização (inicialização do shell, não inicialização do computador).

Por bash, estes são /etc/bash.bashrc (todo o sistema) e ~/.bashrc . Esses arquivos são interpretados quando o shell é iniciado no modo interativo (como quando se usa Terminal ). Não vou mencionar os arquivos de perfil porque eles servem a um propósito diferente.

Então, você quer adicionar seus aliases a ~/.bashrc para disponibilizá-los em todos os shell interativos.

O método .bash_aliases realiza exatamente a mesma coisa que colocar os aliases em ~/.bashrc , mas tem o benefício adicional de ser mais fácil de ser analisado e manipulado por programas.

O . ~/.bash_aliases significa origem (carga) _~/.bash_aliases_ no contexto do shell atualmente em execução.

    
por Li Lo 18.08.2010 / 01:30