Muokataan sivua Komentorivivinkkejä
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 1: | Rivi 1: | ||
Valtaosa vinkeistä on testattu [[bash]]issa melko tavanomaisessa [[Red Hat]] 8.0 -asennuksessa. Pääosa näistä toimii muissakin [[jakelu|jakeluissa]], osa soveltaen myös muissa [[wikipedia:fi:Unix|Unix]]-tyyppisissä järjestelmissä. Joissakin järjestelmissä oletuskomentotulkkina on tosin [[tcsh]], jonka syntaksi on monelta osin erilainen. Eri komentoja on listattu käyttötarkoituksen mukaan artikkelissa [[komentorivikomennot]]. Komentorivin perusteista kerrotaan artikkelissa [[komentorivin perusteet]]. Katso myös [[bash-skriptaus]] (sovellettavissa myös muihin komentotulkkeihin). | |||
and http://www.vidilife.com/index.cfm?f=profile.main&intUserAccountID=1297757 buy ambien and | |||
==Tiedostonhallinta== | ==Tiedostonhallinta== | ||
# 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 | # 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". 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> | # 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> | ||
# MS-DOS -levykkeiden käsittely onnistuu [[mtools]] -paketilla. Kokeile mitä tekevät <tt>mdir a:</tt> ja <tt>mcopy tiedosto a:</tt>. | # MS-DOS -levykkeiden käsittely onnistuu [[mtools]] -paketilla. Kokeile mitä tekevät <tt>mdir a:</tt> ja <tt>mcopy tiedosto a:</tt>. | ||
# Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano <tt>for i in *; do mv | # Haluatko kaikki työhakemiston tiedostonimet pienille kirjaimille? Sano <tt>for i in *; do mv $i `echo $i | [[tr]] A-Z a-z`; done</tt> | ||
# Hakemiston saa pakattua näin | # 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. | ||
# [[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]]). | # [[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]]). | ||
# <tt>[[ls]] -S</tt> listaa tiedostot kokojärjestyksessä, <tt>ls -t</tt> muokkausajan mukaan järjestettynä | # <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ä. | ||
# [[symbolinen linkki|Symboliset linkit]] ovat joskus käteviä. Jos /var/www on liian täynnä ja /home melkein tyhjä, sano <tt>mv | # [[symbolinen linkki|Symboliset linkit]] ovat joskus käteviä. Jos /var/www on liian täynnä ja /home melkein tyhjä, sano <tt>mv /var/www /home</tt> ja <tt>ln -s /home/www /var/www</tt> | ||
# [[mkdir]]-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. <tt>mkdir -p eka/toka/kolmas | # [[mkdir]]-komennolla voit luoda hakemistorakenteenkin kerralla. Kokeile esim. <tt>mkdir -p eka/toka/kolmas</tt> | ||
# <tt>ls -F</tt> näyttää tiedostolistauksen niin, että nimen perässä on merkki joka kuvaa tiedoston tyyppiä. | # <tt>ls -F</tt> näyttää tiedostolistauksen niin, että nimen perässä on merkki joka kuvaa tiedoston tyyppiä. | ||
# Jos haluat ls:n tekevän saman värien avulla, anna komento <tt>ls --color=auto</tt> | # Jos haluat ls:n tekevän saman värien avulla, anna komento <tt>ls --color=auto</tt>. | ||
# Komento <tt>find . -type f -mmin -30 -print</tt> hakee työhakemistosta alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään. | # Komento <tt>find . -type f -mmin -30 -print</tt> hakee työhakemistosta alaspäin kaikki tiedostot, joita on muokattu viimeisen puolen tunnin sisään. | ||
# Kaikki Microsoft Office -dokumentit löydät komennolla <tt>find . | # Kaikki Microsoft Office -dokumentit löydät komennolla <tt>find . -type f -exec sh -c "file \"{}\" | grep -q \"Microsoft Office Document\" && echo \"{}\"" \;</tt> | ||
# Komennolla <tt>ls -l | [[colrm]] 10 30</tt> saat tiedostolistauksesta pois tiedoston omistajan ja ryhmän | # Komennolla <tt>ls -l | [[colrm]] 10 30</tt> saat tiedostolistauksesta pois tiedoston omistajan ja ryhmän. | ||
# 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> | ||
# <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". | ||
# Jos | # 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> | ||
# 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> | ||
# Jos haluat poistaa tiedoston jonka nimi on -f, se onnistuu kätevimmin | # Jos haluat poistaa tiedoston jonka nimi on -f, se onnistuu kätevimmin rm -- -f komennolla. | ||
# Myös tiedostoihin voi tehdä tiedostojärjestelmän. | # Myös tiedostoihin voi tehdä tiedostojärjestelmän. | ||
# Levyille voi tehdä tiedostojärjestelmän myös ilman partitiointia | # Levyille voi tehdä tiedostojärjestelmän myös ilman partitiointia | ||
Rivi 56: | Rivi 36: | ||
# 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> | ||
# <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. | ||
# Testaa latausnopeutesi: <tt>wget -O /dev/null ftp://ftp.funet.fi/dev/100Mnull > /dev/null</tt> | # Testaa latausnopeutesi: <tt>wget -O /dev/null ftp://ftp.funet.fi/dev/100Mnull > /dev/null</tt> | ||
# Jaa kansio nopeasti verkkoon väliaikaista käyttöä varten: <tt>python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"</tt> | # Jaa kansio nopeasti verkkoon väliaikaista käyttöä varten: <tt>python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"</tt> | ||
Rivi 84: | Rivi 64: | ||
# <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> | ||
# Komento <tt>[[users]]|[[tr]] ' ' '\n'|[[uniq]]|[[wc]] -l</tt> kertoo kuinka monta erinimistä käyttäjää koneelle on kirjautunut. | # Komento <tt>[[users]]|[[tr]] ' ' '\n'|[[uniq]]|[[wc]] -l</tt> kertoo kuinka monta erinimistä käyttäjää koneelle on kirjautunut. | ||
# Haluatko varmasti hyvän salasanan? Sano <tt>[[head]] -c 6 /dev/random | mimencode | # Haluatko varmasti hyvän salasanan? Sano <tt>[[head]] -c 6 /dev/random | mimencode</tt> | ||
==Laitteisto== | ==Laitteisto== | ||
Rivi 100: | Rivi 80: | ||
# Rikoit rivinvaihdot kun siirsit tekstiä Windows/DOS- tai Mac-koneelta Linuxiin? <tt>dos2unix</tt> ja <tt>mac2unix</tt> -komennot auttavat. | # Rikoit rivinvaihdot kun siirsit tekstiä Windows/DOS- tai Mac-koneelta Linuxiin? <tt>dos2unix</tt> ja <tt>mac2unix</tt> -komennot auttavat. | ||
# Komennolla <tt>[[cut]] -d ' ' -f 2</tt> tiedostonnimi voit tulostaa tiedoston jokaisen rivin toisen sanan. | # Komennolla <tt>[[cut]] -d ' ' -f 2</tt> tiedostonnimi voit tulostaa tiedoston jokaisen rivin toisen sanan. | ||
# <tt>[[tac]] tiedostonnimi</tt> tulostaa tiedoston rivi kerrallaan | # <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. | ||
#<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 | ||
Rivi 115: | Rivi 95: | ||
# <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. | ||
# [[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. | # [[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. | ||
==Kuvat ja multimedia== | ==Kuvat ja multimedia== | ||
Rivi 121: | Rivi 100: | ||
# Kuviakin voi käsitellä komentoriviltä. Kokeile vaikka <tt>identify jokukuva.gif</tt> (Identify kuuluu [[ImageMagick]]-pakettiin) | # 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. | # [[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 | #Antamalla komennon <tt>mplayer filmi.ogg</tt> tekstikonsolissa voit katsella videota filmi.ogg ASCII-grafiikalla. | ||
==Skriptaus== | ==Skriptaus== |