Sekmadienis. Naktis. Nuobodžiauju. Tiksliau sakant nuobodžiavau. Dabar žaidžiu su spalvotais pieštukais bash-o eilutės spalvinimu.

Tokiems žaidimams yra skirtas PS1 kintamasis. Darom taip: nukopijuojam tekstą į komandinę eilutę ir spaudžiam Enter. Jei atsiras norinčių šį šedevrą įsiamžinti, nukopijuokit šią eilutę į ~/.bashrc failą (dėmesio, čia viena ilga eilutė).

export PS1="\n\e[01;35m`date +'%A %Y %B %d diena, krizė %X %Z(%:::z)'`\n\e[32m\w\n\e[1;31m\u\e[1;36m@\e[1;33m\h: \e[1;34m->>>"

Jo. Spalvos gavosi šventiškos, o informacijos daugiau nei galiu perskaityti vienu ypu. Užtat viskas išdėliota per tris eilutes. Bet juk nebūtina apsiriboti vien spalvinimu. Pridėkim dar informacijos apie esamo katalogo turinį, kiek failų jame ir kiek vietos užima:

export PS1="\n\e[01;35m`date +'%A %Y %B %d diena, krizė %X %Z(%:::z)'`\n\e[32m\w\n\e[1;31m\u\e[1;36m@\e[1;33m\h: \e[1;34m\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g') failų \e[1;33msurijo \$(/bin/ls -lah | /usr/bin/head -n 1) disko vietos\e[0m ->>> \e[0m"

Na štai, komandinės eilutės pranešimai tapo daug linksmesni. Pagalvojau, kad dar galėčiau pridėti pranešimą apie orą už lango, bet tingiu gūglinti rašyti skriptą orų tinklalapio parsinimui. Kad komandinė eilutė dar labiau išsiskirtų iš kito išvedamo teksto, galima nuspalvinti jos foną arba priversti tekstą mirkčioti. O štai šitas kodas labai patiks ką tik nulipusiems nuo Windows: export PS1='C:${PWD//\//\\\}>'

Prisižaidęs pasidariau kiek paprastesnį ir praktiškesnį prompt-ą, kuris atrodo taip:


2009-09-07 05:00 [hist:585 jobs:0] [/var/log]
kiras@linuksoidas $

O pats kodas toks visai paprastas:

export PS1='\n\e[32m\D{%F %R} [hist:\! jobs:\j] \e[0;34m[\w]\n\u@\H \e[m\$ '

Kartais atsitinka taip, kad išėjo mūsų mėgstamiausios distribucijos naujausia versija, o kaip tik tą patį vakarą nėra namie tuščio CD disko. Kartais atsitinka taip, kad nėra kur ar kaip disko „išsikepti“. Šis tekstas turėtų pakišti minčių kaip vis dėlto galima išsisukti. Pavyzdys yra išmėgintas su Ubuntu Feisty Fawn, bet turėtų veikti ir su kitomis Ubuntu, o kiek jį pakeitus ir su kitomis distribucijomis. Be to tikimasi, kad žmogus kuris seks šiuo tekstu turi Linux su GRUB.

Ar tai galima atlikti su Windows? Galbūt, tik jums reiks kelių dalykų. Pirmiausiai ext draiverių skirtų Windows sistemai. Antra grub4dos tikriausiai yra galima panaudoti vietoje GRUB. Ir dar reiks kokios nors particijų kūrimo programos gebančios dirbti su ext. Jei visa tai gausite galite mėginti ir su Windows.

Pradedam. Sukuriam tuščią ext particiją. Į ją išskleidžiame iso failą. Vienas iš būdų:

mkdir /mnt/iso
mount -o loop -t iso9660 failas.iso /mnt/iso
cp -r /mnt/iso /musu_tuscia_particija

Toliau redaguojame, papildome /boot/grub/menu.lst, pagal šitą šabloną:

title Ubuntu (Feisty Fawn) LiveCD
root (hdx,y)
kernel /musu_tuscia_particija/iso/vmlinuz boot=/casper splash
initrd /musu_tuscia_particija/iso/initrd.gz

Išsaugome ir restartuojame kompiuterį. Pasirinkus atitinkamą naują meniu punktą Ubuntu Live CD užsikraus iš HDD.

Atrodo paradoksalu, bet kad įsiūlyti nemokamą daiktą jį reikia parduoti. Sakydamas „parduoti“, omeny turiu, kad patarimai naudoti atviro kodo programas turi būti apgalvoti ne prasčiau nei komercinio produkto pardavinėjimas.

Ankstesniame įraše jau minėjau, kad konkuruoti su M$ vien žemesne kaina ir dar jos pačios žaidimo aikštelėje yra neprotinga. Jei kainą (tiksliau jos nebuvimą) iškelsit į pirmą vietą, tai vartotojai dažnai sakys „nemokamas ─ vadinasi bevertis“. Nemokamas daiktas dažnai yra nuvertinamas, parsinešus namo nemokamą programų rinkinį labai paprasta išmesti į šiukšlinę be jokio gailesčio. Ir priešingai, PĮ, už kurią sumokėjot pinigais sąžinė neleis išmesti, net jeigu tai bus visiškas šlamštas. Dažnai kaina tampa tuo inkaru, kuris neleidžia taip lengvai atsikratyti daiktu. Mums būtų daug paprasčiau jei atviro kodo programos turėtų realią, ne nulinę kainą.

Tai ką turim pasakyti vartotojams, jei neminėti, kad atviro kodo programos nieko nekainuoja? Kaip parodyti, kad jos turi vertę?

Kompiuteriai ir jų programinė įranga vystosi per lėtai. Ši sritis tebėra pradinėje stadijoje, kokioje buvo pirmieji Ford automobiliai, kurie buvo gaminami masiškai, bet būtinai turėjo būti komplektuojami su įrankių dėže. Ar bent jau mechanikas turėjo būti šalia.

Bet vartotojų visuomenė reikalauja visai ko kito. Jau praėjo tas metas, kai kompiuteriai ir programos kėlė visuotinį susidomėjimą. Kai kompiuteriai buvo laikomi atsakymų į visas problemas. Dabar vartotojai daug aiškiau supranta, jog tai tėra įrankis, paprastas-sudėtingas įrankis, visai ne toks universalus, kaip manėme anksčiau.

Visuose aršiose diskusijose „windows prieš linux“ neišvengiamai iškyla klausimas „kodėl aš turiu žinoti kaip veikia kompiuteris jei man tereikia… [ko jums reikia įrašykit patys]“. Aiškus motyvas ─ norim būti paprasti vartotojai; nieko apie tą daiktą žinoti nenorim; duokit mums standartines programas ir kad nereikėtų klausinėti.

Mus vis dar žavi naujovės, nauji atradimai ir mokslo pasiekimai. Bet tik tol, kol jie nekelia problemų. Vos iškilus pirmam klausimui euforija dingsta, tampa aišku, kad mums tereikia paprasto buitinio prietaiso, daikto, kuriam sugedus jis išmetamas ir į jo vietą statomas naujas. Komentaruose žmonės nuolat primena apie šį poreikį. Deja spartus kompiuterinių technologijų progresas dar nepasiekė tokio lygio.

O mes tenorim būti vartotojais.

Linux paramos fondas atliko tyrimą norėdamas atsakyti į šį daug kam įdomų klausimą. Tradicinis atsakymas neturintys ką veikti studentai, bet taip žinoma nėra. Bene įdomiausias atradimas, kad nuo 70% iki 95% ties šiuo projektu dirbančių žmonių gauna atlyginimą. Viso dirba apie 1000 žmonių iš apie 200 korporacijų, vidutiniškai per dieną parašoma 10000 kodo eilučių ir pašalinama 5000 tokiu būdu užtikrinant kokybę. Nauja ir versija pasirodo vidutiniškai kas 2,7 mėnesio. Nuo 2007 branduolio kūrimas spartėjo po 10% į metus. Didysis penketukas dalyvaujantis šiame darbe yra: RedHat, Google, Novell, Intel ir IBM.

Daug kas mano, kad Linusas pats įdeda daugiausiai darbo bet yra ne visai taip, bent jau pagal parašyto kodo eilutes pernai pirmavo D. S. Miller kuris parašė 2239 eilutes. Žinoma Linusas skiria daugybę laiko priimdamas ar atmesdamas kitų siūlomus pakeitimus tai ir yra jo pagrindinis darbas.

Visas tyrimas (anglų k., pdf)

Kaip manot, kodėl linuksai negali išstumti Windows iš desktop-ų rinkos? M$ turi daugiau pinigų? Tai tiesa, bet ne priežastis, juk serverių rinkoje linuksai be vargo laimi. Tai gal dėl to, kad M$ laiko kompiuterių gamintojus už gerklės? Dalis tiesos yra, bet gamintojų daug, visų nesukontroliuosi. Trūksta PĮ ir įrangos valdiklių? Ši problema nėra likimą lemianti, nes linuksas mainais siūlo stabilią ir švarią nuo virusų sistemą. Gerai, uždaviau sunkų klausimą, todėl performuluosiu. Kodėl linuksai užėmė tik 1% desktopų rinkos, kai tuo tarpu Apple perlipo 8% ribą, nors palyginti nesenai buvo beveik apleidusi kompiuterių verslą?

Atsakymas po nosim. Pažiūrėkim į kokius desktop-ų rinkos segmentus taikosi šie trys konkurentai, M$, Apple ir Linux. M$ nusitaikė į masinio vartojimo ir verslo segmentus, juose save pozicionuoja kaip pigią, tinkančią visiems OS ir visur kur tik pabando nusisukti nuo šios pozicijos gauna per nosį. Apple priešingai, siūlo prabangų stilių didesnes pajamas turintiems pirkėjams. Nenuostabu, kad šiame segmente jie tapo vienvaldžiais lyderiais (Apple užima 91% brangių kompiuterių rinkos), Apple tiesiog užėmė laisvą nišą, kurios konkurentai nesusiprato išskirti į atskirą segmentą. O į kokią rinką nusitaikė linuksas? Linuksas bando užimti nuo seno M$-o puikiai įtvirtintą pigios ir masinės produkcijos segmentą su pagrindiniu šūkiu „mes pigesni“ (t.y. nemokami).

Prastas ėjimas, nes Windows nemažai daliai vartotojų (piratų) taip pat yra nemokamas. Tiesa sakant M$ sumaniai manipuliuoja kainomis nuo $0 iki $XXX,98 priklausomai nuo pasirinkto segmento ir konkurentų spaudimo. Kad išstumti labai stiprų varžovą naudojant vien grubią „kainos“ jėgą, turi būti stambesnis už M$ žaidėjas, su didžiuliu biudžetu reklamai. Parduodamas tiesiog pigiau nieko neišloši, turi pasiūlyti kažką, ko neturi konkurentas.

Linuksas turi pakankamai privalumų nepasiekiamų konkurentui. Belieka atsakyti į klausimą: „kur slepiasi tas neužimtas segmentas desktop-ų teritorijoje?“.

Papildymas: Arvydas.net įraše „Kodėl linux niekada neišstums Windows“, kuris puikiai papildo šį įrašą, pateikia priežastis, dėl kurių M$-as gali jaustis „kalno karaliumi“.

Jei su komandine eilute dirbate nesenai, tai tikriausiai dažnokai pasitaiko situacija kai tenka užlipus ant backspace laukti kol panaikinsite anksčiau įvestus argumentus :) Kai aš pažindinausi su komandine eilute, man net Tab-o funkcija papildanti eilutę buvo paslaptis. Stebėjausi kaip greitai suvedamos ilgos eilutės, kol galiausiai susipratau paklausti apie tai.

Štai keletas kombinacijų veikiančių terminale:

  • Alt-f ─ perkelia kursorių pirmyn į žodžio galą.
  • Alt-b ─ perkelia kursorių atgal į žodžio pradžią.
  • Ctrl-] x ─ kursorius perkeliamas pirmyn iki x ženklo eilutėje.
  • Alt-Ctrl-] x ─ kursorius perkeliamas atgal į poziciją prieš x ženklą.
  • Alt-tarpas ─ pažymima kursoriaus pozicija.
  • Ctrl-x Ctrl-x ─ kursorius perkeliamas tarp esamos ir pažymėtos pozicijų.
  • Ctrl-u ─ ištrinama viskas nuo kursoriaus iki eilutės pradžios.
  • Ctrl-k ─ ištrinama viskas nuo kursoriaus iki eilutės pabaigos.
  • Ctrl-w ─ trina viską nuo kursoriaus iki tarpo, eilutės pradžios link.
  • Alt-bcksp ─ trina nuo kursoriaus iki žodžio pradžios.
  • Ctrl-y ─ tai kas ištrinama patenka į kaupyklę o su šia kombinacija įterpiama į eilutę atgal.
  • Ctrl-x, Ctrl-u, Ctrl-_ ─ atšaukia paskutinius pakeitimus, kombinacijos veikia skirtingai.
  • Alt-r ─ atšaukia visus iki vieno pakeitimus.
  • Ctrl-r ─ paieška komandų istorijoje (history), randamas artimiausias atitikmuo vedant simbolius po vieną.
  • !! ─ pakartoja paskutinę įvykdytą komandą. Galima naudoti kartu su naujai įvedama komanda, pvz., time !!
  • !abc ─ pakartoja paskutinę komandą prasidedančią nuo abc.

Jei norite sužinoti daugiau komandų skaitykite man bash.