21 votes

Comment définir de manière persistante des alias dans le terminal

Je veux ajouter des alias à mon environnement pour qu'ils soient disponibles dans toutes les instances du terminal.

J'ai obtenu cette réponse:

Oui, vous pouvez le mettre dans votre .bashrc, .bash_profile ou .profile. Sur certains systèmes, les scripts d'initialisation de shell sourcent également .bash_aliases ou .aliases donc si l'un de ces fichiers existe sur votre système, il peut être judicieux de les utiliser.

Mais je ne trouve aucun de ces fichiers.

(J'ai configuré OS X pour voir les fichiers cachés, et pourtant je ne vois aucun des 4 fichiers mentionnés ci-dessus.)

0 votes

Les alias ne fonctionnent que dans le terminal (dans Terminal), que voulez-vous dire exactement en ajoutant des alias à votre environnement OS X? Voulez-vous rendre un alias accessible à tous les utilisateurs?

0 votes

Je voulais dire qu'il serait défini pour chaque instance de terminal que j'ouvre à l'avenir

0 votes

J'ai annulé votre édition car elle a changé l'objet de la question. Si vous cherchez toujours une réponse sur la façon d'ajouter des alias à zsh, veuillez poser une nouvelle question.

27voto

Fuzzy Purple Monkey Points 702

Si vous utilisez bash, ajoutez les commandes alias à ~/.bashrc et enregistrez une ligne comme ceci dans ~/.bash_profile:

. ~/.bashrc

Lorsque bash est invoqué en tant que shell interactif non-login, il lit .bashrc mais pas .bash_profile. Lorsque bash est invoqué en tant que shell interactif login, il lit .bash_profile mais pas .bashrc.

Terminal et iTerm ouvrent par défaut de nouveaux shells en tant que shells de login, donc de nombreux utilisateurs OS X utilisent simplement .bash_profile comme leur fichier de configuration personnel. Par exemple, tmux et le mode shell dans Emacs ouvrent de nouveaux shells en tant que shells non-login cependant.

.profile est également lu par d'autres shells comme ksh. Si à la fois .bash_profile et .profile existent, bash ne lit que .bash_profile lorsqu'il est invoqué en tant que shell interactif login.

Voir https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html pour plus d'informations.

4 votes

@EladBenda Si vous utilisez zsh, ajoutez les commandes d'alias à ~/.zshrc. ~/.zshrc est lu à la fois par les shells (interactifs) non-login et login, donc vous n'avez pas besoin de le sourcer depuis ~/.zprofile.

0 votes

A toujours voulu savoir la différence entre .bash_profile et .bashrc, maintenant je sais. Merci.

0 votes

Une meilleure option est de conserver les alias dans un fichier appelé ~/.aliases si vous utilisez oh-my-zsh. Si ce fichier n'existe pas, il peut être ajouté dans le dossier principal et serait un fichier caché.

6voto

mike Points 1801

Ouvrez une nouvelle fenêtre de Terminal et allez dans votre répertoire personnel (il suffit de taper cd et d'appuyer sur Entrée).

Après cela, tapez ls .bash* et aussi ls .profile (veuillez noter que chacun de ces noms de fichier commence par un point). Si vous avez ces fichiers (et vous devriez avoir au moins celui de .profile), alors vous devez les éditer et y ajouter vos alias. J'utilise VI (ou VIM) pour éditer ces fichiers, mais vous pourriez utiliser un autre éditeur (en fait, taper dans votre fenêtre de Terminal open .bash_profile l'ouvrira dans TextEditor, qui peut être un peu plus convivial si vous n'êtes pas familier avec VI). Si, pour une raison quelconque, vous n'avez aucun de ces fichiers, alors créez-en un nouveau (et appelez-le .bashrc), ajoutez vos lignes d'alias dedans (ce sera donc une commande par ligne, comme si vous les tapiez dans le shell) et ensuite enregistrez le fichier. Ensuite, vous pouvez créer des liens symboliques vers .bash_profile et .profile en utilisant ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Ce que je fais habituellement, c'est que je fais de .bashrc et .bash_profile des liens symboliques vers .profile et je n'ai ainsi à me soucier que d'un seul fichier.

La différence entre ces fichiers est que bash sourcera des fichiers différents en fonction de s'il a été lancé en tant que shell de connexion (habituellement un processus de connexion démarrera le shell en tant que shell de connexion) ou simplement en tant que shell interactif (mais non de connexion), ou un shell non interactif. Avoir ces trois fichiers essentiellement identiques me donne un environnement cohérent quel que soit le mode de démarrage de bash.

Vous obtiendrez plus d'informations en faisant man bash, mais soyez prêt, c'est une longue page de man. Vous pourrez voir lequel des trois fichiers (.bashrc, .profile et .bash_profile) est sourcé en fonction du mode dans lequel bash a été démarré.

J'espère que cela vous aidera - sinon, n'hésitez pas à me contacter.

3voto

lang2 Points 1051

Entrez les commandes suivantes dans le Terminal :

cd /etc
sudo vi bashrc

ajoutez le code suivant :

alias ll="ls -lrt"

Enfin, redémarrez le Terminal.

2voto

cmcculloh Points 11040

Si vous avez besoin de cette machine en largeur, vous devez regarder dans le dossier /etc. Cependant, ils pourraient ne pas exister par défaut, auquel cas vous devez simplement les créer dans le dossier ci-dessus et redémarrer le terminal. Vous devrez très probablement utiliser sudo pour les créer car le dossier /etc est détenu par root.

Si vous avez besoin de cela pour chaque terminal que vous ouvrez, vous n'avez pas besoin de le faire en largeur. Vous pouvez créer ces fichiers dans votre propre dossier personnel et le terminal les lira à chaque fois que vous démarrez une session de terminal.

Comme mentionné dans les commentaires, vous ne pourrez généralement les voir qu'en utilisant le terminal et en utilisant ls -lha.

0voto

Blerta Points 1199

Si vous avez ruby installé, consultez ce script ruby https://github.com/ytbryan/aka

Le script fournit des fonctionnalités telles que la persistance et la source automatique du fichier dot. Vous pouvez gérer des alias via le terminal sans interrompre votre flux de travail et ouvrir un éditeur de texte.

Avertissement : J'ai écrit ce script et l'utilise tous les jours. Faites-moi savoir s'il y a un bug/idée. :)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X