Vraag Hoe een permanent "alias" te maken? [duplicaat]


Deze vraag heeft hier al een antwoord:

Als u bijvoorbeeld een alias maakt:

alias cls="clear"

Het bestaat totdat je de terminall-sessie doodt. Wanneer u een nieuw terminalvenster start, bestaat de alias niet meer. Hoe maak je een "permanent" alias aan, een die bestaat in elke terminalsessie?


165
2017-08-06 15:14


oorsprong


Wat dit specifieke voorbeeld betreft, wist ^ L (Control-l) ook het scherm. - loevborg


antwoorden:


Je kunt dergelijke aliassen in de ~/.bash_aliases het dossier.

Dat bestand is geladen door ~/.bashrc. Op Ubuntu 10.04 moeten de volgende regels worden weggehaald om het gebruik van ~/.bash_aliases. Op Ubuntu 11.04 en hoger is dit al ingeschakeld:

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

De gealiaste opdracht is beschikbaar op elke nieuwe terminal. Om de aliased-opdracht op een bestaande terminal te hebben, moet er een bron worden gezocht ~/.bashrc van die terminal als,

source ~/.bashrc

185
2017-10-06 19:45



+1 Ik raad dit aan om ~ / .bashrc te bewerken. Hoewel het inderdaad nuttig is voor verschillende andere doeleinden, heeft ~ / .bashrc gewoon te veel elementen die een gebruiker kunnen afwerpen die onbekend is met de eigenaardigheden van Linux-shells. - ændrük
voorbeeld: echo "cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - hobs
@ ændrük Ik vind eigenlijk de overdaad aan shell-configuratiebestanden verwarrend. In mijn gedachten is het gemakkelijker als er een vrij lang configuratiebestand is met alle instellingen. - haziz
@hobs het moet zijn: echo "alias cls='clear'" >> ~/.bash_aliases && source ~/.bash_aliases - Amir Ali Akbari
gracias voor de correctie - hobs


Voeg uw regel toe aan ~/.bashrc of in ~/.profile / ~/.bash_profile voor inloggen op afstand.

Als u wilt dat de opdracht wordt uitgevoerd voor alle gebruikers, plaatst u deze in /etc/bash.bashrc.

Bewerk: In de nieuwste versies van Ubuntu, ~/.bashrc automatisch bronnen ~/.bash_aliases, dus permanente aliassen kunnen het best in dit bestand worden geplaatst.


35
2017-08-06 15:26



Bedankt, het werkte toen ik schreef in ~ / .bachrc P.S. Er zijn geen ~ / .profiles in mijn homedirectory. - Zango
.profile kan nu .bash_profile zijn - txwikinger
Als het bestand in kwestie niet bestaat, kunt u het eenvoudigweg maken. - Ryan Thompson
Bedankt, ik vroeg me af wat het verschil tussen die twee is. (bashrc en bash_profile) - emf
joshstaiger.org/archives/2005/07/bash_profile_vs.html voor het verschil tussen ~ / .bash_profile en ~ / .bashrc - Indrajeet Gour


U kunt de onderstaande functie toevoegen aan uw .bashrc-bestand.

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

Open vervolgens een nieuwe terminal of voer uit source ~/.bashrc in uw huidige terminal. U kunt nu permanente aliassen maken met behulp van de permalias opdracht, bijvoorbeeld permalias cls=clear.


18
2017-11-17 21:22



Gebruik Opmerking: toen ik typte mkalias smount='sudo mount' de citaten werden niet letterlijk herhaald, dus mijn oplossing was mkalias "smount='sudo mount'" Als u een opdracht voor een woord van 2+ gebruikt, heeft u dit ook nodig. - TecBrat


Steek dat commando in de laatste regel van je ~/.bash_profile


4
2017-08-06 15:17



Waarom niet ~/.bashrc? - mac9416
bashrc heeft de voorkeur, ik begrijp het, hoewel niet duidelijk waarom - emf


Zien http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html voor het verschil tussen ~/.bash_profile en ~/.bashrc

~/.bashrc wordt uitgevoerd telkens wanneer u een nieuwe terminal opent, terwijl ~/.bash_profile is het niet. ~/.bashrc bevat het volgende, waaronder de ~/.bash_aliases het dossier. Dit zou de meest geschikte plaats zijn om je alias toe te voegen.

# 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



Leg alsjeblieft uit wat je antwoord doet. Gewoon een heleboel code laten zien is bijna nooit goed. ALS je dit doet, stuur me dan een bericht naar @DavidFoerster en ik stem op je antwoord. - David Foerster