Mam to jako ostatni wiersz w moim .profile:
alias gl="cd /home/jrenner/glances/glances"
ale nawet po ponownym uruchomieniu pojawia się polecenie, że nie można znaleźć polecenia podczas wpisywania gl. Co się dzieje? Jestem zalogowany jako właściwy użytkownik.
command-line
bash
alias
.profile
talloaktrees
źródło
źródło
gl
? Terminal? GUI?.profile
nie działają w żadnym kontekście, w którym próbowałem: loginy konsoli tekstowej, terminale graficzne lub cokolwiek innego, nawet jeśli działają zmienne środowiskowe z tego samego pliku.Odpowiedzi:
Jestem pewien, że pomysł lpanebr zadziała, ale oto bardziej eleganckie rozwiązanie. Wykonaj to polecenie aliasu w
.bashrc
Tak właśnie to robię lub niektórzy wolą dodać plik poświęcony aliasowi. Zadzwoń.alias
lub cokolwiek i dodaj.alias
do swojego.bashrc
Chciałbym móc formatować jak @lpanelbr. Zastanawiam się, czy istnieje wiki?
źródło
.bashrc
działa, podczas gdy.profile
nie? A także z jakiegokolwiek powodu, dla którego zdecydowałeś się nazwać plik aliasu.allias
zamiast.alias
?Istnieją dwa powiązane powody, dla których aliasy nie zawsze działają po umieszczeniu w
.profile
pliku. Po pierwsze, plik.profile
(lub.bash_profile
) jest uruchamiany tylko dla powłoki logowania. Jeśli zaczynasz bash w oknie terminala pod X, twój emulator terminala (np. Gnome-termanl) prawdopodobnie nie uruchamia bash'a jako powłoki logowania. [Większość ma opcję, aby to zmienić, jeśli chcesz, ale domyślnie (w każdym razie gnome-termal) nie uruchamia go jako powłoki logowania.]Powłoka będzie powłoką interaktywną i tak
.bashrc
zostanie uruchomiona.Jednak normalnie bash był uruchamiany jako powłoka logowania podczas uruchamiania sesji X. Jeśli więc są w nim komendy aliasowe
.profile
, zostaną one wykonane wraz z ustawieniem zmiennych środowiskowych, takich jak PATH itp. Po otwarciu okna terminala uruchamiana jest nowa instancja bash z prośbą o polecenie i wykonywanie poleceń w tym oknie terminala. W przeciwieństwie do zmiennych środowiskowych, aliasy nie mogą być eksportowane z jednego wystąpienia bash do nowego, uruchomionego przez niego. Dlatego aliasy nie są przekazywane do nowej powłoki.Aby to zobaczyć, wypróbuj ten eksperyment:
Zauważ, że
.bashrc
nie jest uruchamiany przez bash, gdy jest uruchamiany jako powłoka logowania. Tak więc umieszczenie aliasów nie zawsze będzie działać, chyba że.bashrc
pochodzi od ciebie.profile
, co jest bardzo powszechną praktyką.źródło
source .bashrc
w.bash_profile
dozwolonym zestawie alias w .bashrc do pracy.~/.bash_aliases
. To jest właściwy sposób, aby to zrobić. (szczegółowe informacje można znaleźć w pliku .bashrc).Jeśli używasz bash (
echo $SHELL
) jako interpretera powłoki, myślę, że najlepszym (a może jedynym sposobem) jest zdefiniowanie własnej funkcji CD.Edytuj
.bashrc
plik i dodaj na końcu:Możesz również rozszerzyć go w następujący sposób:
i przejdź bezpośrednio do podkatalogu i wyświetl jego zawartość.
źródło
alias
dyrektywa umieszczona w.profile
pliku zawodzi.To był problem z moim serwerem. Prosty
source .profile
nie działał z jakiegoś powoduźródło
Właściwym sposobem na to w Ubuntu jest dodanie swojego aliasu
~/.bash_aliases
. Utwórz plik, jeśli nie istnieje.Ten plik (jeśli jest obecny) jest wywoływany domyślnie
~/.bashrc
, a alias będzie również dostępny w emulatorach terminali.źródło