Come posso preimpostare gli alias per tutti gli utenti?

29

Ho Ubuntu 14.04.2. Voglio farlo in modo che tutti gli utenti abbiano automaticamente un set specifico di alias. Ho i miei alias impostati nel mio .bashrc personale, ma non voglio doverli copiare manualmente negli altri utenti. Idealmente dovrebbe essere impostato automaticamente anche per gli utenti appena creati.

    
posta Brian Sizemore 16.04.2015 - 16:15

3 risposte

41

Puoi creare uno script in /etc/profile.d/ per creare alias per tutti gli utenti:

  1. Crea un file chiamato 00-aliases.sh (o qualsiasi altro nome di fantasia) in /etc/profile.d :

    gksu gedit /etc/profile.d/00-aliases.sh
    
  2. Metti alias in questo file. Esempio:

    alias foo='bar --baz'
    alias baz='foo --bar'
    
  3. Salva il file

  4. Riavvia tutti i terminali aperti per applicare le modifiche.
  5. Buon divertimento!

Alcune note:

  • /etc/profile è un file globale che viene eseguito prima di ~/.profile .
  • /etc/profile.d/ è una cartella che contiene script chiamati da /etc/profile
  • Quando viene chiamato /etc/profile (quando avvii / accedi a una shell), cerca tutti i file che terminano in .sh in /etc/profile.d/ e li esegue con uno di questi comandi:

    source /etc/profile.d/myfile.sh
    
    . /etc/profile.d/myfile.sh
    
  • Sto mettendo 00- prima del nome del file per farlo eseguire prima del resto degli script.
  • Puoi anche aggiungere i tuoi alias in /etc/profile , ma ciò non è consigliato.
risposta data Helio 16.04.2015 - 17:01
4

Un alias funzionerà solo all'interno di una shell. Se vuoi qualcosa che sia ampiamente accessibile come un eseguibile, puoi aggiungere un piccolo script di scorciatoia a /usr/bin , ad esempio:

#!/bin/sh
ls -l "[email protected]"

Il "[email protected]" passa tutti gli argomenti fino all'eseguibile. Il nome dello script sarà il nome dell'eseguibile.

Fonte: link

    
risposta data jtpereyda 14.09.2017 - 23:03
0

Come sottolineato qui , probabilmente è meglio aggiungere alias globali in /etc/bash.bashrc :

alias foo='bar --baz'
alias baz='foo --bar'

, perché script in /etc/profile.d possono essere ignorati per alcune shell (non di accesso). Mi ci sono voluti ore per capire perché /etc/profile.d non ha funzionato.

Vedi per es. link e Comprensione di .bashrc e .bash_profile per la distinzione tra shell.

    
risposta data tinlyx 14.12.2017 - 00:26

Leggi altre domande sui tag