Come faccio a creare un alias Bash?


189

Sono su OSX e devo inserire qualcosa del genere, alias blah="/usr/bin/blah"in un file di configurazione, ma non so dove sia il file di configurazione.


Tangenzialmente, questo particolare alias è sostanzialmente ridondante a meno che non si stia specificatamente cercando di ignorare la PATHrisoluzione della shell per questo comando specifico. Se /usr/binè nel tuo PATH(che in realtà deve essere), allora blahcorrerà da lì bene anche senza questo alias, a meno che non ci sia anche dire /usr/local/bin/blahed /usr/local/binè prima /usr/binnel tuo PATH ma vuoi comunque preferire /usr/bin/blahe non puoi per qualche motivo semplicemente rimuovere o rinominare /usr/local/bin/blah.
triplo

Anche in questo caso si tratta di una soluzione dubbia e hacker che dovrebbe essere accompagnata da un grosso e brutto commento con un messaggio di avvertimento che ti dice come questo ti morderà l'addome formosamente inferiore, e un altro che dice "Te l'avevo detto" per ogni volta che è successo.
triplo il

1
Per tutti gli amanti dell'automazione: aggiungo personalmente addAlias() { echo "alias $1='$2' " >> ~/.bash_profile al mio bash_profile e poi lo fonte e corro addAlias hi 'echo "hi" '. Profilo bash di origine e digitare hiper vederlo.
devssh,

Risposte:


268

È possibile aggiungere un aliaso functionnel file di script di avvio. Di solito questo è .bashrc, .bash_logino .profilefile nella tua home directory.

Dal momento che questi file sono nascosti, dovrai farlo ls -aper elencarli. Se non ne hai uno puoi crearne uno.


Se ricordo bene, quando avevo comprato il mio Mac, il .bash_loginfile non c'era. Ho dovuto creare per me stesso in modo che ho potuto mettere prompt info, alias, functions, ecc in esso.

Ecco i passaggi se desideri crearne uno:

  1. Avvia Terminale
  2. Digitare cd ~/per andare alla cartella principale
  3. Digita touch .bash_profileper creare il tuo nuovo file.
  4. Modifica .bash_profilecon il tuo editor preferito (oppure puoi semplicemente digitare open -e .bash_profileper aprirlo in TextEdit.
  5. Digitare . .bash_profileper ricaricare .bash_profilee aggiornare tutti gli alias aggiunti.

8
Fantastico, grazie @jaypal! Il comando è source .bash_profileun'alternativa al passaggio 5?
Ian Campbell,

10
Sì sul mio OSX Mavericks non c'era nessun .bash_profilenella mia home directory. Crearlo, aggiungere l'alias e quindi avviarlo con il . .bash_profilecomando funzionava.
Bradley Flood,

1
.bash_profile funziona per me! :) .bashrc non su El Capitan
Parth

5
Su OSX El Capitan .bash_profilefunziona. Se non si carica automaticamente quando si apre una finestra del terminale, è probabilmente perché è stato creato senza autorizzazione eseguibile. Questo comando lo risolverà e dovrebbe caricarsi automaticamente per le sessioni future:chmod u+x .bash_profile
Mischinab

1
Il profilo .bash_profile è bloccato come posso aggiornare questo file
gupta il


31

Apro zshrc con sublime e lo modifico.

subl .zshrc

E aggiungi questo su sublime:

alias blah="/usr/bin/blah"

Esegui questo nel terminale:

source ~/.bashrc

Fatto.


4
Questo è confuso. Se la tua shell è Bash, molte altre risposte in questa pagina sono più dettagliate e utili. Se usi Zsh invece di Bash, ovviamente source .zshrcalla fine dovresti caricare le modifiche apportate all'istanza della shell attualmente in esecuzione.
triplo

18

Nel mio .bashrcfile c'erano le seguenti righe per impostazione predefinita:

# 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

Quindi, nella mia piattaforma .bash_aliasesè il file utilizzato per gli alias per impostazione predefinita (e quello che uso). Non sono un utente di OS X, ma immagino che se apri il tuo .bashrcfile, sarai in grado di identificare qual è il file comunemente usato per gli alias nella tua piattaforma.


Se il profilo non si carica automaticamente quando si apre una finestra del terminale, probabilmente manca l'autorizzazione eseguibile. Questo comando lo risolverà e dovrebbe caricarsi automaticamente per le sessioni future:chmod u+x .bash_profile
Mischinab

1
@Mischinab No, il file deve solo essere leggibile affinché Bash possa leggerlo come file di configurazione. Renderlo eseguibile è tecnicamente innocuo ma non necessario. Lo scoraggerei per motivi non tecnici (potresti finire per confondere te stesso e / o gli altri).
triplo

9
cd /etc
sudo vi bashrc

Aggiungi il seguente like:

alias ll="ls -lrt"

Infine riavviare Terminal.


1
Dopo aver aggiunto l'alias. Esegui 'source' sul tuo file '.bash_profile'. Esempio: source ~ / .bash_profile (comando che attiva / ricarica gli alias bash)
UIResponder

8

Funziona per me su macOS Majave

Puoi fare alcuni semplici passaggi:

1) terminale aperto

2) sudo nano /.bash_profile

3) aggiungi i tuoi alias, come esempio:

# 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

Fatto. Usa e divertiti!


7

Il file di configurazione per script e programmi è ~/.bashrce il file di configurazione che viene caricato quando si utilizza Terminal è ~/.bash_login.

Penso che il modo migliore sia avere tutto dentro ~/.bashrc.

Per la tua domanda specifica basta inserire (questo sovrascriverà qualsiasi ~ / .bashrc esistente):

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

nel Terminale e ~/.bashrcverrà creato un file con i tuoi nuovi alleati. Dopodiché basta modificare il file per aggiungere nuovi alias, funzioni, impostazioni ecc.


5
Non dovresti usarlo >>invece >che in modo che si accosti al file piuttosto che sostituire tutto in esso?
Jonny,

6
  1. Vai a casa
  2. Apri .bashrc
  3. Crea un alias in fondo al file

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. Salva il file

  5. sorgente .bashrc

    source ~/.bashrc
  6. Apri il terminale (Ctrl + Alt + T) e digita cdDesktop e premi invio


5

MacOS Catalina e versioni successive

Apple ha appena cambiato la shell predefinita in zsh , quindi i file di configurazione includono ~/.zshenve ~/.zshrc. Questo è proprio come ~/.bashrc, ma per zsh. Basta modificare il file e aggiungere ciò di cui hai bisogno; dovrebbe essere reperito ogni volta che si apre una nuova finestra del terminale:

nano ~/.zshenv alias py=python

Quindi fai ctrl + x, y, quindi inserisci per salvare.

Questo file sembra essere eseguito indipendentemente da cosa (login, non login o script), quindi sembra migliore del ~/.zshrcfile.

High Sierra e precedenti

La shell predefinita è bash ed è possibile modificare il file ~/.bash_profilee aggiungere alias:

nano ~/.bash_profile alias py=python

Quindi ctrl + x, y e invio per salvare. Vedi questo post per ulteriori informazioni su queste configurazioni. È un po 'meglio configurarlo con il tuo alias in ~/.bashrc, quindi fonte ~/.bashrcda ~/.bash_profile. In ~/.bash_profileesso sembrerebbe quindi:

source ~/.bashrc


Questo dovrebbe essere più alto ora che Catalina è il Mac OS più aggiornato
Cauder l'

4

Se inserisci il blah="/usr/bin/blah"tuo ~/.bashrc, puoi usare $blahla shell di login come sostituto della digitazione/usr/bin/blah


Il simbolo del dollaro non è assolutamente necessario, utile o corretto qui.
triplo

3

Probabilmente vuoi modificare il .bashrcfile nella tua home directory.


1

crea un bash_profile nella tua root utente - es

/user/username/.bash_profile

apri il file

vim ~ / .bash_profile

aggiungi alias come ex. (salva ed esci)

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

nel nuovo terminale basta digitare mydir - dovrebbe aprirsi

/user/username/Documents/dirname/anotherdir

0

Penso che sia il modo corretto:

1) Vai a teminal. open ~/.bashrc. Aggiungi se non esiste

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

2) open ~/.bash_aliases. Se non esiste:touch ~/.bash_aliases && open ~/.bash_aliases

3) Per aggiungere un nuovo alias piuttosto
- modifica il .bash_aliasesfile e riavvia terminale o stampa source ~/.bash_aliases
- stampa echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliasesdove si trova il tuo alias alias clr='clear'.

4) Aggiungi riga source ~/.bash_aliasesal ~/.bash_profilefile. Deve caricare gli alias in ogni init del terminale.


0

Per utenti macOS Catalina:

Passaggio 1: crea o aggiorna il file .zshrc

vi ~/.zshrc

Passaggio 2: aggiungi la tua linea alias

alias blah="/usr/bin/blah"

Passaggio 3: sorgente .zshrc

source ~/.zshrc 

Passaggio 4: Verifica di essere alias, digitando alias sul prompt dei comandi

alias

0

Per creare un collegamento alias permanente, inseriscilo nel file .bash_profile e punta il file .bashrc nel file .bash_profile. Segui questi passaggi (sto creando un comando alias chiamato bnode per eseguire il transpiler babel sul codice ES6):

  1. Vai al prompt dei comandi del terminale e digita "cd" (questo ti porterà alla home directory. Nota: anche se i tuoi file di programmazione potrebbero trovarsi sul tuo "D: drive", i tuoi file ".bash" potrebbero trovarsi sul tuo " C: guidare ")
  2. Per vedere la posizione della home directory, digita "pwd" (questo ti mostrerà il percorso della home directory e dove si trovano probabilmente i file .bash)
  3. Per vedere tutti i punti "." file nella home directory, digitare "ls -la" (questo mostrerà TUTTI i file inclusi i punti nascosti ".")
  4. Vedrai 2 file: ".bash_profile" e ".bashrc"
  5. Apri il file .bashrc in VS Code Editor o nel tuo IDE e inserisci "source ~ / .bash_profile" nella prima riga (per puntare il file .bashrc a .bash_profile)
  6. Apri il file .bash_profile in VS Code Editor e inserisci "alias bnode = '. / Node_modules / .bin / babel-node'" (per creare un collegamento permanente al bnode da eseguire come comando bash)
  7. Salva e chiudi entrambi i file
  8. Ora apri il file che vuoi eseguire (index.js) e apri nel prompt dei comandi del terminale ed esegui il file usando il comando "bnode index.js"
  9. Ora il tuo file index.js verrà eseguito ma prima di creare l'alias bnode nel file .bash_profile otterrai l'errore "bash: comando bnode non trovato" e non riconoscerebbe e darebbe errori su alcuni codici ES6.
  10. Link utile per conoscere dotfile: https://dotfiles.github.io/

Spero che aiuti! In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.