Komentorivi on hieno työympäristö, jossa tulee tehtyä kaikenlaista, joten senkin osalta käyttökokemukseen kannattaa panostaa. Oma komentorivikokemukseni on alkanut DOS-aikoina ja niistä ajoista on onneksi päästy jo pitkälle.
Mac OS:n mukana tulee Terminal tai Pääte, joka hoitaa asiansa, mutta aika monella työkseen terminaalia käyttävällä taitaa olla käytössä iTerm2, jonka valtavasta ominaisuuskasasta olen tainnut itsekin raapaista vain pintaa. Kannattaa siis aloittaa asentamalla iTerm2.
Shelliksi zsh
Terminaalissa ajetaan shelliä, eli ikään kuin komentorivin käyttöliittymää. Aikaisemmin Mac OS:n oletusshell on ollut bash, Catalinasta alkaen sen korvaa zsh. Minä olen, syystä tai toisesta, siirtynyt jo jonkun aikaa sitten zsh:n käyttäjäksi. Suosittelen. Aloita siis asentamalla zsh, jos sitä ei vielä löydy.
Zsh:n seuraksi kannattaa asentaa Oh My Zsh!, joka on kasa erilaisia plugineita ja asetuksia zsh:hon.
Ulkonäkö kohdalleen
Oh My Zsh! sisältää muun muassa runsaasti erilaisia teemoja, joilla terminaalin ulkoasua saa säädettyä. Kun terminaalin ei kerran tarvitse olla mustavalkoinen, päästään värien valinnassa makuasioiden äärelle. Itse käytän agnoster-teemaa, olen mieltynyt Solarized Dark -väritykseen.
Sisäänrakennettu Solarized Dark on tosin siitä hankala, että siinä tietty väri on joissain oloissa näkymätön, mikä on aiheuttanut minullekin jonkun verran päänvaivaa. Värisetistä on olemassa versio Solarized Dark Patched, joka fiksaa tämän, mutta tämäkin värisetti on paikoittain liian harmaa. Oma värikkäämpi versioni löytyy Gististä.
Agnoster-teema on suunniteltu Gitin käyttäjille ja osaa näyttää heti komentorivillä Gitissä tarpeellisia tietoja, esimerkiksi sen missä branchissa ollaan ja mikä on tilanne. Jotta tämä toimisi, tarvitaan Powerline-yhteensopiva fontti. Oma suosikkini on Meslo LG M for Powerline.
iTermin asetuksia
Unlimited scrollback (Preferences > Profiles > Terminal) on hieno ominaisuus. Miksi rajoittaa terminaalin historiaa, kun se voi olla rajaton?
Kursoriksi kannattaa säätää laatikon sijasta pystyviiva, Vertical bar (Preferences > Profiles > Text > Cursor). Näin on välittömästi selvää, missä kohdalla kursori on.
Hotkey Window -toiminto on aika siisti. Minulla on nopeita terminaalitarpeita varten koodattuna Ctrl-välilyöntiin terminaali-ikkuna, joka lipuu esiin ruudun yläreunasta koko ruudun levyisenä ja osin läpinäkyvänä. Toinen Ctrl-välilyönnin painallus, ja terminaali lipuu pois. Tähän on valtavasti säädönvaraa, mutta ominaisuus on sekä kätevä että todella ammattimaisen näköinen.
Shell Integration on minullekin uusi tuttavuus, mutta vaikuttaisi oikein hyvältä. Se antaa iTermille vähän lisäymmärrystä shellin toiminnasta, joten historiasta on mahdollista kelailla läpi komentoja. Aikaisemman komennon kohdalla voi hiiren oikealla napilla klikata komennon suoritettavaksi uudestaan.
Zsh:n lisäosia
Zsh:ssa on sisäänrakennettuna lisäosia ja niitä on helppo asentaa lisää. Kuten WordPressin kanssa, ei kannata liioitella, sillä liian moni plugini tekee elämästä hidasta ja kankeaa.
Minulla on käytössä nämä:
- git – sisäänrakennettu plugini git-juttuihin.
- zsh-autosuggestions – automaattiset täydennykset komentorivikomentoihin, hyvä etenkin jos tekee usein vaikeasti muistettavia pitkiä komentoja.
- zsh-syntax-highlighting – värittää komennot syntaksin mukaan, helppo huomata näppäilyvirheet lennossa.
- zsh-history-substring-search – uusi tuttavuus, avainsanahaku komentohistoriasta.
Parempia komentorivikomentoja
Perinteisille komentorivityökaluille on olemassa uusia vähän kehittyneempiä versioita ja lisäksi komentoriville saa aivan uusiakin mahdollisuuksia. (Näihin ja zsh-plugineihin tuli erinomaisia vinkkejä Webbidevaus-podcastin jaksosta 66.)
Exa on moderni versio ls
-komennosta. Zsh:stakin saa toki väriä tiedostolistauksiin, mutta exa
tekee vielä parempaa jälkeä. Ihmisten luettavat tiedostokoot oletuksena, esimerkiksi, ja näppärä puumuotoinen listaus. Jotta tätä tulisi myös käytettyä, shelliin kannattaa määritellä saman tien alias: alias ls='exa'
Autojump on cd
, jolla on muisti. Minua esimerkiksi ärsyttää aina navigoida terminaalissa Relevanssin kehitysversioon, joka on polussa ~/Local Sites/testaamo/app/public/wp-content/plugins/relevanssi-premium/
– kyllähän tuon nyt ulkomuistissa latelee ja tabilla täydennellen naputtelee, mutta ymmärtänette pointin. Autojumpin kanssa riittää, että käyn hakemistossa kerran, sitten voin vain j r
ja Autojump tietää, että tarkoitan tuota hakemistoa ja tsädäm, siellä ollaan. Autojump osaa myös avata hakemistoja Finderissä.
Bat on cat
, jolla on siivet. Putkitukseen ja muuhun sellaiseen Bat on tismalleen sama kuin cat
, mutta kun sitä käyttää tiedostojen katseluun, siinä on muun muassa värit, automaattinen sivutus ja git-tukea.
jq on JSON-datan käpistelyyn tarkoitettu työkalu. Sen mahdollisuuksista on omakin artikkelinsa, jossa jq:lla muunnetaan tilastosoftan rajapinnasta haettua JSON:ia taulukkolaskennan lukemaan CSV-muotoon.
Suosituksia?
Nämä ovat minun mieltymyksiäni ja omaan käyttööni hyödylliseksi havaittuja juttuja. Jutun yksi tarkoitus onkin kirjata muistiin näitä konfiguraatioita, jos niitä joskus pitää uudelle koneelle asentaa. Toivottavasti näistä on hyötyä muillekin.
Hyviä ehdotuksia käytännöllisistä zsh-plugineista ja komentorivityökaluista otetaan vastaan.