T. I. N. T. F. M.

(This IsN't The F*cking Manual)

UNIX
a la Hamster

Hallo... I'm Mr. ed

Úgy gondoltam az elkövetkezőkben megosztok valamit két őskövületről, melyek éltes koruk ellenére manapság is jól használhatóak. ed-nek és vi-nak hívják őket, a UNIX-ok hagyományosan legalapvetőbb szövegszerkesztői, a lehető leghagyományosabb értelemben méghozzá. Mielőtt elhamarkodottan a kinézetük alapján ítélnénk meg őket, el kell mondjuk, hogy az ed az egyik legelső UNIX-os szerkesztő volt, még bőven a telexírógépek korából, amikor a sororientáltság egyenlő volt a használhatósággal (mivel az írógép egyszerre egy sort tud megjeleníteni, nem tudok pozicionálni). A DOS sokak által rettegett edlin-jét is erről koppintották, bár tulajdonképpen ilyen editor majd minden oprendszerben volt anno. A vi kicsit újabb gyerek, a hetvenes évek végén írták, a címezhető kurzorpoziciójú CRT terminálok korában, ennek megfelelően szinte notepad az egész, a "szinte" viszont épp elég ahhoz, hogy megtévessze, és idegbajba kergesse a gyanútlan felhasználót. És mielőtt valakinek kétségei támadnak: az említett két editor közül a vi a jobb.

Ed. A tied...

Tehát maga az ed:

Kezdésnek elindítjuk az ed-et, az egyszerűség kedvéért a szerkeszteni kívánt fájl nevével együtt:
ed vacakfile
Ilyenkor betöltődik a file a pufferbe, és a 'kurzor' az utolsó sor utánra ugrik. Ha ilyenkor egy a betűt nyomunk (append), beírási üzemmódba kerülünk, a beírt szöveg a file tartalmához íródik (de ugyebár egyelőre csak a pufferben!). A parancsok formátuma:
cím parancs argumentumok
A cím azt a sort, vagy sorokat jelenti, amin az adott parancsot végre akarjuk hajtani.
Pár parancs:
p - kiírja az adott sort (sorokat), pl 5p az ötödik sort
d - töröl
i - beszúrás az adott sor elé
= - sorszám
s - a paraméterlistában megadott minták felcserélése, a 'minta' egy string, amit / jelek közé kell raknunk, tehát az
s/kaki/belsar/
parancs a 'kaki' szót 'belsar'-ra csereli...
u - undo
c - az ezután következő szövegre cseréli a jelzett sorokat
e - az argumentumként megadott fájl betöltése
r - a megadott nevű fájl betöltése a puffer végére (hozzáfűzés)
w - mentés (mielőtt gondolkozni kezdesz rajta: write)
Q - kilépés mentés nélkül
! - végrehajt egy shellparancsot, amit ugyebár a parancs helyén adunk meg ;-)
g - az ezután következő szerkesztőparancsot a puffer minden illeszkedő során végrehajtja
k - megjelöli az adott részt az argumentumként megadott jellel
Egy címre többféleképpen hivatkozunk, nem kell feltétlenül konkrét számnak lennie. A . az éppen aktuális sort jelöli, ezt
.=
segítségével tudhatjuk meg... A $ az utolsó sorra utal.
Kijelölés: a két kívánt határolósor számát vesszővel választjuk el:
3,67
Az 1,$d például a puffer tartalmát törli az elsőtől az utolsó sorig. Ez így kicsit összevisszának tűnhet (és gondolom tűnik is), pár példa segítségképpen:
1,$p
Kiírja az egész puffert a képernyőre.
/nemkivant/d
Törli a nemkívántat ;-)
/begin here/,/cut here/w lenyeg
A két fentebbi string előfordulása között található sorokat kinyomja a 'lenyeg' nevű fájlba...
g/ezaszonemkell/d
Törli az összes 'ezaszonemkell'-előfordulást.

Ezeket a furcsa parancsokat érdemes megtanulni, a vi-ban ugyanis használhatjuk őket, de akár másutt is (pl. sed).

Vissza Előre