Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: Hajakenttä - 05.09.14 - klo:21.05
-
Olenko ymmärtänyt asian oikein? Alias on lyhennetty kutsumanimi komentojonolle, joka muuten olisi turhan pitkä ulkoa muistettavaksi ja jota usein kuitenkin tarvitaan.
Se tehdään editoimalla vaikkapa Gedit tekstimuokkaimella tiedostoa .bash_aliases esim. kirjoittamalla päätteeseen näin:
gedit ~/.bash_aliases
ja luomalla sinne rivi jokaiselle aliakselle tällaiseen muotoon:
alias kutsumanimi="komento"
Esim. näin:
alias nollaaswap="sudo swapoff -a && sudo swapon -a"
alias siivoalevy="sudo apt-get autoremove --purge && sudo apt-get autoclean"
alias uusiylelaturi="wget --no-cache -r -O./asenna_autodl homelinuxpc.com/download/asenna_autodl && chmod +x asenna_autodl && ./asenna_autodl"
alias lotto="echo $(shuf -n 7 -i 1-39 | sort -n)"
alias vlotto="echo $(shuf -n 6 -i 1-48 | sort -n)"
alias keno="echo $(shuf -n 10 -i 1-70 | sort -n)"
Lopuksi talletetaan Gedit ja suljetaan se. Sitten viimeistellään asia komentamalla päätteessä:
source ~/.bash_aliases
Nyt pelkkä kutsumanimi antaen voidaan päätteessä ajaa pitkäkin komento.
Mutta, mutta. Miksi noista tekemistäni kolme ensimmäistä toimivat hienosti, mutta kolme viimeistä, lotto, vlotto ja keno eivä toimi? Tulee vain ilmoitus "komentoa ei löydy". Mikä kumma niissä on vikana, kun ne kuitenkin toimivat päätteessä sellaisinaan annettuina?
-
Muuttuuko tilanne jos vaihdat tuplahipsun " tilalle hipsun?
-
No nyt toimii. Kiitos neuvosta. ;D
Vaihdoin siis tämän muodon:
alias kutsumanimi="komento"
muotoon:
alias kutsumanimi='komento'
Jossa siis lainausmerkin (") tilalla on heittomerkki ('), joka ainakin tässä näppiksessä on qwerty-rivillä viimeinen näppäin oikealla.
Kumma kyllä nuo kolme ensimmäistä aliasta toimivat " merkkien välissäkin ja toimivat nyt ' merkkien välissä myös. Tälle syntaksille on tietysti ihan oikeakin muotokieli olemassa, mutta ammattilaiset onkin erikseen. :o
-
Eron aiheuttaa tuo $() -rakenne siellä hipsujen välissä. Hipsujen valinta ratkaisee milloin $()-lausekkeen arvo evaluoidaan. Tuplahispuilla se tehdään jo aliaksen määrityksessä, ja heittomerkillä vasta sitten kun aliasta käytetään.
-
Zsh:n (”kilpaileva” komentotulkki) oppaassa annettiin neuvo: ellet tiedä, käytä puolilainausmerkkejä ('…').
-
Lopuksi talletetaan Gedit ja suljetaan se. Sitten viimeistellään asia komentamalla päätteessä:
source ~/.bash_aliases
Nyt pelkkä kutsumanimi antaen voidaan päätteessä ajaa pitkäkin komento
Kiva kun tuli lopultakin selvyys noihin hipsuihin, ihmetystä ovat aiheuttaneet. Muistais nyt vaan taas.
Kätevä alias, jota voi käyttää aliaksien muokkaamiseen siten että tuo source .. alias ajetaan autom. muokkausohjelman sulkemisen jälkeen:
alias aliakset='gedit ~/.bash_aliases && source ~/.bash_aliases'
ja sitten joko pääte uudelleenkäynnistäen tai tuo source ... komento. Nyt aliaksien muokkaus/käyttöönotto tapahtuu aliakset komennolla.
-
----
Kätevä alias, jota voi käyttää aliaksien muokkaamiseen siten että tuo source .. alias ajetaan autom. muokkausohjelman sulkemisen jälkeen:
alias aliakset='gedit ~/.bash_aliases && source ~/.bash_aliases'
ja sitten joko pääte uudelleenkäynnistäen tai tuo source ... komento. Nyt aliaksien muokkaus/käyttöönotto tapahtuu aliakset komennolla.
Hanskahäröjen pelko ajaa tapaan että kokeilen sen aliaksen ennen kuin tallennan tiedostoon.
Ja kun tulos tyydyttää niin kopion loitsun asetustiedostoon.
Onneksi tapoja on monia ja jokainen löytänee mieleisensä :)
-
Hanskahäröjen pelko ajaa tapaan että kokeilen sen aliaksen ennen kuin tallennan tiedostoon.
Ja kun tulos tyydyttää niin kopion loitsun asetustiedostoon.
Niinpä, mutta noin suoraviivaisella testauksella nämä hipsulogiset viat jäävät huomaamatta. Niiden testaamiseksi ainoa keino on se että käynnistää päätteen uudelleen.