Je voudrais créer un alias pour rm commande afin d'avoir un message de confirmation après l'exécution de cette commande. Je crée donc un alias comme celui-ci alias rm='rm -i'. Mais pour autant que je sache, c'est un alias temporaire et il vit jusqu'à ce que vous fermiez le terminal.
Comme il est expliqué ici pour enregistrer l'alias de façon permanente, je dois exécuter ~/.bash_aliases ou ~/.bashrc commandes dans le terminal et ajoutez-y mon alias. Mais quand j'exécute ~/.bashrc Je reçois le message d'erreur suivant :
bash: /home/bakhtiyor/.bashrc: Permission denied
Quand je cours ~/.bash_aliases Je reçois un autre message d'erreur comme celui-ci:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Quel est le problème réel et comment puis-je le résoudre?
Il existe de nombreuses façons de créer un alias. Les moyens les plus utilisés sont:
Ajoutez des alias directement dans votre ~/.bashrc fichier
Par exemple: ajoutez ces lignes à ~/.bashrc fichier
alias ll='ls -l'alias rm='rm -i'
La prochaine fois (après vous être déconnecté/connecté, ou terminé . ~/.bashrc) lorsque vous tapez rm le rm -i la commande sera exécutée.
La deuxième méthode vous permet de créer un fichier d'alias séparé, vous n'aurez donc pas à les mettre dans .bashrc, mais vers un fichier de votre choix. Tout d'abord, modifiez votre ~/.bashrc archivez et ajoutez les lignes suivantes si elles n'existent pas déjà, ou décommentez-les si elles existent:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Enregistrez-le et fermez le fichier. Après cela, tout ce que vous avez à faire est de créer un ~/.bash_aliases classez et ajoutez-y vos alias, avec le même format que celui spécifié dans la première méthode.
Il me semble que votre seul problème est simplement d'essayer d'exécuter .bashrc quand il 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" par la commande:
source ~/.bashrc
Sinon, il créera simplement un nouveau shell, exécutera le fichier dans l'environnement du nouveau shell, puis supprimera cet environnement à sa sortie, perdant ainsi votre modification. En sourcant le script, il s'exécute dans le shell actuel, il restera donc en vigueur.
Je suppose que la deuxième erreur était due au fait que bash_aliases n'existe pas. Ce n'est pas obligatoire, il est simplement 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 pour cela dans .bashrc:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Cela indique que si le fichier~/.bash_aliases existe, puis exécutez-le.
C'est un exemple que je cherchais, un moyen de taper quelques lettres sur le terminal ("vps") pour me connecter à distance à un serveur et activer le transfert X11 afin que je puisse exécuter des applications graphiques comme "gedit" sur le réseau.
>>Quelle que soit la commande command / aliased, cette méthode avec l'instruction echo, les guillemets et le symbole permettant d'ajouter la sortie d'une commande à un file () fonctionne pour moi. Remplacez simplement ma commande par la commande alias dont vous avez besoin et entrez-la dans votre terminal.
J'ai écrit cette fonction utile pour créer rapidement un nouvel alias, puis écrire la définition de l'alias sur ~/.bash_aliases(s'il existe) ou ~/.bashrc.
CONSEIL: Garantir ~/.bash_aliases existe et est exécuté dans ~/.bashrc.
# -----------------------------------# Create a new permanent bash alias## @param $1 - name# @param $2 - definition# -----------------------------------new-alias () { if [ -z "$1" ]; then echo "alias name:" && read NAME else NAME=$1 fi if alias $NAME 2 > /dev/null > /dev/null; then echo "alias $NAME already exists - continue [y/n]?" && read YN case $YN in [Yy]* ) echo "okay, let's proceed.";; [Nn]* ) return;; * ) echo "invalid response." && return;; esac fi if [ -z "$2" ]; then echo "alias definition:" && read DEFINTION else DEFINTION="$2" fi if [ -f ~/.bash_aliases ]; then echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases else echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc fi alias $NAME="$DEFINTION"}
si vous utilisez ruby, vous pouvez l'installer en utilisant rubygem.
gem install aka2
utilisation
aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld" #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people
le rubygem source automatiquement votre fichier dot afin que vous n'en ayez pas besoin. Vérifiez-le.
Maintenant, vous pouvez taper cp $ngse/my_file /destination_directory/destination_filename pour copier un fichier du répertoire activé par sites vers une destination.
Rien de tout cela ne fonctionnera jusqu'à ce que vous fassiez quelque chose comme ça:
exec bash
Vous pouvez également vous reconnecter ou redémarrer.
Comme je me souviens, bashrc a, ou avait, une ligne suggérant de ne pas l'utiliser directement pour les alias. Le solution est d'utiliser un fichier(s) externe (s). Le foo et bar des alias ont été ajoutés, mais pour ajouter baz le bashrc le fichier doit être "sourcé" (ou, il suffit d'ouvrir un nouveau terminal). Exemple as:
maintenant, le baz alias fonctionne. Je viens tout juste de réaliser qu'une réponse précédente avait mentionner cette technique, mais ils avaient enterré le lede.