Ero sivun ”Komentorivivinkkejä” versioiden välillä

Siirry navigaatioon Siirry hakuun
174 merkkiä lisätty ,  9. helmikuuta 2006
ankara wikitys
(Luokka:Komentorivi)
(ankara wikitys)
Rivi 1: Rivi 1:
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ä.
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ä.


# Komennolla <tt>df -h</tt> saat siistin esityksen levyosioiden täyttöasteesta.
# Komennolla <tt>[[df]] -h</tt> saat siistin esityksen levyosioiden täyttöasteesta.
# Sano roottina <tt>du -s /home/* | sort -n | tail</tt> ja löydät levyrohmut.
# Sano roottina <tt>[[du]] -s /home/* | [[sort]] -n | [[tail]]</tt> ja löydät levyrohmut.
# 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".
# Komennolla <tt>[[fin[[d . -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".
# 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>
# [[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>
# 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.
# 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.
# 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ä.
# [[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ä.
# Kokeile tätä: <tt>echo "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com" | at 09:00 06.04.02</tt>
# Kokeile tätä: <tt>echo "echo \"Vie kukkia\" | mail -s Hääpäivä oma.osoite@jossain.com" | at 09:00 06.04.02</tt>
# Jos kokeilet edellistä, muista oikea päivämäärä. Sillä tavalla ei tule perheriitaa, ja aikaa säästyy esim. Linuxin säätämiseen.
# Jos kokeilet edellistä, muista oikea päivämäärä. Sillä tavalla ei tule perheriitaa, ja aikaa säästyy esim. Linuxin säätämiseen.
Rivi 12: Rivi 12:
# 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.
# 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.
# Ctrl-A vie rivin alkuun komentokehotteessa, Ctrl-E rivin loppuun.
# Ctrl-A vie rivin alkuun komentokehotteessa, Ctrl-E rivin loppuun.
# Komennolla bc -l saat pienen laskimen. Käytettävissä on normaalit laskutoimitukset ja lisäksi voit sijoittaa arvoja muuttujiin basic-kielen tapaan.
# 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 komentotulkki, joten samat Ctrl-R, Ctrl-A ja Ctrl-E toimivat siinäkin. Samalla tavoin toimii myös mm. matriisilaskennan ohjelma Octave.
# 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.
# MS-DOS -levykkeiden käsittely onnistuu mtools -paketilla. Kokeile mitä tekevät <tt>mdir a:</tt> ja <tt>mcopy tiedsto a:</tt>.
# MS-DOS -levykkeiden käsittely onnistuu mtools -paketilla. Kokeile mitä tekevät <tt>mdir a:</tt> ja <tt>mcopy tiedsto a:</tt>.
# <tt>tr</tt> -komennolla voit muuttaa merkkejä, kokeile vaikka: <tt>echo kanalassa | tr a b</tt>.
# <tt>tr</tt> -komennolla voit muuttaa merkkejä, kokeile vaikka: <tt>echo kanalassa | tr a b</tt>.
# Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano <tt>for i in *; do mv $i `echo $i | tr A-Z a-z`; done</tt>
# Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano <tt>for i in *; do mv $i `echo $i | tr A-Z a-z`; done</tt>
# Komennolla <tt>ps afx</tt> näet siistin puuesityksen ajossa olevista prosesseista.
# Komennolla <tt>[[ps]] afx</tt> näet siistin puuesityksen ajossa olevista prosesseista.
# tr-komennolla voi poistaa merkkejä. Sano vaikka <tt>cat tiedosto | tr -d " "</tt>
# tr-komennolla voi poistaa merkkejä. Sano vaikka <tt>cat tiedosto | tr -d " "</tt>
# Hakemiston saa pakattua näin <tt>tar cvzf paketti.tar.gz /joku/hakemisto</tt> . Purku onnistuu komennolla <tt>tar xvzf paketti.tar.gz</tt>
# Hakemiston saa pakattua näin <tt>tar cvzf paketti.tar.gz /joku/hakemisto</tt> . Purku onnistuu komennolla <tt>tar xvzf paketti.tar.gz</tt>
# Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka <tt>identify jokukuva.gif</tt>
# Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka <tt>identify jokukuva.gif</tt>
# <tt>ls -S</tt> listaa tiedostot kokojärjestyksessä, <tt>ls -t</tt> muokkausajan mukaan järjestettynä. "-r" kääntää järjestyksen.
# <tt>[[ls]] -S</tt> listaa tiedostot kokojärjestyksessä, <tt>ls -t</tt> muokkausajan mukaan järjestettynä. "-r" kääntää järjestyksen.
# <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ä.
# <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ä.
# Hakemiston /etc/skel sisällöstä tehdään kopio kotihakemistoon, kun luodaan uusi käyttäjä.
# Hakemiston /etc/skel sisällöstä tehdään kopio kotihakemistoon, kun luodaan uusi käyttäjä.
# Hakemiston /proc sisältä löytyy tietoa koneesta. Katso vaikka mitä cat /proc/cpuinfo tulostaa.
# Hakemiston /proc sisältä löytyy tietoa koneesta. Katso vaikka mitä cat /proc/cpuinfo tulostaa.
# Jos kaverisi pyytää auttamaan Linuxin käytössä, kerro hänelle man-sivuista. <tt>man tar</tt> ja <tt>man mkisofs</tt> ovat esimerkkeinä parhaita.
# 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.
# locate on nopeampi kuin find. Kokeile esim. <tt>locate condom</tt> löytääksesi tiedostot joiden nimissä on merkkijono "condom". Locate käyttää tiedostojen nimistä kerättyä tietokantaa, joka päivittyy joka yö.
# [[locate]] on nopeampi kuin find. Kokeile esim. <tt>locate condom</tt> löytääksesi tiedostot joiden nimissä on merkkijono "condom". Locate käyttää tiedostojen nimistä kerättyä tietokantaa, joka päivittyy joka yö.
# locate-komennon tietokanta muodostuu updatedb -ohjelmalla, jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla <tt>time updatedb</tt>
# locate-komennon tietokanta muodostuu [[updatedb]] -ohjelmalla, jonka ajo kestää aika kauan. Miten kauan, sen saa selville komennolla <tt>time updatedb</tt>
# Rikoit rivinvaihdot kun siirsit tekstiä Dos- tai Mac-koneelta Linuxiin? <tt>dos2unix</tt> ja <tt>mac2unix</tt> -komennot auttavat.
# Rikoit rivinvaihdot kun siirsit tekstiä Dos- tai Mac-koneelta Linuxiin? <tt>dos2unix</tt> ja <tt>mac2unix</tt> -komennot auttavat.
# 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.
# 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.
Rivi 35: Rivi 35:
# 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.
# 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.
# Komentokehotetta voi muuttaa. Esim. <tt>export PS1='[\u@\h \w]\$ '</tt> laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston.
# Komentokehotetta voi muuttaa. Esim. <tt>export PS1='[\u@\h \w]\$ '</tt> laittaa komentokehotteeseen käyttäjätunnuksen, koneen ja työhakemiston.
# mkdir-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. <tt>mkdir -p eka/toka/kolmas</tt>
# [[mkdir]]-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. <tt>mkdir -p eka/toka/kolmas</tt>
# Jos hakemistoon /etc/cron.weekly luo tiedoston, jossa on vain komento <tt>cp --recursive /home/ville /root</tt>, saa joka viikko varmuuskopion Villen kotihakemistosta rootin kotihakemistoon.
# Jos hakemistoon /etc/cron.weekly luo tiedoston, jossa on vain komento <tt>cp --recursive /home/ville /root</tt>, saa joka viikko varmuuskopion Villen kotihakemistosta rootin kotihakemistoon.
# Koneelle kirjauduttaessa ajetaan kotihakemistosta tiedosto jonka nimi on ".bash_profile". Sen loppuun voit kirjoittaa vaikka echo "Muista katsoa www.khdrive.fi/linkku/"
# Koneelle kirjauduttaessa ajetaan kotihakemistosta tiedosto jonka nimi on ".bash_profile". Sen loppuun voit kirjoittaa vaikka echo "Muista katsoa www.khdrive.fi/linkku/"
# Kokeile tätä: <tt>lynx --dump http://www.khdrive.fi/linkku/ | grep --after-context=5 "Seuraavat kokoontumiset"</tt>
# Kokeile tätä: <tt>[[lynx]] --dump http://www.khdrive.fi/linkku/ | grep --after-context=5 "Seuraavat kokoontumiset"</tt>
# Tiedoston nimeltä "-foobar" saa poistettua komennolla rm -- -foobar
# Tiedoston nimeltä "-foobar" saa poistettua komennolla rm -- -foobar
# 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> .
# 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> .
Rivi 48: Rivi 48:
# 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/random -laitetta, mutta silloin pyyhintä hidastuu mateluksi.
# 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/random -laitetta, mutta silloin pyyhintä hidastuu mateluksi.
# <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.
# <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.
# <tt>wc *.txt</tt> antaa listan hakemiston sisältämistä .txt -päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien lukumäärän.
# <tt>[[wc]] *.txt</tt> antaa listan hakemiston sisältämistä .txt -päätteisistä tiedostoista ja jokaisesta rivien, sanojen ja merkkien lukumäärän.
# <tt>cat --number tiedostonnimi</tt> tulostaa tiedoston rivit numeroituna.
# <tt>[[cat]] --number tiedostonnimi</tt> tulostaa tiedoston rivit numeroituna.
# 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.
# [[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.
# Kaikki Microsoft Office -dokumentit löydät komennolla <tt>find . -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;</tt>
# Kaikki Microsoft Office -dokumentit löydät komennolla <tt>find . -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;</tt>
# Normaalissa konsolissa voi Shift+Page Up -näppäilyllä siirtyä pari ruudullista taaksepäin.
# Normaalissa konsolissa voi Shift+Page Up -näppäilyllä siirtyä pari ruudullista taaksepäin.
Rivi 60: Rivi 60:
# Haluatko varmasti hyvän salasanan? Sano <tt>head -c 6 /dev/random | mimencode</tt>
# Haluatko varmasti hyvän salasanan? Sano <tt>head -c 6 /dev/random | mimencode</tt>
# Ellet tiedä mitä /etc:n alla olevaa tiedostoa säätää, voit hakea jonkin sanan sisältäviä tiedostoja: <tt>grep --recursive "localdomain" /etc</tt>
# Ellet tiedä mitä /etc:n alla olevaa tiedostoa säätää, voit hakea jonkin sanan sisältäviä tiedostoja: <tt>grep --recursive "localdomain" /etc</tt>
# 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.
# 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.
# Komennolla <tt>wall 'Linux on cool!'</tt> voit lähettää viestisi kaikkien koneen käyttäjien ruudulle.
# Komennolla <tt>[[wall]] 'Linux on cool!'</tt> voit lähettää viestisi kaikkien koneen käyttäjien ruudulle.
# <tt>echo 'Linux on cool!' | write maija</tt> taas kertoo saman viestin ainoastaan Maijalle.
# <tt>echo 'Linux on cool!' | write maija</tt> taas kertoo saman viestin ainoastaan Maijalle.
# Komennolla <tt>nohup jokukomento >& lokitiedosto &</tt> saat komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja komento jää suoritettavaksi.
# Komennolla <tt>nohup jokukomento >& lokitiedosto &</tt> saat komennon jäämään tausta-ajoon niin, että voit itse lopettaa yhteyden ja komento jää suoritettavaksi.
# Komennolla <tt>ed tiedostonnimi</tt> saat avattua tehokkaan ja monipuolisen, mutta resursseja säästeliäästi käyttävän editorin. Lisätietoa edistä
# Komennolla <tt>[[ed]] tiedostonnimi</tt> saat avattua tehokkaan ja monipuolisen, mutta resursseja säästeliäästi käyttävän editorin. Lisätietoa edistä
# <tt>eject</tt> poistaa CD-levyn asemasta. <tt>eject -t</tt> vetää levyn sisään.
# <tt>eject</tt> poistaa CD-levyn asemasta. <tt>eject -t</tt> vetää levyn sisään.
# Komento history tulostaa komentohistorian.
# Komento history tulostaa komentohistorian.
# Musa soi komentoriviltäkin. <tt>playmidi</tt> soittaa midejä, <tt>play</tt> soittaa monenlaisia ääniformaatteja. <tt>mpg123</tt> soittaa MP3-tiedostoja.
# Musa soi komentoriviltäkin. <tt>playmidi</tt> soittaa midejä, <tt>play</tt> soittaa monenlaisia ääniformaatteja. <tt>mpg123</tt> soittaa MP3-tiedostoja.
# <tt>killall vi</tt> lopettaa kaikki ajossa olevat vi-ohjelmat.
# <tt>[[killall]] vi</tt> lopettaa kaikki ajossa olevat vi-ohjelmat.
# <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.
# <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.
# <tt>dirname /joku/polku/tiedosto</tt> palauttaa arvon "/joku/polku". <tt>basename /joku/polku/tiedosto</tt> palauttaa arvon "tiedosto".
# <tt>dirname /joku/polku/tiedosto</tt> palauttaa arvon "/joku/polku". <tt>basename /joku/polku/tiedosto</tt> palauttaa arvon "tiedosto".
# <tt>tac tiedostonnimi</tt> tulostaa tiedoston rivi kerrallaan alusta loppuun. <tt>rev tiedostonnimi</tt> tulostaa jokaisen rivin väärinpäin, ja <tt>rev tiedostonnimi | tac</tt> tulostaa koko tiedoston väärinpäin.
# <tt>[[tac]] tiedostonnimi</tt> tulostaa tiedoston rivi kerrallaan alusta loppuun. <tt>rev tiedostonnimi</tt> tulostaa jokaisen rivin väärinpäin, ja <tt>rev tiedostonnimi | tac</tt> tulostaa koko tiedoston väärinpäin.
# <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.
# <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.
# <tt>volname</tt> kertoo CD-asemassa olevan levyn nimen.
# <tt>volname</tt> kertoo CD-asemassa olevan levyn nimen.
# <tt>cat tiedostonnimi | while read; do echo $REPLY; sleep 5; done</tt> tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
# <tt>cat tiedostonnimi | while read; do echo $REPLY; sleep 5; done</tt> tulostaa tiedoston rivi kerrallaan viiden sekunnin välein.
Rivi 78: Rivi 78:
# 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.
# 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.
# Tulostuskin onnistuu komentoriviltä, kokeile vaikka <tt>lpr jokudoku.txt tai cal | lpr</tt>
# Tulostuskin onnistuu komentoriviltä, kokeile vaikka <tt>lpr jokudoku.txt tai cal | lpr</tt>
# Kun tehdään, niin tehdään kunnolla. Kun tehdään kalenteri kunnolla, niin huomioidaan juliaanisen kalenterin vaihtuminen gregoriaaniseen. Kokeile: <tt>cal 9 1752</tt>
# Kun tehdään, niin tehdään kunnolla. Kun tehdään kalenteri kunnolla, niin huomioidaan juliaanisen kalenterin vaihtuminen gregoriaaniseen. Kokeile: <tt>[[cal]] 9 1752</tt>
#<nowiki>WWW-sivuston kaikkien .html -sivujen META KEYWORDS -tageista saa helposti sivulistan tällä komennolla
#<nowiki>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
       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
</nowiki>
</nowiki>
# 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>
# 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>
# Komennolla <tt>pwd -P</tt> saat selville missä hakemistossa "oikeasti" olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
# Komennolla <tt>[[pwd]] -P</tt> saat selville missä hakemistossa "oikeasti" olet, eli symbolisten linkkien kautta kuljettu polku jätetään huomiotta.
# 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.
# 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 http://www.${sivut[$valinta]}</tt>
# Tällaisenkin valikon voi tehdä: <tt>sivut=("evl.fi" "vapaa-ajattelijat.fi" "dilbert.com"); echo "0=evl, 1=vaparit, 2=dilbert"; read valinta; lynx http://www.${sivut[$valinta]}</tt>
Rivi 89: Rivi 89:
# Jos locale-asetus on kunnossa (eli olet mm. sanonut export LANG=fi_FI , voit katsoa koska tiedostoa teksti.txt on viimeksi muutettu sanomalla <tt>date --reference=teksti.txt "+%Ana %Bn %e. päivä"</tt>
# Jos locale-asetus on kunnossa (eli olet mm. sanonut export LANG=fi_FI , voit katsoa koska tiedostoa teksti.txt on viimeksi muutettu sanomalla <tt>date --reference=teksti.txt "+%Ana %Bn %e. päivä"</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>
# 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>
# 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>
# 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>
# <tt>uname</tt> on joskus kätevä, erityisesti komento <tt>uname -a</tt> kertoo ytimen version ym. mahdollisesti kiinnostavaa.
# <tt>[[uname]]</tt> on joskus kätevä, erityisesti komento <tt>uname -a</tt> kertoo ytimen version ym. mahdollisesti kiinnostavaa.
# Tiedoston voi jakaa osiin split-komennolla. Kokeile esim. <tt>split -b 10k jokutiedosto</tt>
# Tiedoston voi jakaa osiin split-komennolla. Kokeile esim. <tt>split -b 10k jokutiedosto</tt>
# Komennolla <tt>seq 10 -3 1</tt> voit tulostaa luvut 10, 7, 4 ja 1.
# Komennolla <tt>seq 10 -3 1</tt> voit tulostaa luvut 10, 7, 4 ja 1.
# <tt>clear</tt> tyhjentää kuvaruudun. Kätevä joissakin skripteissä.
# <tt>[[clear]]</tt> tyhjentää kuvaruudun. Kätevä joissakin skripteissä.
# <tt>pdftotext tiedosto.pdf</tt> tekee tiedoston tiedosto.txt, joka hyvällä onnella sisältää PDF:n sisältämän tekstin.
# <tt>[[pdftotext]] tiedosto.pdf</tt> tekee tiedoston tiedosto.txt, joka hyvällä onnella sisältää PDF:n sisältämän tekstin.
# <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.
# <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.
# <tt>wget --recursive http://www.flug.fi/</tt> imuroi koko Flug ry:n WWW-sivuston omalle koneelle.
# <tt>[[wget]] --recursive http://www.flug.fi/</tt> imuroi koko Flug ry:n WWW-sivuston omalle koneelle.
# <tt>watch -n 60 --differences ls /tmp</tt> tulostaa minuutin välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet tiedot.
# <tt>[[watch]] -n 60 --differences ls /tmp</tt> tulostaa minuutin välein listauksen /tmp -hakemistosta ja näyttää korostettuna muuttuneet tiedot.
# 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 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 laitat skriptit hakemistoon /usr/local/bin , niitä voivat käyttää kaikki koneen käyttäjät.
# Jos laitat skriptit hakemistoon /usr/local/bin , niitä voivat käyttää kaikki koneen käyttäjät.
# cmp tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen myös skripteissä, esim. <tt>cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"</tt>
# cmp tulostaa tiedostojen eroavan kohdan. Käyttökelpoinen myös skripteissä, esim. <tt>cmp -s tiedosto1 tiedosto2 || echo "Tiedostot eroavat"</tt>
# <tt>who mom loves</tt> tulostaa käyttäjätunnuksesi, käyttämäsi konsolin ja sisäänkirjautumisajan.
# <tt>[[who]] mom loves</tt> tulostaa käyttäjätunnuksesi, käyttämäsi konsolin ja sisäänkirjautumisajan.
# <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>
# <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>
# 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>.
# 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>.
Rivi 111: Rivi 111:
# Jos siirryt <tt>cd</tt>-komennolla uuteen hakemistoon ja haluat jostakin syystä palata takaisin siihen aikaisempaan, voit tehdä sen komennolla <tt>cd -</tt>.
# Jos siirryt <tt>cd</tt>-komennolla uuteen hakemistoon ja haluat jostakin syystä palata takaisin siihen aikaisempaan, voit tehdä sen komennolla <tt>cd -</tt>.
# Voit uudelleenkä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>.
# Voit uudelleenkä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>.
# 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. Myös DVD:n kopionti onnistuu tällä tavoin.
# [[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. Myös DVD:n kopionti onnistuu tällä tavoin.
# Komennolla <tt>kill `pidof mplayer`</tt> voit kätevästi tappaa mplayerin selvittämättä pid:iä.
# Komennolla <tt>kill `pidof mplayer`</tt> voit kätevästi tappaa mplayerin selvittämättä pid:iä.
# <tt>Cowsayn</tt> avulla saat aikaan hienoja tulostuksia konsoliin. Kokeile vaikka <tt>uname -a | cowsay -f daemon</tt>.
# <tt>Cowsayn</tt> avulla saat aikaan hienoja tulostuksia konsoliin. Kokeile vaikka <tt>uname -a | cowsay -f daemon</tt>.

Navigointivalikko