Come faccio a creare un alias di Bash permanente?

305

Vorrei creare un alias al comando rm per avere un messaggio di conferma dopo aver eseguito questo comando. Quindi sto creando un alias come questo alias rm='rm -i' . Ma per quanto ne so questo è un alias temporaneo e vive finché non chiudi il terminale.

Come spiegato qui per salvare in modo permanente l'alias, devo eseguire ~/.bash_aliases o ~/.bashrc comandi nel terminale e aggiungi il mio alias lì. Ma quando eseguo ~/.bashrc ricevo il seguente messaggio di errore:

bash: /home/bakhtiyor/.bashrc: Permission denied

Quando eseguo ~/.bash_aliases ricevo un altro messaggio di errore come questo:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.

Qual è il problema reale e come posso risolverlo?

    
posta Bakhtiyor 15.12.2010 - 08:54

8 risposte

338

Per creare un alias, aggiungi permanentemente l'alias al tuo file .bashrc

gedit ~/.bashrc

E poi aggiungi il tuo alias in fondo.

Ora esegui . ~/.bashrc nel tuo terminale (dovrebbe esserci uno spazio tra . e ~/.bashrc .

Ora puoi controllare il tuo alias.

    
risposta data karthick87 15.12.2010 - 09:24
201

Ci sono molti modi per creare un alias. I modi più utilizzati sono:

  1. Aggiungi alias direttamente nel tuo file ~/.bashrc

    Ad esempio: aggiungi questa linea al file ~/.bashrc

    alias ll='ls -l'
    alias rm='rm -i'
    

    La prossima volta (dopo che hai effettuato il logout / in, o fatto . ~/.bashrc ) quando digiti rm verrà eseguito il comando rm -i .

  2. Il secondo metodo ti consente di creare un file di alias separato, quindi non dovrai metterli in .bashrc , ma in un file di tua scelta. Innanzitutto, modifica il tuo file ~/.bashrc e aggiungi o rimuovi le seguenti righe, se non lo sono già

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

    Salvalo e chiudi il file. Dopodiché, tutto ciò che devi fare è creare un file ~/.bash_aliases e aggiungere lì i tuoi alias, con lo stesso formato specificato nel primo metodo.

    Contenuto del mio file ~/.bash_aliases :

    alias cs='cd;ls'
    
risposta data aneeshep 15.12.2010 - 09:21
17

Il problema è che stai provando ad eseguire un file non eseguibile: Puoi verificarlo con:

ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc

Nota: non c'è nessuna lettera "x - eseguibile" sulla prima colonna (permessi dei file).

I file di profilo non sono file eseguibili, invece di eseguirli li carichi con:

source /home/bakhtiyor/.bashrc

o

. /home/bakhtiyor/.bashrc
    
risposta data João Pinto 15.12.2010 - 11:24
15

Mi sembra che il tuo unico problema stia semplicemente tentando di eseguire .bashrc quando non è eseguibile. Ma questo non è il modo corretto per farlo; ogni volta che apporti una modifica a questo file, dovresti "eseguirlo" con il comando:

source ~/.bashrc

Altrimenti, creerà semplicemente una nuova shell, eseguirà il file nel nuovo ambiente della shell, quindi scarterà quell'ambiente quando uscirà, perdendo così le tue modifiche. Acquistando lo script, viene eseguito all'interno della shell corrente, quindi resterà attivo.

Suppongo che il secondo errore sia dovuto al fatto che bash_aliases non esiste. Non è necessario, è solo consigliato per mantenere le tue modifiche separate e organizzate. Viene usato solo se esiste, e puoi vederne il test in .bashrc:

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

Questo dice che se il file ~ / .bash_aliases esiste, quindi eseguilo.

    
risposta data Marty Fried 16.01.2012 - 21:29
8
echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc

Questo è un esempio che stavo cercando, un modo per digitare alcune lettere al terminale ("vps") per accedere da remoto a un server e abilitare l'inoltro X11 in modo da poter eseguire app gui come "gedit" sul di rete.

Qualunque sia il comando comando / alias, in questo modo con l'istruzione echo, le virgolette e il simbolo per accodare l'output di un comando a un file (& gt; & gt;) funziona per me. Sostituisci semplicemente il mio comando per il comando alias che ti serve e inseriscilo nel tuo terminale.

    
risposta data user80638 15.06.2013 - 13:39
5

Ho creato questa piccola funzione per scrivere rapidamente un nuovo alias su .bashrc

##------------------------------------ ##
 #           -- new-alias --           #
 # creates new alias & writes to file  #
 #           = alias new             #
 #           = alias definition      #
##------------------------------------ ##
new-alias () { 
  if [ -z "" ]; then
    echo "alias name:"
    read NAME
  else
    NAME=
  fi

  if [ -z "" ]; then
    echo "alias definition:"
    read DEFINTION
  else
    if [ "" = "-cd" ]; then
      DEFINTION='cd '
    else
      DEFINTION=
    fi
  fi

  echo "alias $NAME='$DEFINTION'" >> ~/.bashrc
  . ~/.bashrc
}
    
risposta data blizzrdof77 17.12.2013 - 21:37
4

Se stai usando ruby, puoi installare aka usando rubygem.

gem install aka2

utilizzo

aka generate hello="echo helloworld" #add an alias
aka g hello="echo helloworld"  #add alias for lazy people

aka destroy hello #remove alias
aka d hello #remove alias for lazy people

il rubygem auto-alimenterà il tuo file punto in modo che non sia necessario. Controlla.

    
risposta data ytbryan 21.01.2015 - 15:14
0

Suggerirei di utilizzare /etc/bash.bashrc

Puoi aggiungere una linea alla fine di quel file.

alias ok="ping google.com"

Dopo aver inserito gli alias per riga, devi riavviare o eseguire il relogin.

    
risposta data Fahad Ahammed 09.08.2015 - 05:36

Leggi altre domande sui tag