Ero sivun ”Komentorivivinkkejä” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Ei muokkausyhteenvetoa
 
 
(111 välissä olevaa versiota 53 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Sata komentorivivinkkiä Linuxista
Seuraavassa on esitetty lukuisia vinkkejä komentorivin tehokäyttöön. Vinkit on jaoteltu eri kategorioihin. Eri järjestelmissä on eroja, joten kaikki vinkit eivät välttämättä toimi kaikissa [[jakelu]]issa tai kaikissa [[komentotulkki|komentotulkeissa]]. Valtaosa vinkeistä kuitenkin toimii useimpien jakeluiden mukana tulevassa ja oletuksena käytössä olevassa [[bash]]-yhteensopivassa komentotulkissa. Joissakin järjestelmissä oletuskomentotulkkina on tosin [[tcsh]], jonka syntaksi on monelta osin erilainen.


Nämä vinkit on testattu melko tavanomaisessa Red Hat 8.0 -asennuksessa. Pääosa näistä toiminee muissakin jakeluissa, osa soveltaen myös muissa Unix-tyyppisissä järjestelmissä.
Eri komentorivikomentoja on listattu käyttötarkoituksen mukaan artikkelissa [[komentorivikomennot]]. Komentorivin perusteista kerrotaan artikkelissa [[komentorivin perusteet]]. Komentorivikomennoista voi tehdä myös erilaisia käteviä komentojonoja, joista kerrotaan artikkelissa [[bash-skriptaus]].


  1. Komennolla df -h saat siistin esityksen levyosioiden täyttöasteesta.
==Peruskäyttö==
  2. Sano roottina du -s /home/* | sort -n | tail ja löydät levyrohmut.
# {{Näppäin|TAB}} näppäimellä voi antaa komentotulkin täydentää loput komennosta tai tiedostonimestä. Mikäli vaihtoehtoja on useampia, ne saa näkyviin toisella painalluksella. Osassa komentotulkkeja voi TABilla täydentää myös mm. etäkoneiden ja käyttäjien nimiä sekä komentojen valitsimia (bashissa tämän ominaisuuden saa käyttöön ajamalla skriptin /etc/bash_completion rivit, sopiva komento löytyy usein deaktivoituna bashin alustusskripteissä). Jos listaus on pitkä näppäimellä {{Näppäin|q}} voit lopettaa listauksen.
  3. Komennolla find . -type f -name "*koira*" -print0 | xargs -0 grep -l "kissa" löydät kaikki ne tiedostot työhakemiston alla, joiden nimessä on sana "koira" ja joissa esiintyy sana "kissa".
# Jos kaverisi pyytää auttamaan Linuxin käytössä, kerro hänelle [[Man-sivut|man-sivuista]]. <tt>man [[tar]]</tt> ja <tt>man [[mkisofs]]</tt> ovat esimerkkeinä parhaita. Myös [[info]]-sivut voivat olla hyviä tiedonlähteitä.
  4. mail-komento toimii myös komentorivillä. Voit vaikka suorittaa komennon ja ohjata tulostuksen meiliin: pwd | mail -s "Komennon pwd tulos" oma.osoite@domain.example
# <tt>man -k printer</tt> kertoo kaikki ne komennot, joiden yksirivinen kuvaus sisältää merkkijonon "printer".
  5. Haluatko kuluvan päivän esim. varmuuskopion nimeen? Kokeile tätä: tar cf /root/varmistus-home`date +%Y-%m-%d` Tuo aakkostuukin oikein.
# [[alias|Aliakset]] ovat käteviä. Komennon <tt>alias l="ls -lda"</tt> jälkeen pelkkä l riittää komennoksi.
  6. zcat-komennolla voit tulostaa gzip-ohjelmalla tehdyn tekstitiedoston suoraan konsolille ilman purkamista välissä. zless toimii samalla tavoin gzip- ja less-komentojen yhdistäjänä.
# Jos olet tehnyt aliaksen, jolla on sama nimi kuin komennolla (<tt>alias ls='ls --color=tty'</tt>, esimerkiksi), mutta haluat suorittaa poikkeuksellisesti sen alkuperäisen, kirjoita komento muodossa <tt>\ls</tt>.
  7. Kokeile tätä: echo "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com" | at 09:00 06.04.02
# Paina {{Näppäin|Ctrl|R}} komentokehotteessa ja kirjoita vaikka "ls", niin löydät viimeisimmän kirjoittamasi komennon jossa esiintyy kirjaimet "ls". Paina {{Näppäin|Ctrl|R}} uudelleen hakeaksesi kauempaa komentohistoriasta.
  8. Jos kokeilet edellistä, muista oikea päivämäärä. Sillä tavalla ei tule perheriitaa, ja aikaa säästyy esim. Linuxin säätämiseen.
# {{Näppäin|Ctrl|A}} vie rivin alkuun komentokehotteessa, {{Näppäin|Ctrl|E}} rivin loppuun. {{Näppäin|Ctrl|F}}, {{Näppäin|Ctrl|B}}, {{Näppäin|Ctrl|P}} ja {{Näppäin|Ctrl|N}} (forward/backward/previous/next) korvaa nuolinäppäimet. {{Näppäin|ESC|F}} ja {{Näppäin|ESC|B}} liikuttaa sanoittain. {{Näppäin|Ctrl|D}}, {{Näppäin|ESC|D}}, {{Näppäin|Ctrl|K}} ja {{Näppäin|Ctrl|U}} poistaa tekstiä, {{Näppäin|Ctrl|Y}} palauttaa viimeksi poistetut merkit nykyiseen kohtaan.
  9. Aliakset ovat käteviä. Komennon alias l="ls -lda" jälkeen pelkkä l riittää komennoksi.
# Komentoja voi yhdistellä && ja || -operaattoreilla. <tt>[[tar]] cf paketti.tar /joku/hakemisto && rm -rf /joku/hakemisto</tt> suorittaa ensin tar-komennon, ja jos se onnistuu ongelmitta, suoritetaan [[rm]]-komento. || toimii toisinpäin, toinen komento suoritetaan vain jos ensimmäinen epäonnistui.
  10. Paina Ctrl-R komentokehotteessa ja kirjoita vaikka "ls", niin löydät viimeisimmän kirjoittamasi komennon jossa esiintyy kirjaimet "ls". Paina Ctrl-R uudelleen hakeaksesi kauempaa komentohistoriasta.
# Komentokehotetta voi muuttaa. Esimerkiksi [[bash]]-komentotulkissa <tt>[[export]] PS1='[\u@\h \w]\$ '</tt> laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston. Artikkelista [[zsh]] voi lukea kuinka tämä onnistuu zsh-komentotulkissa.
  11. Ctrl-A vie rivin alkuun komentokehotteessa, Ctrl-E rivin loppuun.
# Koneelle kirjauduttaessa ajetaan kotihakemistosta tiedosto jonka nimi on ".bash_profile" (muissa kuin [[bash]]-[[komentotulkki|komentotulkissa]] nimi on toinen, usein .profile tai .login). Sen loppuun voit kirjoittaa vaikka echo "Muista katsoa www.khdrive.fi/linkku/"
  12. Komennolla bc -l saat pienen laskimen. Käytettävissä on normaalit laskutoimitukset ja lisäksi voit sijoittaa arvoja muuttujiin basic-kielen tapaan.
# [[Virtuaalikonsoli]]ssa voi {{Näppäin|Shift|Page Up}}-näppäilyllä siirtyä pari ruudullista taaksepäin. Huomioi kuitenkin, että esimerkiksi [[X Window System|X]]:ssä käynti yleensä nollaa tämän ruutuhistorian. Sama näppäily toimii monessa [[terminaaliemulaattori]]ssa ([[xterm]] tms.), joissa taas ikkunan leveyden vaihto tuhoaa historiaa.
  13. bc käyttää samaa readline-kirjastoa kuin komentotulkki, joten samat Ctrl-R, Ctrl-A ja Ctrl-E toimivat siinäkin. Samalla tavoin toimii myös mm. matriisilaskennan ohjelma Octave.
# [[which]]-komennolla näkee mistä polussa oleva ohjelmatiedosto löytyy. Kokeile esim. <tt>which [[ldd]]</tt>
  14. MS-DOS -levykkeiden käsittely onnistuu mtools -paketilla. Kokeile mitä tekevät "mdir a:" ja "mcopy tiedsto a:".
# Komento <tt>[[history]]</tt> tulostaa komentohistorian, <tt>history 5</tt> viisi viimeistä komentoa. Jos käyttää historiatoimintoa (esimerkiksi muodossa {{Näppäin|Ctrl|R}}) kannattaa asentaa isompi puskuri, esimerkiksi <tt>HISTSIZE=5000</tt>.
  15. tr -komennolla voit muuttaa merkkejä, kokeile vaikka: echo kanalassa | tr a b.
# Komennolla <tt>[[pwd]] -P</tt> saat selville missä hakemistossa "oikeasti" olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
  16. Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano for i in *; do mv $i `echo $i | tr A-Z a-z`; done
# <tt>[[clear]]</tt> tyhjentää kuvaruudun. Kätevä joissakin skripteissä. Normaalikäytössä on helpompi painaa {{Näppäin|Ctrl|L}}. Jos näppäimistö tai ruutu käyttäytyy sekavasti, esimerkiksi binääritiedoston katsomisen tuloksena, myös <tt>[[stty]] sane</tt> tai <tt>[[reset]]</tt> voi olla kohdallaan.
  17. Komennolla ps afx näet siistin puuesityksen ajossa olevista prosesseista.
# Voit uudelleen käyttää komennoille antamiasi parametrejä <tt>"ESC ."</tt>-näppäinyhdistelmällä. Esim. jos luit pitkää <tt>/home/pena/file</tt>-tiedostoa komennolla <tt>"[[cat]] /home/pena/file"</tt>, niin kokeile <tt>"[[less]] ESC ."</tt>.
  18. tr-komennolla voi poistaa merkkejä. Sano vaikka cat tiedosto | tr -d " "
# Jos siirryt <tt>cd</tt>-komennolla uuteen hakemistoon ja haluat jostakin syystä palata takaisin siihen aikaisempaan, voit tehdä sen komennolla <tt>cd -</tt>.
  19. Hakemiston saa pakattua näin tar cvzf paketti.tar.gz /joku/hakemisto . Purku onnistuu komennolla tar xvzf paketti.tar.gz
# <tt>cd ~ </tt>-komennolla pääset suoraan kotihakemistoosi.
  20. Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka identify jokukuva.gif
 
  21. ls -S listaa tiedostot kokojärjestyksessä, ls -t muokkausajan mukaan järjestettynä. "-r" kääntää järjestyksen.
==Tiedostonhallinta==
  22. file tiedostonnimi yrittää arvailla mitä tyyppiä tiedosto on. Roottina voit jopa sanoa file -s /dev/hda1 ja näet sisältääkö laitetiedosto jotain joka näyttää tiedostojärjestelmältä.
# Komennolla <tt>[[df]] -h</tt> saat siistin esityksen levyosioiden täyttöasteesta.
  23. Hakemiston /etc/skel sisällöstä tehdään kopio kotihakemistoon, kun luodaan uusi käyttäjä.
# Sano roottina <tt>[[du]] -s /home/* | [[sort]] -n -r | [[head]]</tt> ja löydät levyrohmut.
  24. Hakemiston /proc sisältä löytyy tietoa koneesta. Katso vaikka mitä cat /proc/cpuinfo tulostaa.
# Komennolla <tt>[[find]] . -type f -name "*koira*" -print0 | [[xargs]] -0 [[grep]] -l "kissa"</tt> löydät kaikki ne tiedostot työhakemiston alla, joiden nimessä on sana "koira" ja joissa esiintyy sana "kissa". Käyttämällä -name:n sijasta valitsinta -iname löydät myös eri kirjainkoolla kirjoitetut merkkijonot. Saman tuloksen saat myös jos korvaat osion <tt>| [[xargs]] -0 [[grep]] -l "kissa"</tt> osiolla <tt><nowiki>-exec grep -l kissa '{}' ';'</nowiki></tt>
  25. Jos kaverisi pyytää auttamaan Linuxin käytössä, kerro hänelle man-sivuista. man tar ja man mkisofs ovat esimerkkeinä parhaita.
# MS-DOS -levykkeiden käsittely onnistuu [[mtools]] -paketilla. Kokeile mitä tekevät <tt>mdir a:</tt> ja <tt>mcopy tiedosto a:</tt>.
  26. locate on nopeampi kuin find. Kokeile esim. locate condom löytääksesi tiedostot joiden nimissä on merkkijono "condom". Locate käyttää tiedostojen nimistä kerättyä tietokantaa, joka päivittyy joka yö.
# Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano <tt>for i in *; do mv -i $i `echo $i | [[tr]] A-Z a-z`; done</tt>
  27. locate-komennon tietokanta muodostuu updatedb -ohjelmalla, jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla time updatedb
# Hakemiston saa pakattua näin: <tt>[[tar]] cvzf paketti.tar.gz /joku/hakemisto</tt> . Purku onnistuu komennolla <tt>tar xvzf paketti.tar.gz</tt>. Korvaa komennon z-kirjaimet j:lla jos haluat käyttää [[gzip]]-pakkauksen sijasta tehokkaampaa [[bzip2]]-pakkausta.
  28. Rikoit rivinvaihdot kun siirsit tekstiä Dos- tai Mac-koneelta Linuxiin? dos2unix ja mac2unix -komennot auttavat.
# [[locate]] on nopeampi kuin find. Kokeile esim. <tt>locate foobar</tt> löytääksesi tiedostot joiden nimissä on merkkijono "foobar". Locate käyttää tiedostojen nimistä kerättyä tietokantaa, joka päivittyy oletuksena joka yö ([[cron]]).
  29. Komento ypchfn, jolla vaihdetaan erillisellä käyttäjätunnuspalvelimella olevia käyttäjätietoja, tulee sanoista "Yellow Pages CHange FiNger". Yellow Pages oli nykyisen NIS-palvelimen ensimmäinen nimi, mutta se vaihdettiin kun British Telecom omisti siihen tavaramerkin. Tiedolla ei varsinaisesti tee mitään, mutta käyttämällä sitä sopivassa tilanteessa osoitat olevasi nörtti.
# <tt>[[ls]] -S</tt> listaa tiedostot kokojärjestyksessä, <tt>ls -t</tt> muokkausajan mukaan järjestettynä, <tt>ls -tu</tt> käyttöajan mukaan (kunhan [[atime]] on käytössä). "-r" kääntää järjestyksen.
  30. man -k printer kertoo kaikki ne komennot, joiden yksirivinen kuvaus sisältää merkkijonon "printer".
# <tt>[[file]] tiedostonnimi</tt> yrittää arvailla mitä tyyppiä tiedosto on. Roottina voit jopa sanoa <tt>file -s /dev/hda1</tt> ja näet sisältääkö laitetiedosto jotain joka näyttää tiedostojärjestelmältä.
  31. Symboliset linkit ovat joskus käteviä. Jos /var/www on liian täynnä ja /home melkein tyhjä, sano "mv /var/www /home" ja ln -s /home/www /var/www
# [[symbolinen linkki|Symboliset linkit]] ovat joskus käteviä. Jos /var/www on liian täynnä ja /home melkein tyhjä, sano <tt>mv -i /var/www /home</tt> ja <tt>ln -s /home/www /var/www</tt>
  32. Komentoja voi yhdistellä && ja || -operaattoreilla. tar cf paketti.tar /joku/hakemisto && rm -rf /joku/hakemisto suorittaa ensin tar-komennon, ja jos se onnistuu ongelmitta, suoritetaan rm-komento. || toimii toisinpäin, toinen komento suoritetaan vain jos ensimmäinen epäonnistui.
# [[mkdir]]-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. <tt>mkdir -p eka/toka/kolmas.</tt> Sanomalla <tt>mkdir -p abc/def0{1..9}</tt> luot abc-kansion alle numeroidut alikansiot def01,def02..def09.
  33. PostScript-tiedostoja voi käsitellä komentorivillä. Esim. psnup -2 dokumentti.ps tiivis.ps tekee tulostusta varten version jossa kaksi sivua on laitettu yhdelle sivulle.
# <tt>ls -F</tt> näyttää tiedostolistauksen niin, että nimen perässä on merkki joka kuvaa tiedoston tyyppiä.
  34. Komentokehotetta voi muuttaa. Esim. export PS1='[\u@\h \w]\$ ' laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston.
# Jos haluat ls:n tekevän saman värien avulla, anna komento <tt>ls --color=auto</tt> (tämä on oletus monessa jakelussa).
  35. mkdir-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. mkdir -p eka/toka/kolmas
# Komento <tt>find . -type f -mmin -30 -print</tt> hakee työhakemistosta alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään.
  36. Jos hakemistoon /etc/cron.weekly luo tiedoston, jossa on vain komento cp --recursive /home/ville /root, saa joka viikko varmuuskopion Villen kotihakemistosta rootin kotihakemistoon.
# Kaikki Microsoft Office -dokumentit löydät komennolla <tt>find . -iname '*.doc*' -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;</tt> (jos tiedosto on satettu siirtää eri nimelle, poista "iname ... doc*'", tiedostonimen käyttö karkeaan karsintaan kuitenkin nopeuttaa operaatiota huomattavasti)
  37. Koneelle kirjauduttaessa ajetaan kotihakemistosta tiedosto jonka nimi on ".bash_profile". Sen loppuun voit kirjoittaa vaikka echo "Muista katsoa www.khdrive.fi/linkku/"
# Komennolla <tt>ls -l | [[colrm]] 10 30</tt> saat tiedostolistauksesta pois tiedoston omistajan ja ryhmän. GNU ls:llä <tt>ls -lgG</tt> tekee saman.
  38. Kokeile tätä: lynx --dump http://www.khdrive.fi/linkku/ | grep --after-context=5 "Seuraavat kokoontumiset"
# Ellet tiedä mitä /etc:n alla olevaa tiedostoa säätää, voit hakea jonkin sanan sisältäviä tiedostoja: <tt>grep --recursive "localdomain" /etc</tt>
  39. Tiedoston nimeltä "-foobar" saa poistettua komennolla rm -- -foobar
# <tt>[[dirname]] /joku/polku/tiedosto</tt> palauttaa arvon "/joku/polku". <tt>[[basename]] /joku/polku/tiedosto</tt> palauttaa arvon "tiedosto".
  40. Kaikki ne tiedoston rivit, joissa ei esiinny sana merkkijonoa "kissa" löydät komennolla grep -v kissa tiedostonnimi . Jos taas haluat poistaa vain sanan "kissa" etkä esim. sanaa "takissani" sisältävät rivit, sano grep -v -w kissa tiedostonnimi .
# Jos [[locale]]-asetus on kunnossa (eli olet mm. sanonut export LANG=fi_FI.UTF-8 , voit katsoa koska tiedostoa teksti.txt on viimeksi muutettu sanomalla <tt>[[date]] --reference=teksti.txt "+%Ana %Bn %e. päivä"</tt>
  41. tail -f /var/log/messages näyttää ensin tiedoston lopun ja sitten jatkuvasti tiedostoon tulevat uudet rivit.
# Komento <tt>[[touch]] tiedostonnimi</tt> on helpoin tapa luoda tyhjä tiedosto. Samalla touch-komennolla voi myös muuttaa tiedostojen muokkauspäivämääriä, kokeile esim. <tt>touch --date 2002-04-01 aprillia</tt>
  42. ls -F näyttää tiedostolistauksen niin, että nimen perässä on merkki joka kuvaa tiedoston tyyppiä.
# Jos haluat poistaa tiedoston jonka nimi on -f, se onnistuu kätevimmin komennolla <tt>rm -- -f</tt> tai <tt>rm ./-f</tt>
  43. Tiedosto /etc/motd tulostetataan ruudulle joka kerta kun käyttäjä kirjautuu sisään. Siihen voi kirjoittaa vaikka joulutervehdyksen kaikille käyttäjille.
# Myös tiedostoihin voi tehdä tiedostojärjestelmän.
  44. Tiedosto /etc/issue tulostetaan ruudulle ennen "login:"-kehotetta.
# Levyille voi tehdä tiedostojärjestelmän myös ilman partitiointia
  45. Komento find . -type f -mmin -30 -print hakee työhakemistosta alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään.
# <tt>find</tt>-komento antaa helposti pitkän listan permission denied -virheilmoituksia. Nämä voi suodattaa pois [[standardivirrat|ohjaamalla]] virheet [[laitetiedostot|/dev/nulliin]]: <tt> find / -name "saxon" 2> /dev/null</tt>
  46. Levypinnan saa pyyhittyä tyhjäksi komennolla dd if=/dev/zero of=/dev/fd0. Esimerkki tyhjentää levykkeen, samalla tavalla voi pyyhkiä kiintolevyjä, esim. /dev/hda on IDE0-väylän master-levy. Usein suositellaan /dev/zero -laitteen sijasta /dev/random -laitetta, mutta silloin pyyhintä hidastuu mateluksi.
 
  47. head -5 tiedostonnimi tulostaa tiedoston viisi ensimmäistä riviä. head -c 5 tiedostonnimi tulostaa viisi ensimmäistä merkkiä. tail -5 tiedostonnimi ja tail -c 5 tiedostonnimi toimivat vastaavasti.
==Verkko==
  48. wc *.txt antaa listan hakemiston sisältämistä .txt -päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien lukumäärän.
# [[mail]]-komento toimii myös komentorivillä. Voit vaikka suorittaa komennon ja ohjata tulostuksen meiliin: <tt>[[pwd]] | mail -s "Komennon pwd tulos" oma.osoite@domain.example</tt>
  49. cat --number tiedostonnimi tulostaa tiedoston rivit numeroituna.
# Kokeile tätä: <tt>[[echo]] "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com" | at 09:00 06.04.02</tt>
  50. strings -komennolla voit hakea merkkijonoja binäärimössöstä. Esim. strings jokudoku.doc näyttää yleensä Word-documentin sisältämän tekstin jotenkin luettavassa muodossa.
# Jos kokeilet edellistä, muista oikea päivämäärä. Sillä tavalla ei tule perheriitaa, ja aikaa säästyy esim. Linuxin säätämiseen.
  51. Kaikki Microsoft Office -dokumentit löydät komennolla find . -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;
# Komento <tt>ypchfn</tt>, jolla vaihdetaan erillisellä käyttäjätunnuspalvelimella olevia käyttäjätietoja, tulee sanoista "Yellow Pages CHange FiNger". Yellow Pages oli nykyisen [[NIS]]-palvelimen ensimmäinen nimi, mutta se vaihdettiin kun British Telecom omisti siihen tavaramerkin. Tiedolla ei varsinaisesti tee mitään, mutta käyttämällä sitä sopivassa tilanteessa osoitat olevasi nörtti.
  52. Normaalissa konsolissa voi Shift+Page Up -näppäilyllä siirtyä pari ruudullista taaksepäin.
# Kokeile tätä: <tt>[[lynx]] --dump http://www.khdrive.fi/linkku/ | grep --after-context=5 "Seuraavat kokoontumiset"</tt>
  53. Komennolla ls -l | colrm 10 30 saat tiedostolistauksesta pois tiedoston omistajan ja ryhmän.
# <tt>[[wget]] --recursive http://www.flug.fi/</tt> imuroi koko Flug ry:n WWW-sivuston omalle koneelle.
  54. Komennolla cut -d ' ' -f 2 tiedostonnimi voit tulostaa tiedoston jokaisen rivin toisen sanan.
# Testaa latausnopeutesi: <tt>wget -O /dev/null ftp://ftp.funet.fi/dev/100Mnull > /dev/null</tt> (tämä testi saattaa olla hitaampi kuin nopeat liittymät)
  55. Kaikkiin html-tiedostoihin saat LANG-attribuutin seuraavasti: find . -name "*.html" -print | xargs perl -e 's/<HTML>/<HTML LANG="fi">/gi' -p -i.bak
# Jaa kansio nopeasti verkkoon väliaikaista käyttöä varten: <tt>python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"</tt>
  56. Virheilmoituksetkin saa ohjattua tiedostoon. Kokeile esim. find hakemistojotaeiole >& find-tuloste.txt
 
  57. which-komennolla näkee mistä polussa oleva ohjelmatiedosto löytyy. Kokeile esim. which ldd
==Prosessit==
  58. Haluatko varmasti hyvän salasanan? Sano head -c 6 /dev/random | mimencode
# [[locate]]-komennon tietokanta muodostuu [[updatedb]] -ohjelmalla, jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla <tt>[[time]] updatedb</tt>
  59. Ellet tiedä mitä /etc:n alla olevaa tiedostoa säätää, voit hakea jonkin sanan sisältäviä tiedostoja: grep --recursive "localdomain" /etc
# Komennolla <tt>[[ps]] aufx</tt> näet puuesityksen ajossa olevista prosesseista.
  60. Komennoilla who ja w saat tietoa järjestelmää parhaillaan käyttävistä. Esimerkiksi w -s näyttää kätevässä muodossa kuka tekee mitäkin.
# Komennolla <tt>[[nohup]] jokukomento >& lokitiedosto &</tt> saat komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja komento jää suoritettavaksi. Sama onnistuu myös [[screen]]in avulla.
  61. Komennolla wall 'Linux on cool!' voit lähettää viestisi kaikkien koneen käyttäjien ruudulle.
# <tt>[[killall]] [[vi]]</tt> lopettaa kaikki ajossa olevat vi-ohjelmat.
  62. echo 'Linux on cool!' | write maija taas kertoo saman viestin ainoastaan Maijalle.
# Komento <tt>[[kill]] `[[pidof]] [[vi]]`</tt> toimii samoin.
  63. Komennolla nohup jokukomento >& lokitiedosto & saat komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja komento jää suoritettavaksi.
# <tt>[[top]]</tt> näyttää jatkuvasti päivittyvän listan ajossa olevista ohjelmista. Painamalla h-kirjainta saat ohjeen käytössä olevista komennoista. q-kirjaimella pääset pois ohjelmasta.
  64. Komennolla ed tiedostonnimi saat avattua tehokkaan ja monipuolisen, mutta resursseja säästeliäästi käyttävän editorin. Lisätietoa edistä
 
  65. eject poistaa CD-levyn asemasta. eject -t vetää levyn sisään.
==Järjestelmänhallinta==
  66. Komento history tulostaa komentohistorian.
# Hakemiston /etc/skel sisällöstä tehdään kopio kotihakemistoon, kun luodaan uusi käyttäjä.
  67. Musa soi komentoriviltäkin. playmidi soittaa midejä, play soittaa monenlaisia ääniformaatteja. mpg123 soittaa MP3-tiedostoja.
# Hakemiston /proc sisältä löytyy tietoa koneesta. Katso vaikka mitä cat /proc/cpuinfo tulostaa.
  68. killall vi lopettaa kaikki ajossa olevat vi-ohjelmat.
# Jos hakemistoon /etc/[[cron]].weekly luo tiedoston, jossa on vain komento <tt>[[cp]] -R /home/ville /root</tt>, saa joka viikko varmuuskopion Villen kotihakemistosta rootin kotihakemistoon.
  69. sort tiedosto | uniq aakkostaa tiedoston rivit ja poistaa moneen kertaan esiintyvät rivit. sort tiedosto | uniq -d näyttää vain kahteen tai useampaan kertaan esiintyvät rivit.
# Tiedosto /etc/motd tulostetataan ruudulle joka kerta kun käyttäjä kirjautuu sisään. Siihen voi kirjoittaa vaikka joulutervehdyksen kaikille käyttäjille.
  70. dirname /joku/polku/tiedosto palauttaa arvon "/joku/polku". basename /joku/polku/tiedosto palauttaa arvon "tiedosto".
# Tiedosto /etc/issue tulostetaan ruudulle ennen "login:"-kehotetta.
  71. tac tiedostonnimi tulostaa tiedoston rivi kerrallaan alusta loppuun. rev tiedostonnimi tulostaa jokaisen rivin väärinpäin, ja rev tiedostonnimi | tac tulostaa koko tiedoston väärinpäin.
# Levypinnan saa pyyhittyä tyhjäksi komennolla <tt>[[dd]] if=/dev/zero of=/dev/fd0</tt>. Esimerkki tyhjentää levykkeen, samalla tavalla voi pyyhkiä kiintolevyjä, esim. /dev/hda on IDE0-väylän master-levy. Usein suositellaan /dev/zero -laitteen sijasta /dev/urandom -laitetta, mutta silloin pyyhintä hidastuu mateluksi. Myös astetta parempaa satunnaislukua tuottavan /dev/random-laitteen käyttö on mahdollista, mutta tällöin toimenpiteen suoritus hidastuu edelleen.
  72. top näyttää jatkuvasti päivittyvän listan ajossa olevista ohjelmista. Painamalla h-kirjainta saat ohjeen käytössä olevista komennoista. q-kirjaimella pääset pois ohjelmasta.
# <tt>[[uname]]</tt> on joskus kätevä, erityisesti komento <tt>uname -a</tt> kertoo ytimen version ym. mahdollisesti kiinnostavaa.
  73. volname kertoo CD-asemassa olevan levyn nimen.
 
  74. cat tiedostonnimi | while read; do echo $REPLY; sleep 5; done tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
==Käyttäjät ja ryhmät==
  75. Tervehdyksen pienellä viiveellä saa näin:
# <tt>[[su]]</tt> -komennolla voit vaihtaa lennosta toiseksi käyttäjäksi. <tt>su -</tt> vaihtaa rootiksi ja root voi sanoa <tt>su - ville</tt> päästääkseen kokeilemaan Villen tunnusta ilman salasanaa. Valitsin "-" aiheuttaa pelkkien oikeusmuutosten ohella myös käyttäjän omien sisäänkirjautumisskriptien ajamisen.
      temp=$IFS; IFS=$''; echo "Hei kaikki" | while read -n 1; do echo -n $REPLY; usleep 100000; done; IFS=$temp
# Komennoilla <tt>[[who]]</tt> ja <tt>w</tt> saat tietoa järjestelmää parhaillaan käyttävistä. Esimerkiksi <tt>w -s</tt> näyttää kätevässä muodossa kuka tekee mitäkin.
  76. Komennolla yes voit tulostaa y-kirjaimia esim. putkessa ohjelmalle, joka kyselee liikaa "Oletko aivan varma?". yes n tulostaa n-kirjaimia ja yes moro tervehtii käyttäjää ad infinitum.
# Komennolla <tt>[[wall]] 'Linux on cool!'</tt> voit lähettää viestisi kaikkien koneen käyttäjien ruudulle.
  77. Tulostuskin onnistuu komentoriviltä, kokeile vaikka lpr jokudoku.txt tai cal | lpr
# <tt>echo 'Linux on cool!' | write maija</tt> taas kertoo saman viestin ainoastaan Maijalle.
  78. Kun tehdään, niin tehdään kunnolla. Kun tehdään kalenteri kunnolla, niin huomioidaan juliaanisen kalenterin vaihtuminen gregoriaaniseen. Kokeile: cal 9 1752
# <tt>[[who]] mom loves</tt> tulostaa käyttäjätunnuksesi, käyttämäsi konsolin ja sisäänkirjautumisajan.
  79. WWW-sivuston kaikkien .html -sivujen META KEYWORDS -tageista saa helposti sivulistan tällä komennolla:
# <tt>who | [[cut]] -d ' ' -f 1 | [[sort]] | [[uniq]] | tr -d ' ' | [[finger]] -s -m | cut -c 11-27 | sort | uniq</tt> kertoo keitä koneelle on kirjautunut. Sama paikallista /etc/passwd -tiedostoa käyttäen on monimutkaisempi: <tt>who | cut -d ' ' -f 1 | sort | uniq | [[tr]] -d ' ' | [[xargs]] -n 1 [[echo]] "^" | [[colrm]] 2 2 | [[grep]] -f - /etc/passwd | cut -d ':' -f 5</tt>
      find . -type f -name "*.html" | while read a; do grep --ignore-case "<META NAME=\"keywords\" CONTENT=\".*\">" $a | cut -f 4 -d "\"" | dd conv=lcase | tr "," "\n" | while read; do echo $a >> $REPLY.hakusana; done; done && ls *.hakusana | while read a; do h=`echo $a | cut -f 1 -d "."`; echo "<H2>$h</H2>"; cat $a | cut -b 3- | while read; do echo "<A HREF=\"$REPLY\">`grep --ignore-case "<title>.*</title>" $REPLY | cut -f 2 -d ">" | cut -f 1 -d "<"`</A>"; done; done && rm *.hakusana
# Komento <tt>[[users]]|[[tr]] ' ' '\n'|[[uniq]]|[[wc]] -l</tt> kertoo kuinka monta erinimistä käyttäjää koneelle on kirjautunut.  
  80. Eräs tapa kokeilla koneen ja komentotulkin nopeutta on laskea Fibonaccin lukuja: tee tiedosto fib.sh, jossa on vain rivi
# Haluatko varmasti hyvän salasanan? Sano <tt>[[head]] -c 6 /dev/random | mimencode</tt> tai <tt>[[head]] -c 6 /dev/random | base64</tt>
      if (($1 < 2)); then echo 1; else a=`./fib.sh $1-1`; b=`./fib.sh $1-2`; echo $((a+b)); fi
 
  81. Komennolla pwd -P saat selville missä hakemistossa "oikeasti" olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
==Laitteisto==
  82. Yksinkertainen valikko on helppo tehdä:
# <tt>[[eject]]</tt> poistaa CD-levyn asemasta. <tt>eject -t</tt> vetää levyn sisään.
      valinta=3; echo "1=pwd 2=ls 3=lynx"; read -t 5 valinta; case $valinta in 1) pwd;; 2) ls;; 3) lynx;; esac
# Tulostuskin onnistuu komentoriviltä, kokeile vaikka <tt>[[lpr]] jokudoku.txt tai [[cal]] -my | lpr</tt>
      Jos käyttäjä ei viidessä sekunnissa valitse mitään, käynnistetään lynx.
#<tt>[[gphoto]]2 -P</tt> kopioi kaikki digikamerasi kuvat nykyiseen työhakemistoon. Toiminto edellyttää, että GPhoto-ajuri tukee kameraasi (eli että kamera ei esimerkiksi toimi [[Usb-muisti|USB-massamuisti]]na)
  83. Tällaisenkin valikon voi tehdä:
# <tt>[[volname]]</tt> kertoo CD-asemassa olevan levyn nimen.
      sivut=("evl.fi" "vapaa-ajattelijat.fi" "dilbert.com"); echo "0=evl, 1=vaparit, 2=dilbert"; read valinta; lynx http://www.${sivut[$valinta]}
 
  84. Näissä vinkeissä on kerrottu miten case ja if toimivat, miten komentoja putkitetaan ym. Sanomalla man bash saat pitkän ohjesivun näistä ja monesta muustakin asiasta.
==Tiedostojen ja syötteiden muokkaus==
  85. Jos locale-asetus on kunnossa (eli olet mm. sanonut export LANG=fi_FI , voit katsoa koska tiedostoa teksti.txt on viimeksi muutettu sanomalla date --reference=teksti.txt "+%Ana %Bn %e. päivä"
# Kaikkiin html-tiedostoihin saat LANG-attribuutin seuraavasti: <tt>find . -name "*.html" -print | [[xargs]] [[perl]] -e 's/<HTML>/<HTML LANG="fi">/gi' -p -i.bak</tt>
  86. Jos tiedosto nimikunta sisältää rivit Jori TAB Tampere, Laura TAB Tampere ja Åke TAB Tukholma, ja tiedosto kuntamaa rivit Tampere TAB Suomi ja Tukholma TAB Ruotsi, voit katsoa missä maassa ihmiset asuvat komennolla join -o 1.1,2.2 -1 2 nimikunta kuntamaa
# Komennolla <tt>[[ed]] tiedostonnimi</tt> saat avattua tehokkaan ja monipuolisen, mutta resursseja säästeliäästi käyttävän editorin.
  87. Komento touch tiedostonnimi on helpoin tapa luoda tyhjä tiedosto. Samalla touch-komennolla voi myös muuttaa tiedostojen muokkauspäivämääriä, kokeile esim. touch --date 2002-04-01 aprillia
# <tt>[[tr]]</tt> -komennolla voit muuttaa merkkejä, kokeile vaikka: <tt>echo kanalassa | tr a b</tt>.
  88. uname on joskus kätevä, erityisesti komento uname -a kertoo ytimen version ym. mahdollisesti kiinnostavaa.
# tr:llä voi myös poistaa merkkejä. Sano vaikka <tt>cat tiedosto | tr -d " "</tt>
  89. Tiedoston voi jakaa osiin split-komennolla. Kokeile esim. split -b 10k jokutiedosto
# <tt>[[sort]] tiedosto | [[uniq]]</tt> aakkostaa tiedoston rivit ja poistaa moneen kertaan esiintyvät rivit. <tt>[[sort]] tiedosto | uniq -d</tt> näyttää vain kahteen tai useampaan kertaan esiintyvät rivit.
  90. Komennolla seq 10 -3 1 voit tulostaa luvut 10, 7, 4 ja 1.
# Rikoit rivinvaihdot kun siirsit tekstiä Windows/DOS- tai Mac-koneelta Linuxiin? <tt>dos2unix</tt> ja <tt>mac2unix</tt> -komennot auttavat.
  91. clear tyhjentää kuvaruudun. Kätevä joissakin skripteissä.
# Komennolla <tt>[[cut]] -d ' ' -f 2</tt> tiedostonnimi voit tulostaa tiedoston jokaisen rivin toisen sanan.
  92. pdftotext tiedosto.pdf tekee tiedoston tiedosto.txt, joka hyvällä onnella sisältää PDF:n sisältämän tekstin.
# <tt>[[tac]] tiedostonnimi</tt> tulostaa tiedoston rivi kerrallaan lopusta alkuun. <tt>[[rev]] tiedostonnimi</tt> tulostaa jokaisen rivin väärinpäin, ja <tt>rev tiedostonnimi | tac</tt> tulostaa koko tiedoston väärinpäin.
  93. su -komennolla voit vaihtaa lennosta toiseksi käyttäjäksi. su - vaihtaa rootiksi ja root voi sanoa su - ville päästääkseen kokeilemaan Villen tunnusta ilman salasanaa.
#<nowiki>WWW-sivuston kaikkien .html -sivujen META KEYWORDS -tageista saa helposti sivulistan tällä komennolla
  94. wget --recursive http://www.mpoli.fi/flug/ imuroi koko Flug ry:n WWW-sivuston omalle koneelle.
      find . -type f -name "*.html" | while read a; do grep --ignore-case "<META NAME=\"keywords\" CONTENT=\".*\">" $a | cut -f 4 -d "\"" | dd conv=lcase | tr "," "\n" | while read; do echo $a >> $REPLY.hakusana; done; done && ls *.hakusana | while read a; do h=`echo $a | cut -f 1 -d "."`; echo "<H2>$h</H2>"; cat $a | cut -b 3- | while read; do echo "<A HREF=\"$REPLY\">`grep --ignore-case "<title>.*</title>" $REPLY | cut -f 2 -d ">" | cut -f 1 -d "<"`</A>"; done; done && rm *.hakusana
  95. watch -n 60 --differences ls /tmp tulostaa minuutin välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet tiedot.
</nowiki>
  96. Jos teet kotihakemistosi alle hakemiston nimeltä bin , voit siirtää sinne tekemäsi skriptit ym. ja käyttää niitä antamatta koko polkua, ts. aivan kuten koneessasi valmiina olevia ohjelmiakin.
# Tiedoston voi jakaa osiin [[split]]-komennolla. Kokeile esim. <tt>split -b 10k jokutiedosto</tt>
  97. Jos laitat skriptit hakemistoon /usr/local/bin , niitä voivat käyttää kaikki koneen käyttäjät.
# Kaikki ne tiedoston rivit, joissa ei esiinny merkkijonoa "kissa" löydät komennolla <tt>grep -v kissa tiedostonnimi</tt> . Jos taas haluat poistaa vain sanan "kissa" etkä esim. sanaa "takissani" sisältävät rivit, sano <tt>grep -v -w kissa tiedostonnimi</tt>
  98. cmp tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen myös skripteissä, esim. cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"
# <tt>tail -f /var/log/messages</tt> näyttää ensin tiedoston lopun ja sitten jatkuvasti tiedostoon tulevat uudet rivit.
  99. who mom loves tulostaa käyttäjätunnuksesi, käyttämäsi konsolin ja sisäänkirjautumisajan.
# <tt>head -5 tiedostonnimi</tt> tulostaa tiedoston viisi ensimmäistä riviä. <tt>head -c 5 tiedostonnimi</tt> tulostaa viisi ensimmäistä merkkiä. <tt>tail -5 tiedostonnimi</tt> ja <tt>tail -c 5 tiedostonnimi</tt> toimivat vastaavasti.
100. who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | finger -s -m | cut -c 11-27 | sort | uniq kertoo keitä koneelle on kirjautunut. Sama paikallista /etc/passwd -tiedostoa käyttäen on monimutkaisempi: who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | xargs -n 1 echo "^" | colrm 2 2 | grep -f - /etc/passwd | cut -d ':' -f 5
# <tt>[[cat]] --number tiedostonnimi</tt> tulostaa tiedoston rivit numeroituna.
# Virheilmoituksetkin (STDERR) saa ohjattua tiedostoon. Kokeile esim. <tt>find hakemistojotaeiole >& find-tuloste.txt</tt>
# [[cmp]] tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen myös skripteissä, esim. <tt>cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"</tt>
# Jos tiedostossa on niin pitkät rivit että ne menevät ruudun ulkopuolelle oikeasta laidasta esim. <tt>less tiedosto</tt> niin voit käyttää [[fmt]]-komentoa <tt>fmt tiedosto | less</tt>.
# [[strings]] -komennolla voit hakea merkkijonoja binäärimössöstä. Esim. <tt>strings jokudoku.doc</tt> näyttää yleensä Word-documentin sisältämän tekstin jotenkin luettavassa muodossa.
# <tt>[[pdftotext]] tiedosto.pdf</tt> tekee tiedoston tiedosto.txt, joka hyvällä onnella sisältää PDF:n sisältämän tekstin.
# [[bzcat]] ja [[zcat]]-komennoilla voit tulostaa pakatun tiedoston sisällön näytölle tai tiedostoon pakettia purkamatta. bzcat ~/patch.bz2 | [[patch]] -p1 on hyvä esimerkki tästä. Myös esimerkiksi [[zless]] ja [[zgrep]] toimivat.
# Tietyn numeron omaavan rivin saa tulostettua syötteeestä tai tiedostosta [[awk]]-ohjelman avulla: <tt>cat tiedosto | awk "FNR == 45"</tt> (tässä rivi 45).
 
==Kuvat ja multimedia==
# Musa soi komentoriviltäkin. <tt>[[playmidi]]</tt> soittaa midejä, <tt>[[play]]</tt> soittaa monenlaisia ääniformaatteja. <tt>[[mpg123]]</tt> soittaa [[MP3]]-tiedostoja.
# Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka <tt>identify jokukuva.gif</tt> (Identify kuuluu [[ImageMagick]]-pakettiin)
# [[Mplayer|Mplayerilla]] voit helposti kopioda Realplayer-streamia koneellesi tiedostoon. Tämä onnistuu komennolla <tt>mplayer -dumpstream URL_LÄHTEESEEN -dumpfile KOHDETIEDOSTO_LEVYLLÄ</tt>. Real-koodekit on tietysti oltava asennettuna.
#Antamalla komennon <tt>mplayer filmi.ogg</tt> tekstikonsolissa voit katsella videota filmi.ogg
 
==Skriptaus==
''Pääartikkeli [[Bash-skriptaus]]''
# Eräs tapa kokeilla koneen ja komentotulkin nopeutta on laskea Fibonaccin lukuja: tee tiedosto fib.sh, jossa on vain rivi <tt>if (($1 < 2)); then echo 1; else a=`./fib.sh $1-1`; b=`./fib.sh $1-2`; echo $((a+b)); fi</tt>
# Yksinkertainen valikko on helppo tehdä: <tt>valinta=3; echo "1=[[pwd]] 2=[[ls]] 3=[[lynx]]"; [[read]] -t 5 valinta; case $valinta in 1) pwd;; 2) ls;; 3) lynx;; esac</tt> Jos käyttäjä ei viidessä sekunnissa valitse mitään, käynnistetään lynx.
# Tällaisenkin valikon voi tehdä: <tt>sivut=("evl.fi" "vapaa-ajattelijat.fi" "dilbert.com"); echo "0=evl, 1=vaparit, 2=dilbert"; read valinta; lynx <nowiki>http://www.${sivut[$valinta]}</nowiki></tt>
# <tt>[[cat]] tiedostonnimi | while read; do echo $REPLY; sleep 5; done</tt> tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
# Tervehdyksen pienellä viiveellä saa näin: <tt>temp=$IFS; IFS=$''; echo "Hei kaikki" | while read -n 1; do echo -n $REPLY; [[usleep]] 100000; done; IFS=$temp</tt>
# Näissä vinkeissä on kerrottu miten case ja if toimivat, miten komentoja putkitetaan ym. Sanomalla <tt>man bash</tt> saat pitkän ohjesivun näistä ja monesta muustakin asiasta.
# Jos teet kotihakemistosi alle hakemiston nimeltä bin , voit siirtää sinne tekemäsi skriptit ym. ja käyttää niitä antamatta koko polkua, ts. aivan kuten koneessasi valmiina olevia ohjelmiakin. Jos tämä ei näytä toimivan, lisää rivi <tt>[[export]] [[PATH]]="$PATH:$HOME/bin"</tt> [[komentotulkki]]si käynnistystiedostoon (esim. .[[bash]]rc tai .[[zsh]]rc)
# Jos laitat skriptit hakemistoon /usr/local/bin , niitä voivat käyttää kaikki koneen käyttäjät.
 
==Muuta hyödyllistä==
# Komennolla [[bc]] -l saat pienen laskimen. Käytettävissä on normaalit laskutoimitukset ja lisäksi voit sijoittaa arvoja muuttujiin basic-kielen tapaan.
# bc käyttää samaa [[readline]]-kirjastoa kuin esimerkiksi bash-komentotulkki, joten samat Ctrl-R, Ctrl-A ja Ctrl-E toimivat siinäkin. Samalla tavoin toimii myös mm. matriisilaskennan ohjelma [[Octave]].
# PostScript-tiedostoja voi käsitellä komentorivillä. Esim. <tt>psnup -2 dokumentti.ps tiivis.ps</tt> tekee tulostusta varten version jossa kaksi sivua on laitettu yhdelle sivulle.
# <tt>[[wc]] *.txt</tt> antaa listan hakemiston sisältämistä .txt -päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien lukumäärän.
# Komennolla <tt>[[yes]]</tt> voit tulostaa y-kirjaimia esim. putkessa ohjelmalle, joka kyselee liikaa "Oletko aivan varma?". <tt>yes n</tt> tulostaa n-kirjaimia ja <tt>yes moro</tt> tervehtii käyttäjää ad infinitum.
# Kun tehdään, niin tehdään kunnolla. Kun tehdään kalenteri kunnolla, niin huomioidaan juliaanisen kalenterin vaihtuminen gregoriaaniseen. Kokeile: <tt>[[cal]] 9 1752</tt>
# Jos tiedosto nimikunta sisältää rivit Jori TAB Tampere, Laura TAB Tampere ja Åke TAB Tukholma, ja tiedosto kuntamaa rivit Tampere TAB Suomi ja Tukholma TAB Ruotsi, voit katsoa missä maassa ihmiset asuvat komennolla <tt>[[join]] -o 1.1,2.2 -1 2 nimikunta kuntamaa</tt>
# Komennolla <tt>[[seq]] 10 -3 1</tt> voit tulostaa luvut 10, 7, 4 ja 1.
# <tt>[[Cowsay]]n</tt> avulla saat aikaan hienoja tulostuksia konsoliin. Kokeile vaikka <tt>[[uname]] -a | cowsay -f daemon</tt>.
# <tt>[[watch]] -n 60 --differences ls /tmp</tt> tulostaa minuutin välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet tiedot.
# <tt>[[history]] | [[awk]] '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | [[sort]] | [[uniq]] -c | sort -nr | [[head]] -n 10</tt> listaa 10 useimmiten käyttämääsi komentoa [[bash]]-komentotulkissa. [[Zsh]]:ssa sama toimii kirjoittamalla komento <tt>history</tt> muodossa <tt>history 1</tt>.
# Haluatko kuluvan päivän esim. varmuuskopion nimeen? Kokeile tätä: <tt>[[tar]] cf /root/varmistus-home`date +%Y-%m-%d`</tt> Tuo aakkostuukin oikein.
 
[[Luokka:Vinkit]]
[[Luokka:Komentorivi]]

Nykyinen versio 14. joulukuuta 2018 kello 21.05

Seuraavassa on esitetty lukuisia vinkkejä komentorivin tehokäyttöön. Vinkit on jaoteltu eri kategorioihin. Eri järjestelmissä on eroja, joten kaikki vinkit eivät välttämättä toimi kaikissa jakeluissa tai kaikissa komentotulkeissa. Valtaosa vinkeistä kuitenkin toimii useimpien jakeluiden mukana tulevassa ja oletuksena käytössä olevassa bash-yhteensopivassa komentotulkissa. Joissakin järjestelmissä oletuskomentotulkkina on tosin tcsh, jonka syntaksi on monelta osin erilainen.

Eri komentorivikomentoja on listattu käyttötarkoituksen mukaan artikkelissa komentorivikomennot. Komentorivin perusteista kerrotaan artikkelissa komentorivin perusteet. Komentorivikomennoista voi tehdä myös erilaisia käteviä komentojonoja, joista kerrotaan artikkelissa bash-skriptaus.

Peruskäyttö[muokkaa]

  1. Tab ⇆ näppäimellä voi antaa komentotulkin täydentää loput komennosta tai tiedostonimestä. Mikäli vaihtoehtoja on useampia, ne saa näkyviin toisella painalluksella. Osassa komentotulkkeja voi TABilla täydentää myös mm. etäkoneiden ja käyttäjien nimiä sekä komentojen valitsimia (bashissa tämän ominaisuuden saa käyttöön ajamalla skriptin /etc/bash_completion rivit, sopiva komento löytyy usein deaktivoituna bashin alustusskripteissä). Jos listaus on pitkä näppäimellä q voit lopettaa listauksen.
  2. Jos kaverisi pyytää auttamaan Linuxin käytössä, kerro hänelle man-sivuista. man tar ja man mkisofs ovat esimerkkeinä parhaita. Myös info-sivut voivat olla hyviä tiedonlähteitä.
  3. man -k printer kertoo kaikki ne komennot, joiden yksirivinen kuvaus sisältää merkkijonon "printer".
  4. Aliakset ovat käteviä. Komennon alias l="ls -lda" jälkeen pelkkä l riittää komennoksi.
  5. Jos olet tehnyt aliaksen, jolla on sama nimi kuin komennolla (alias ls='ls --color=tty', esimerkiksi), mutta haluat suorittaa poikkeuksellisesti sen alkuperäisen, kirjoita komento muodossa \ls.
  6. Paina Ctrl+R komentokehotteessa ja kirjoita vaikka "ls", niin löydät viimeisimmän kirjoittamasi komennon jossa esiintyy kirjaimet "ls". Paina Ctrl+R uudelleen hakeaksesi kauempaa komentohistoriasta.
  7. Ctrl+A vie rivin alkuun komentokehotteessa, Ctrl+E rivin loppuun. Ctrl+F, Ctrl+B, Ctrl+P ja Ctrl+N (forward/backward/previous/next) korvaa nuolinäppäimet. ESC+F ja ESC+B liikuttaa sanoittain. Ctrl+D, ESC+D, Ctrl+K ja Ctrl+U poistaa tekstiä, Ctrl+Y palauttaa viimeksi poistetut merkit nykyiseen kohtaan.
  8. Komentoja voi yhdistellä && ja || -operaattoreilla. tar cf paketti.tar /joku/hakemisto && rm -rf /joku/hakemisto suorittaa ensin tar-komennon, ja jos se onnistuu ongelmitta, suoritetaan rm-komento. || toimii toisinpäin, toinen komento suoritetaan vain jos ensimmäinen epäonnistui.
  9. Komentokehotetta voi muuttaa. Esimerkiksi bash-komentotulkissa export PS1='[\u@\h \w]\$ ' laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston. Artikkelista zsh voi lukea kuinka tämä onnistuu zsh-komentotulkissa.
  10. Koneelle kirjauduttaessa ajetaan kotihakemistosta tiedosto jonka nimi on ".bash_profile" (muissa kuin bash-komentotulkissa nimi on toinen, usein .profile tai .login). Sen loppuun voit kirjoittaa vaikka echo "Muista katsoa www.khdrive.fi/linkku/"
  11. Virtuaalikonsolissa voi ⇧ Shift+Page Up-näppäilyllä siirtyä pari ruudullista taaksepäin. Huomioi kuitenkin, että esimerkiksi X:ssä käynti yleensä nollaa tämän ruutuhistorian. Sama näppäily toimii monessa terminaaliemulaattorissa (xterm tms.), joissa taas ikkunan leveyden vaihto tuhoaa historiaa.
  12. which-komennolla näkee mistä polussa oleva ohjelmatiedosto löytyy. Kokeile esim. which ldd
  13. Komento history tulostaa komentohistorian, history 5 viisi viimeistä komentoa. Jos käyttää historiatoimintoa (esimerkiksi muodossa Ctrl+R) kannattaa asentaa isompi puskuri, esimerkiksi HISTSIZE=5000.
  14. Komennolla pwd -P saat selville missä hakemistossa "oikeasti" olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
  15. clear tyhjentää kuvaruudun. Kätevä joissakin skripteissä. Normaalikäytössä on helpompi painaa Ctrl+L. Jos näppäimistö tai ruutu käyttäytyy sekavasti, esimerkiksi binääritiedoston katsomisen tuloksena, myös stty sane tai reset voi olla kohdallaan.
  16. Voit uudelleen käyttää komennoille antamiasi parametrejä "ESC ."-näppäinyhdistelmällä. Esim. jos luit pitkää /home/pena/file-tiedostoa komennolla "cat /home/pena/file", niin kokeile "less ESC .".
  17. Jos siirryt cd-komennolla uuteen hakemistoon ja haluat jostakin syystä palata takaisin siihen aikaisempaan, voit tehdä sen komennolla cd -.
  18. cd ~ -komennolla pääset suoraan kotihakemistoosi.

Tiedostonhallinta[muokkaa]

  1. Komennolla df -h saat siistin esityksen levyosioiden täyttöasteesta.
  2. Sano roottina du -s /home/* | sort -n -r | head ja löydät levyrohmut.
  3. Komennolla find . -type f -name "*koira*" -print0 | xargs -0 grep -l "kissa" löydät kaikki ne tiedostot työhakemiston alla, joiden nimessä on sana "koira" ja joissa esiintyy sana "kissa". Käyttämällä -name:n sijasta valitsinta -iname löydät myös eri kirjainkoolla kirjoitetut merkkijonot. Saman tuloksen saat myös jos korvaat osion | xargs -0 grep -l "kissa" osiolla -exec grep -l kissa '{}' ';'
  4. MS-DOS -levykkeiden käsittely onnistuu mtools -paketilla. Kokeile mitä tekevät mdir a: ja mcopy tiedosto a:.
  5. Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano for i in *; do mv -i $i `echo $i | tr A-Z a-z`; done
  6. Hakemiston saa pakattua näin: tar cvzf paketti.tar.gz /joku/hakemisto . Purku onnistuu komennolla tar xvzf paketti.tar.gz. Korvaa komennon z-kirjaimet j:lla jos haluat käyttää gzip-pakkauksen sijasta tehokkaampaa bzip2-pakkausta.
  7. locate on nopeampi kuin find. Kokeile esim. locate foobar löytääksesi tiedostot joiden nimissä on merkkijono "foobar". Locate käyttää tiedostojen nimistä kerättyä tietokantaa, joka päivittyy oletuksena joka yö (cron).
  8. ls -S listaa tiedostot kokojärjestyksessä, ls -t muokkausajan mukaan järjestettynä, ls -tu käyttöajan mukaan (kunhan atime on käytössä). "-r" kääntää järjestyksen.
  9. file tiedostonnimi yrittää arvailla mitä tyyppiä tiedosto on. Roottina voit jopa sanoa file -s /dev/hda1 ja näet sisältääkö laitetiedosto jotain joka näyttää tiedostojärjestelmältä.
  10. Symboliset linkit ovat joskus käteviä. Jos /var/www on liian täynnä ja /home melkein tyhjä, sano mv -i /var/www /home ja ln -s /home/www /var/www
  11. mkdir-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. mkdir -p eka/toka/kolmas. Sanomalla mkdir -p abc/def0{1..9} luot abc-kansion alle numeroidut alikansiot def01,def02..def09.
  12. ls -F näyttää tiedostolistauksen niin, että nimen perässä on merkki joka kuvaa tiedoston tyyppiä.
  13. Jos haluat ls:n tekevän saman värien avulla, anna komento ls --color=auto (tämä on oletus monessa jakelussa).
  14. Komento find . -type f -mmin -30 -print hakee työhakemistosta alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään.
  15. Kaikki Microsoft Office -dokumentit löydät komennolla find . -iname '*.doc*' -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \; (jos tiedosto on satettu siirtää eri nimelle, poista "iname ... doc*'", tiedostonimen käyttö karkeaan karsintaan kuitenkin nopeuttaa operaatiota huomattavasti)
  16. Komennolla ls -l | colrm 10 30 saat tiedostolistauksesta pois tiedoston omistajan ja ryhmän. GNU ls:llä ls -lgG tekee saman.
  17. Ellet tiedä mitä /etc:n alla olevaa tiedostoa säätää, voit hakea jonkin sanan sisältäviä tiedostoja: grep --recursive "localdomain" /etc
  18. dirname /joku/polku/tiedosto palauttaa arvon "/joku/polku". basename /joku/polku/tiedosto palauttaa arvon "tiedosto".
  19. Jos locale-asetus on kunnossa (eli olet mm. sanonut export LANG=fi_FI.UTF-8 , voit katsoa koska tiedostoa teksti.txt on viimeksi muutettu sanomalla date --reference=teksti.txt "+%Ana %Bn %e. päivä"
  20. Komento touch tiedostonnimi on helpoin tapa luoda tyhjä tiedosto. Samalla touch-komennolla voi myös muuttaa tiedostojen muokkauspäivämääriä, kokeile esim. touch --date 2002-04-01 aprillia
  21. Jos haluat poistaa tiedoston jonka nimi on -f, se onnistuu kätevimmin komennolla rm -- -f tai rm ./-f
  22. Myös tiedostoihin voi tehdä tiedostojärjestelmän.
  23. Levyille voi tehdä tiedostojärjestelmän myös ilman partitiointia
  24. find-komento antaa helposti pitkän listan permission denied -virheilmoituksia. Nämä voi suodattaa pois ohjaamalla virheet /dev/nulliin: find / -name "saxon" 2> /dev/null

Verkko[muokkaa]

  1. mail-komento toimii myös komentorivillä. Voit vaikka suorittaa komennon ja ohjata tulostuksen meiliin: pwd | mail -s "Komennon pwd tulos" oma.osoite@domain.example
  2. Kokeile tätä: echo "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com" | at 09:00 06.04.02
  3. Jos kokeilet edellistä, muista oikea päivämäärä. Sillä tavalla ei tule perheriitaa, ja aikaa säästyy esim. Linuxin säätämiseen.
  4. Komento ypchfn, jolla vaihdetaan erillisellä käyttäjätunnuspalvelimella olevia käyttäjätietoja, tulee sanoista "Yellow Pages CHange FiNger". Yellow Pages oli nykyisen NIS-palvelimen ensimmäinen nimi, mutta se vaihdettiin kun British Telecom omisti siihen tavaramerkin. Tiedolla ei varsinaisesti tee mitään, mutta käyttämällä sitä sopivassa tilanteessa osoitat olevasi nörtti.
  5. Kokeile tätä: lynx --dump http://www.khdrive.fi/linkku/ | grep --after-context=5 "Seuraavat kokoontumiset"
  6. wget --recursive http://www.flug.fi/ imuroi koko Flug ry:n WWW-sivuston omalle koneelle.
  7. Testaa latausnopeutesi: wget -O /dev/null ftp://ftp.funet.fi/dev/100Mnull > /dev/null (tämä testi saattaa olla hitaampi kuin nopeat liittymät)
  8. Jaa kansio nopeasti verkkoon väliaikaista käyttöä varten: python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"

Prosessit[muokkaa]

  1. locate-komennon tietokanta muodostuu updatedb -ohjelmalla, jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla time updatedb
  2. Komennolla ps aufx näet puuesityksen ajossa olevista prosesseista.
  3. Komennolla nohup jokukomento >& lokitiedosto & saat komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja komento jää suoritettavaksi. Sama onnistuu myös screenin avulla.
  4. killall vi lopettaa kaikki ajossa olevat vi-ohjelmat.
  5. Komento kill `pidof vi` toimii samoin.
  6. top näyttää jatkuvasti päivittyvän listan ajossa olevista ohjelmista. Painamalla h-kirjainta saat ohjeen käytössä olevista komennoista. q-kirjaimella pääset pois ohjelmasta.

Järjestelmänhallinta[muokkaa]

  1. Hakemiston /etc/skel sisällöstä tehdään kopio kotihakemistoon, kun luodaan uusi käyttäjä.
  2. Hakemiston /proc sisältä löytyy tietoa koneesta. Katso vaikka mitä cat /proc/cpuinfo tulostaa.
  3. Jos hakemistoon /etc/cron.weekly luo tiedoston, jossa on vain komento cp -R /home/ville /root, saa joka viikko varmuuskopion Villen kotihakemistosta rootin kotihakemistoon.
  4. Tiedosto /etc/motd tulostetataan ruudulle joka kerta kun käyttäjä kirjautuu sisään. Siihen voi kirjoittaa vaikka joulutervehdyksen kaikille käyttäjille.
  5. Tiedosto /etc/issue tulostetaan ruudulle ennen "login:"-kehotetta.
  6. Levypinnan saa pyyhittyä tyhjäksi komennolla dd if=/dev/zero of=/dev/fd0. Esimerkki tyhjentää levykkeen, samalla tavalla voi pyyhkiä kiintolevyjä, esim. /dev/hda on IDE0-väylän master-levy. Usein suositellaan /dev/zero -laitteen sijasta /dev/urandom -laitetta, mutta silloin pyyhintä hidastuu mateluksi. Myös astetta parempaa satunnaislukua tuottavan /dev/random-laitteen käyttö on mahdollista, mutta tällöin toimenpiteen suoritus hidastuu edelleen.
  7. uname on joskus kätevä, erityisesti komento uname -a kertoo ytimen version ym. mahdollisesti kiinnostavaa.

Käyttäjät ja ryhmät[muokkaa]

  1. su -komennolla voit vaihtaa lennosta toiseksi käyttäjäksi. su - vaihtaa rootiksi ja root voi sanoa su - ville päästääkseen kokeilemaan Villen tunnusta ilman salasanaa. Valitsin "-" aiheuttaa pelkkien oikeusmuutosten ohella myös käyttäjän omien sisäänkirjautumisskriptien ajamisen.
  2. Komennoilla who ja w saat tietoa järjestelmää parhaillaan käyttävistä. Esimerkiksi w -s näyttää kätevässä muodossa kuka tekee mitäkin.
  3. Komennolla wall 'Linux on cool!' voit lähettää viestisi kaikkien koneen käyttäjien ruudulle.
  4. echo 'Linux on cool!' | write maija taas kertoo saman viestin ainoastaan Maijalle.
  5. who mom loves tulostaa käyttäjätunnuksesi, käyttämäsi konsolin ja sisäänkirjautumisajan.
  6. who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | finger -s -m | cut -c 11-27 | sort | uniq kertoo keitä koneelle on kirjautunut. Sama paikallista /etc/passwd -tiedostoa käyttäen on monimutkaisempi: who | cut -d ' ' -f 1 | sort | uniq | tr -d ' ' | xargs -n 1 echo "^" | colrm 2 2 | grep -f - /etc/passwd | cut -d ':' -f 5
  7. Komento users|tr ' ' '\n'|uniq|wc -l kertoo kuinka monta erinimistä käyttäjää koneelle on kirjautunut.
  8. Haluatko varmasti hyvän salasanan? Sano head -c 6 /dev/random | mimencode tai head -c 6 /dev/random | base64

Laitteisto[muokkaa]

  1. eject poistaa CD-levyn asemasta. eject -t vetää levyn sisään.
  2. Tulostuskin onnistuu komentoriviltä, kokeile vaikka lpr jokudoku.txt tai cal -my | lpr
  3. gphoto2 -P kopioi kaikki digikamerasi kuvat nykyiseen työhakemistoon. Toiminto edellyttää, että GPhoto-ajuri tukee kameraasi (eli että kamera ei esimerkiksi toimi USB-massamuistina)
  4. volname kertoo CD-asemassa olevan levyn nimen.

Tiedostojen ja syötteiden muokkaus[muokkaa]

  1. Kaikkiin html-tiedostoihin saat LANG-attribuutin seuraavasti: find . -name "*.html" -print | xargs perl -e 's/<HTML>/<HTML LANG="fi">/gi' -p -i.bak
  2. Komennolla ed tiedostonnimi saat avattua tehokkaan ja monipuolisen, mutta resursseja säästeliäästi käyttävän editorin.
  3. tr -komennolla voit muuttaa merkkejä, kokeile vaikka: echo kanalassa | tr a b.
  4. tr:llä voi myös poistaa merkkejä. Sano vaikka cat tiedosto | tr -d " "
  5. sort tiedosto | uniq aakkostaa tiedoston rivit ja poistaa moneen kertaan esiintyvät rivit. sort tiedosto | uniq -d näyttää vain kahteen tai useampaan kertaan esiintyvät rivit.
  6. Rikoit rivinvaihdot kun siirsit tekstiä Windows/DOS- tai Mac-koneelta Linuxiin? dos2unix ja mac2unix -komennot auttavat.
  7. Komennolla cut -d ' ' -f 2 tiedostonnimi voit tulostaa tiedoston jokaisen rivin toisen sanan.
  8. tac tiedostonnimi tulostaa tiedoston rivi kerrallaan lopusta alkuun. rev tiedostonnimi tulostaa jokaisen rivin väärinpäin, ja rev tiedostonnimi | tac tulostaa koko tiedoston väärinpäin.
  9. WWW-sivuston kaikkien .html -sivujen META KEYWORDS -tageista saa helposti sivulistan tällä komennolla find . -type f -name "*.html" | while read a; do grep --ignore-case "<META NAME=\"keywords\" CONTENT=\".*\">" $a | cut -f 4 -d "\"" | dd conv=lcase | tr "," "\n" | while read; do echo $a >> $REPLY.hakusana; done; done && ls *.hakusana | while read a; do h=`echo $a | cut -f 1 -d "."`; echo "<H2>$h</H2>"; cat $a | cut -b 3- | while read; do echo "<A HREF=\"$REPLY\">`grep --ignore-case "<title>.*</title>" $REPLY | cut -f 2 -d ">" | cut -f 1 -d "<"`</A>"; done; done && rm *.hakusana
  10. Tiedoston voi jakaa osiin split-komennolla. Kokeile esim. split -b 10k jokutiedosto
  11. Kaikki ne tiedoston rivit, joissa ei esiinny merkkijonoa "kissa" löydät komennolla grep -v kissa tiedostonnimi . Jos taas haluat poistaa vain sanan "kissa" etkä esim. sanaa "takissani" sisältävät rivit, sano grep -v -w kissa tiedostonnimi
  12. tail -f /var/log/messages näyttää ensin tiedoston lopun ja sitten jatkuvasti tiedostoon tulevat uudet rivit.
  13. head -5 tiedostonnimi tulostaa tiedoston viisi ensimmäistä riviä. head -c 5 tiedostonnimi tulostaa viisi ensimmäistä merkkiä. tail -5 tiedostonnimi ja tail -c 5 tiedostonnimi toimivat vastaavasti.
  14. cat --number tiedostonnimi tulostaa tiedoston rivit numeroituna.
  15. Virheilmoituksetkin (STDERR) saa ohjattua tiedostoon. Kokeile esim. find hakemistojotaeiole >& find-tuloste.txt
  16. cmp tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen myös skripteissä, esim. cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"
  17. Jos tiedostossa on niin pitkät rivit että ne menevät ruudun ulkopuolelle oikeasta laidasta esim. less tiedosto niin voit käyttää fmt-komentoa fmt tiedosto | less.
  18. strings -komennolla voit hakea merkkijonoja binäärimössöstä. Esim. strings jokudoku.doc näyttää yleensä Word-documentin sisältämän tekstin jotenkin luettavassa muodossa.
  19. pdftotext tiedosto.pdf tekee tiedoston tiedosto.txt, joka hyvällä onnella sisältää PDF:n sisältämän tekstin.
  20. bzcat ja zcat-komennoilla voit tulostaa pakatun tiedoston sisällön näytölle tai tiedostoon pakettia purkamatta. bzcat ~/patch.bz2 | patch -p1 on hyvä esimerkki tästä. Myös esimerkiksi zless ja zgrep toimivat.
  21. Tietyn numeron omaavan rivin saa tulostettua syötteeestä tai tiedostosta awk-ohjelman avulla: cat tiedosto | awk "FNR == 45" (tässä rivi 45).

Kuvat ja multimedia[muokkaa]

  1. Musa soi komentoriviltäkin. playmidi soittaa midejä, play soittaa monenlaisia ääniformaatteja. mpg123 soittaa MP3-tiedostoja.
  2. Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka identify jokukuva.gif (Identify kuuluu ImageMagick-pakettiin)
  3. Mplayerilla voit helposti kopioda Realplayer-streamia koneellesi tiedostoon. Tämä onnistuu komennolla mplayer -dumpstream URL_LÄHTEESEEN -dumpfile KOHDETIEDOSTO_LEVYLLÄ. Real-koodekit on tietysti oltava asennettuna.
  4. Antamalla komennon mplayer filmi.ogg tekstikonsolissa voit katsella videota filmi.ogg

Skriptaus[muokkaa]

Pääartikkeli Bash-skriptaus

  1. Eräs tapa kokeilla koneen ja komentotulkin nopeutta on laskea Fibonaccin lukuja: tee tiedosto fib.sh, jossa on vain rivi if (($1 < 2)); then echo 1; else a=`./fib.sh $1-1`; b=`./fib.sh $1-2`; echo $((a+b)); fi
  2. Yksinkertainen valikko on helppo tehdä: valinta=3; echo "1=pwd 2=ls 3=lynx"; read -t 5 valinta; case $valinta in 1) pwd;; 2) ls;; 3) lynx;; esac Jos käyttäjä ei viidessä sekunnissa valitse mitään, käynnistetään lynx.
  3. Tällaisenkin valikon voi tehdä: sivut=("evl.fi" "vapaa-ajattelijat.fi" "dilbert.com"); echo "0=evl, 1=vaparit, 2=dilbert"; read valinta; lynx http://www.${sivut[$valinta]}
  4. cat tiedostonnimi | while read; do echo $REPLY; sleep 5; done tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
  5. Tervehdyksen pienellä viiveellä saa näin: temp=$IFS; IFS=$; echo "Hei kaikki" | while read -n 1; do echo -n $REPLY; usleep 100000; done; IFS=$temp
  6. Näissä vinkeissä on kerrottu miten case ja if toimivat, miten komentoja putkitetaan ym. Sanomalla man bash saat pitkän ohjesivun näistä ja monesta muustakin asiasta.
  7. Jos teet kotihakemistosi alle hakemiston nimeltä bin , voit siirtää sinne tekemäsi skriptit ym. ja käyttää niitä antamatta koko polkua, ts. aivan kuten koneessasi valmiina olevia ohjelmiakin. Jos tämä ei näytä toimivan, lisää rivi export PATH="$PATH:$HOME/bin" komentotulkkisi käynnistystiedostoon (esim. .bashrc tai .zshrc)
  8. Jos laitat skriptit hakemistoon /usr/local/bin , niitä voivat käyttää kaikki koneen käyttäjät.

Muuta hyödyllistä[muokkaa]

  1. Komennolla bc -l saat pienen laskimen. Käytettävissä on normaalit laskutoimitukset ja lisäksi voit sijoittaa arvoja muuttujiin basic-kielen tapaan.
  2. bc käyttää samaa readline-kirjastoa kuin esimerkiksi bash-komentotulkki, joten samat Ctrl-R, Ctrl-A ja Ctrl-E toimivat siinäkin. Samalla tavoin toimii myös mm. matriisilaskennan ohjelma Octave.
  3. PostScript-tiedostoja voi käsitellä komentorivillä. Esim. psnup -2 dokumentti.ps tiivis.ps tekee tulostusta varten version jossa kaksi sivua on laitettu yhdelle sivulle.
  4. wc *.txt antaa listan hakemiston sisältämistä .txt -päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien lukumäärän.
  5. Komennolla yes voit tulostaa y-kirjaimia esim. putkessa ohjelmalle, joka kyselee liikaa "Oletko aivan varma?". yes n tulostaa n-kirjaimia ja yes moro tervehtii käyttäjää ad infinitum.
  6. Kun tehdään, niin tehdään kunnolla. Kun tehdään kalenteri kunnolla, niin huomioidaan juliaanisen kalenterin vaihtuminen gregoriaaniseen. Kokeile: cal 9 1752
  7. Jos tiedosto nimikunta sisältää rivit Jori TAB Tampere, Laura TAB Tampere ja Åke TAB Tukholma, ja tiedosto kuntamaa rivit Tampere TAB Suomi ja Tukholma TAB Ruotsi, voit katsoa missä maassa ihmiset asuvat komennolla join -o 1.1,2.2 -1 2 nimikunta kuntamaa
  8. Komennolla seq 10 -3 1 voit tulostaa luvut 10, 7, 4 ja 1.
  9. Cowsayn avulla saat aikaan hienoja tulostuksia konsoliin. Kokeile vaikka uname -a | cowsay -f daemon.
  10. watch -n 60 --differences ls /tmp tulostaa minuutin välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet tiedot.
  11. history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -n 10 listaa 10 useimmiten käyttämääsi komentoa bash-komentotulkissa. Zsh:ssa sama toimii kirjoittamalla komento history muodossa history 1.
  12. Haluatko kuluvan päivän esim. varmuuskopion nimeen? Kokeile tätä: tar cf /root/varmistus-home`date +%Y-%m-%d` Tuo aakkostuukin oikein.