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.

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.

nežinau.lt pasigyrė, kad su dviem monitoriais darbas vyksta greičiau. Nors nenaudoju daug informacijos ir naudos man nebus labai daug, nutariau išbandyti. Rezultatas ─ šis įrašas rašomas viename ekrane, o Konqueror su papildoma informacija ─ kitame ekrane. Patogu. Anksčiau, kad nepersijunginėti tarp programų, sumažintą tekstų redaktoriaus langą priverstinai laikydavau virš kitų langų (kont.meniu > Papildomai > Laikyti virš kitų).

Didelė erdvė paskirstoma per du monitorius

Nuo ko pradėsim? Nuo skundo, kad grafinės „Sistemos nustatymo“ priemonės pripažįsta tik vaizdo dubliavimą antrame monitoriuje (kodėl taip gaunasi rašiau čia), po to skaičiuosim. Principas toks, kad reikia išplėsti virtualią darbastalio erdvę per dviejų monitorių plotį ar aukštį. Mano pagrindinio monitoriaus (laptope) didžiausias dydis 1024×768, o senutis 15” VGA gali rodyti iki 1280×1024, bet jį statysiu tolėliau, smulkaus teksto neįžiūrėsiu, todėl pasirinksiu 800×600 arba 1024×768.

Monitorius išdėstau vieną šalia kito, turėsiu sudėti pločius ir palikti didesniojo aukštį. Sudedu 1024+1024, nes planuoju antrąjį monitorių perjunginėti tarp 800×600 ir 1024×768. Gaunu 2048×768. Mano skaičiavimai baigti. Pastaba: Intel grafinės plokštės riboja galimą virtualaus ekrano dydį iki 2048×2048.

Sekantis žingsnis, lendam į komandinę eilutę :) ir pataisom xorg.conf. Prieš taisant, nepamirštu atsargumo, įvykdau šią komandą:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.veikianti.kopija

Dabar galiu taisyti nesibaimindamas. Papildau failą SubSection eilutėmis:

Section "Screen"
... (čia kažkas parašyta, tegul lieka) ...
SubSection "Display"
Modes "1024x768" "1024x768"
Virtual 2048 768
EndSubSection
EndSection

Perkraunu X-us (ctrl+alt+backspace). Beliko paleisti xrandr komandą. Jai bus reikalingi argumentai, dydžius jau žinom, bet dar turiu sužinoti, kaip X-uose vadinasi mano monitoriai. Galimi variantai yra šie:

    Intel

  • LVDS: laptop-o monitorius
  • TMDS-1: išorinė DVI jungtis
  • VGA: išorinė VGA jungtis
  • TV: išorinė TV išvestis
    ATI

  • LVDS: laptop-o monitorius
  • DVI-0: pirma išorinė DVI jungtis
  • DVI-1: antra išorinė DVI jungtis (jei yra)
  • VGA-0: pirma išorinė VGA jungtis
  • VGA-1: antra išorinė VGA jungtis (jei yra)
  • S-video jungtis
    Nvidia

  • LVDS: laptop-o monitorius
  • DVI0: pirma išorinė DVI jungtis
  • DVI1: antra išorinė DVI jungtis (jei yra)

Kad tiksliai žinoti kaip yra pas mane, paleidžiu komandą xrandr be argumentų. Aišku, randu LVDS ir VGA-0. Dabar turiu visą būtiną informaciją ir galiu aktyvuoti antrąjį monitorių:

xrandr --output LVDS --mode 1024x768 --output VGA-0 --mode 800x600 --right-of LVDS

Čia --right-of reiškia, kad antrasis monitorius stovės dešiniau. Kiti galimi variantai ─ --left-of, --above, --below, --same-as. Paskutinysis tiesiog dubliuoja vaizdą, kitų reikšmes su žodynu išsiverskit patys. Kad pakeisti antrojo monitoriaus vaizdo dydį, vietoj 800×600 tiesiog rašau 1024×768 ir įvykdau komandą.

O kaip su gamtos tausojimu ar elektros taupymu? Lengvai. Vykdau sekančią komandą:

xrandr --output LVDS --mode 1024x768 --output VGA-0 --off

Viskas, antras monitorius gesta, atverti langai keliauja į pirmąjį.

Ką dar patobulinti?

  • Jei komandas perkelti į skriptus ir juos pasidėti lengvai pele pasiekiamoje vietoje, su monitorių junginėjimu susitvarkys net valstybės virėja.
  • Pridėjus papildomą darbinę erdvę, galima bus antrame ekrane pasikeisti fono paveiksliuką ir jame susikrauti visus plazmoidus. Patogu, nes pirmajame plazmoidus nuolat uždengia koks nors langas.

O su trečiu monitorium, jei tik yra noras, burkit patys. Papildomos informacijos ieškokit čia ir žinoma, man xrand puslapiuose.

Atnaujinau „Linux komandų atmintinę“. Parsisiųskit ODT formatu arba PDF formatu. Trumpai aprašysiu tai kuom ją papildžiau, ką pakeičiau.

  • Kad greitai pamatyti kokie kompiuteriai yra jūsų lokaliame tinkle panaudokit komandas: smbtree ─ parodys Windows kompiuterių „šarus“, nmap 192.168.0.0/24 ─ gausit veikiančių kompiuterių sąrašą.
  • Kartais prireikia kompiuteryje įdiegtų programų sąrašo: dpkg --get-selections > paketu.sarasas.txt ─ ši komanda tinka Debian tipo sistemoms.
  • Kaip paprastai sužinoti kas vyksta jūsų kompiuteryje? Kokie portai atverti ir prie ko internete jungiasi programos? Štai ši „stebuklinga“ komanda: sudo lsof -i
  • Pervadinti vieną failą lengva, su mv. O jeigu reikia pakeisti pavadinimą visai muzikos kolekcijai iš karto? rename -n 'perlexpr' *.mp3 ─ čia, perlexpr perlo komanda-šablonas, kuris ir atlieka pavadinimo keitimą. -n skirtas pabandymui, parodys koks bus rezultatas nieko nekeisdamas, kai viskuo būsit patenkinti išmeskit šį raktą. *.mp3 filtras, kuris atrenka jums reikiamus failus.
  • Kaip gauti katalogų ir failų su jų dydžiais sąrašą? Lengvai: du -sch *. Jei reikia ne pilno sąrašo, vietoj žvaigždutės įrašykit reikiamą filtro šabloną.
  • …ir dar keli smulkūs papildymai.

Pasekiau Pociaus pavyzdžiu ir atsinaujinau Kubuntu į Intrepid Ibex Alpha su KDE4. Kaip ir tikėjausi, alfa versija stabilumu nepasižymi. KDE4 taip pat neypatingai stabili, nors jau turi visas man reikiamas funkcijas. Trūkumų tikrai yra, bet jų nevardinsiu, papasakosiu tai kas jau senai man su Linux buvo nutikę.

Trumpai tariant kompas „pakibo“. Tiksliau, kompiuteris nustojo klausyti klaviatūros ir pelės, nebereagavo nė į vieną mygtuką. Na atrodė, kad visiškai apmirė.

Ką daryt? Reset mygtuko nėra – nešiojami kompiuteriai jo neturi :) Dar galima palaikyti nuspaudus išjungimo mygtuką, kol kompiuteris išsijungs. Tai vienintelis mygtukas kuris suveikia kai jau niekas nebepadeda. Blogas pasirinkimas, rizikuojat sugadinti duomenis diske, bet negaliu to patvirtinti, nes dar nesu ko nors pasigedęs dėl tokio grubaus kompiuterių išjungimo ar netikėto elektros dingimo.

Bet šitaip išjunginėti nebūtina. Iš pažiūros mirtinai „pakibęs“ Linux greičiausiai tebėra „gyvas“, tiesiog pakibo grafinė aplinka (X-ai), dalis tarnybinių programų ar valdikliai, bet branduolys tebeveikia ir tebėra galimybė saugiai išjungti arba perleisti kompiuterį. Galima pabandyti prisijungti per tinklą su SSH, o kraštutiniu atveju, jei ir tai nebeįmanoma jums padės speciali klavišų kombinacija, kuri tiesiogiai valdo Linux branduolį:

Pirmiausiai spaudžiam Alt-SysRq-R – „atimam“ klaviatūrą iš X-ų (tada pabandykit Ctrl-Alt-F1, gal pasiseks patekti į konsolę), po to Alt-SysRq-E – leidžiam procesams tvarkingai užbaigti darbą, tada spaudžiam Alt-SysRq-I ir nutraukiam visus procesus. Spaudžiam Alt-SysRq-S – įrašom disko kešą iš RAM į diską. Po to spaudžiam Alt-SysRq-U – tai atjungs diskus nuo failų sistemos. Galiausiai Alt-SysRq-O išjungs arba Alt-SysRq-B nuresetins kompiuterį.

Kad būtų lengviau, įsiminkit žodį „BUSIER“ atvirkščiai. Tarp paspaudimų padarykit 5 sekundžių pauzę, dėl visa ko.

Aišku, tai neišsaugos jūsų ką tik redaguoto dokumento, bet išsaugos programos buferyje buvusią informaciją. O tai šansas, kad šiuolaikinės programos bandymas atstatyti neišsaugotą dokumentą bus sėkmingas.

Ir svarbiausias patarimas. Šiais patarimais naudokitės tik kraštutiniu atveju.

Jei sumanysit pervardinti daug failų vienu kartu, negaiškit laiko ieškodami specialiai tam skirtos grafinės programos. Geriau išbandykit komandinę eilutę.

Turim keletą failų kuriuos reikia pervardinti:

kiras@linuksoidas:~/dokumentai/linux administravimas$ ls
lesson01.pdf lesson04.pdf lesson07.pdf lesson10.pdf lesson13.pdf lesson16.pdf lesson02.pdf lesson05.pdf lesson08.pdf lesson11.pdf lesson14.pdf lesson17.pdf lesson03.pdf lesson06.pdf lesson09.pdf lesson12.pdf lesson15.pdf lesson18.pdf lesson19.pdf

Pasinaudosim komanda rename, kurios sintaksė yra rename <naujas pavadinimas> <failas>. Mums reikia pakeisti ne visą pavadinimą o tik jo dalį. Nes antraip visiems failams bus priskirtas vienas ir tas pats pavadinimas, kitaip tariant visi failai bus prarasti. <Naujo pavadinimo> vietoje turime panaudoti perl-o reguliariąsias išraiškas, kurios bendru atveju nėra paprastos naudoti, bet paprastose situacijose, kaip pavyzdyje, nėra sudėtingos.

Užrašyti išraišką galima tokiu pavidalu: ‘s/ ko ieškom / į ką keičiam /’. Pakeiskim pavadinimuose esantį žodį „lesson“ į „linux pamoka – “. O prieš keitimą, naudodami raktą -n, pasitikrinkim, ar teisingai suformavom užklausą:

kiras@linuksoidas:~/dokumentai/linux administravimas$ rename -n "s/lesson/linux pamoka - /" *.pdf
lesson01.pdf renamed as linux pamoka - 01.pdf
lesson02.pdf renamed as linux pamoka - 02.pdf
lesson03.pdf renamed as linux pamoka - 03.pdf
lesson04.pdf renamed as linux pamoka - 04.pdf
lesson05.pdf renamed as linux pamoka - 05.pdf
lesson06.pdf renamed as linux pamoka - 06.pdf
lesson07.pdf renamed as linux pamoka - 07.pdf
lesson08.pdf renamed as linux pamoka - 08.pdf
lesson09.pdf renamed as linux pamoka - 09.pdf
lesson10.pdf renamed as linux pamoka - 10.pdf
lesson11.pdf renamed as linux pamoka - 11.pdf
lesson12.pdf renamed as linux pamoka - 12.pdf
lesson13.pdf renamed as linux pamoka - 13.pdf
lesson14.pdf renamed as linux pamoka - 14.pdf
lesson15.pdf renamed as linux pamoka - 15.pdf
lesson16.pdf renamed as linux pamoka - 16.pdf
lesson17.pdf renamed as linux pamoka - 17.pdf
lesson18.pdf renamed as linux pamoka - 18.pdf
lesson19.pdf renamed as linux pamoka - 19.pdf

Su raktu -n pervardinimas tik imituojamas. Jei viskas gerai, galime ištrinti -n ir pakeisti pavadinimus iš tikro.

Dar pora pavyzdžių galite rasti man puslapyje ir šiame bloge.