Comment créer un alias Bash permanent?

315

Je voudrais créer un alias pour la commande rm afin de recevoir un message de confirmation après avoir exécuté cette commande. Je crée donc un alias comme celui-ci alias rm='rm -i' . Mais pour autant que je sache, il s’agit d’un alias temporaire, qui perdure jusqu’à la fermeture du terminal.

Comme il est expliqué ici pour enregistrer l'alias en permanence, je dois exécuter ~/.bash_aliases ou ~/.bashrc commandes en terminal et ajoutez mon alias là-bas. Mais lorsque j'exécute ~/.bashrc , le message d'erreur suivant s'affiche:

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

Lorsque j'exécute ~/.bash_aliases , j'obtiens un autre message d'erreur du type:

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

Quel est le problème et comment puis-je le résoudre?

    
posée Bakhtiyor 15.12.2010 - 08:54
la source

8 réponses

353

Pour créer un alias, ajoutez-le définitivement à votre fichier .bashrc

gedit ~/.bashrc

Ajoutez ensuite votre alias en bas.

Maintenant,exécutez.~/.bashrcdansvotreterminal(ildevraityavoirunespaceentreles.et~/.bashrc.

Vouspouvezmaintenantvérifiervotrealias.

    
réponse donnée karthick87 15.12.2010 - 09:24
la source
213

Il existe de nombreuses façons de créer un alias. Les moyens les plus utilisés sont:

  1. Ajoutez des alias directement dans votre fichier ~/.bashrc

    Par exemple: ajoutez ces lignes au fichier ~/.bashrc

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

    La prochaine fois (après que vous vous êtes déconnecté / connecté ou que vous ayez terminé . ~/.bashrc ) lorsque vous tapez rm , la commande rm -i sera exécutée.

  2. La deuxième méthode vous permet de créer un fichier d’alias séparé. Vous n’avez donc pas besoin de les mettre dans .bashrc , mais dans un fichier de votre choix. Commencez par éditer votre fichier ~/.bashrc et ajoutez ou décommentez les lignes suivantes, si ce n’est pas déjà fait

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

    Enregistrez-le et fermez le fichier. Après cela, tout ce que vous avez à faire est de créer un fichier ~/.bash_aliases et d’y ajouter vos alias, avec le même format que celui spécifié dans la première méthode.

    Contenu de mon fichier ~/.bash_aliases :

    alias cs='cd;ls'
    
réponse donnée aneeshep 15.12.2010 - 09:21
la source
17

Le problème est que vous essayez d'exécuter un fichier non exécutable: Vous pouvez vérifier cela avec:

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

Notez qu'il n'y a pas de lettre "x-exécutable" sur la première colonne (autorisations sur les fichiers).

Les fichiers de profil ne sont pas des fichiers exécutables. Au lieu de les exécuter, vous les chargez avec:

source /home/bakhtiyor/.bashrc

ou

. /home/bakhtiyor/.bashrc
    
réponse donnée João Pinto 15.12.2010 - 11:24
la source
15

Il me semble que votre seul problème est simplement d’exécuter .bashrc alors que ce n’est pas exécutable. Mais ce n'est pas la bonne façon de le faire. chaque fois que vous apportez une modification à ce fichier, vous devez "l'exécuter" à l'aide de la commande:

source ~/.bashrc

Dans le cas contraire, il créera simplement un nouveau shell, exécutera le fichier dans l'environnement du nouveau shell, puis supprimera cet environnement lors de sa fermeture, perdant ainsi votre modification. En recherchant le script, il s’exécute dans le shell actuel, il restera donc actif.

Je suppose que la deuxième erreur est due au fait que bash_aliases n'existe pas. Ce n'est pas obligatoire, mais il est recommandé de garder vos modifications séparées et organisées. Il n’est utilisé que s’il existe et vous pouvez voir le test correspondant dans .bashrc:

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

Ceci indique que si le fichier ~ / .bash_aliases existe, exécutez-le.

    
réponse donnée Marty Fried 16.01.2012 - 21:29
la source
8
echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc

C’est un exemple que je cherchais, un moyen de taper quelques lettres sur le terminal ("vps") pour vous connecter à distance à un serveur et activer le transfert X11 afin que je puisse exécuter des applications graphiques telles que "gedit" réseau.

Quelle que soit la commande / commande avec alias, l’instruction echo, les guillemets et le symbole permettant d’ajouter le résultat d’une commande à un fichier (> >) fonctionnent pour moi. Il suffit de remplacer ma commande par la commande d’alias dont vous avez besoin et de l’entrer dans votre terminal.

    
réponse donnée user80638 15.06.2013 - 13:39
la source
5

J'ai créé cette petite fonction pour écrire rapidement un nouvel alias dans .bashrc

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

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

  echo "alias $NAME='$DEFINTION'" >> ~/.bashrc
  . ~/.bashrc
}
    
réponse donnée blizzrdof77 17.12.2013 - 21:37
la source
4

si vous utilisez ruby, vous pouvez installer aka en utilisant rubygem.

gem install aka2

utilisation

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

le rubygem auto-source votre fichier de points afin que vous n'en ayez pas besoin. Vérifiez-le.

    
réponse donnée ytbryan 21.01.2015 - 15:14
la source
0

Je suggérerais d'utiliser /etc/bash.bashrc

Vous pouvez ajouter une ligne à la fin de ce fichier.

alias ok="ping google.com"

Après avoir mis les alias par ligne, vous devez redémarrer ou reconnecter.

    
réponse donnée Fahad Ahammed 09.08.2015 - 05:36
la source

Lire d'autres questions sur les étiquettes