<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.149.176.164</id>
	<title>Linux.fi - Käyttäjän muokkaukset [fi]</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=212.149.176.164"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/wiki/Toiminnot:Muokkaukset/212.149.176.164"/>
	<updated>2026-04-06T03:47:39Z</updated>
	<subtitle>Käyttäjän muokkaukset</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Urxvt&amp;diff=38327</id>
		<title>Urxvt</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Urxvt&amp;diff=38327"/>
		<updated>2013-10-07T20:04:21Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: Ak: Uusi sivu: &amp;#039;&amp;#039;&amp;#039;rxvt-unicode&amp;#039;&amp;#039;&amp;#039; on rxvt:stä haarautunut UTF-8 -yhteensopiva terminaaliemulaattori, jota voi ajaa palvelintaustaprosessina. Tällöin kaikki terminaali-ikkunat kuuluvat resu...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;rxvt-unicode&#039;&#039;&#039; on [[rxvt]]:stä haarautunut UTF-8 -yhteensopiva terminaaliemulaattori, jota voi ajaa palvelintaustaprosessina. Tällöin kaikki terminaali-ikkunat kuuluvat resurssienkäytön minimoinnin nimissä yhdelle prosessille.&lt;br /&gt;
&lt;br /&gt;
==Ajo taustaprosessina==&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 urxvtc &amp;quot;$@&amp;quot;&lt;br /&gt;
 if [ $? -eq 2 ]; then&lt;br /&gt;
    urxvtd -q -o -f&lt;br /&gt;
    /usr/bin/urxvtc &amp;quot;$@&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[xterm]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://software.schmorp.de/pkg/rxvt-unicode.html Kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Terminaaliemulaattorit]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dwm&amp;diff=38326</id>
		<title>Dwm</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dwm&amp;diff=38326"/>
		<updated>2013-10-07T18:21:11Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma&lt;br /&gt;
| nimi=dwm&lt;br /&gt;
| kuva=&lt;br /&gt;
| kuvateksti=&lt;br /&gt;
| lisenssi=[[BSD-lisenssi|BSD]]&lt;br /&gt;
| käyttöliittymä=[[X]]&lt;br /&gt;
| kotisivu=[http://www.suckless.org/dwm suckless.org/dwm]}}&lt;br /&gt;
dwm on dynaaminen, automaattisesti ikkunat järjestävä [[ikkunointiohjelma]]. Sen tavoite on olla mahdollisimman minimalistinen, joten ohjelman muistinkäyttö on niukkaa ja lähdekoodirivejä on vähän. Asetukset tehdään muokkaamalla [[C]]-kielisiä otsaketiedostoja.&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Ion]]&lt;br /&gt;
*[[JWM]]&lt;br /&gt;
*[[TWM]]&lt;br /&gt;
*[[FLWM]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ikkunointiohjelmat]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Dwm&amp;diff=38325</id>
		<title>Dwm</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Dwm&amp;diff=38325"/>
		<updated>2013-10-07T18:20:12Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: kuva&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ohjelma&lt;br /&gt;
| nimi=dwm&lt;br /&gt;
| kuva=[[File:Dwm-shot.png|thumb]]&lt;br /&gt;
| kuvateksti=&lt;br /&gt;
| lisenssi=[[BSD-lisenssi|BSD]]&lt;br /&gt;
| käyttöliittymä=[[X]]&lt;br /&gt;
| kotisivu=[http://www.suckless.org/dwm suckless.org/dwm]}}&lt;br /&gt;
dwm on dynaaminen, automaattisesti ikkunat järjestävä [[ikkunointiohjelma]]. Sen tavoite on olla mahdollisimman minimalistinen, joten ohjelman muistinkäyttö on niukkaa ja lähdekoodirivejä on vähän. Asetukset tehdään muokkaamalla [[C]]-kielisiä otsaketiedostoja.&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Ion]]&lt;br /&gt;
*[[JWM]]&lt;br /&gt;
*[[TWM]]&lt;br /&gt;
*[[FLWM]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Ikkunointiohjelmat]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Busybox&amp;diff=38324</id>
		<title>Busybox</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Busybox&amp;diff=38324"/>
		<updated>2013-10-07T17:31:37Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: ristiinlinkityksiä&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Busybox on ohjelma, joka yhdistää monia yleisiä UNIX-työkaluja yhteen pieneen suoritettavaan tiedostoon. Sen eri toiminnot eivät toteuta aivan kaikkia [[GNU]]-isoveljiensä toimintoja, mutta mukaan otettu osa toimii kuten sen kuuluu. Se on suosittu varsinkin järjestelmissä, joilta odotetaan pientä kokoa, esimerkkinä [[Debian]]in asennusohjelma ja [[Damn Small Linux]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Busyboxista on tullut yleinen komentotulkin ja coreutilsien tarjoaja reitittimien firmwareissa:&lt;br /&gt;
*[[DD-WRT]]&lt;br /&gt;
*[[OpenWrt]]&lt;br /&gt;
*[[Tomato]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://www.busybox.net/ Busyboxin kotisivu]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivin erikoisohjelmat]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Vim&amp;diff=38323</id>
		<title>Vim</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Vim&amp;diff=38323"/>
		<updated>2013-10-07T17:00:47Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: SuS-linkin lisäys&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Tässä artikkelissa kerrotaan yleisesti ohjelmasta Vim. Opas Vimin peruskäyttöön löytyy artikkelista [[Vimin peruskäyttö]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ Ohjelma | nimi=Vi IMproved | kuva=[[Kuva:vim.png]] | kuvateksti= | lisenssi=[[GPL]]-yhteensopiva/[http://vimdoc.sourceforge.net/htmldoc/uganda.html#license VIM-lisenssi] | käyttöliittymä=teksti | kotisivu=[http://www.vim.org www.vim.org] }}&lt;br /&gt;
[[Kuva:Gvim.png|250px|thumb|[[Gvim]], Vimin [[GTK|GTK-versio]].]]&lt;br /&gt;
&lt;br /&gt;
Vim (Vi Improved) on Bram Moolenaarin vi-editorin pohjalta kehittämä, tekstitilassa (tai pääteikkunassa) toimiva [[tekstieditori]]. Vimistä on myös saatavilla graafiset versiot [[gvim]] ja [[kvim]].&lt;br /&gt;
&lt;br /&gt;
==Vi==&lt;br /&gt;
Vi on [[wikipedia:fi:Bill_Joy|Bill Joy]]n vuonna 1976 [[BSD]]:lle kehittämä vi-tekstieditorin alkuperäisversio. Vi pohjautuu [[ex]]-[[rivieditori]]in. Nykyajan Linux-järjestelmissä Vi on yleensä [[symbolinen linkki]] Vimiin. Vim ei ole ainut vi-klooni, vaikka tunnetuin onkin. Muita vi-klooneja ovat mm. [[wikipedia:en:Elvis_(text_editor)|Elvis]] ja [[wikipedia:en:Nvi|nvi]].&lt;br /&gt;
&lt;br /&gt;
Vi-toteutusten toiminnallisuus määritellään [http://pubs.opengroup.org/onlinepubs/009604499/utilities/vi.html IEEE:n Unix-standardissa].&lt;br /&gt;
&lt;br /&gt;
==Aloittaminen==&lt;br /&gt;
Vim saattaa olla melkoinen &amp;quot;kulttuurishokki&amp;quot; uusille käyttäjille. Siinä ei esimerkiksi ole valikkoriviä ollenkaan, ja kun käynnistät editorin, et pääsekään heti kirjoittamaan. Jopa poistuminen saattaa aiheuttaa päänvaivaa, jos ei tiedä mitä tekee. Vim on kuitenkin hyvä editori, jos sille uhraa hieman aikaa.&lt;br /&gt;
&lt;br /&gt;
=== Oppiminen ===&lt;br /&gt;
Vimin peruskäyttöä neuvotaan artikkelissa [[Vimin peruskäyttö]].&lt;br /&gt;
&lt;br /&gt;
Helppo tapa opetella Vimin peruskäyttö on [[vimtutor]]-ohjelma, joka tulee Vimin mukana. Pika-apua jonkin näppäimen/komennon/tehtävän suhteen saat kirjoittamalla komentotilassa &#039;&#039;&#039;:help [aihe]&#039;&#039;&#039; esimerkiksi &#039;&#039;&#039;:help copy&#039;&#039;&#039;. Erityisesti [[Debian]]-pohjaisissa [[jakelu]]issa ei Vimin oletusasennuspaketin (vim-tiny) mukana toimiteta ohjeita eikä valmiita asetustiedostoja. Ohjeet saa käyttöön asentamalla laajemman Vim-version, esimerkiksi paketin vim tai vim-gtk. Näppärän muistilapun voi tulostaa itselleen [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html täältä] [http://www.viemu.com/vi-vim-cheat-sheet.gif] (Kyseessä siis Microsoft Visual Studion laajennuspalikan ViEmun kotisivu).&lt;br /&gt;
&lt;br /&gt;
=== Käynnistäminen ===&lt;br /&gt;
Vim käynnistetään yksinkertaisesti komennolla&lt;br /&gt;
 vim tiedosto&lt;br /&gt;
Jos Vim on jostain syystä kaatunut tiedostoa muokatessa, muokkausta jatketaan komennolla&lt;br /&gt;
 vim -r tiedosto&lt;br /&gt;
Muokkaaminen voidaan aloittaa suoraan riviltä N komennolla&lt;br /&gt;
 vim +N tiedosto&lt;br /&gt;
ja tiedoston lopusta komennolla&lt;br /&gt;
 vim + tiedosto&lt;br /&gt;
Muokkaaminen voidaan aloittaa myös kohdasta, jossa tietty merkkijono esiintyy ensimmäisen kerran komennolla&lt;br /&gt;
 vim +/merkkijono tiedosto&lt;br /&gt;
Useampia tiedostoja voidaan muokata komennolla&lt;br /&gt;
 vim tiedosto1 tiedosto2&lt;br /&gt;
Tällöin kun ensimmäinen tiedosto suljetaan, aloitetaan toisen tiedoston muokkaaminen.&lt;br /&gt;
&lt;br /&gt;
===Toimintatilat===&lt;br /&gt;
&#039;&#039;&#039;Vim&#039;&#039;&#039; toimii erilaisissa &#039;&#039;toimintatiloissa&#039;&#039; (engl. mode, myöhemmin viitataan termiin pelkästään tilana). Näitä ovat mm. &#039;&#039;input&#039;&#039;- eli syöttötila, &#039;&#039;command&#039;&#039;- eli komentotila, &#039;&#039;visual&#039;&#039;- eli maalaustila ja &#039;&#039;ex mode&#039;&#039; eli [[ex]]-tila. Kun Vim käynnistyy, se on yleensä komentotilassa, jossa editorille voi antaa erilaisia komentoja. Syöttötilassa taas voi lisätä tiedostoon tekstiä. Alkuperäisestä vistä poiketen Vimissä tilan näkee yleensä ruudun oikeasta alalaidasta. Syöttötilasta pääsee takaisin komentotilaan painamalla ESC. Kirjoitustilaan pääsee painamalla i- tai INSERT-näppäintä.&lt;br /&gt;
&lt;br /&gt;
==Komennot==&lt;br /&gt;
Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä Vimin komennot ovat riippuvaisia kirjainkoosta.&lt;br /&gt;
&lt;br /&gt;
Kursoria liikuttavia komentomerkkejä (motion keys, listauksissa komennot ilmaistu ominaisuutena &#039;&#039;M&#039;&#039;) voidaan käyttää joidenkin komentojen kanssa rajaamaan komennon toiminta-aluetta. Komennot jotka vastaanottavat &#039;&#039;&#039;tai tarvitsevat&#039;&#039;&#039; kursorinliikkeitä toimiakseen, ilmaistaan ominaisuutena &#039;&#039;m&#039;&#039;.&lt;br /&gt;
(esim. &#039;d3e&#039; poistaa seuraavat kolme sanaa tai välimerkkiä).&lt;br /&gt;
&lt;br /&gt;
Joitain komentoja voidaan kertoa lisäämällä niiden eteen numeroita. (Esim. &#039;3de&#039; on tulokseltaan identtinen edellisen esimerkin kanssa, listauksissa ilmaistu ominaisuutena &#039;&#039;K&#039;&#039;).&lt;br /&gt;
  &lt;br /&gt;
Jotkin komennot kuten &#039;f&#039; haluavat seurakseen jonkin kirjaimen, merkin tai numeron (Esim. &#039;fa&#039; = etsi seuraava &#039;a&#039;). Tällaiset tapaukset ilmaistaan selityksissä löytyvillä pisteillä &#039;&#039;...&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Joihinkin komentoihin kuten &#039;p&#039; voidaan lisätä rekisteriviittaus, jolloin ne käyttävät kyseistä rekisteriä toimiinsa (Esim. &#039;&amp;quot;aY&#039; kopioi koko rivin rekisteriin &#039;a&#039; josta se voidaan liittää takaisin tekstiin, &#039;&amp;quot;ap&#039;). Tällaiset tapaukset ilmaistaan ominaisuutena &#039;&#039;R&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erikoisnäppäimet ja näppäinyhdistelmät kuten &#039;&#039;&#039;F1&#039;&#039;&#039;, &#039;&#039;&#039;Home&#039;&#039;&#039;, &#039;&#039;&#039;Control + End&#039;&#039;&#039; ja &#039;&#039;&#039;Shift + Enter&#039;&#039;&#039; on ilmaistu näppäinkartoittamiseen sopivassa muodossa. &lt;br /&gt;
&lt;br /&gt;
(Esim. &#039;&#039;&#039;F1&#039;&#039;&#039; = &#039;&amp;lt;F1&amp;gt;&#039;, &#039;&#039;&#039;Control + V&#039;&#039;&#039; = &amp;lt;C_v&amp;gt;, &#039;&#039;&#039;Enter&#039;&#039;&#039; = &amp;lt;CR&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Peruskomennot ===&lt;br /&gt;
{|&lt;br /&gt;
|&#039;&#039;&#039;Komento&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Kuvaus&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|ZZ tai :wq tai :x&lt;br /&gt;
|Tallentaa ja poistuu&lt;br /&gt;
|-&lt;br /&gt;
|:w&lt;br /&gt;
|Tallentaa tiedoston&lt;br /&gt;
|-&lt;br /&gt;
|:w tiedosto&lt;br /&gt;
|Tallentaa tiedoston nimellä &#039;&#039;tiedosto&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|:w!&lt;br /&gt;
|Tallentaa tiedoston nimellä jättäen tarkistamatta mm. kirjoitusoikeudet&lt;br /&gt;
|-&lt;br /&gt;
|:a,bw tiedosto&lt;br /&gt;
|Tallentaa tiedot riviltä a riville b nimellä &#039;&#039;tiedosto&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|:a,bw&amp;gt;&amp;gt;tiedosto&lt;br /&gt;
|Tallentaa tiedot riviltä a riville b tiedoston &#039;&#039;tiedosto&#039;&#039; loppuun&lt;br /&gt;
|-&lt;br /&gt;
|:q&lt;br /&gt;
|Poistuu tallentamatta&lt;br /&gt;
|-&lt;br /&gt;
|:q!&lt;br /&gt;
|Pakottaa poistumaan tallentamatta&lt;br /&gt;
|-&lt;br /&gt;
|:e&lt;br /&gt;
|Muokkaa tiedostoa uudelleen, ei tallenna muutoksia&lt;br /&gt;
|-&lt;br /&gt;
|:e tiedosto&lt;br /&gt;
|Avaa muokattavaksi tiedoston &amp;lt;tt&amp;gt;tiedosto&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|:we!&lt;br /&gt;
|Muokkaa tiedostoa uudelleen, tallentaa muutokset ennen uudestaan muokkausta&lt;br /&gt;
|-&lt;br /&gt;
|:u&lt;br /&gt;
|Peruu viimeisimmän muutoksen&lt;br /&gt;
|-&lt;br /&gt;
|:redo tai Ctrl-R&lt;br /&gt;
|Tekee perutun muutoksen uudelleen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Aakkosnäppäinten komennot komentotilassa===&lt;br /&gt;
 &lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!&#039;&#039;&#039;Komentomerkki&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;R&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;K&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;M/m&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Selitys&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|a || || || || Lisää tekstiä aloittaen heti kursorin oikealta puolelta&lt;br /&gt;
|-&lt;br /&gt;
|A || || || || Lisää tekstiä rivin loppuun&lt;br /&gt;
|-&lt;br /&gt;
|b || ||X||M|| Mene sana taaksepäin pysähtyen välimerkkeihin&lt;br /&gt;
|-&lt;br /&gt;
|B || ||X||M|| Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja&lt;br /&gt;
|-&lt;br /&gt;
|c || || ||m|| Poistaa kursorinliikkeiden (motion) verran tekstiä ja siirtyy syöttötilaan&lt;br /&gt;
|-&lt;br /&gt;
|C || || || || Poistaa koko rivin tekstiä ja siirtyy syöttötilaan&lt;br /&gt;
|-&lt;br /&gt;
|d ||X||X|| || Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin&lt;br /&gt;
|-&lt;br /&gt;
|D ||X||X|| || Poistaa tekstin kursorista rivin loppuun&lt;br /&gt;
|-&lt;br /&gt;
|e || ||X||M|| Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin&lt;br /&gt;
|-&lt;br /&gt;
|E || ||X||M|| Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina--&lt;br /&gt;
|-&lt;br /&gt;
|f || ||X||M|| Etsi seuraava kirjain ...&lt;br /&gt;
|-&lt;br /&gt;
|F || ||X||M|| Etsi edellinen kirjain ...&lt;br /&gt;
|-&lt;br /&gt;
|g || || || || Lisätoimintonäppäin, tee toiminto ...&lt;br /&gt;
|-&lt;br /&gt;
|G || || || || Siirtyy riville ... tai tiedoston loppuun &#039;&#039;(esim. &#039;10G&#039; -&amp;gt; siirry riville &#039;10&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|h || ||X||M|| Liikuttaa kursoria vasemmalle&lt;br /&gt;
|-&lt;br /&gt;
|H || || ||M|| Liikuttaa kursorin näytettävän tekstiosan alkuun&lt;br /&gt;
|-&lt;br /&gt;
|i || || || || Lisää tekstiä heti kursorin kohdalle&lt;br /&gt;
|-&lt;br /&gt;
|I || || || || Lisää tekstiä rivin alkuun&lt;br /&gt;
|-&lt;br /&gt;
|j || ||X||M|| Liikuttaa kursoria alas&lt;br /&gt;
|-&lt;br /&gt;
|J || ||X|| || Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon&lt;br /&gt;
|-&lt;br /&gt;
|k || ||X||M|| Liikuttaa kursoria ylös&lt;br /&gt;
|-&lt;br /&gt;
|K || || || || Ajaa kursorin alla olevan sanan [[man]]-komennon argumenttinä&lt;br /&gt;
|-&lt;br /&gt;
|l || ||X||M|| Liikuttaa kursoria oikealle&lt;br /&gt;
|-&lt;br /&gt;
|L || || ||M|| Liikuttaa kursorin näytettävän tekstiosan loppuun&lt;br /&gt;
|-&lt;br /&gt;
|m || || || || Merkitse rivi ...ksi &#039;&#039;(esim. &#039;ma&#039; merkitsee rivin &#039;a&#039;ksi, jolloin riville palaaminen onnistuu tempulla &#039;&amp;lt;nowiki&amp;gt;&#039;a&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|M || || ||M|| Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan&lt;br /&gt;
|-&lt;br /&gt;
|n || ||X||M|| Hae seuraava (esim f/F:n tai /:n kanssa käytettynä)&lt;br /&gt;
|-&lt;br /&gt;
|N || ||X||M|| Hae edellinen&lt;br /&gt;
|-&lt;br /&gt;
|o || || || || Lisää uusi rivi ja tekstiä rivin alapuolelle&lt;br /&gt;
|-&lt;br /&gt;
|O || || || || Lisää uusi rivi ja tekstiä rivin yläpuolelle&lt;br /&gt;
|-&lt;br /&gt;
|p ||X|| || || Liittää viimeisimmän poistetun tai kopioidun (&#039;y&#039;anked) tekstin kursorin jälkeen&lt;br /&gt;
|-&lt;br /&gt;
|P ||X|| || || Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle&lt;br /&gt;
|-&lt;br /&gt;
|q || || || || Aloita makro ...&lt;br /&gt;
|-&lt;br /&gt;
|Q || || || || Siirry ex-tilaan (ex mode)&lt;br /&gt;
|-&lt;br /&gt;
|r || || || || Korvaa yksi merkki kursorin kohdalla merkillä ...&lt;br /&gt;
|-&lt;br /&gt;
|R || || || || Ylikirjoita kursorista eteenpäin, sama kuin &#039;i&amp;lt;Insert&amp;gt;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|s ||X||X|| || Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin &#039;xi&#039;&lt;br /&gt;
|-&lt;br /&gt;
|S ||X||X|| || Poista rivi ja siirry syöttötilaan, sama kuin &#039;ddi&#039;&lt;br /&gt;
|-&lt;br /&gt;
|t || ||X||M|| Mene seuraavaa kirjainta ... edeltävään merkkiin&lt;br /&gt;
|-&lt;br /&gt;
|T || ||X||M|| Mene edellistä kirjainta ... seuraavaan merkkiin&lt;br /&gt;
|-&lt;br /&gt;
|u || ||X|| || Kumoa edellinen muutos&lt;br /&gt;
|-&lt;br /&gt;
|U || || || || Kumoa muutokset koko riviltä&lt;br /&gt;
|-&lt;br /&gt;
|v || || || || Siirry kirjaimia maalaavaan tilaan (visual mode)&lt;br /&gt;
|-&lt;br /&gt;
|V || || || || Siirry rivejä maalaavaan tilaan, &amp;lt;C_v&amp;gt; siirtyy suorakulmia (block) maalaavaan tilaan&lt;br /&gt;
|-&lt;br /&gt;
|w || ||X||M|| Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin&lt;br /&gt;
|-&lt;br /&gt;
|W || ||X||M|| Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina--&lt;br /&gt;
|-&lt;br /&gt;
|x ||X||X|| || Poista merkki kursorin alta&lt;br /&gt;
|-&lt;br /&gt;
|X ||X||X|| || Poista edeltävä merkki&lt;br /&gt;
|-&lt;br /&gt;
|y ||X|| ||m|| Kopioi kursorinliikkeiden verran tekstiä&lt;br /&gt;
|-&lt;br /&gt;
|Y ||X|| || || Kopioi koko rivi&lt;br /&gt;
|-&lt;br /&gt;
|z || || || || Lisätoimintonäppäin, tee toiminto ...&lt;br /&gt;
|-&lt;br /&gt;
|Z || || || || Sulje Vim (ZZ tallentaa ja lopettaa, vrt. &#039;:x&#039;, ZQ lopettaa, vrt. &#039;:q!&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|å,Å,ä,Ä,ö,Ö || || || || Käyttämättömiä näppäimiä, vapaana esimerkiksi käyttäjän omille määrityksille&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Emacs]]&lt;br /&gt;
*[[Joe]]&lt;br /&gt;
*[[Nano]]&lt;br /&gt;
*[[Pico]]&lt;br /&gt;
&lt;br /&gt;
==Kirjallisuutta==&lt;br /&gt;
&lt;br /&gt;
*[http://iccf-holland.org/click5.html Painettua kirjallisuutta, joista ICCF saa osansa]&lt;br /&gt;
*[http://www.truth.sk/vim/vimbook-OPL.pdf Vim 5.7:lle kirjoitetun 600-sivuisen kirjan PDF-versio, julkaistu vuonna 2001]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
&lt;br /&gt;
*[http://ex-vi.sourceforge.net/ The Traditional Vi]&lt;br /&gt;
*[http://www.vim.org/ Vimin kotisivu]&lt;br /&gt;
*[http://www.vim.org/6k/features.fi.txt Vim selitettynä kuudessa kilotavussa]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tekstieditorit]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Sed&amp;diff=38322</id>
		<title>Sed</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Sed&amp;diff=38322"/>
		<updated>2013-10-07T16:33:27Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: y/// ja s###&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sed eli Stream Editor on [[tiedosto|tiedostojen]] ja [[syötevirta|syötevirtojen]] yksinkertaiseen automaattiseen muokkaamiseen tarkoitettu ohjelma ja tavallaan myös kieli. Kuten useimmista muistakin peruskomentorivityökaluista, tästäkin on useita toteutuksia.&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
Tyypillisin käyttötapa on [[komentotulkki|komentotulkin]] [[komentorivin perusteet|putkitusominaisuutta]] käytettävä muoto&lt;br /&gt;
 &amp;lt;tulostava komentolauseke&amp;gt; | sed -e &amp;quot;&amp;lt;sed-lauseke&amp;gt;&amp;quot;&lt;br /&gt;
Sed kykenee muokkaamaan myös tiedostoja&lt;br /&gt;
 sed -i &amp;lt;muokattava-tiedosto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sedin ohjaaminen===&lt;br /&gt;
Sed vastaanottaa muokkaustemplaatin joko tiedostona&lt;br /&gt;
 sed -f &amp;lt;skriptitiedosto&amp;gt;&lt;br /&gt;
tai komentoriviargumenttina&lt;br /&gt;
 sed &#039;&amp;lt;sed-lauseke&amp;gt;&#039;&lt;br /&gt;
Lausekkeita voi suoritusnopeutta ajatellen ketjuttaa ohjelman useamman käynnistämisen välttämiseksi&lt;br /&gt;
 sed &#039;&amp;lt;sed-lauseke&amp;gt;&#039; -e &#039;&amp;lt;sed-lauseke&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
===Sed-lausekkeet===&lt;br /&gt;
Tyypillisin sed-lauseke lienee epäilemättä &lt;br /&gt;
 s/&amp;lt;korvattava lauseke&amp;gt;/&amp;lt;korvaava lauseke&amp;gt;/g&lt;br /&gt;
Sedissa s/// siis korvaa yksittäisia [[wikipedia:fi:merkkijono|osamerkkijonoja]] toisilla, g perässä kertoo, että kaikki vastaavuudet korvataan, eikä vain rivin ensimmäistä. Tätä samaa korvaussyntaksia käyttää mm. [[vim]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Käsiteltäessä vaikkapa hakemistopolkuja voidaan välimerkki valita toisin&lt;br /&gt;
 s#/root/tmp#/tmp#g&lt;br /&gt;
&lt;br /&gt;
Korvaamisen lisäksi syötteelle voidaan tehdä [[tr]]-komentoa mukaileva käännös, joka muuntaa yksittäisiä merkkejä&lt;br /&gt;
 echo &#039;kaarteessa kahlaajat&#039; | sed &#039;y/a/i/&#039;&lt;br /&gt;
Tulosteeksi tulisi &amp;quot;kiirteessi kihliijit&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Esimerkkejä===&lt;br /&gt;
 echo ababaabcd | sed -e &#039;s/\(ab\)*//&#039;&lt;br /&gt;
tulostaa &amp;quot;abaabcd&amp;quot;. Vastaavasti g:n kanssa&lt;br /&gt;
 echo ababaabcd | sed -e &#039;s/\(ab\)*//g&#039;&lt;br /&gt;
tulostaa &amp;quot;acd&amp;quot;, tässä * on kuitenkin turha, koska g vastaa saman lausekkeen mielivaltaisen monta kertaa.&lt;br /&gt;
 sed -i &#039;s/vanha/uusi/&#039; *.py&lt;br /&gt;
vaihtaa sanan &amp;quot;vanha&amp;quot; sanaan &amp;quot;uusi&amp;quot; kaikissa kyseisen hakemiston py-tiedostoissa&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[Säännöllinen lauseke]]&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[[wikipedia:fi:sed|Sed Wikipediassa]]&lt;br /&gt;
*[http://www.mit.jyu.fi/opiskelu/kurssit/unixshell01/sed.html Tapani Tarvaisen sed-opas]&lt;br /&gt;
*[http://www.funtoo.org/wiki/Sed_by_Example,_Part_1 Daniel Robbinsin selkeä opas englanniksi]&lt;br /&gt;
*[http://www.catonmat.net/blog/sed-one-liners-explained-part-one/ Sed one liners explained]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Awk&amp;diff=38321</id>
		<title>Awk</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Awk&amp;diff=38321"/>
		<updated>2013-10-07T16:04:13Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: Muuttujista ja funktioista&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;awk&#039;&#039;&#039;-työkalun avulla voi helposti muuntaa tekstitiedoston rakennetta. awk ja sen laajennettu versio gawk kuuluvat Unix/Linux-käyttäjän perustyökaluihin silloin, kun kyseessä on:&lt;br /&gt;
* puhtaan tekstitiedoston muuntaminen riveittäin toiseen muotoon&lt;br /&gt;
* rivien suodattaminen pois tekstistä tavalla, johon [[grep]] ei kykene&lt;br /&gt;
* laskujen laskeminen riveillä olevilla numeroilla&lt;br /&gt;
&lt;br /&gt;
== Johdanto ==&lt;br /&gt;
Awk on skriptikieli ja samanniminen tulkki tälle skriptikielelle. Se on tarkoitettu tiedon hakemiseen selkeän rakenteen omaavista tekstitiedostoista ja tämän tiedon esittämiseen siistissä muodossa. Sen kehittäminen aloitettiin jo 1977 samassa AT&amp;amp;T:n tutkimuslaboratoriossa (&#039;&#039;Bell Labs&#039;&#039;). Samassa paikassa aloitettiin myös [[Unix]]in kehittäminen.&lt;br /&gt;
&lt;br /&gt;
Awk:n tilalla on monesti käytetty [[Perl]]iä, joka on kehitetty mm. ratkaisemaan samankaltaisia ongelmia kuin awk. Awk:n opettelu ei silti ole turhaa, sillä:&lt;br /&gt;
*Awk on yksinkertaisempi (tärkeää jos mietit, kumman opettelisit ensin)&lt;br /&gt;
*Awk:n syntaksi on säännöllisempi&lt;br /&gt;
*Awk löytyy lähestulkoon järjestelmästä kuin järjestelmästä, Perl-tulkki ei&lt;br /&gt;
*[http://pubs.opengroup.org/onlinepubs/009695399/utilities/awk.html IEEE:n Unix-standardi] määrittelee Awk:n melko kattavasti, kun taas Perlin parametrit ja syntaksi ovat eläneet päätoteutuksen mukana&lt;br /&gt;
&lt;br /&gt;
Tärkeää on siis ymmärtää, että Awk ei ole ainoa työkalu tietyntyyppisten ongelmien ratkaisemiseen. Eikä se ole myöskään monipuolisin. Se saattaa kuitenkin monissa tilanteissa olla yksinkertaisempi käyttää kuin Perl-skriptit.&lt;br /&gt;
&lt;br /&gt;
== Syntaksi ==&lt;br /&gt;
Awk:n syntaksi on lähellä [[C]]:n syntaksia. Seuraavat asiat on kuitenkin syytä huomioida:&lt;br /&gt;
* muuttujilla ei ole tyyppiä ja muunnokset tehdään automaattisesti.&lt;br /&gt;
* taulukkoindekseinä voi käyttää periaatteessa mitä tahansa, tästä on paljon hyötyä niissä tehtävissä, joihin awk on ensisijaisesti tarkoitettu&lt;br /&gt;
* syöttödata pilkotaan automaattisesti $1..n numeroiduiksi kentiksi yleensä välilyönnin kohdalta.&lt;br /&gt;
* virheilmoitusten tulkinta voi olla hankalaa&lt;br /&gt;
&lt;br /&gt;
Yksinkertaisimmillaan awk:ta voidaan käyttää riveillä muotoa&lt;br /&gt;
 lauseke {komento}&lt;br /&gt;
missä &#039;&#039;lauseke&#039;&#039; voi olla säännöllinen lauseke tai etsittävä merkkijono. Esimerkiksi rivi&lt;br /&gt;
 /linux/ {print}&lt;br /&gt;
tulostaisi kaikki rivit, joilla esiintyy sana &amp;quot;linux&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Awk-ohjelman käyttö ==&lt;br /&gt;
Awk:ta käytetään komentoriviltä antamalla sille syötteenä skripti ja tiedosto, jota tällä skriptillä käsitellään. Skripti voidaan antaa joko komentoriviparametrina tai pidempien skriptien kanssa antamalla parametrina tiedosto, josta skripti ladataan. Eli joko&lt;br /&gt;
 awk -f skripti.awk tiedosto.txt&lt;br /&gt;
tai&lt;br /&gt;
 awk &#039;/linux/ {print}&#039; tiedosto.txt&lt;br /&gt;
&lt;br /&gt;
== Kenttien käsittely ==&lt;br /&gt;
Awk:n vahvin puoli on sen kyky käsitellä tiedoston sisältöä kenttinä. Esimerkiksi voimme helposti tulostaa tekstitaulukosta jokaisen rivin kolmannet solut. &lt;br /&gt;
&lt;br /&gt;
Tutkitaan esimerkiksi tiedostoa [[Passwd-tiedosto|/etc/passwd]] josta löytyy tietokoneen käyttäjien käyttäjätunnukset. Tämä tiedosto on muotoa&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root:x:0:0:root:/root:/bin/bash&lt;br /&gt;
daemon:x:1:1:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
bin:x:2:2:bin:/bin:/bin/sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Leikitään, että haluamme tulostaa tiedostosta käyttäjien nimet. Käyttäjätunnus on jokaisella rivillä ensimmäinen kenttä, jos kentät erotellaan :-merkillä. Tehdään tällainen Awk-skripti.&lt;br /&gt;
&lt;br /&gt;
Määritellään ensin erotinmerkiksi kaksoispiste asettamalla se muuttujan FS komennolla&lt;br /&gt;
 FS = &amp;quot;:&amp;quot;&lt;br /&gt;
Komentoriviltä käytettäessä tämä voitaisiin asettaa valitsimella -F:&lt;br /&gt;
 awk -F &amp;quot;:&amp;quot; ....&lt;br /&gt;
Tämän jälkeen awk erottelee jokaiselta riviltä vuorotellen kaksoispisteen erottamat merkkijonot (kentät) muuttujiin $1, $2,... Esimerkiksi tässä tapauksessa ensimmäisellä rivillä $1 olisi &amp;quot;root&amp;quot; ja $2 olisi &amp;quot;x&amp;quot;. Nyt voimme tulostaa jokaiselta riviltä ensimmäisen kentät komennolla &amp;lt;tt&amp;gt;print $1&amp;lt;/tt&amp;gt;, eli lopullinen awk-skriptitiedosto olisi&lt;br /&gt;
 FS = &amp;quot;:&amp;quot;&lt;br /&gt;
 { print $1 }&lt;br /&gt;
Toisaalta tämä voitaisiin ajaa myös yhdellä komennolla:&lt;br /&gt;
 awk -F : &#039;{print $1}&#039; /etc/passwd&lt;br /&gt;
&lt;br /&gt;
== BEGIN- ja END-lohkot ==&lt;br /&gt;
Awk käsittelee syötteensä [[grep]]in ja [[sed]]in tavoin rivi kerrallaan. BEGIN- ja END-lohkoissa suoritetaan asiat, jotka on kuitenkin tarkoitus tehdä suoritusaikana vain kerran ennen ja jälkeen varsinaisen syötteen käsittelyä.&lt;br /&gt;
 awk &#039;BEGIN {aluksi} lauseke1 {jokaiselle lauseke1:lle} \&lt;br /&gt;
         lauseke2 ... END {lopuksi}&#039; tiedosto&lt;br /&gt;
&lt;br /&gt;
== Ehtolauseet ja vertailut ==&lt;br /&gt;
&lt;br /&gt;
== Printf ==&lt;br /&gt;
Printf on awk:n funktio, jolla on mahdollista tehdä tarkempia muotoiluja tulostukselle. Se toimii samaan tapaan kuin vastaava funktio [[C]]-kielessä ja sen syntaksi on&lt;br /&gt;
 printf &amp;quot;muotoilumerkkijono&amp;quot;, muuttuja1, muuttuja2, ...&lt;br /&gt;
Ensimmäisenä annettava merkkijono sisältää tavallista tulostuvaa tekstiä ja voi lisäksi sisältää erikoismerkkejä, joiden paikalle sijoitetaan annettavat muuttujat sopivasti muotoiltuna. Ensimmäinen erikoismerkki käsittelee ensimmäisen parametrina annetun muuttujan, toinen toisen jne.&lt;br /&gt;
&lt;br /&gt;
Erikoismerkit alkavat prosenttimerkillä jota seuraa kirjain ja mahdollisesti numeroita (jos halutaan tulostaa prosenttimerkki, on käytettävä merkintää %%). Erikoismerkkejä ovat&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Merkki&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Selitys&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|%c&lt;br /&gt;
|Tulostaa ASCII-numeroa vastaavan merkin. Esimerkiksi &amp;lt;tt&amp;gt;printf &amp;quot;%c&amp;quot;, 65&amp;lt;/tt&amp;gt; tulostaisi &amp;quot;A&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|%d&lt;br /&gt;
|Tulostaa kokonaisluvun&lt;br /&gt;
|-&lt;br /&gt;
|%i&lt;br /&gt;
|Tulostaa kokonaisluvun&lt;br /&gt;
|-&lt;br /&gt;
|%e&lt;br /&gt;
|Tulostaa luvun halutussa eksponenttimuodossa. Esimerkiksi &amp;lt;tt&amp;gt;printf &amp;quot;%4.3e&amp;quot;, 1950&amp;lt;/tt&amp;gt; tulostaisi &amp;quot;1.950e+03&amp;quot; (4 merkitsevää numeroa ja eksponenttina 3)&lt;br /&gt;
|-&lt;br /&gt;
|%f&lt;br /&gt;
|Tulostaa desimaaliluvun&lt;br /&gt;
|-&lt;br /&gt;
|%g&lt;br /&gt;
|Tulostaa luvun joko desimaali- tai eksponenttimuodossa sen mukaan, kummassa tarvitaan vähemmän merkkejä&lt;br /&gt;
|-&lt;br /&gt;
|%o&lt;br /&gt;
|Tulostaa etumerkittömän oktaaliluvun&lt;br /&gt;
|-&lt;br /&gt;
|%s&lt;br /&gt;
|Tulostaa merkkijonon&lt;br /&gt;
|-&lt;br /&gt;
|%x&lt;br /&gt;
|Tulostaa etumerkittömän heksaluvun&lt;br /&gt;
|-&lt;br /&gt;
|%X&lt;br /&gt;
|Tulostaa etumerkittömän heksaluvun käyttäen desimaaliluvuille 10-15 isoja kirjaimia&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Silmukat ==&lt;br /&gt;
&lt;br /&gt;
== Muuttujat ==&lt;br /&gt;
Shell-muuttujia voi välittää AWK:lle luettelemalla ne parametreissa. Luvun 12 tulostus:&lt;br /&gt;
 a=12&lt;br /&gt;
 echo &#039;\n&#039; | awk -v a=$a &#039;END {print a}&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Muuttuja&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Selitys&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|FNR&lt;br /&gt;
|Rivinumero tiedostossa, BEGIN-lohkossa 0.&lt;br /&gt;
|-&lt;br /&gt;
|FS&lt;br /&gt;
|Kentän erotin, vakiona &amp;lt;space&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|NF&lt;br /&gt;
|Kenttien lukumäärä rivissä, BEGIN-lohkossa määrittelemätön.&lt;br /&gt;
|-&lt;br /&gt;
|NR&lt;br /&gt;
|Rivinumero syötteessä kokonaisuutena, BEGIN-lohkossa 0.&lt;br /&gt;
|-&lt;br /&gt;
|OFMT&lt;br /&gt;
|Formaatti numeroille printf-komennossa, oletuksena &amp;quot;%.6g&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|OFS&lt;br /&gt;
|print-komennon kenttäerotin, oletuksena &amp;lt;space&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|ORS&lt;br /&gt;
|print-komennon rivierotin, oletuksena &amp;lt;newline&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|RLENGTH&lt;br /&gt;
|match-funktion tuloksen pituus.&lt;br /&gt;
|-&lt;br /&gt;
|RS&lt;br /&gt;
|Rivierotin, vakiona &amp;lt;newline&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|RSTART&lt;br /&gt;
|match-funktion paluuarvo, eli merkkijonon ensimmäisen merkin sijainti rivillä.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Muuttuja $0 viittaa kulloiseenkin riviin kokonaisuudessaan.&lt;br /&gt;
&lt;br /&gt;
{}-lohkojen sisällä voi määritellä muuttujia C-sukuisten kielten tavoin:&lt;br /&gt;
 awk &#039;BEGIN {a=2} {if (NR % a == 0) print $0; else print &amp;quot;---&amp;quot;}&#039;&lt;br /&gt;
&lt;br /&gt;
== Funktiot ==&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Funktio&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;Kuvaus&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|sub(ere, repl[, in ])&lt;br /&gt;
|Korvaa rivin ensimmäisen eren replillä.&lt;br /&gt;
|-&lt;br /&gt;
|gsub(ere, repl[, in ])&lt;br /&gt;
|Korvaa rivin kaikki eret repleillä.&lt;br /&gt;
|-&lt;br /&gt;
|length[([s])]&lt;br /&gt;
|Palauttaa parametrin tai koko rivin pituuden.&lt;br /&gt;
|-&lt;br /&gt;
|match(s, ere)&lt;br /&gt;
|Palauttaa eren alun paikan s:ssä.&lt;br /&gt;
|-&lt;br /&gt;
|split(s, a[, fs ])&lt;br /&gt;
|Paloittelee s:n a:han. fs oletuksena FS.&lt;br /&gt;
|-&lt;br /&gt;
|substr(s, m[, n ])&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|tolower(s)&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|toupper(s)&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|close(exp)&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|getline&lt;br /&gt;
|Siirtyy seuraavalle riville.&lt;br /&gt;
|-&lt;br /&gt;
|system(exp)&lt;br /&gt;
|Komento Awk:n ulkopuolelle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Taulukot ==&lt;br /&gt;
&lt;br /&gt;
== Esimerkkejä ==&lt;br /&gt;
&lt;br /&gt;
Tiedostoa data.txt, jonka sisältö on seuraava:&lt;br /&gt;
 1 2 3&lt;br /&gt;
 4 5 6&lt;br /&gt;
 7 8 9&lt;br /&gt;
&lt;br /&gt;
käsitellään seuraavanlaisen awk-ohjelman avulla:&lt;br /&gt;
 # tämä on awk ohjelma apu.awk&lt;br /&gt;
 # tämä begin-lohko ajetaan aluksi kerran&lt;br /&gt;
 BEGIN {&lt;br /&gt;
    printf(&amp;quot;alkutemput\n---------\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
 # Tässä välissä on varsinainen awk-ohjelmien &#039;äly&#039;. Näitä lohkoja&lt;br /&gt;
 # voi olla useita, ja niiden eteen voi laittaa ehdon, jolla ko. rivi ajetaan.&lt;br /&gt;
 # Jos alla olevan lohkon alun muuttaisi $1 == 4 { niin lohko ajettaisiin&lt;br /&gt;
 # vain riville joka alkaa numerolla 4. Ilman ehtoa se ajetaan kaikille riveille&lt;br /&gt;
 {&lt;br /&gt;
  printf &amp;quot;[%s] [%s] [%s] -&amp;gt;  %d\n&amp;quot;,$1,$2,$3,$1+$2+$3&lt;br /&gt;
 }&lt;br /&gt;
 # tämä end lohko ajetaan kerran lopuksi&lt;br /&gt;
 END {&lt;br /&gt;
     printf(&amp;quot;---------\nlopputemput\n&amp;quot;);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Kun tiedosto data.txt syötetään ylläkuvatulle awk-ohjelmalle komennolla&lt;br /&gt;
 awk -f apu.awk &amp;lt;data.txt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
on tulos seuraava:&lt;br /&gt;
 alkutemput&lt;br /&gt;
 ----------&lt;br /&gt;
 [1] [2] [3] -&amp;gt;  6&lt;br /&gt;
 [4] [5] [6] -&amp;gt;  15&lt;br /&gt;
 [7] [8] [9] -&amp;gt;  24&lt;br /&gt;
 ----------&lt;br /&gt;
 lopputemput&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seuraavalla komennolla etsitään pieniä, alle 100 merkin tiedostoja /etc-hakemistosta:&lt;br /&gt;
 ls -l /etc |awk &#039;$5 &amp;lt; 100 {printf &amp;quot;%6s %s\n&amp;quot;,$5,$8}&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Poimitaan ja siistitään nykyinen resoluutio xrandr-komennon tulosteesta:&lt;br /&gt;
 xrandr -q | awk &#039;NR==2 {sub(/\+.*\+.*/,&amp;quot;&amp;quot;,$3; print $3}&#039;&lt;br /&gt;
&lt;br /&gt;
== Muuta ==&lt;br /&gt;
Awk:n on sanottu joskus olevan &amp;quot;write only language&amp;quot;, ja sitä se onkin jos yrittää saada todella monimutkaisesta awk-ohjelmasta selkoa. Omat ohjelmat kannattaa tehdä siten, että kirjoittaa ja testaa ohjelman rivi kerrallaan. Awk on parhaimmillaan lyhyissä muutaman rivin ohjelmissa. &lt;br /&gt;
&lt;br /&gt;
Awk-ohjelmissa ei ole yleensä mitään rajoitusta käsiteltävien tiedostojen koolle, koska niitä käsitellään vain riveinä ja syöttö/tulostus putkina/virtoina. Awk-ohjelmat pystyvät käsittelemään varsin helposti hyvinkin suuria syöttö/tulostustiedostoja (satoja megatavuja).&lt;br /&gt;
&lt;br /&gt;
==Aiheesta muualla==&lt;br /&gt;
*[http://www.unix.se/Awk Awk-artikkeli] unix.se-wikissä (ruotsiksi), josta tämä artikkeli on osittain käännetty. [[Keskustelu:Awk|Lisätietoja]].&lt;br /&gt;
*[http://www.cs.uu.nl/~piet/docs/nawk/nawk_toc.html Awk-opas]&lt;br /&gt;
*[http://www.cs.utah.edu/dept/old/texinfo/gawk/gawk_toc.html Gawk-opas]&lt;br /&gt;
*[http://www.pement.org/awk/awk1line.txt Havainnollistavia yksirivisiä]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Komentorivin perustyökalut]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Tiedeohjelmat&amp;diff=38314</id>
		<title>Tiedeohjelmat</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Tiedeohjelmat&amp;diff=38314"/>
		<updated>2013-10-07T13:47:34Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: /* Matematiikka ja fysiikka */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linuxille on tarjolla lukuisia tieteelliseen käyttöön tarkoitettuja ohjelmia. Tässä artikkelissa listataan joitain näistä.&lt;br /&gt;
&lt;br /&gt;
== Vapaita ohjelmia ==&lt;br /&gt;
=== Matematiikka ja tilastotiede===&lt;br /&gt;
* [[Octave]] - numeerinen laskenta&lt;br /&gt;
* [[Maxima]] - symbolinen laskenta&lt;br /&gt;
* [[Gnuplot]] - funktioiden ja datan visualisointi&lt;br /&gt;
* [[BOINC]] - hajautettu laskenta&lt;br /&gt;
* [[R]] ([[wikipedia:fi:R (ohjelmisto)|Wikipediassa]]) - tilastollinen laskenta ja grafiikka&lt;br /&gt;
&lt;br /&gt;
===Fysiikka===&lt;br /&gt;
* [[Elmer]] - [[wikipedia:fi:CSC – Tieteen tietotekniikan keskus|CSC:n]] kehittämä mallinnusohjelma&lt;br /&gt;
&lt;br /&gt;
=== Kemia ===&lt;br /&gt;
*[[Avogadro]] - molekyylien mallinnusohjelma&lt;br /&gt;
*[[Ghemical]] - molekyylien mallinnusohjelma&lt;br /&gt;
&lt;br /&gt;
=== Yleisiä tiedeohjelmia ===&lt;br /&gt;
* [[LaTeX]] - erityisesti matematiikkaa sisältävien artikkelien tuottaminen&lt;br /&gt;
&lt;br /&gt;
== Suljettuja kaupallisia ohjelmia ==&lt;br /&gt;
=== Matematiikka ja fysiikka ===&lt;br /&gt;
* [[MATLAB]] - numeerinen laskenta&lt;br /&gt;
* [[Mathematica]] - symbolinen laskenta&lt;br /&gt;
* [[Maple]] - symbolinen laskenta&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
* [[Kemiaohjelmat]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tiedeohjelmat]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Maxima&amp;diff=38313</id>
		<title>Maxima</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Maxima&amp;diff=38313"/>
		<updated>2013-10-07T13:43:33Z</updated>

		<summary type="html">&lt;p&gt;212.149.176.164: Liuta esimerkkejä ja syntaksia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ Ohjelma | nimi=Maxima | kuva=[[Kuva:maximalogo.png]] | kuvateksti= | lisenssi=[[GPL]] | käyttöliittymä=teksti | kotisivu=[http://maxima.sourceforge.net/ maxima.sourceforge.net] }}&lt;br /&gt;
&lt;br /&gt;
Maxima on komentorivipohjainen matematiikkaohjelma, joka hallitsee sekä symbolisen että numeerisen laskennan. Maxima on yksi monipuolisimmista avoimen lähdekoodin matematiikkaohjelmistoista. Sillä on mahdollista mm. derivoida ja integroida symbolisesti ja ratkaista yhtälöitä tarkasti.&lt;br /&gt;
&lt;br /&gt;
== Käyttöesimerkkejä ==&lt;br /&gt;
*Syöte voi päättyä joko puolipisteeseen tai dollarimerkkiin. Puolipisteen käyttäminen tulostaa tuloksen, dollarimerkin ei.&lt;br /&gt;
*Syötteet ja tulokset ovat numeroituja, ja niihin voi viitata myöhemmin: &amp;lt;tt&amp;gt;%o8&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;_&amp;lt;/tt&amp;gt;-muuttuja viittaa edelliseen syötteeseen&lt;br /&gt;
*&amp;lt;tt&amp;gt;%&amp;lt;/tt&amp;gt;-muuttuja viittaa edelliseen tulokseen&lt;br /&gt;
*&amp;lt;tt&amp;gt;&#039;&amp;lt;/tt&amp;gt;-etuliiteoperaattori estää lausekkeen laskemisen, mutta ei sievennystä: &amp;lt;tt&amp;gt;&#039;%&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;-etuliiteoperaattori laskee lausekkeen paikallaan, eli korvaa itsensä tuloksellaan: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;%&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yhtälön ratkaiseminen&lt;br /&gt;
 (%i1) solve(4*x^2 = 3*a, x);&lt;br /&gt;
                        sqrt(3) sqrt(a)      sqrt(3) sqrt(a)&lt;br /&gt;
 (%o1)            [x = - ---------------, x = ---------------]&lt;br /&gt;
                               2                    2&lt;br /&gt;
&lt;br /&gt;
Derivointi&lt;br /&gt;
 (%i2) diff(4*x^2 + sin(x) - a, x);&lt;br /&gt;
 (%o2)                            cos(x) + 8 x&lt;br /&gt;
&lt;br /&gt;
Integrointi&lt;br /&gt;
 (%i3) integrate(4*sin(a*x) - a^2*x, x);&lt;br /&gt;
                                              2  2&lt;br /&gt;
                                4 cos(a x)   a  x&lt;br /&gt;
 (%o3)                        - ---------- - -----&lt;br /&gt;
                                    a          2&lt;br /&gt;
 (%i4) romberg(x**2, x, 0, 3);&lt;br /&gt;
 (%o4)                                 9.0&lt;br /&gt;
&lt;br /&gt;
Sievennys (huomaa dollarimerkin käyttö ja edelliseen tulokseen viittaaminen %-merkillä)&lt;br /&gt;
 (%i5) (b+c)**2$&lt;br /&gt;
 &lt;br /&gt;
 (%i6) ratsimp(%);&lt;br /&gt;
                                 2            2&lt;br /&gt;
 (%o6)                          c  + 2 b c + b&lt;br /&gt;
 (%i7) trigsimp(2*cos(x)^2 + sin(x)^2);&lt;br /&gt;
                                     2&lt;br /&gt;
 (%o7)                            cos (x) + 1&lt;br /&gt;
&lt;br /&gt;
Sijoitus&lt;br /&gt;
                                             2  2&lt;br /&gt;
                               4 cos(a x)   a  x&lt;br /&gt;
 (%o)                        - ---------- - -----&lt;br /&gt;
                                   a          2&lt;br /&gt;
 (%i) %, a=x;&lt;br /&gt;
                                        2     4&lt;br /&gt;
                                 4 cos(x )   x&lt;br /&gt;
 (%o)                          - --------- - --&lt;br /&gt;
                                     x       2&lt;br /&gt;
&lt;br /&gt;
Summia&lt;br /&gt;
 (%i) sum(1/(x**2), x, 1, inf) + sum(x**2, x, 1, inf);&lt;br /&gt;
                             inf        inf&lt;br /&gt;
                             ====       ====&lt;br /&gt;
                             \      2   \     1&lt;br /&gt;
 (%o)                         &amp;gt;    x  +  &amp;gt;    --&lt;br /&gt;
                             /          /      2&lt;br /&gt;
                             ====       ====  x&lt;br /&gt;
                             x = 1      x = 1&lt;br /&gt;
 (%i) sumcontract(%);&lt;br /&gt;
                               inf&lt;br /&gt;
                               ====&lt;br /&gt;
                               \       2   1&lt;br /&gt;
 (%o)                           &amp;gt;    (x  + --)&lt;br /&gt;
                               /            2&lt;br /&gt;
                               ====        x&lt;br /&gt;
                               x = 1&lt;br /&gt;
Sarjan konvergenssi&lt;br /&gt;
 (%i) sum(1/x**2, x, 1, inf), simpsum;&lt;br /&gt;
                                       2&lt;br /&gt;
                                    %pi&lt;br /&gt;
 (%o)                               ----&lt;br /&gt;
                                     6&lt;br /&gt;
&lt;br /&gt;
Tulos [[TeX]]-muodossa&lt;br /&gt;
 (%i) tex(%)$&lt;br /&gt;
 $${{\pi^2}\over{6}}$$&lt;br /&gt;
&lt;br /&gt;
Datan lukeminen tiedostosta&lt;br /&gt;
 $ cat data&lt;br /&gt;
 1 2&lt;br /&gt;
 2 5&lt;br /&gt;
 6 8&lt;br /&gt;
 12 29&lt;br /&gt;
 15 34&lt;br /&gt;
 $ maxima&lt;br /&gt;
 (%i) v : read_nested_list(&amp;quot;data&amp;quot;)$&lt;br /&gt;
 (%i) v;&lt;br /&gt;
 (%o)            [[1, 2], [2, 5], [6, 8], [12, 29], [15, 34]]&lt;br /&gt;
&lt;br /&gt;
 $ cat mtrx&lt;br /&gt;
 1 3 7&lt;br /&gt;
 2 8 12&lt;br /&gt;
 4 3 9&lt;br /&gt;
 $ maxima&lt;br /&gt;
 (%i) A : read_matrix(&amp;quot;mtrx&amp;quot;)$&lt;br /&gt;
 (%i) A;&lt;br /&gt;
                                 [ 1  3  7  ]&lt;br /&gt;
                                 [          ]&lt;br /&gt;
 (%o)                            [ 2  8  12 ]&lt;br /&gt;
                                 [          ]&lt;br /&gt;
                                 [ 4  3  9  ]&lt;br /&gt;
&lt;br /&gt;
Redusoitu porrasmuoto&lt;br /&gt;
 (%i) B : read_matrix(&amp;quot;matrx2&amp;quot;);&lt;br /&gt;
                            [  2    1   - 1   8   ]&lt;br /&gt;
                            [                     ]&lt;br /&gt;
 (%o)                       [ - 3  - 1   2   - 11 ]&lt;br /&gt;
                            [                     ]&lt;br /&gt;
                            [ - 2   1    2   - 3  ]&lt;br /&gt;
 rref(a):=block([p,q,k],[p,q]:matrix_size(a),a:echelon(a),&lt;br /&gt;
     k:min(p,q),&lt;br /&gt;
     for i thru min(p,q) do (if a[i,i]=0 then (k:i-1,return())),&lt;br /&gt;
     for i:k thru 2 step -1 do (for j from i-1 thru 1 step -1 do a:rowop(a,j,i,a[j,i])),&lt;br /&gt;
     a)$&lt;br /&gt;
 &lt;br /&gt;
 (%i) rref(B);&lt;br /&gt;
                              [ 1  0  0   2  ]&lt;br /&gt;
                              [              ]&lt;br /&gt;
 (%o)                         [ 0  1  0   3  ]&lt;br /&gt;
                              [              ]&lt;br /&gt;
                              [ 0  0  1  - 1 ]&lt;br /&gt;
&lt;br /&gt;
== Graafien piirto ==&lt;br /&gt;
Tosin kuin Maximan sisäänrakennettu &amp;lt;tt&amp;gt;plot&amp;lt;/tt&amp;gt;-toiminnallisuus, hieman monipuolisemman &amp;lt;tt&amp;gt;draw&amp;lt;/tt&amp;gt;-moduulin funktiot käyttävät [[Gnuplot]]ia.&lt;br /&gt;
&lt;br /&gt;
Funktio aiemmasta esimerkistä&lt;br /&gt;
 (%i) import(draw)$&lt;br /&gt;
 &lt;br /&gt;
 (%i) f(c) := &amp;lt;nowiki&amp;gt;&#039;&#039;%o6$&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 (%i) f(%pi*3);&lt;br /&gt;
                                              2&lt;br /&gt;
 (%o)                              (b + 3 %pi)&lt;br /&gt;
 (%i) draw2d(terminal = wxt,&lt;br /&gt;
              grid = true,&lt;br /&gt;
              explicit(f(3), b, 0, 10) )$&lt;br /&gt;
&lt;br /&gt;
Piirto EPS-tiedostoon 10x10cm -mitoituksella&lt;br /&gt;
 (%i) draw2d(dimensions = 100*[10,10],&lt;br /&gt;
              terminal = eps_color,&lt;br /&gt;
              file_name = &amp;quot;deg2&amp;quot;,&lt;br /&gt;
              grid = true,&lt;br /&gt;
              explicit(f(3), b, 0, 10) )$&lt;br /&gt;
&lt;br /&gt;
== Eräajo ==&lt;br /&gt;
Syötteen putkittaminen Maximalle&lt;br /&gt;
 echo &#039;1000!;&#039; | xargs -I &#039;{}&#039; maxima --very-quiet --batch-string=&#039;{}&#039;&lt;br /&gt;
Syötteen lataaminen tiedostosta (esimerkiksi erillistä datatiedostoa käytettäessä)&lt;br /&gt;
 maxima -b ~/cas/regress.mac&lt;br /&gt;
&lt;br /&gt;
== Komentorivieditointi ==&lt;br /&gt;
Joissakin jakeluissa SBCL-Lispiä käyttävä Maxima saa tavalliset [[Readline]]-ominaisuudet &amp;lt;tt&amp;gt;rlwrap&amp;lt;/tt&amp;gt;illa&lt;br /&gt;
 rlwrap maxima&lt;br /&gt;
&lt;br /&gt;
== Asetukset ==&lt;br /&gt;
&amp;lt;tt&amp;gt;~/.maxima/maxima-init.mac&amp;lt;/tt&amp;gt; ajetaan aina Maximan käynnistyksen yhteydessä.&lt;br /&gt;
Seuraava esimerkki kokoaa väliaikaistiedostot samaan paikkaan:&lt;br /&gt;
 maxima_tempdir: &amp;quot;/.maxima/tmp&amp;quot;$&lt;br /&gt;
 load(draw)$&lt;br /&gt;
&lt;br /&gt;
== Käyttöliittymiä ==&lt;br /&gt;
Maximaa ei ole pakko käyttää komentoriviltä, vaan sille on olemassa useampiakin käyttöliittymiä. Näitä ovat mm.&lt;br /&gt;
*[[wxMaxima]]&lt;br /&gt;
*[[Xmaxima]]&lt;br /&gt;
Nämä antavat tulokset selkeinä graafisina kaavoina monirivisen ASCIIn sijaan.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[yacas]]&lt;br /&gt;
*[[Sage]]&lt;br /&gt;
*[http://maxima.sourceforge.net/docs/manual/en/maxima.html Maximan dokumentaatio]&lt;br /&gt;
*[http://www.csulb.edu/~woollett/ Kattavia ohjeita ja esimerkkejä fysiikkapainotuksella]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Tiedeohjelmat]]&lt;/div&gt;</summary>
		<author><name>212.149.176.164</name></author>
	</entry>
</feed>