Ero sivun ”Ed” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
Ed -> ed
pEi muokkausyhteenvetoa |
p (Ed -> ed) |
||
Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | {{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}} | ||
'''ed''' on [[tekstitila]]ssa toimiva [[rivieditori]], jolla tiedostoa käsitellään rivi kerrallaan. Siitä on nykyään hyötyä lähinnä [[Bash-skriptaus|skripteissä]] ja tilanteessa, jossa [[pääte|päätteen]] asetukset ovat niin sekaisin etteivät kehittyneemmät esim. [[ncurses]]ia käyttävät kokoruudun tekstieditorit toimi. | '''ed''' on [[tekstitila]]ssa toimiva [[rivieditori]], jolla tiedostoa käsitellään rivi kerrallaan. Siitä on nykyään hyötyä lähinnä [[Bash-skriptaus|skripteissä]] ja tilanteessa, jossa [[pääte|päätteen]] asetukset ovat niin sekaisin etteivät kehittyneemmät esim. [[ncurses]]ia käyttävät kokoruudun tekstieditorit toimi. <tt>ed</tt> löytyy käytännössä jokaisesta [[Unix]]-järjestelmästä. | ||
[[Vi]]-editorin taustalla oleva [[Ex]]-rivieditori pohjautuu Ediin. | [[Vi]]-editorin taustalla oleva [[Ex]]-rivieditori pohjautuu Ediin. <tt>ed</tt> on lisäksi vaikuttanut esimerkiksi [[grep]]in ja [[awk]]:n kehitykseen. | ||
== Perustietoa == | == Perustietoa == | ||
<tt>ed</tt> oli Unix-järjestelmän perustekstieditori. Sen alkuperäisellä [[man]]-sivulla lukikin ''"Ed is the standard text editor"'', "''Ed on oletustekstieditori''". [[wikipedia:fi:Ken Thompson|Ken Thompson]] kirjoitti ensimmäisen version siitä [[wikipedia:fi:Assembly_(ohjelmointikieli)|assembly]]-kielellä vuonna 1969. Jo tällöin mukana oli yksi Edin tärkeimmistä ominaisuuksista: tuki [[säännöllinen lauseke|säännöllisille lausekkeille]]. | |||
<tt>ed</tt> on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono <tt>ed</tt> ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus Edin ensimmäisten versioiden aikoihin jolloin ohjelman tuloste tuli kirjoittimelle ja levytila ja muistin määrä olivat rajalliset. Tänä päivänä tämä ominaisuus ei enää ole tärkeä. | |||
== Yksinkertainen muokkaus == | == Yksinkertainen muokkaus == | ||
<tt>ed</tt> on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä. | |||
Ediä käytetään kahdessa eri tilassa, on ''komentotila'' ja ''kirjoitustila''. Käynnistyksen jälkeen | Ediä käytetään kahdessa eri tilassa, on ''komentotila'' ja ''kirjoitustila''. Käynnistyksen jälkeen <tt>ed</tt> on komentotilassa jolloin se lukee käyttäjän kirjoittamia komentoja ja suorittaa niitä. Kaikki komennot ovat yhden merkin mittaisia, mutta jotkut vaativat myös erillisiä parametrejä. Komento voi esimerkiksi tarkoittaa "''tallenna ja lopeta''". | ||
Tietyillä komennoilla | Tietyillä komennoilla <tt>ed</tt> siirtyy kirjoitustilaan. Näitä ovat a (lisää tekstiä valitun kohdan perään), i (lisää tekstiä ennen valittua kohtaa) ja c (muuta valittuja rivejä). | ||
=== Tiedostoon kirjoittaminen ja tiedoston tallentaminen ja avaaminen === | === Tiedostoon kirjoittaminen ja tiedoston tallentaminen ja avaaminen === | ||
Luodaan aluksi yksinkertainen tiedostoa Ediä käyttäen. Käynnistetään | Luodaan aluksi yksinkertainen tiedostoa Ediä käyttäen. Käynnistetään <tt>ed</tt> ensin komennolla | ||
$ ed | $ ed | ||
Tämän jälkeen kirjoitetaan tiedostoon tekstiä. Aluksi siirrytään kirjoitustilaan ja kirjoitetaan nykyisen kohdan (tiedoston alun) perään antamalla komento a ja painamalla tämän jälkeen enteriä. Tämän jälkeen voidaan kirjoittaa haluttua sisältöä tiedostoon. Rivinvaihto tapahtuu enterillä. Kirjoittaminen lopetetaan kirjoittamalla enterin painamisen jälkeen aukeavalle riville vain piste ja painamalla enteriä: | Tämän jälkeen kirjoitetaan tiedostoon tekstiä. Aluksi siirrytään kirjoitustilaan ja kirjoitetaan nykyisen kohdan (tiedoston alun) perään antamalla komento a ja painamalla tämän jälkeen enteriä. Tämän jälkeen voidaan kirjoittaa haluttua sisältöä tiedostoon. Rivinvaihto tapahtuu enterillä. Kirjoittaminen lopetetaan kirjoittamalla enterin painamisen jälkeen aukeavalle riville vain piste ja painamalla enteriä: | ||
a | a | ||
<tt>ed</tt> on monipuolinen tekstieditori. | |||
Ehkä tätä ei kuitenkaan kannata käyttää wikin muokkaamiseen? | Ehkä tätä ei kuitenkaan kannata käyttää wikin muokkaamiseen? | ||
. | . | ||
Pisteen antamisen jälkeen | Pisteen antamisen jälkeen <tt>ed</tt> siirtyy takaisin komentotilaan mutta ei ilmoita siitä mitenkään. Seuraavaksi tallennetaan luotu tiedosto komennolla w. Komennolle annetaan parametrina tallennettavan tiedoston nimi: | ||
w tiedosto | w tiedosto | ||
Komennon perään | Komennon perään <tt>ed</tt> tulostaa tiedostoon kirjoitettujen merkkien lukumäärän: | ||
w tiedosto 101 | w tiedosto 101 | ||
Lopuksi | Lopuksi <tt>ed</tt> voidaan lopettaa komennolla q. Jos tiedostoa ei oltaisi tallennettu, <tt>ed</tt> antaisi tässä tapauksessa virheilmoituksen (eli tulostaisi kysymysmerkin). Virheilmoituksen syyn näkee komennolla h. Tässä tapauksessa se olisi ''Warning: file modified''. Jos tämän jälkeen annetaan uudelleen komento q, <tt>ed</tt> sulkeutuu eikä muutoksia tallenneta. Komennolla Q <tt>ed</tt> sulkeutuu joka tapauksessa riippumatta siitä, onko muutoksia tallentamatta. | ||
Avataan seuraavaksi äsken luotu tiedosto komennolla | Avataan seuraavaksi äsken luotu tiedosto komennolla | ||
Rivi 37: | Rivi 37: | ||
e tiedosto | e tiedosto | ||
101 | 101 | ||
Komennon jälkeen | Komennon jälkeen <tt>ed</tt> käynnistyy ja tulostaa tiedostossa olevien merkkien määrän. Nyt tiedoston perään voitaisiin lisätä tekstiä komennolla a tai i (tiedoston lataamisen jälkeen "kursori" on tiedoston lopussa, joten on ihan sama, lisätäänkö teksti ennen tiedoston loppua vai sen jälkeen). | ||
Tässä tapauksessa kun tiedosto on avattu, se voidaan tallentaa normaalisti komennolla w. | Tässä tapauksessa kun tiedosto on avattu, se voidaan tallentaa normaalisti komennolla w. <tt>ed</tt> tulostaa taas tallennettujen merkkien määrän. | ||
Kun | Kun <tt>ed</tt> on käynnissä, komennolla f nähdään tiedoston oletusnimi (jolle tiedosto tallennetaan komennolla w, aluksi avatun tiedoston nimi): | ||
f | f | ||
tiedosto | tiedosto | ||
Rivi 78: | Rivi 78: | ||
-1,$p | -1,$p | ||
<tt>ed</tt> pitää muistissa, mitä riviä on viimeksi käsitelty (esimerkiksi kirjoitettu tai tulostettu). Esimerkiksi rivi 2 valittaisiin vaikkapa tulostamalla se: | |||
2p | 2p | ||
Tällä hetkellä valittuna oleva rivi näkyy komennolla | Tällä hetkellä valittuna oleva rivi näkyy komennolla | ||
Rivi 182: | Rivi 182: | ||
Jos rivejä ei aseteta, komento kohdistuu tällä hetkellä valitulle riville. | Jos rivejä ei aseteta, komento kohdistuu tällä hetkellä valitulle riville. | ||
Viimeisen kauttaviivan jälkeen voidaan lisätä kirjain p, jolloin | Viimeisen kauttaviivan jälkeen voidaan lisätä kirjain p, jolloin <tt>ed</tt> tulostaa komennon vaikutuksen. Esimerkiksi: | ||
1,2p | 1,2p | ||
Rivi 1 | Rivi 1 | ||
Rivi 191: | Rivi 191: | ||
RIvi 1 | RIvi 1 | ||
TekstI 2 | TekstI 2 | ||
Huomataan, että korvaamisen jälkeen | Huomataan, että korvaamisen jälkeen <tt>ed</tt> tulosti vain viimeisimmän muokkauksen tuloksen ja että muokkaus kohdistui vain jokaisen rivin ensimmäiseen osumaan. Jotta kaikki osumat korvattaisiin, on viimeisen kauttaviivan jälkeen lisättävä komento g (''global''): | ||
1,2s/i/I/gp | 1,2s/i/I/gp | ||
Rivi 219: | Rivi 219: | ||
== Ulkoiset komennot == | == Ulkoiset komennot == | ||
<tt>ed</tt> mahdollistaa ulkoisten komentojen suorittamisen järjestelmän komentotulkilla ([[sh]]) ilman, että <tt>ed</tt> täytyy välillä sulkea. Komennot suoritetaan laittamalla niiden eteen huutomerkki. Esimerkiksi nykyisen hakemiston tiedostot listataan komennolla | |||
!ls | !ls | ||
Ulkoisten komentojen tuloste voidaan liittää muokattavaan tiedostoon komennolla | Ulkoisten komentojen tuloste voidaan liittää muokattavaan tiedostoon komennolla |