Jak utworzyć alias Bash?


189

Korzystam z OSX i muszę umieścić coś takiego alias blah="/usr/bin/blah"w pliku konfiguracyjnym, ale nie wiem, gdzie jest plik konfiguracyjny.


Stycznie ten konkretny alias jest w zasadzie zbędny, chyba że próbujesz specjalnie przesłonić PATHrozdzielczość powłoki dla tego konkretnego polecenia. Jeśli /usr/binjest w twoim PATH(a tak naprawdę musi być), to również blahbędzie działał dobrze bez tego aliasu, chyba że jest też powiedz /usr/local/bin/blahi /usr/local/binjest przed /usr/bintobą, PATH ale nadal wolisz /usr/bin/blahi z jakiegoś powodu nie możesz po prostu usunąć ani zmienić nazwy /usr/local/bin/blah.
tripleee

Nawet wtedy jest to wątpliwe, hackerskie rozwiązanie, które powinno zawierać duży, gruby, brzydki komentarz z ostrzeżeniem informującym, jak to ugryzie twoją zgrabną podbrzusz, i innym słowem „powiedziałem ci” za każdym razem, gdy tak się dzieje.
tripleee

1
Dla wszystkich miłośników automatyzacji: osobiście dodaję addAlias() { echo "alias $1='$2' " >> ~/.bash_profile mój profil bash, a następnie go pozyskuję i uruchamiam addAlias hi 'echo "hi" '. Źródło profilu bash i typ, hiaby go zobaczyć.
devssh

Odpowiedzi:


268

Możesz dodać aliaslub functionw swoim pliku skryptu uruchamiania. Zazwyczaj jest to .bashrc, .bash_loginczy .profileplik w katalogu domowym.

Ponieważ te pliki są ukryte, musisz zrobić, ls -aaby je wyświetlić. Jeśli nie masz, możesz go utworzyć.


Jeśli dobrze pamiętam, kiedy kupiłem komputer Mac, .bash_loginpliku nie było. Musiałem stworzyć dla siebie tak, że mogę umieścić prompt info, alias, functions, itd. W nim.

Oto kroki, jeśli chcesz je utworzyć:

  1. Uruchom terminal
  2. Wpisz, cd ~/aby przejść do folderu domowego
  3. Wpisz, touch .bash_profileaby utworzyć nowy plik.
  4. Edytuj za .bash_profilepomocą swojego ulubionego edytora (lub możesz po prostu wpisać, open -e .bash_profileaby otworzyć go w TextEdit.
  5. Wpisz, . .bash_profileaby ponownie załadować .bash_profilei zaktualizować dowolny dodany alias.

8
Wspaniale, dzięki @jaypal! Czy polecenie source .bash_profilejest alternatywą dla kroku 5?
Ian Campbell,

10
Tak, w moim systemie OSX Mavericks nie było .bash_profilew moim domu reż. Utworzenie go, dodanie do niego aliasu, a następnie zainicjowanie go za pomocą . .bash_profilepolecenia działało.
Bradley Flood

1
.bash_profile działa dla mnie! :) .bashrc nie grał w El Capitan
Parth

5
Na OSX .bash_profiledziała El Capitan . Jeśli nie ładuje się automatycznie po otwarciu okna terminala, prawdopodobnie dzieje się tak, ponieważ został utworzony bez uprawnień wykonywalnych. Polecenie to naprawi i powinno automatycznie ładować się do przyszłych sesji:chmod u+x .bash_profile
Mischinab,

1
.bash_profile profil jest zablokowany jak mogę zaktualizować ten plik
amit gupta


31

Po prostu otwieram Zshrc z sublime i edytuję go.

subl .zshrc

I dodaj to w sublime:

alias blah="/usr/bin/blah"

Uruchom to w terminalu:

source ~/.bashrc

Gotowe.


4
To się myli. Jeśli twoją powłoką jest Bash, wiele innych odpowiedzi na tej stronie jest bardziej szczegółowych i pomocnych. Jeśli używasz Zsh zamiast Bash, to oczywiście powinieneś source .zshrcna końcu załadować zmiany, które wprowadziłeś w aktualnie działającej instancji powłoki.
tripleee

18

W moim .bashrcpliku domyślnie były tam następujące wiersze:

# 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

Dlatego na mojej platformie .bash_aliasesjest domyślnie używany plik aliasów (i ten, którego używam). Nie jestem użytkownikiem OS X, ale sądzę, że jeśli otworzysz .bashrcplik, będziesz w stanie określić, jaki plik jest powszechnie używany do aliasów na twojej platformie.


Jeśli profil nie ładuje się automatycznie po otwarciu okna terminala, prawdopodobnie brakuje uprawnień do wykonywania. Polecenie to naprawi i powinno automatycznie ładować się do przyszłych sesji:chmod u+x .bash_profile
Mischinab,

1
@Mischinab Nie, plik musi być po prostu czytelny, aby Bash mógł go odczytać jako plik konfiguracyjny. Wykonanie go jest technicznie nieszkodliwe, ale niepotrzebne. Odradzałbym to ze względów nietechnicznych (możesz skończyć myląc siebie i / lub innych).
tripleee

9
cd /etc
sudo vi bashrc

Dodaj następujące elementy:

alias ll="ls -lrt"

Na koniec uruchom ponownie Terminal.


1
Po dodaniu aliasu. Uruchom „source” na swoim pliku „.bash_profile”. Np .: source ~ / .bash_profile (polecenie, które aktywuje / przeładowuje aliasy bash)
UIResponder

8

Działa dla mnie na MacOS Majave

Możesz zrobić kilka prostych kroków:

1) otwarty terminal

2) sudo nano /.bash_profile

3) dodaj swoje aliasy, jako przykład:

# 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

Gotowe. Używaj i ciesz się!


7

Plik konfiguracyjny dla skryptów i programów to ~/.bashrcplik konfiguracyjny, który jest ładowany podczas korzystania z terminalu ~/.bash_login.

Myślę, że najlepszym sposobem jest po prostu mieć wszystko ~/.bashrc .

W przypadku konkretnego pytania wystarczy wpisać (spowoduje to zastąpienie istniejącego ~ / .bashrc):

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

do terminala, a ~/.bashrcplik zostanie utworzony z twoimi nowymi wersami. Następnie edytuj plik, aby dodać nowe aliasy, funkcje, ustawienia itp.


5
Czy nie należy używać >>zamiast tego, >aby dołączało się ono do pliku, zamiast zastępować wszystko w nim?
Jonny

6
  1. Idź do domu
  2. Otwórz .bashrc
  3. Utwórz alias na dole pliku

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. Zapisz plik

  5. źródło .bashrc

    source ~/.bashrc
  6. Otwórz terminal (Ctrl + Alt + T) i wpisz cdDesktop i naciśnij enter


5

MacOS Catalina i wyżej

Apple właśnie zmieniło domyślną powłokę na zsh , więc pliki konfiguracyjne obejmują ~/.zshenvi ~/.zshrc. Tak jest ~/.bashrc, ale dla Zsh. Po prostu edytuj plik i dodaj to, czego potrzebujesz; powinien być pozyskiwany przy każdym otwarciu nowego okna terminala:

nano ~/.zshenv alias py=python

Następnie naciśnij Ctrl + X, Y, a następnie Enter, aby zapisać.

Ten plik wydaje się być wykonywany bez względu na wszystko (logowanie, brak logowania lub skrypt), więc wydaje się lepszy niż ~/.zshrcplik.

Wysoka Sierra i wcześniejsze

Domyślną powłoką jest bash. Możesz edytować plik ~/.bash_profilei dodawać aliasy:

nano ~/.bash_profile alias py=python

Następnie ctrl + x, y i enter, aby zapisać. Zobacz ten post, aby uzyskać więcej informacji na temat tych konfiguracji. Lepiej jest ustawić go z aliasem w ~/.bashrc, a następnie ~/.bashrcz źródła ~/.bash_profile. W ~/.bash_profileniej będzie wtedy wyglądać tak:

source ~/.bashrc


To powinno być wyższe teraz, gdy Catalina jest najbardziej aktualnym Mac OS
Cauder

4

Jeśli wstawisz blah="/usr/bin/blah"swój ~/.bashrc, możesz użyć $blahw powłoce logowania jako zamiennika pisania/usr/bin/blah


Znak dolara nie jest tutaj w żaden sposób konieczny, użyteczny ani poprawny.
tripleee

3

Prawdopodobnie chcesz edytować .bashrcplik w swoim katalogu domowym.


1

utwórz profil bash w katalogu głównym użytkownika - np

/user/username/.bash_profile

Otwórz plik

vim ~ / .bash_profile

dodaj alias jako ex. (Zapisz i wyjdź)

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

w nowym terminalu po prostu wpisz mydir - powinien się otworzyć

/user/username/Documents/dirname/anotherdir

0

Myślę, że to właściwy sposób:

1) Idź do teminal. open ~/.bashrc. Dodaj, jeśli nie istnieje

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

2) open ~/.bash_aliases. Jeśli nie istnieje:touch ~/.bash_aliases && open ~/.bash_aliases

3) Aby dodać nowy alias
- edytuj .bash_aliasesplik i uruchom ponownie terminal lub wydrukuj source ~/.bash_aliases
- wydrukuj echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliasestam, gdzie jest twój alias alias clr='clear'.

4) Dodaj linię source ~/.bash_aliasesdo ~/.bash_profilepliku. Musi ładować aliasy w każdym init terminalu.


0

Dla użytkowników macOS Catalina:

Krok 1: Utwórz lub zaktualizuj plik .zshrc

vi ~/.zshrc

Krok 2: Dodaj linię aliasu

alias blah="/usr/bin/blah"

Krok 3: Źródło .zshrc

source ~/.zshrc 

Krok 4: Sprawdź, czy masz alias, wpisując alias w wierszu polecenia

alias

0

Aby utworzyć stały skrót aliasu, umieść go w pliku .bash_profile i wskaż plik .bashrc na plik .bash_profile. Wykonaj następujące kroki (tworzę polecenie alias o nazwie bnode, aby uruchomić transpilator babel na kodzie ES6):

  1. Przejdź do wiersza poleceń terminala i wpisz „cd” (przeniesie Cię to do katalogu domowego. Uwaga: nawet jeśli pliki programowania mogą znajdować się na dysku „D:”, pliki „.bash” mogą znajdować się na „ C: dysk ”)
  2. Aby zobaczyć lokalizację katalogu domowego, wpisz „pwd” (pokaże to ścieżkę do katalogu domowego i gdzie prawdopodobnie znajdują się pliki .bash)
  3. Aby zobaczyć wszystkie kropki „.” pliki w katalogu domowym wpisz „ls -la” (spowoduje to wyświetlenie WSZYSTKICH plików, w tym plików ukrytych kropek „.”)
  4. Zobaczysz 2 pliki: „.bash_profile” i „.bashrc”
  5. Otwórz plik .bashrc w VS Code Editor lub IDE i wpisz „source ~ / .bash_profile” w pierwszym wierszu (aby wskazać plik .bashrc na .bash_profile)
  6. Otwórz plik .bash_profile w VS Code Editor i wpisz „alias bnode = '. / Node_modules / .bin / babel-node'” (aby utworzyć trwały skrót bnode do wykonania jako polecenie bash)
  7. Zapisz i zamknij oba pliki
  8. Teraz otwórz plik, który chcesz uruchomić (index.js) i otwórz w wierszu polecenia terminala i uruchom plik za pomocą polecenia „bnode index.js”
  9. Teraz plik indeksu.js zostanie wykonany, ale przed utworzeniem aliasu bnode w pliku .bash_profile pojawi się błąd „bash: komenda bnode nie znaleziona” i nie rozpoznaje i nie podaje błędów w kodzie ES6.
  10. Pomocny link do informacji o plikach dotfiles: https://dotfiles.github.io/

Mam nadzieję, że to pomoże! Powodzenia!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.