{"id":2259,"date":"2008-02-28T11:22:48","date_gmt":"2008-02-28T09:22:48","guid":{"rendered":"http:\/\/mummila.net\/vuorovaikutus\/2008\/02\/28\/komentojen-ja-niiden-ulostulon-tallentaminen-tiedostoon\/"},"modified":"2010-09-23T17:00:45","modified_gmt":"2010-09-23T14:00:45","slug":"komentojen-ja-niiden-ulostulon-tallentaminen-tiedostoon","status":"publish","type":"post","link":"https:\/\/mummila.net\/nuudelisoppa\/2008\/02\/28\/komentojen-ja-niiden-ulostulon-tallentaminen-tiedostoon\/","title":{"rendered":"[Ratkaisu] Komentojen ja niiden ulostulon tallentaminen tiedostoon"},"content":{"rendered":"<dl>\n<dt>L\u00e4ht\u00f6kohta<\/dt>\n<dd>Aion suorittaa monimutkaisen, paljon eri komentoja sis\u00e4lt\u00e4v\u00e4n teht\u00e4v\u00e4n komentorivitulkissa.<\/dd>\n<dt>Ongelma<\/dt>\n<dd>Haluan tallentaa ajamani komennot ja kaiken niiden komentotulkkiin tuottaman ulostulon tiedostoon, jotta voin j\u00e4lkeenp\u00e4in k\u00e4ytt\u00e4\u00e4 sit\u00e4 muistiapuna kuvaillessani miten teht\u00e4v\u00e4n suoritin.<\/dd>\n<dt>Ratkaisu<\/dt>\n<dd>Voin <a href=\"http:\/\/www.howtoforge.com\/useful_linux_commands#comment-3385\">tallentaa komentorivitulkkiin kirjoittamani komennot ja niiden ulostulon <code>script<\/code>-komennolla<\/a>.<br \/>\n   Seuraavassa esimerkiss\u00e4 suoritan kaksi <code>echo<\/code>-komentoa ja yhden <code>cat<\/code>-komennon niin, ett\u00e4 komennot ja niiden ulostulo tallentuvat <code>testi.txt<\/code> -nimiseen tiedostoon. T\u00e4llainen, tavallaan script-komennon sis\u00e4ll\u00e4 ajettava lohko on nimelt\u00e4\u00e4n <i>istunto<\/i>, ja olen lihavoinut sen sis\u00e4ll\u00f6n seuraavassa:<\/p>\n<blockquote>\n<pre><code>jani@shuttle-xpc:~\/tmp$ script testi.txt\nSkripti k\u00e4ynnistetty, tiedosto on testi.txt\n<b>jani@shuttle-xpc:~\/tmp$ echo \"t\u00e4m\u00e4 on testi.\"\nt\u00e4m\u00e4 on testi.\njani@shuttle-xpc:~\/tmp$ echo \"voisin ajaa t\u00e4ss\u00e4 mit\u00e4 hyv\u00e4ns\u00e4 komentoja\" &gt; foo.txt\njani@shuttle-xpc:~\/tmp$ cat foo.txt\nvoisin ajaa t\u00e4ss\u00e4 mit\u00e4 hyv\u00e4ns\u00e4 komentoja\njani@shuttle-xpc:~\/tmp$ exit<\/b>\nSkripti suoritettu, tiedosto on testi.txt\njani@shuttle-xpc:~\/tmp$ <\/code><\/pre>\n<\/blockquote>\n<p>   Aloitin istunnon tallentamisen <code>script testi.txt<\/code> -komennolla ja lopetin sen <code>exit<\/code>-komennolla. Testi.txt -tiedostoon tallentui kaikki mit\u00e4 n\u00e4iden kahden komennon suorituksen v\u00e4liss\u00e4 tapahtui eli yll\u00e4 olevassa lihavoimani istunto, sek\u00e4 lis\u00e4ksi istunnon aloitus- ja lopetusaika. Tulostan seuraavassa cat-komennolla testi.txt -tiedoston sis\u00e4ll\u00f6n ja lihavoin sen:<\/p>\n<blockquote>\n<pre><code>jani@shuttle-xpc:~\/tmp$ cat testi.txt\n<b>Skripti k\u00e4ynnistetty to 28. helmikuuta 2008 09:36:31\njani@shuttle-xpc:~\/tmp$ echo \"t\u00e4m\u00e4 on testi.\"\nt\u00e4m\u00e4 on testi.\njani@shuttle-xpc:~\/tmp$ echo \"voisin ajaa t\u00e4ss\u00e4 mit\u00e4 hyv\u00e4ns\u00e4 komentoja\" &gt; foo.txt\njani@shuttle-xpc:~\/tmp$ cat foo.txt\nvoisin ajaa t\u00e4ss\u00e4 mit\u00e4 hyv\u00e4ns\u00e4 komentoja\njani@shuttle-xpc:~\/tmp$ exit\n\nSkripti suoritettu to 28. helmikuuta 2008 09:37:19<\/b>\njani@shuttle-xpc:~\/tmp$ <\/code><\/pre>\n<\/blockquote>\n<\/dd>\n<dt>Huomautuksia<\/dt>\n<dd>\n<ul>\n<li>Istunnon lopettamiseen voi k\u00e4ytt\u00e4\u00e4 exit-komennon sijasta n\u00e4pp\u00e4inyhdistelm\u00e4\u00e4 <code>Control + D<\/code>.<\/li>\n<li>Script-komennon ohjesivu varoittaa, ett\u00e4 jotkin interaktiiviset komennot (kuten <code>vi<\/code>) saattavat kirjoittaa tallennustiedostoon <q>roskaa<\/q>, eli satunnaiselta vaikuttavia merkkej\u00e4. Niiden k\u00e4yt\u00f6st\u00e4 ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 j\u00e4\u00e4 tallennustiedostoon ymm\u00e4rrett\u00e4vi\u00e4 kirjauksia.<\/li>\n<li>Ratkaisussa oleva ensimm\u00e4inen esimerkki on sekin tallennettu scripti\u00e4 k\u00e4ytt\u00e4en; ajoin siis script-komennon istunnossa, jota suoritin toisessa script-komennolla aloitetussa istunnossa. Istuntoja voi siis sis\u00e4kk\u00e4ist\u00e4\u00e4.<\/li>\n<li>Kaikki komennot tallentuvat <code>Bash<\/code>-komentotulkissa k\u00e4ytt\u00e4j\u00e4kohtaiseen historiaan, jota voi hallita <a href=\"http:\/\/www.linux.com\/feature\/114148\"><code>HISTSIZE<\/code>, <code>HISTFILE<\/code> ja <code>HISTFILESIZE<\/code> -muuttujien<\/a> avulla. Komentohistoriaan tallennetaan kuitenkin vain komennot, ei niiden ulostuloa. Lis\u00e4ksi komentohistorian koko on rajoitettu.<\/li>\n<\/ul>\n<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"<p>Haluan tallentaa ajamani komennot ja kaiken niiden komentotulkkiin tuottaman ulostulon tiedostoon. Ratkaisu on k\u00e4ytt\u00e4\u00e4 script-komentoa.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2259","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/comments?post=2259"}],"version-history":[{"count":1,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2259\/revisions"}],"predecessor-version":[{"id":2369,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2259\/revisions\/2369"}],"wp:attachment":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/media?parent=2259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/categories?post=2259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/tags?post=2259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}