RPI OS - aliasy - Moje aliasy

Spis treści

Moje aliasy

Nieco wcześniej wskazałem ogólne zasady jaki winny być brane pod uwagę podczas tworzenia nazw aliasów.

Dla ułatwienia tym, którzy chcieliby skorzystać z "gotowca" poniżej prezentuję zawartość mojego pliku .bash_aliases.Poniższy listing zawiera zestaw (podstawowych, działających) aliasów, z których korzystam na codzień:

alias ,a="alias" # praktyczny alias aliasu! :D
,a ,aa="unalias -a" # usunięcie wszystkich (!) aktywnych aliasów,
,a ,au="unalias" # tymczasowe unieważnienie aliasu,
,a ,aa=",au -a" # tymczasowe usunięcie wszystkich (!) aliasów,
# ponowne wczytanie pliku .bashrc, co skutkuje również odnowieniem aliasów
,a ,bsh=". ~/.bashrc; ,; echo; echo Ponownie wczytano plik .bashrc; echo;"
# wywołanie edycji i przeładowanie pliku .bash_aliases z komunikatem,
,a ,bse="nano ~/.bash_aliases && ,bsh;"

,a ,="clear" # wyczyszczenie ekranu terminala,
,a ,e="exit" # wyjście,
,a ,ce=",; ,e" # wyczyszczenie ekranu terminala oraz wyjście,
,a ,m="mc" # uruchomienie MC,
,a ,n="nano" #uruchomienie nano,

,a ,0="cd ~" # powrót do katalogu domowego, równoważne cd $HOME
,a ,1="cd .." # w strukturze katalogów wejście 1 poziom wyżej,
,a ,2="cd ../.." # w strukturze katalogów wejście 2 poziomy wyżej,
,a ,3="cd ../../.." # w strukturze katalogów wejście 3 poziom wyżej,
,a ,-="cd -" # skok do katalogu domowego z podaniem ścieżki, równoważne: cd $HOME; pwd
,a ,l="ls -Alh --color=auto --group-directories-first"
,a ,ll="ls -alF --color=auto --group-directories-first"

,a ,cpu="lscpu" # podstawowe informacje o procesorze
,a ,blk="lsblk" # podstawowe informacje o strukturze urządzeń blokowych np. dysków
,a ,pci="lspci" # podstawowe informacje o yrządzeniach typu PCI
,a ,usb="lsusb" # podstawowe informacje o urządzeniach USB

,a ,s="sudo" # umożliwienie wykonanie komendy jako inny (najczęściej: root) użytkownik,
,a ,ss=",s su" # otwarcie sesji super usera z konta zwykłego użytkownika,
,a ,sS=",s -s" # tryb "wszechmocny"!
,a ,sapt=",s apt-get update; ,s apt-get -y upgrade; ,s apt-get -y dist-upgrade"
,a ,sapc=",s apt-get autoclean"
,a ,sapr=",s apt-get autoremove"
,a ,sk=",s poweroff" # wyłączenie RPi,
,a ,smc=",s mc" # uruchomienie MC w trybie super usera,
,a ,sn=",s nano" # uruchomienie nano w trybie super usera,
,a ,sps=",s ps -ax" #wyświetla listę procesów,
,a ,sr=",s reboot" # reboot systemu,
,a ,sv=",s vi" # uruchomienie vi w trybie super usera,
,a ,t="htop" # informacje o aktualnym obciążeniu systemu,

,a ,rpic=",s raspi-config" # uruchomienie narzędzie konfiguracyjne OS Raspbian,
,a ,reec=",s rpi-eeprom-config" # wyświetla aktualną konfigurację EEPROM,
,a ,reee=",s -E rpi-eeprom-config --edit" # edycja aktualnej konfiguracji EEPROM,
,a ,reeu=",s rpi-eeprom-update" #
# odczyt (co 1s): częstotliwości procesora, jego temperatury oraz napięcia zasilania,
,a ,rmon="watch -t -n1 '(vcgencmd measure_clock arm; vcgencmd measure_temp; vcgencmd measure_volts core)'"
# ustawianie środowiska dla Python 3.x
,a ,ve='python3 -m venv ./venv'
,a ,va='source ./venv/bin/activate'
# działanie związane z monitorem conky
,a ,co="conky" # uruchomienie,
,a ,ck="killall conky" # zamknięcie,
,a ,cm="conky-manager2" # uruchomienie programu Conky-Manager2 (trzeba zainstalować),
# kolorowy grep
,a ,g="grep --color"
,a ,gp="grep -P --color"
# działania w sieci:
,a ,cu="curl ipinfo.io" # jak mnie widzą?
,a ,ipt=",s iptraf-ng" # monitorowanie sieci,
,a ,net="ifconfig" # konfiguracja urządzeń sieciowych,
,a ,port="netstat -tulanp" # aktywne połączenia,
,a ,po="lsof -P -i -n" # otwarte porty,

Przecinek nie wadzi nikomu ;)Jak widać przyjąłem, że wszystkie moje aliasy zaczynają się od przecinka. Nie jest to dziełem przypadku. Zapobiega to mimowolnemu nadpisaniu aliasem np. jakiejś komendy powłoki.

Ponieważ taki alias zostanie wykonany w pierwszej kolejności ewentualne błędy... mocno popsują humor. Niniejszy artykuł dedykuję tym, którzy zaczynają przygodę z Raspbianem toteż wyjaśnie dlaczego przecinek a nie kropka.

Kropka w systemach ...x'owych ma bardzo istotne znaczenie. Nie tylko, że postawiona na pierwszym miejscu nazwy pliku czy katalogu wskazuje, że winny być ukryte. Czyli niewidoczne podczas zwykłego listowania zawartości katalogu.

Dodatkowo pojedyncza kropka (znak .) jest synonimem komenty source. Komenda source (jak również znak kropki) spowoduje odczyt i uruchomienie w bieżącej powłoce poleceń zawartych w pliku, którego nazwa jest argumentem komendy. Do znalezienia katalogu zawierającego plik wykorzystywana jest ścieżka zawarta w zmiennej $PATH, czyli szeroko!.

Toteż ewentualny błąd przypisania kropki do aliasu mógłby spowodować wiele kłopotu.

IMO wykorzystanie przecinka nie stwarza takiego zagrożenia. Mało tego wszystkie moje aliasy są jednoznacznie "oznaczone" przecinkiem na początku nazwy. Chciałbym zwrócić uwagę na dwa (zawarte w pliku) aliasy: ,bse oraz ,bsh.

Pierwszy z nich (,bse) jest to wywołanie edycji (edytor nano) pliku .bash_aliases. Po zakończeniu następuje wywolanie aliasu ,bsh skutkującego ponownym wczytaniem pliku .bashrc.

Jak już wskazywałem plik ten powoduje sprawdzenie obecności pliku definicji aliasów (.bash_aliases). Jeśli plik zostanie odnaleziony w katalogu domowym nastąpi jego wczytanie.

Może dziwić dlaczego wywoływana jest tu procedura wczytywania .bashrc, a nie .bash_aliases. Wynika to z faktu, że jeśli skasujesz wszystkie aliasy (komendą: unalias -a) to zostaną również usunięte aliasy "systemowe". By je odnowić niezbędne jest ponowne wczytanie ich definicji.

Zakończenie

Oczywiście definicje aliasów zawarte w moim pliku .bash_aliases nie wyczerpują potrzeb czy też możliwości definiowania własnych "komend" czy funkcji. Z doświadczenia wiem, że warto zwrócić uwagę na to, które z funkcji systemu wymagają naszej większej: uwagi, ingerencji czy zainteresowania. Aliasy zapewniają nam elastyczność i poszerzają pole manewru.

Ponieważ system operacyjny Raspbian należy dużej rodziny systemów linuksowych toteż opisane aliasy (w zasadzie) winny działać bez problemów w większości dystrybucji. Nie mogę jednak wykluczyć przypadków, gdy ich działanie będzie nieco odmienne od tego pod Raspbianem. 

Zagadnienia opisane w niniejszym artykule są pokłosiem doświadczeń związanych z realizacją projektu "Mikroskop do lutowania (RPi 4B+HQC+M42)".

Jeśli jesteś zainteresowany tym na co "marnotrawię swój czas" zapraszam do Warsztatu krótkofalowca.