J'ai ceci comme dernière ligne dans mon .profile:
alias gl="cd /home/jrenner/glances/glances"
pourtant, même après le redémarrage, je reçois une commande introuvable lors de la frappe de gl. Qu'est-ce qui se passe? Je suis connecté en tant qu'utilisateur correct.
command-line
bash
alias
.profile
talloaktrees
la source
la source
gl
? Le terminal? L'interface graphique?.profile
ne fonctionnent dans aucun contexte que j'ai essayé: les connexions à la console de texte, les terminaux graphiques ou autre chose, même si les variables environnementales du même fichier fonctionnent.Réponses:
Je suis presque sûr que l'idée de lpanebr fonctionnera, mais voici une solution plus élégante. Faites cette commande d'alias dans
.bashrc
C'est comme ça que je le fais, ou certaines personnes préfèrent ajouter un fichier dédié à l'alias. Appelez-le.alias
ou peu importe et ajoutez.alias
à votre.bashrc
J'aimerais pouvoir faire un formatage comme @lpanelbr. Je me demande s'il y a un wiki?
la source
.bashrc
fonctionne tout en.profile
ne fonctionne pas? De plus, pour quelle raison avez-vous choisi de nommer le fichier d'alias.allias
plutôt que.alias
?Il existe deux raisons connexes pour lesquelles les alias ne fonctionnent pas toujours lorsqu'ils sont placés dans le
.profile
fichier. La première est que le fichier.profile
(ou.bash_profile
) n'est exécuté que pour un shell de connexion. Si vous lancez bash dans une fenêtre de terminal sous X, votre émulateur de terminal (par exemple gnome-termanl) n'exécute probablement pas bash comme shell de connexion. [La plupart ont une option pour changer cela si vous le souhaitez mais la valeur par défaut (pour gnome-termal de toute façon) n'est pas de l'exécuter en tant que shell de connexion.]Le shell sera un shell interactif et
.bashrc
sera donc exécuté.Cependant, normalement bash a été exécuté en tant que shell de connexion lors du démarrage de la session X. Donc, s'il y a des commandes d'alias,
.profile
elles auront été exécutées avec la définition de variables d'environnement comme PATH, etc. Lorsqu'une fenêtre de terminal est ouverte, une nouvelle instance de bash est exécutée pour demander et exécuter des commandes dans cette fenêtre de terminal. Contrairement aux variables d'environnement, les alias ne peuvent pas être exportés d'une instance de bash vers une nouvelle démarrée par celui-ci. Les alias ne sont donc pas transmis au nouveau shell.Pour voir cela, essayez cette expérience:
Notez que
.bashrc
n'est pas exécuté par bash lorsqu'il est démarré en tant que shell de connexion. Donc, mettre vos alias là-bas ne fonctionnera pas toujours à moins que votre.bashrc
source ne provienne de vous.profile
, ce qui est une pratique très courante.la source
source .bashrc
de.bash_profile
permis à l'ensemble des alias dans .bashrc au travail.~/.bash_aliases
. C'est la bonne façon de procéder. (lire le fichier .bashrc pour plus de détails).Si vous utilisez bash (
echo $SHELL
) comme interpréteur de shell, je pense qu'il est préférable (ou peut-être la seule façon) de définir votre propre fonction CD.Modifiez votre
.bashrc
fichier et ajoutez ce qui suit à la fin:Vous pouvez également l'étendre ainsi:
et passez directement à un sous-répertoire et répertoriez son contenu.
la source
alias
directive placée dans le.profile
fichier échoue.C'était un problème avec mon serveur. Simple
source .profile
n'a pas fonctionné pour une raison quelconquela source
La bonne façon de le faire dans Ubuntu est d'ajouter votre alias
~/.bash_aliases
. Créez le fichier s'il n'existe pas.Ce fichier (s'il est présent) est appelé par défaut
~/.bashrc
, et l'alias sera également disponible dans vos émulateurs de terminal.la source