Como fazer aliases de bash disponíveis como comandos do linux?

0

Eu tenho muitos apelidos bash em um local remoto.
Mas quando eu tento executá-los da minha caixa linux local,
Eu recebo o erro 'comando não encontrado'. por exemplo,

$ ssh root@remote 'status'  
bash: status: command not found

Na localização remota, o status é definido como

$ alias status='ls /tmp/status'  

Como posso declarar um alias no local remoto,
de tal forma que eu possa invocá-lo de qualquer local?

    
por Aman Jain 05.09.2012 / 20:56

3 respostas

1

Veja a resposta para uma pergunta semelhante no Server Fault. Basicamente, o bash não expande aliases em shells não interativos a menos que explicitamente configurado para fazer isso ( shopt -s expand_aliases ). Além disso, você precisa garantir que .bashrc seja avaliado mesmo em shells não interativos.

    
por 06.09.2012 / 04:00
0

Você pode executar

ssh root@remote_mc 'bash -ic status'

Para executar outra cópia do shell no modo interativo (o que significa que ele carregará os aliases dos arquivos de configuração do bash)

Começar um segundo shell não é uma solução fantástica, mas funciona.

    
por 05.09.2012 / 21:11
-1

Na minha opinião, se você quiser criar muitos aliases, a melhor solução é:

  • Crie um arquivo oculto (chamei-o de .bash_aliases ) no seu /home/"user_name"
  • Nesse arquivo, você precisa colocar todos os aliases que deseja usar no terminal. O meu é:

alias ll='ls -l'

alias la='ls -A'

alias mydu='du -s * .[^.]* | sort -n'

alias apti='sudo apt-get install'

alias aptr='sudo apt-get remove'

alias aptu='sudo apt-get update'

alias aptg='sudo apt-get upgrade'

alias down='sudo ifconfig wlan0 down'

alias up='sudo ifconfig wlan0 up'

alias managed='sudo iwconfig wlan0 mode managed'

alias monitor='sudo iwconfig wlan0 mode monitor'

alias usb='sudo mount /dev/sdc1 /mnt'

  • No seu arquivo /home/"user_name"/.bashrc , insira as seguintes linhas:
# More alias definitions in ~/.bash_aliases

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

Eu coloquei esta linha no final do arquivo, mas apenas para maior clareza.

    
por 08.09.2012 / 11:32