Questão Como criar um “alias” permanente? [duplicado]


Esta questão já tem uma resposta aqui:

Se você criar um alias, por exemplo:

alias cls="clear"

Existe até que você mate a sessão terminall. Quando você inicia uma nova janela de terminal, o alias não existe mais. Como criar um alias "permanente", um que exista em todas as sessões de terminal?


165
2017-08-06 15:14


origem


Quanto a este exemplo em particular, ^ L (Control-l) também limpa a tela. - loevborg


Respostas:


Você pode colocar esses aliases no ~/.bash_aliases Arquivo.

Esse arquivo é carregado por ~/.bashrc. No Ubuntu 10.04, as seguintes linhas precisam ser descomentadas para permitir o uso de ~/.bash_aliases. No Ubuntu 11.04 e posterior, ele já está ativado:

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

O comando com alias estará disponível em qualquer novo terminal. Para ter o comando de alias em qualquer terminal existente, é necessário ~/.bashrc daquele terminal como,

source ~/.bashrc

186
2017-10-06 19:45



+1 Eu recomendo isso ao editar ~ / .bashrc. Embora de fato útil para uma variedade de outras finalidades, o ~ / .bashrc tem muitos elementos que poderiam jogar fora um usuário que não está familiarizado com as peculiaridades dos shells do Linux. - ændrük
exemplo: echo "cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - hobs
@ ndndrk Eu realmente acho a profusão de arquivos de configuração do shell confuso. Na minha opinião, é mais fácil se houver um arquivo de configuração bastante longo com todas as configurações. - haziz
@hobs deve ser: echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - Amir Ali Akbari
gracias para a correção - hobs


Adicione sua linha em ~/.bashrc ou em ~/.profile / ~/.bash_profile para logins remotos.

Se você quiser que o comando seja executado para todos os usuários, coloque-o /etc/bash.bashrc.

Editar: Nas últimas versões do Ubuntu, ~/.bashrc fontes automáticas ~/.bash_aliasesPortanto, aliases permanentes são melhor colocados nesse arquivo.


35
2017-08-06 15:26



Obrigado, funcionou quando escrevi em ~ / .bachrc P.S. Não há ~ / .profiles no meu diretório inicial. - Zango
.profile pode ser .bash_profile agora - txwikinger
Se o arquivo em questão não existir, você pode simplesmente criá-lo. - Ryan Thompson
Obrigado, eu queria saber qual é a diferença entre os dois. (bashrc e bash_profile) - emf
joshstaiger.org/archives/2005/07/bash_profile_vs.html para a diferença entre ~ / .bash_profile e ~ / .bashrc - Indrajeet Gour


Você pode adicionar a função abaixo ao seu arquivo .bashrc.

function permalias () 
{ 
  alias "$*";
  echo alias "$*" >> ~/.bash_aliases
}

Em seguida, abra um novo terminal ou execute source ~/.bashrc no seu terminal atual. Agora você pode criar aliases permanentes usando o permalias comando, por exemplo permalias cls=clear.


18
2017-11-17 21:22



Nota de uso: quando eu digitei mkalias smount='sudo mount' as citações não foram litterly ecoadas, então minha solução foi mkalias "smount='sudo mount'" Se você está aliasing um comando de palavra 2 + você precisará disso também. - TecBrat


Cole esse comando na última linha do seu ~/.bash_profile


4
2017-08-06 15:17



Por que não ~/.bashrc? - mac9416
Bashrc é o preferido, eu entendo, embora não seja claro sobre o porquê - emf


Vejo http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html para a diferença entre ~/.bash_profile e ~/.bashrc

~/.bashrc é executado toda vez que você abre um novo terminal, enquanto ~/.bash_profile não é. ~/.bashrc contém o seguinte, que inclui o ~/.bash_aliases Arquivo. Este seria o local mais apropriado para adicionar seu alias.

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

4
2017-07-03 11:00





reset
echo "Enter alias like this:"
echo "alias dir='ls'"
read var
echo "$var" >> /home/$user/.bashrc && . ~/.bashrc
cat .bashrc

-3
2018-04-01 21:18



Por favor, explique o que sua resposta faz. Apenas mostrando um monte de código quase nunca é bom. Se você fizer isso, envie-me um comentário para @DavidFoerster e votarei em sua resposta. - David Foerster