Comment créer un alias Bash?

189

Je suis sous OSX et j'ai besoin de mettre quelque chose comme ça, alias blah="/usr/bin/blah"dans un fichier de configuration mais je ne sais pas où se trouve le fichier de configuration.

fantaisie
la source
Tangentiellement, cet alias particulier est fondamentalement redondant à moins que vous n'essayiez spécifiquement de remplacer la PATHrésolution du shell pour cette commande spécifique. Si /usr/binest dans votre PATH(ce qui doit vraiment l'être), alors blahil fonctionnera très bien sans cet alias, à moins qu'il n'y ait aussi dire /usr/local/bin/blahet /usr/local/binest avant /usr/bindans votre PATH mais que vous voulez toujours préférer /usr/bin/blahet ne pouvez pas simplement supprimer ou renommer pour une raison quelconque /usr/local/bin/blah.
tripleee
Même dans ce cas, c'est une solution douteuse et hackish qui devrait être accompagnée d'un gros commentaire laid avec un message d'avertissement vous indiquant comment cela mordra votre bas-ventre galbé, et un autre disant "Je vous l'ai dit" à chaque fois que cela se produit.
tripleee
1
Pour tous les amateurs d'automatisation: j'ajoute personnellement addAlias() { echo "alias $1='$2' " >> ~/.bash_profile à mon bash_profile, puis je le recherche et le lance addAlias hi 'echo "hi" '. Profil bash source et tapez hipour le voir.
devssh

Réponses:

268

Vous pouvez ajouter un aliasou un functiondans votre fichier de script de démarrage. Habituellement , cela est .bashrc, .bash_loginou .profilefichier dans votre répertoire personnel.

Puisque ces fichiers sont cachés, vous devrez faire un ls -apour les lister. Si vous n'en avez pas, vous pouvez en créer un.


Si je me souviens bien, lorsque j'ai acheté mon Mac, le .bash_loginfichier n'était pas là. Je devais créer pour moi - même pour que je puisse mettre prompt info, alias, functions, etc. en elle.

Voici les étapes si vous souhaitez en créer un:

  1. Démarrer le terminal
  2. Tapez cd ~/pour accéder à votre dossier personnel
  3. Tapez touch .bash_profilepour créer votre nouveau fichier.
  4. Modifiez .bash_profileavec votre éditeur préféré (ou vous pouvez simplement taper open -e .bash_profilepour l'ouvrir dans TextEdit.
  5. Tapez . .bash_profilepour recharger .bash_profileet mettre à jour tout alias que vous ajoutez.
jaypal singh
la source
8
Génial, merci @jaypal! La commande est-elle source .bash_profileune alternative à l'étape 5?
Ian Campbell
10
Oui sur mon OSX Mavericks il n'y avait pas .bash_profiledans mon répertoire personnel. Le créer, y ajouter l'alias, puis le lancer avec la . .bash_profilecommande a fonctionné.
Bradley Flood
1
.bash_profile fonctionne pour moi! :) .bashrc n'a pas fait sur El Capitan
Parth
5
Sur OSX, El Capitan .bash_profilefonctionne. S'il ne se charge pas automatiquement lorsque vous ouvrez une fenêtre de terminal, c'est probablement parce qu'il a été créé sans autorisation exécutable. Cette commande le corrigera et devrait se charger automatiquement pour les sessions futures:chmod u+x .bash_profile
Mischinab
1
Le profil .bash_profile est verrouillé Comment puis-je mettre à jour ce fichier
amit gupta
31

Je viens d'ouvrir zshrc avec sublime et de le modifier.

subl .zshrc

Et ajoutez ceci sur sublime:

alias blah="/usr/bin/blah"

Exécutez ceci dans le terminal:

source ~/.bashrc

Terminé.

Gui Yoshi
la source
4
C'est confus. Si votre shell est Bash, de nombreuses autres réponses sur cette page sont plus détaillées et utiles. Si vous utilisez Zsh au lieu de Bash, vous devriez évidemment source .zshrcà la fin charger les modifications que vous avez apportées à votre instance de shell en cours d'exécution.
tripleee le
18

Dans mon .bashrcdossier, les lignes suivantes étaient présentes par défaut:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

Par conséquent, dans ma plate .bash_aliases- forme est le fichier utilisé par défaut pour les alias (et celui que j'utilise). Je ne suis pas un utilisateur d'OS X, mais je suppose que si vous ouvrez votre .bashrcfichier, vous serez en mesure d'identifier quel est le fichier couramment utilisé pour les alias sur votre plate-forme.

jcollado
la source
Si le profil ne se charge pas automatiquement lorsque vous ouvrez une fenêtre de terminal, il manque probablement l'autorisation exécutable. Cette commande le corrigera et elle devrait se charger automatiquement pour les sessions futures:chmod u+x .bash_profile
Mischinab
1
@Mischinab Non, le fichier a juste besoin d'être lisible pour que Bash puisse le lire comme son fichier de configuration. Le rendre exécutable est techniquement inoffensif mais inutile. Je le découragerais pour des raisons non techniques (vous pourriez finir par confondre vous-même et / ou les autres).
tripleee
9
cd /etc
sudo vi bashrc

Ajoutez ce qui suit comme:

alias ll="ls -lrt"

Enfin, redémarrez le terminal.

user3613987
la source
1
Après avoir ajouté un alias. Exécutez 'source' sur votre fichier '.bash_profile'. Ex: source ~ / .bash_profile (commande qui active / recharge les alias bash)
UIResponder
8

Cela fonctionne pour moi sur macOS Majave

Vous pouvez faire quelques étapes simples:

1) terminal ouvert

2) sudo nano /.bash_profile

3) ajoutez vos alias, par exemple:

# some aliases
alias ll='ls -alF'
alias la='ls -A'
alias eb="sudo nano ~/.bash_profile && source ~/.bash_profile"
#docker aliases
alias d='docker'
alias dc='docker-compose'
alias dnax="docker rm $(docker ps -aq)"
#git aliases
alias g='git'
alias new="git checkout -b"
alias last="git log -2"
alias gg='git status'
alias lg="git log --pretty=format:'%h was %an, %ar, message: %s' --graph"
alias nah="git reset --hard && git clean -df"
alias squash="git rebase -i HEAD~2"

4) source /.bash_profile

Terminé. Utilisez et profitez!

ultimatum
la source
7

Le fichier de configuration pour les scripts et les programmes est ~/.bashrcet le fichier de configuration qui est chargé lorsque vous utilisez Terminal est ~/.bash_login.

Je pense que le meilleur moyen est de tout avoir ~/.bashrc.

Pour votre question spécifique, entrez simplement (cela écrasera tout ~ / .bashrc existant):

echo "alias blah=\"/usr/bin/blah\"" >>~/.bashrc

dans le Terminal et un ~/.bashrcfichier sera créé avec vos nouvelles alises. Après cela, modifiez simplement le fichier pour ajouter de nouveaux alias, fonctions, paramètres, etc.

kmikael
la source
5
Ne devriez-vous pas utiliser à la >>place de >pour qu'il s'ajoute au fichier plutôt que de tout remplacer?
Jonny
6
  1. Aller à la maison
  2. Ouvrez .bashrc
  3. Créer un alias au bas du fichier

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. Enregistrez le fichier

  5. source .bashrc

    source ~/.bashrc
  6. Ouvrez le terminal (Ctrl + Alt + T) et tapez cdDesktop et appuyez sur Entrée

Pranav VR
la source
5

MacOS Catalina et supérieur

Apple vient de basculer son shell par défaut sur zsh , donc les fichiers de configuration incluent ~/.zshenvet ~/.zshrc. C'est juste comme ~/.bashrc, mais pour zsh. Modifiez simplement le fichier et ajoutez ce dont vous avez besoin; il doit provenir chaque fois que vous ouvrez une nouvelle fenêtre de terminal:

nano ~/.zshenv alias py=python

Puis faites ctrl + x, y, puis entrez pour enregistrer.

Ce fichier semble être exécuté quoi qu'il arrive (connexion, non-connexion ou script), il semble donc meilleur que le ~/.zshrcfichier.

High Sierra et plus tôt

Le shell par défaut est bash, et vous pouvez modifier le fichier ~/.bash_profileet ajouter des alias:

nano ~/.bash_profile alias py=python

Puis ctrl + x, y et entrez pour enregistrer. Voir cet article pour en savoir plus sur ces configurations. C'est un peu mieux de le configurer avec votre alias dedans ~/.bashrc, puis source à ~/.bashrcpartir de ~/.bash_profile. Dans ~/.bash_profilece doit ressembler à :

source ~/.bashrc

mots pour
la source
Cela devrait être plus élevé maintenant que Catalina est le Mac OS le plus à jour
Cauder
4

Si vous mettez blah="/usr/bin/blah"votre, ~/.bashrcvous pouvez l'utiliser $blahdans votre shell de connexion au lieu de taper/usr/bin/blah

SiegeX
la source
Le signe dollar n'est absolument pas nécessaire, utile ou correct ici.
tripleee le
3

Vous souhaitez probablement éditer le .bashrcfichier dans votre répertoire personnel.

Ghoti
la source
1

créer un bash_profile à la racine de votre utilisateur - ex

/user/username/.bash_profile

fichier ouvert

vim ~ / .bash_profile

ajouter un alias comme ex. (sauvegarder et quitter)

alias mydir="cd ~/Documents/dirname/anotherdir"

dans le nouveau terminal, tapez simplement mydir - il devrait s'ouvrir

/user/username/Documents/dirname/anotherdir
Pravin
la source
0

Je pense que c'est la bonne façon:

1) Allez au teminal. open ~/.bashrc. Ajouter s'il n'existe pas

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

2) open ~/.bash_aliases. Si non:touch ~/.bash_aliases && open ~/.bash_aliases

3) Pour ajouter un nouvel alias plutôt
- éditez le .bash_aliasesfichier et redémarrez le terminal ou imprimez source ~/.bash_aliases
- imprimez echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliasesoù se trouve votre alias alias clr='clear'.

4) Ajoutez une ligne source ~/.bash_aliasesau ~/.bash_profilefichier. Il a besoin de charger des alias dans chaque init du terminal.

Nik Kov
la source
0

Pour les utilisateurs de macOS Catalina:

Étape 1: créer ou mettre à jour le fichier .zshrc

vi ~/.zshrc

Étape 2: ajoutez votre ligne d'alias

alias blah="/usr/bin/blah"

Étape 3: Source .zshrc

source ~/.zshrc 

Étape 4: Vérifiez que vous êtes alias, en tapant alias sur l'invite de commande

alias
Shirish Singh
la source
0

Pour créer un raccourci d'alias permanent, placez-le dans le fichier .bash_profile et pointez le fichier .bashrc vers le fichier .bash_profile. Suivez ces étapes (je crée une commande d'alias appelée bnode pour exécuter babel transpiler sur le code ES6):

  1. Allez à l'invite de commande du terminal et tapez «cd» (cela vous mènera au répertoire de base. Remarque: même si vos fichiers de programmation peuvent être situés sur votre lecteur «D:», vos fichiers «.bash» peuvent se trouver sur votre « C: lecteur ")
  2. Pour voir l'emplacement du répertoire personnel, tapez «pwd» (cela vous montrera le chemin du répertoire personnel et où se trouvent probablement les fichiers .bash)
  3. Pour voir tous les points "." fichiers dans le répertoire personnel, tapez «ls -la» (cela affichera TOUS les fichiers, y compris les fichiers à point caché «.»)
  4. Vous verrez 2 fichiers: «.bash_profile» et «.bashrc»
  5. Ouvrez le fichier .bashrc dans VS Code Editor ou dans votre IDE et entrez «source ~ / .bash_profile» en première ligne (pour pointer le fichier .bashrc vers .bash_profile)
  6. Ouvrez le fichier .bash_profile dans VS Code Editor et entrez «alias bnode = '. / Node_modules / .bin / babel-node'» (pour créer un raccourci bnode permanent à exécuter en tant que commande bash)
  7. Enregistrez et fermez les deux fichiers
  8. Ouvrez maintenant le fichier que vous souhaitez exécuter (index.js) et ouvrez l'invite de commande du terminal et exécutez le fichier à l'aide de la commande "bnode index.js"
  9. Maintenant, votre fichier index.js s'exécutera mais avant de créer un alias bnode dans le fichier .bash_profile, vous obtiendrez l'erreur "bash: bnode command not found" et il ne reconnaîtra pas et ne donnera pas d'erreurs sur certains codes ES6.
  10. Lien utile pour en savoir plus sur les dotfiles: https://dotfiles.github.io/

J'espère que ça aide! Bonne chance!

Kean Amaral
la source