sunnuntaina, lokakuuta 12, 2014

History -komento on Linux-arjen helpottaja

History -komento on yksi eniten käyttämistäni komennoista. Eiliseen asti olen käyttänyt tuota komentoa hyvinkin suppeasti, mutta sitten ymmärsin, että tämä komenteluhistoriaa luotaava komento on paljon monipuolisempi kuin pelkkä history. Aiemmin olen vain tyytynyt listaamaan komennot historyllä ja hiirellä kopioimaan haluami komennon. No onhan sekin toki Linux-arkeani helpottanut, mutta syväluotaavampi tutkiskelu komentoon on hedelmällistä.

Ensinnäkin kun kirjoitat komentoriville komennon history  saat listan viimeksi kirjoittamistasi komennoista. Jokaisen listauksessa olevan komennon edessä on numero. Tämä numero sai minut eilen epäilemään, että sillä numerollakin lienee jokin muukin funktio kuin vain antaa järjestysnumero komennolle.

Jep, jos haluat vaikka poistaa jonkin kommenon history-listauksesta täräytä komentoriville esim.:
history -d 298 , mikä poistaa listauksesta 298 numerolla olevan rivin.

Jos haluat listata vaikkapa vain viisi viimeisintä komentoasi kirjoita komentoriville:
history 5

Komento history | grep ls listaa puolestaan kaikki aiemmat ls-komennot

Sitä listauksessa olevaa numeroa voi tosiaan hyödyntää muuhunkin kuin tuohon komennon poistamiseen. Jos haluaa komentaa uudestaan history -listauksessa rivillä 51 olevan komennon käy se näppärästi:

!51

Listauksessa viimeisenä olevan eli viimeisimmän komennon saa taas toistettua:

!!

Komento sudo !! on kätevä komento vaikkapa tällaisessa skenaariossa:

Kirjoitat ajatuksissasi komennon apt-get install sshpass, jolloin saat virheilmoituksen, että permission denied. Oma vanha tapa olisi tällaisessa tapauksessa ollut ottaa komento esiin uudestaan nuoli ylös -näppäimellä ja siirtymällä rivin eteen ja kirjoittaa siihen että sudo apt-get install sshpass. Nopeapi tapa on kirjoittaa tuo sudo !! jolloin ei tarvitse navigoida minnekään. Oikein hyvä sudo !! komento siis hajamieliselle linux-nörtille ;-)


Komennolla !-5 suoritat komennon, joka oli viisi numeroa aiemmin viimeisintä komentoa (tälle en oikein keksi mitään käyttöä itse, sillä miksi ei voi käyttää suoraan komento  !komenon_rivinumero).

!ssh suorittaa viimeisimmän ssh komennon.

Että tällaista. Historiaa ei kannata koskaan väheksyä ;-)