Poradniki > Podstawy

Alias, czyli oszczędzamy pamięć... Własną :)

(1/1)

pavbaranov:
Wielu użytkowników linuksa narzeka na straszliwą konieczność pracy w konsoli. Na to, że wszystko tu trzeba wpisywać itp. itd. i bez tego ani rusz, a polecenia konsolowe to katorga dla "normalnego" człowieka, bowiem kto by spamiętał to wszystko.
Pomijam prawdziwość twierdzenia o konieczności wpisywania wszystkiego w konsoli. Obecne środowiska graficzne i programy dla nich, oferują spore możliwości praktycznie kompletnego pominięcia używania poleceń konsolowych. Niemniej jednak z różnych przyczyn może okazać się, że albo w istocie nie ma "zamiennika" z wygodnym GUI, albo owe GUI wcale nie jest wygodniejsze od polecenia wpisanego w konsoli, albo... no mnóstwo rzeczy, by skończyć na jednym: wolę używać pacman od octopi (choćby).
Niemniej jednak sam zauważam, że niektóre polecenia są zbyt długie, by je spamiętać (przykład z innego wątku:

--- Kod: ---# reflector --verbose --country 'Poland' -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist
--- Koniec kodu ---
- zresztą po co?
W takich przypadkach z pomocą przychodzi nam "alias", dzięki któremu w swoim środowisku możemy przyporządkować określone ciągi pod łatwiejszą do zapamiętania nazwę, w dodatku łatwo zawsze dostępną. Raz zdefiniowane - jeśli tylko nie skasujemy sobie pliku, bądź zawartości katalogu /home/user/ będzie nam funkcjonować wiecznie.
Zamiast zatem ww. ciągu możemy wstawić dowolną inną nazwę, np. refresz (to wyłącznie przykład). Wówczas po wpisaniu w konsoli wyrazu: refresz, system (a w zasadzie, to bash), sam podporządkuje przypisane mu polecenie i je wykona.
Jak to zrobić?
Znów będzie konsolowo - kiedyś już pisałem dlaczego. Nie mam zamiaru zastanawiać się nad tym jaki edytor tekstu macie u siebie w systemie, ani czytać: mam komunikat, że nie znaleziono kate.

Zaczynamy od otwarcia w dowolnym edytorze tekstu (u mnie to będzie nano) plik ~/.bashrc

--- Kod: ---nano ~/.bashrc
--- Koniec kodu ---
i dopisujemy ciąg, który ma postać:

--- Kod: ---alias nazwa='polecenie'
--- Koniec kodu ---

Opierając się na przywołanym poleceniu reflectora, będzie to wyglądać następująco:

--- Kod: ---alias refresz='sudo reflector --verbose --country 'Poland' -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist'
--- Koniec kodu ---
które po wpisaniu w konsoli polecenia: refresz - wykona to, co opisane jest tutaj: http://www.archlike.darmowefora.pl/index.php/topic,67.0.html

Poprzedzające polecenie: reflector, sudo pojawia się tutaj, z uwagi na to, że winno ono zostać wykonane z uprawnieniami administratora. Jeśli jakieś polecenie tego nie wymaga, to oczywiście je pomijamy.
Np.:

--- Kod: ---alias kwininfo='qdbus org.kde.kwin /KWin supportInformation'
--- Koniec kodu ---
po wydaniu w konsoli polecenia kwininfo udzieli nam informacji o wsparciu dla KWin (oczywiście nazwa kwininfo jest przykładowa).

Po zapisaniu pliku .bashrc musimy jeszcze poinformować bash o wprowadzeniu zmian, co zrobimy poprzez wydanie w konsoli polecenia:

--- Kod: ---source ~/.bashrc
--- Koniec kodu ---
Jak nam się polecenie znudzi, bądź uznamy, że inne będzie dla nas łatwiejsze do zapamiętania, to po prostu edytujemy .bashrc, a potem wydajemy wspomniane wyżej polecenie source.
Zwracam jedynie uwagę na jedną rzecz. Aliasem można zmienić domyślne działanie polecenia, o czym system nas nie poinformuje. Dla przykładu, jeśli z jakiegoś powodu chcielibyśmy dać taki alias:

--- Kod: ---alias ls='sudo pacman -Syu'
--- Koniec kodu ---
to "stracimy" w systemie polecenie ls, a w jego miejsce pojawi się komenda, która zaktualizuje nam system. Z drugiej strony, w ten sposób możemy zmodyfikować domyślne działanie jakiegoś polecenia, o ile nam na tym zależy.
Tak czy inaczej - ostrożności nigdy za wiele.

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej