Friday, 22 November 2013

Vim

A vimmel először AIX miatt kerültem komolyabb kapcsolatba, és azóta parancssorban gyakorlatilag csak ezt használom. A vim a vi-ból fejlődött ki, és elég sok kényelmi funkciót tartalmaz. Sokan gyűlölik, mivel nem a notepad és a hagyományos szövegszerkesztők elvén működik. Ami miatt mégis megéri megtanulni pár alap parancsot használni, az a less, ami egy filenéző program, és például a man is lessben nyitja meg a manualokat (a klasszikus unixok more-ban, de azzal nagyon kevesen fognak találkozni).

Konfiguráció:
A vim rendszerszintű konfigurációs fájlja a /etc/vim/vimrc. Ebben két dolgot szoktam bekapcsolni: syntax=on, és background=dark. Az első bekapcsolja a syntax highlightot, a második átállítja a színsémát.

Következzen egy kis gyorstalpaló.
A vimnek két módja van: parancs (command), és szerkesztő (edit) mód. Mindig command módban indul. Ekkor a beütött dolgok nem kerülnek be a file-ba, hanem parancsokként értelmezi a dolgokat. Az általam legsűrűbben használt parancsok:
Keresés:
  • /kifejezés : előrefelé keres a file-ban a megadott kifejezésre
  • ?kifejezés : visszafelé keres a kifejezésre
  • n : megismétli az előző keresést, vagyis a következő találatra ugrik abban az irányban, amerre utoljára kerestünk
  • N : megismétli az előző keresést fordított irányban
  • :szám : a megadott sorszámú sorra ugrik (a sorok számozása 1-től kezdődik)
Mozgás:
vimben mindkét módban tudunk mozogni, vi-ban viszont csak command módban
  • egyik lehetőség a kurzorok használata, ez egyértelmű
  • a másik lehetőség a h-j-k-l gombokkal:
    h=bal, j=le, k=fel, l=jobb
Szerkesztés:
  • i : insert - az aktuális pozíciónál átkapcsol szerkesztés módba
  • a : append - az aktuális pozítió mögött átkapcsol szövegszerkesztő módba
  • o : az aktuális sor alatt kezd egy új sort, és átkapcsol szerkesztés módba
  • O : az aktuális sor fölé illeszt be egy új sort, és aátkapcsol szerkesztő módba
  • Esc : visszalép parancs módba
Törlés, kijelölés: 
Törölni vi-ban csak parancs módban lehet, vimben szerkesztő módban működik a Del és Backspace. Ha parancs módban törlünk, akkor a törölt rész bekerül a vim bufferébe, amiket be tudunk illeszteni. Parancs módban az alábbi törléseket szoktam használni.
  • dd : törli az aktuális sort
  • d<szám>d: töröl <szám> darab sort az aktuális sortól kezdve lefelé
  • d$ : az aktuális pozíciótól kezdve töröl a sor végéig
  • dw : delete word - töröl az aktuális pozíciótol a szó végéig
  • d<szám>w: törli a következő <szám> szót
  • dl: törli a következő karaktert
  • d<szám>l: törli a köetkező <szám> karaktert
  • v : kijelölés kezdete - ezután mozgással kijelölhetjük a kívánt részt
  • V : sorok kijelölésének kezdete - ezután mozgással kijelölhetjük a kívánt sorokat
  • y : kijelölés befejezése, és bufferbe másolása
Beillesztés:
Beilleszteni lehet a vágólapról, vagy a vim saját bufferéből. Vágólapról illesztésnél figyeljünk arra, hogy szerkesztő módban legyünk különben elkezdi parancsként értelmezni a beilleszteni kívánt szöveget, és csak az első megfelelő karaktertől kezdi beilleszteni a szöveget (i,a,o,O, stb.).
A bufferbe kétféleképpen kerülhetnek dolgok. Törléssel (dd, dw, d$, dl, stb.), vagy másolással (v/V - y).
  • p : a bufferben levő dolgokat beilleszti az aktuális karakter után
  • P : a bufferben levő dolgokat beilleszti az aktuális karakter elé
Kilépés és mentés:
  •  :q - kilépés. Ha változott a file, akkor figyelmeztet, hogy változott, és nem lép ki
  • :q! - kilépés mentés nélkül
  • :w - mentés
  • :x - kilépés mentéssel (:qw is ugyanezt csinálja)
A fentieken kívül még végtelen dolgot tud a vim, de kezdetnek ennyit is elég megjegyezni, és megszokni.

Wednesday, 20 November 2013

Hasznos dolgok

Ez most nem a kezdőknek szól elsősorban. Felsorolok pár programot / tippet trükköt, amik megkönnyítik az életemet parancssori környezetben. A későbbiekben valószínűleg bővülni fog a lista.
  • colortail: ugyanaz mint a tail, csak konfigurálható, hogy milyen kulcsszavak esetén milyen színnel jelenítse meg az adott sort / szót.

  • vim: :set background=dark Ha van syntax highlight, akkor ez a parancs átállítja az alapértelmezett sötétzöld/bordó színkombinációt cián / sárga színkombinációra. Igen tudom, perverz vagyok, hogy vimet használok. Ez elsősorban az AIX nevű csodarendszernek köszönhető, ahol bármilyen más parancssori szövegszerkesztő csak nagy küzdelmek árán telepíthető
  • terminator: többpaneles grafikus terminál. Amiért szerintem jobb, mint a többi, hogy tud osztott panelen két terminált futtatni. Egyikben mehet a tail -f a logra, a másikban lehet dolgozni.
  • powershell: igen, a windowsba épített powershellről van szó. Ami a nagy előnye a sima parancssorral szemben, hogy működnek benne az alap linuxos parancsok: ls, cd /, stb.
  • baretail.exe: logok követéséhez nagyon jó kis progi, freeware, nem kell sem cygwint sem mást telepíteni, tud sorokat szinezni kulcsszavak alapján, és a nagy előnye a powershell Get-Content filenév -Wait paranccsal szemben, hogy nem kell megvárni, amíg beolvassa a teljes file-t. Simán működik remote desktopon felcsatolt mappából (\\tsclient\mappanév).

Tuesday, 19 November 2013

Programok telepítése a.k.a. csomagkezelés

Elérkeztünk a linux rendszerek számomra egyik legszimpatikusabb részéhez, a csomagkezeléshez. Nem kell azzal küzdeni, hogy hol van az adott programnak a telepítője, ha véletlen nincs CD a gépben, akkor hogyan fogom feltelepíteni, melyik meghajtóra tettem a telepítőt, stb. Kell net, és onnantól pár parancs vagy kattintás, és a program fent van a gépen, használható, nem kell újraindítani sem a gépet.

Csomag

Linuxban a csomag egy program, vagy programkomponens telepítője. Gyakorlatilag bármilyen programot telepítesz, az egy vagy több csomagból fog állni. Van amelyik egy windows-os dll-nek felel meg, mások egy kisebb, vagy akár egészen nagy programnak (pl: Libreoffice).
Két nagyon elterjedt csomagtípus van:

  • deb: Debian és leszármazottai
  • rpm: Redhat, Fedora, openSUSE és leszármazottai

Csomakezelő

A csomagkezelő az a program, ami figyeli és karbantartja a csomagjaidat. Ezzel tudsz telepíteni, eltávolítani, frissíteni, vagy akár korábbi verzióra visszaállítani adott csomagokat. Alapvetően parancssori, de soknak létezik grafikus megfelelője is.
Pár darab felsorolásszerűen:
  • dpkg, apt, aptitude: debian, és leszármazottai használják.
  • yum: fedora rpm alapú csomagkezelője
  • zypper, YaST: openSUSE rpm alapú csomagkezelője
  • pacman: Archlinux csomagkezelője
  • rpm: Redhat csomagkezelő

Példák

Az alábbiakban leírok egy-egy példát, hogyan lehet programokat keresni, telepíteni, törölni.
Tegyük fel, hogy nem tetszik a beépített médialejátszó, és szeretnénk telepíteni egy másikat.

Keresés

A keresőben az a jó, hogy nem csak a csomag nevében, hanem a leírásában is keres, vagyis ha tudjuk, hogy milyen típusú programot keresünk, de nem tudjuk a konkrét nevét, akkor is meg tudjuk találni.
  • apt-cache search "media player"
  • yum search "media player"
  • zypper search "media player"
Itt arra kell figyelni, hogy rengeteg csomagot fog kiadni a keresési eredmény. Nagyrésze ezeknek a csomagoknak egy adott programhoz tartozó függvénykönyvtár, vagy épp egy plugin. Ami lib előtaggal kezdődik, azok függvénykönyvtárak, és a legritkább esetben fogjuk őket kézzel direkt telepíteni.

Telepítés

Mondjuk megtetszett a VLC Media Player, mert azt már úgyis ismerjük windows-os korszakunkból.
  • apt-get install vlc
  • yum install vlc
  • zypper install vlc
A parancs kiadása után a csomagkezelő kiírja, hogy milyen plusz csomagokat (függőségeket) kell telepítenie ahhoz, hogy működjön a vlc, esetleg felsorol pár javasolt csomagot (recommended packages) is, amik extra funkcionalitást adhatnak a programhoz. Ha elfogadjuk a javasolt telepítést, akkor elkezdi letölteni a csomagokat, majd telepíti azokat. Amikor végzett, akkor a vlc ikonja megjelenik a menüben, és rákattintva már használhatjuk is.

Fissítés

A frissítés menete két lépésből áll. Első lépésben a csomagkezelő letölti a teljes csomaglistát, és a verziókat összehasonlítva meg tudja mondani, miből került fel frisebb verzió.
  • apt-get update
Második lépésben történik a tényleges frissítés, ami a telepítéssel megegyező. Felsorolja, melyik comagokat fogja frissíteni, telepíteni, törölni.
  • apt-get upgrade
  • yum update
  • zypper update
Az rpm alapú csomagkezelők általában automatikusan frissítik a csomaglistát adott idő elteltével.

Törlés

Ha egy programot nem akarunk már használni, akkor egyszerűen eltávolíthatjuk.
  • apt-get remove vlc
  • yum remove vlc
  • zypper remove vlc
Ezzel a vlc-t sikeresen leszedtük a gépről, azonban pár függőség valószínűleg telepítve maradt. Ezeket az alábbi parancssal tudjuk eltávolítani:
  • apt-get autoremove