Eu tenho o Ubuntu 14.04.2. Quero torná-lo para que todos os usuários tenham automaticamente um conjunto específico de aliases. Eu tenho meus aliases definidos no meu .bashrc pessoal, mas não quero copiá-los manualmente para os outros usuários. Idealmente, também deve configurá-las automaticamente para usuários recém-criados.
38
Respostas:
Você pode criar um script
/etc/profile.d/
para criar aliases para todos os usuários:Crie um arquivo chamado
00-aliases.sh
(ou qualquer outro nome sofisticado) em/etc/profile.d
:Coloque seus apelidos neste arquivo. Exemplo:
Salve o arquivo
Algumas notas:
/etc/profile
é um arquivo global que é executado antes~/.profile
./etc/profile.d/
é uma pasta que contém scripts chamados por/etc/profile
Quando
/etc/profile
é chamado (quando você inicia / faz login em um shell), ele pesquisa todos os arquivos que terminam.sh
em/etc/profile.d/
e os executa com um destes comandos:00-
o nome do arquivo antes de executá-lo antes do restante dos scripts./etc/profile
, mas isso não é recomendado.fonte
.sh
arquivos em/etc/profile.d/
(ou/etc/profile
) serão definidos apenas para shells de logon e não funcionarão em shells interativos de não logon. Diferentemente das variáveis de ambiente, o bash não pode exportar aliases para processos filho, nem mesmo shells bash filho. Esse método pode parecer funcionar corretamente se for testado apenas em shells de logon, como o shell original obtido ao fazer logon em um console virtual ou via SSH, mas falha nos shells filhos e também nos shells iniciados pelas janelas do terminal da GUI.Como apontado aqui , provavelmente é melhor adicionar aliases globais em
/etc/bash.bashrc
:, porque os scripts em
/etc/profile.d
podem ser ignorados para determinados shells (sem login). Levei horas para descobrir por/etc/profile.d
que não funcionou.Veja, por exemplo, https://askubuntu.com/a/606882/ e Compreendendo .bashrc e .bash_profile para obter a distinção entre shells.
fonte
Um alias só funcionará enquanto estiver dentro de um shell. Se você deseja algo tão acessível quanto um executável, pode adicionar um pequeno script de atalho para
/usr/bin
, por exemplo:A
"$@"
passa todos os argumentos até o executável. O nome do script será o nome do executável.Fonte: https://unix.stackexchange.com/a/52509/15954
fonte
/ etc / bashrc
NÃO é uma boa ideia alterar esse arquivo, a menos que você saiba o que está fazendo. É muito melhor criar um script de shell custom.sh em /etc/profile.d/ para fazer alterações personalizadas em seu ambiente, pois isso evitará a necessidade de mesclagem em futuras atualizações.
fonte