Domanda Come creare un "alias" permanente? [duplicare]


Questa domanda ha già una risposta qui:

Se crei un alias, ad esempio:

alias cls="clear"

Esiste fino a quando non si uccide la sessione finale. Quando si avvia una nuova finestra di terminale, l'alias non esiste più. Come creare un alias "permanente", uno che esiste in ogni sessione del terminale?


165
2017-08-06 15:14


origine


Per quanto riguarda questo particolare esempio, ^ L (Control-l) cancella anche lo schermo. - loevborg


risposte:


Puoi mettere tali alias in ~/.bash_aliases file.

Quel file è caricato da ~/.bashrc. Su Ubuntu 10.04, le seguenti linee devono essere decommentate per consentire l'uso di ~/.bash_aliases. Su Ubuntu 11.04 e versioni successive, è già abilitato:

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

Il comando alias sarà disponibile su qualsiasi nuovo terminale. Per fare in modo che il comando con l'alias su qualsiasi terminale esistente sia necessario ~/.bashrc da quel terminale come,

source ~/.bashrc

185
2017-10-06 19:45



+1 Raccomando questo modificando ~ / .bashrc. Sebbene sia effettivamente utile per una varietà di altri scopi, ~ / .bashrc ha solo troppi elementi che potrebbero scacciare un utente che non ha familiarità con le peculiarità delle shell Linux. - ændrük
esempio: echo "cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - hobs
@ ændrük Trovo effettivamente la profusione di file di configurazione della shell che confondono. Nella mia mente è più facile se c'è un file di configurazione abbastanza lungo con tutte le impostazioni. - haziz
@hobs deve essere: echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - Amir Ali Akbari
gracias per la correzione - hobs


Aggiungi la tua linea ~/.bashrc o dentro ~/.profile / ~/.bash_profile per accessi remoti.

Se vuoi che il comando venga eseguito per tutti gli utenti, inseriscilo /etc/bash.bashrc.

Modificare: Nelle ultime versioni di Ubuntu, ~/.bashrc fonti automaticamente ~/.bash_aliases, quindi gli alias permanenti sono meglio inseriti in questo file.


35
2017-08-06 15:26



Grazie, ha funzionato quando ho scritto in ~ / .bachrc P.S. Non ci sono ~ / .profiles nella mia home directory. - Zango
.profile potrebbe essere .bash_profile ora - txwikinger
Se il file in questione non esiste, puoi semplicemente crearlo. - Ryan Thompson
Grazie, mi stavo chiedendo qual è la differenza tra quei due. (bashrc e bash_profile) - emf
joshstaiger.org/archives/2005/07/bash_profile_vs.html per la differenza tra ~ / .bash_profile e ~ / .bashrc - Indrajeet Gour


Puoi aggiungere la funzione qui sotto al tuo file .bashrc.

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

Quindi apri un nuovo terminale o corri source ~/.bashrc nel tuo attuale terminale. Ora puoi creare alias permanenti usando il permalias comando, per esempio permalias cls=clear.


18
2017-11-17 21:22



Nota di utilizzo: quando ho digitato mkalias smount='sudo mount' le virgolette non sono state riecheggiate, quindi la mia soluzione è stata mkalias "smount='sudo mount'" Se stai eseguendo l'aliasing di un comando di parola 2+ avrai bisogno anche di questo. - TecBrat


Metti questo comando nell'ultima riga del tuo ~/.bash_profile


4
2017-08-06 15:17



Perchè no ~/.bashrc? - mac9416
il bashrc è preferito, capisco, anche se non è chiaro sul perché - emf


Vedere http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html per la differenza tra ~/.bash_profile e ~/.bashrc

~/.bashrc viene eseguito ogni volta che si apre un nuovo terminale, mentre ~/.bash_profile non lo è. ~/.bashrc contiene quanto segue, che include il ~/.bash_aliases file. Questo sarebbe il posto più appropriato per aggiungere il tuo 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



Per favore, spiega, cosa fa la tua risposta. Mostrare solo un po 'di codice non è quasi mai buono. Se lo fai, mandami un messaggio con @DavidFoerster e voterò per la tua risposta. - David Foerster