Chciałbym utworzyć alias do rm
polecenia, aby po wykonaniu tego polecenia pojawił się komunikat potwierdzający. Tworzę więc taki alias alias rm='rm -i'
. Ale o ile wiem, jest to tymczasowy alias i żyje do momentu zamknięcia terminalu.
Jak to wyjaśnione tutaj , aby zapisać alias stale muszę wykonać ~/.bash_aliases
lub ~/.bashrc
polecenia w terminalu i dodać tam moje alias. Ale kiedy wykonuję, pojawia ~/.bashrc
się następujący komunikat o błędzie:
bash: /home/bakhtiyor/.bashrc: Permission denied
Po uruchomieniu ~/.bash_aliases
pojawia się kolejny komunikat o błędzie:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Jaki jest rzeczywisty problem i jak mogę go rozwiązać?
alias rm='rm -i'
nie rozwiązuje problemu przypadkowego używania rmOdpowiedzi:
Aby utworzyć alias, dodaj go na stałe do swojego
.bashrc
plikuA następnie dodaj swój alias na dole.
Teraz uruchom
. ~/.bashrc
w swoim terminalu (pomiędzy.
i) powinna znajdować się spacja~/.bashrc
.Teraz możesz sprawdzić swój alias.
źródło
source
. Dzięki. ~/.bashrc
, ty źródłowego bash. Wykonanie pliku spowoduje uruchomienie procesu potomnego, wykonanie poleceń w tym procesie, a następnie powrót. Wszystko, co dzieje się w procesie potomnym, nie ma wpływu na proces macierzysty (bash, z którego wykonałeś). Zamiast tego pozyskiwanie (z kropką) działa dokładnie tak, jakbyś zapisał zawartość pliku w terminalu. To jest to, czego chcesz..bashrc
jest pozyskiwany za każdym razem, gdy zaczynasz bash. Jeśli wprowadzisz zmiany, nie zostaną one zastosowane, dopóki ręcznie nie uruchomisz nowej wersji bash lub źródła.Istnieje wiele sposobów tworzenia aliasu. Najczęściej używane sposoby to:
Dodaj aliasy bezpośrednio do
~/.bashrc
plikuNa przykład: dołącz te linie do
~/.bashrc
plikuNastępnym razem (po wylogowaniu / zalogowaniu lub zakończeniu
. ~/.bashrc
) po wpisaniu polecenia zostanie wykonane.rm
rm -i
Druga metoda pozwala utworzyć osobny plik aliasów, więc nie będziesz musiał go umieszczać
.bashrc
, ale do wybranego pliku. Najpierw edytuj~/.bashrc
plik i dodaj następujące wiersze, jeśli jeszcze nie istnieją, lub odkomentuj je, jeśli tak jest:Zapisz i zamknij plik. Następnie wszystko, co musisz zrobić, to utworzyć
~/.bash_aliases
plik i dodać tam swoje aliasy, w tym samym formacie określonym w pierwszej metodzie.Zawartość mojego
~/.bash_aliases
pliku:źródło
~/.bash_aliases
.alias aliases="xdg-open ~/.bash_aliases && source ~/.bash_aliases"
, więc alias stał się pomocny w oszczędzaniu, a jeśli popełnisz jakiś błąd, zareklamuje cię.alias ls='ls -althr'
niektóre z podanych flag nie zadziałały, w tym przypadku flaga -t nie zadziałała. wiesz dlaczego?~/.bashrc
zawiera włączenie dla~/.bash_aliases
, nie trzeba go edytować.Wydaje mi się, że twoim jedynym problemem jest po prostu próba uruchomienia .bashrc, gdy nie jest wykonywalny. Ale to nie jest właściwy sposób, aby to zrobić; za każdym razem, gdy wprowadzasz zmiany w tym pliku, powinieneś go „wykonać” poleceniem:
W przeciwnym razie po prostu utworzy nową powłokę, uruchomi plik w środowisku nowej powłoki, a następnie odrzuci to środowisko po wyjściu, tracąc w ten sposób zmianę. Pozyskując skrypt, uruchamia się on w bieżącej powłoce, więc pozostanie aktywny.
Zakładam, że drugi błąd był spowodowany tym, że bash_aliases nie istnieje. Nie jest to wymagane, po prostu zalecane jest oddzielne i uporządkowane zmiany. Jest używany tylko wtedy, gdy istnieje i można go przetestować w .bashrc:
Oznacza to, że jeśli plik ~ / .bash_aliases istnieje, uruchom go.
źródło
~/.bash_aliases
jest lepiej. askubuntu.com/questions/194111/…source
polecenia sprawiło, że moje aliasy działały. +1. ~/.bash_aliases
ma takie samo znaczenie, jak wbudowane polecenie powłokisource
. Uważam, że jest to poprawna odpowiedź, wyjaśniająca, co się dzieje.Problem polega na tym, że próbujesz wykonać plik wykonywalny: Możesz to sprawdzić za pomocą:
Uwaga: w pierwszej kolumnie nie ma litery „x - plik wykonywalny” (uprawnienia do plików).
Pliki profilów nie są plikami wykonywalnymi, zamiast ich wykonywania ładujesz je za pomocą:
lub
źródło
Oto przykład, którego szukałem, sposób na wpisanie kilku liter na terminalu („vps”), aby zdalnie zalogować się na serwerze i włączyć przekazywanie X11, dzięki czemu mogę uruchamiać aplikacje GUI, takie jak „gedit” przez sieć.
Niezależnie od polecenia / polecenia aliasowanego, ta metoda z instrukcją echo, znakami cudzysłowu i symbolem dołączania wyniku polecenia do pliku (>>) działa dla mnie. Po prostu zamień moje polecenie na potrzebne alias i wpisz je w swoim terminalu.
źródło
jeśli używasz ruby, możesz zainstalować aka przy użyciu rubygem.
gem install aka2
stosowanie
Rubygem automatycznie prześle Twój plik kropkowy, więc nie musisz. Sprawdź to.
źródło
Napisałem tę przydatną funkcję, aby szybko utworzyć nowy alias, a następnie napisać definicję aliasu na
~/.bash_aliases
(jeśli istnieje) lub~/.bashrc
.WSKAZÓWKA : Upewnij się, że
~/.bash_aliases
istnieje i jest wykonywana w~/.bashrc
.źródło
.bashrc
z wieloma instancjamialias
polecenia. Twoja funkcja zdecydowanie musi wdrożyć niektóre kontrole, aby uniknąć takiego bałaganu.Sugerowałbym użycie
/etc/bash.bashrc
Możesz dodać linię na końcu tego pliku.
Po umieszczeniu aliasów w linii należy ponownie uruchomić komputer lub ponownie się zalogować.
źródło
source /etc/bash.bashrc
w tym przykładzie zrobisz wszystko, czego chcesz. Ale powinien użyć~/.bashrc
lub~/.bash_aliases
zamiastJak pamiętam,
bashrc
ma lub miał wiersz sugerujący, aby nie używać go bezpośrednio do aliasów. Rozwiązaniem jest użycie plik (i) zewnętrzny.foo
Ibar
pseudonimy zostały dodane, ale dodać plik musi być „pochodzą” (lub po prostu otworzyć nowy terminal). Przykład jako:baz
bashrc
teraz
baz
alias działa. Dopiero teraz zdałem sobie sprawę, że poprzednia odpowiedź wspomniała o tej technice, ale zakopali lede.źródło