7/3/2005

El Consell d’Europa aprova les patents de programari

Escrit per adriA

No ens podem resignar al segrest de les idees, a que ens destrossin el nostre futur de llibertat. Escriviu als parlamentaris europeus, ara cal aturar aquesta aberració al Parlament Europeu.

No a les patents de programari

Més informació al web de la FFII.

13/2/2005

Bye-bye SUN

Escrit per adriA

Al sector en què treballo -el disseny microelectrònic- el programari especialitzat que es fa servir és tot propietari (o privatiu, com alguns prefereixen anomenar-lo). Tot i que només toco la part tècnica, tinc entès que les llicències que cal comprar anualment són caríssimes. En part degut a la posició dominant que té una de les cases de software, aconseguida en gran mesura a base d’adquisicions, i també a l’aversió al risc dels enginyers i directius, els preus fluctuen enormement segons la capacitat de compra de cada client. Algunes startups es troben que, contràriament al que passaria si hi hagués més competència, han de pagar preus sense descompte (que poden pujar fins a centenars de milers de dollars per cada estació de treball!), mentre que grans empreses ja establertes aconsegueixen llicències “de regal". Fins fa poc, el programari en qüestió només estava disponbile per a Solaris. El motius d’aquesta limitació només a màquines Sun, que deixa de banda els unixs lliures i oberts, són diversos. Suposo que d’entrada devien aduir raons d’estabilitat. A més a més, el cost afegit per treballar amb màquines Sun (incloent-hi el suport i manteniment) és molt petit comparat amb les inversions de capital fortíssimes que cal fer a la resta de la cadena de producció. Una dosi d’inèrcia per part dels clients -afavorida per la por als canvis, que sempre porten una dosi d’incertesa- també deu haver contribuït a la poca pressió dels clients perquè el programari privatiu que fem servir també tingui versions per a Linux.

Les coses, però, darrerament han canviat. Suposo que la pujada de credibilitat del Linux entre les grans empreses, i segurament també les ganes d’esgarrepar un cèntims d’on sigui per tenir contents als inversors, ha motivat que per fi els programes de disseny també tinguin versions per a Linux. Fa poques setmanes van actualitzar algunes estacions de treball i han canviat les Suns per PCs HP amb el Linux instal·lat. La meva màquina serà a partir d’ara un d’aquests PCs amb Linux.

Vaig començar a fer servir màquines UNIX l’any 97. Des de llavors, tant a les universitats com a les feines per les que he passat sempre he treballat amb Suns. A casa, fa anys que a l’ordinacle que faig servir habitualment hi tinc un dual-boot linux-windows. Com a usuari amb el temps he acabat prefererint treballar amb GNU/Linux que amb les Suns. No pel kernel Linux, perquè com a usuari no hi trobo massa diferència, sinó més aviat perquè prefereixo tenir les utilitats GNU enlloc de les de Solaris. D’entrada, prefereixo fer servir a la feina les mateixes utilitats que faig servir a casa. També, em sembla que les versions GNU d’algunes utilitats són més completes (amb més opcions, …). Però, sobretot, el que m’agrada del Linux és la comunitat; la quantitat d’informació disponible que pots trobar a la xarxa: tutorials, manuals gratuïts, canals de IRC i fòrums web.

Em sembla que, malgrat el desplaçament recent del Solaris cap al món de codi obert, i els intents de crear efecte comunitat amb l’aparador de blogs de treballadors de Sun (fins i tot el president de Sun té un blog), tardaré a tornar a asseure’m al teclat d’una màquina Sun. M’he plantejat si, ara que per a mi Unix serà sinònim de Linux, hauria de canviar la capçalera d’aquest weblog per “(Re)aprendre Linux". Però no la canviaré. En aquest weblog -que de fet hauria de ser només una apartat del meu weblog personal- parlo del unix des del punt de vista de l’usuari, sobretot de l’augment de productivitat que podem aconseguir fent servir les eines i utilitats que són comuns a tots els sistemes unix, i que defineixen una “filosofia unix” de treball.

31/1/2005

Més històries sobre la història

Escrit per adriA

Per concloure els dos posts d’ahir i divendres sobre l’history del shell, faré aquí un parell de notes ràpides més sobre el tema:

No ho tinc afegit per defecte al prompt del shells interactius, però a vegades veure al prompt el número del history corresponent a cada comana és pràctic. Per afegir-lo només cal incloure el caràcter especial “\!” a la variable del prompt. Per exemple:

[usuari@localhost blocs]$ history | tail -1
22 history | tail -1
[adria@localhost blocs]$ PS1="\! $PS1″
24 [adria@localhost blocs]$

A vegades ens pot interessar eliminar totes les comanes enregistrades:

history -c

farà un “clear” de l’history del shell.

30/1/2005

Revisar la història amb el vim

Escrit per adriA

El divendres vaig fer un post resumint els usos que faig del history del shell. Tot i que no la faig servir gairebé mai, amb la comana “fc” del bash també es poden modificar amb un editor de text les comanes enregistrades abans de reexectuar-les. El primer que cal és modificar la variable $FCEDIT perquè contingui el nom del vostre editor de capçalera, en el meu cas el el vim -per si no havia quedat clar en posts anteriors. (A banda de la meva predilecció pel vim, crec que fer servir un editor que funciona dins del terminal té molt sentit quan el que estem fent és treballar al shell.) Podem invocar fc indicant els números de la comanes que volem carregar a l’editor. Com amb les substitucions del history, es poden fer servir nombres negatius:

% fc -3 -1

ens obrirà el vim amb les 3 darreres comanes,

% fc 10 15

ens obrirà el vim amb les comanes 10 a 15.

Quan sortim del vim (:q), el shell interpreta les línies que hem deixat al fitxer com a comanes i les executa.

28/1/2005

Manipular la història

Escrit per adriA

Conèixer la pròpia història -la del país on vivim o de la classe social en què ens ha tocat néixer- ens pot ajudar a entendre l’entorn on vivim i a no perdre el nord quan decidim on dipositar les nostres esperances i energies. Baixant a un nivell molt més prosaic, al Unix també es molt útil tenir a mà la pròpia history, encara que només sigui la història de la nostra darrera mitja hora passada al shell…

El shell enregistra totes les comanes entrades al terminal. Si en tenim necessitat - per exemple, quan volem reexectuar una comana complicada igual o semblant a una d’anterior- podem accedir a aquest historial amb la comana history. Mai he tingut la necessitat de canviar els valors per defecte que porten les distribucions GNU/Linux o Solaris. De tota manera, està bé saber que hi ha un reguitzell de variables per controlar el comportament del history (al bash els noms són bastant auto-explicatius: HISTSIZE, HISTFILE, HISTFILESIZE, … ).

Amb l’history es poden arribar a fer filigranes recordant comanes i arguments anteriors, però jo fins ara només m’he après alguns truquets senzills que crec que fan la vida al shell més fàcil i que s’assimilen ràpidament:

  • history
    La comana history simplement ens presenta numerades les comanes enregistrades. Per reexecutar qualsevol comana de la llista entrem punt d’exclamació (!) seguit del número associat a la comana. També podem fer servir nombres negatius per referir-nos a comanes anteriors, considerant que la comana actual té el número zero (p. ex. per re-exectuar la comana segona tirant cap endarrera, fem servir !-2).

  • !$
    El shell substitueix el signe d’exclamació seguit de dollar pel darrer argument o comana entrat. Quan t’acostumes a fer-ho servir, !$ pren entitat pròpia i t’oblides que estàs manipulant el history. És de gran ajuda quan es fan una sèrie consecutiva d’accessos a un fitxer concret (per exemple: ls nom_fitxer_llarguíssim_que_no_vols recordar; vim !$; mv !$ nom_curt)
  • !!
    Reexecuta la comana anterior.
  • !text:num*
    Es fa servir per referir-nos als arguments d’una comana anterior que comença amb “text". Si deixem el text buit es faran les substitucions prenent com a referent la comana immediatment anterior a l’actual. Si per exemple entrem ls -l !gi:3*, el shell donarà el llistat dels fitxers passats al gimp en una comana anterior (assumint que s’ha fet servir el gimp fa una estona, és clar), però només els fitxers que ocupaven les posicions del tercer argument fins al final de la comana. També podem referir-nos als arguments amb marges separats per un guionet (p.ex. !gi:2-4 serà substituït pels arguments 2on, 3er i 4rt passats a un programa que comença per “gi” -el gimp?- en una comana anterior). Abans hem dit que !$ és substituït pel darrer argument de la comana immediatament anterior a l’actual. Si el que volem és fer servir tots els arguments de la comana anterior, ho podem fer amb !:1*, o abreviant simplement amb !*.
  • ^antic^nou
    Reexecuta la comana anterior substituint la cadena “antic” per “nou". Aquesta substitució la faig servir bastant quan m’equivoco en el nom d’un argument amb errades de l’estil de “fixter” enlloc de “fitxer".
  • !!:[g]s//[&]/
    Una alternativa a “^^” és la comana de substitució “s", p.ex. !!:s/antic/nou/. Si col·loquem una “g” davant de la “s” el shell ens farà la substitució de totes les aparicions de “antic". Amb l’ampersand podem reafegir la cadena substituïda en qualsevol posició de la nova cadena.
  • :p
    Si afegim “:p” al final d’una comana que conté una substitució, el shell ens donarà per pantalla la comana resultant però no l’executarà. Molt sovint aparellem una comana acabada amb “:p” amb “!!"; primer mirem quin és la comana resultant de la nostra substitució i si no ens hem equivocat la executem.

A vegades és convenient passar l’history entre diferents shells. Una manera de fer-ho és entrant history -w croniques, que escriurà l’history del shell en el fitxer croniques, i després llegint en un altre shell el fitxer amb history -r croniques.

En un proper post tornaré a parlar de recuperar comanes anteriors per construir noves comanes, però aquest cop passant-les pel sedàs del vi.

26/1/2005

vi a tot arreu ( I )

Escrit per adriA

L’editor de textos és el programa que més faig servir. Quan treballo al Unix segur que el temps que passo al vim és més gran que la suma de l’estona que dedico als altres programes i activitats. Arriba un moment en què assimiles tant l’estil d’edició del vi que comences a trobar a faltar les seves comanes quan treballes amb altres programes. Per sort, quan es treballa al shell (faig servir el bash) també es poden fer edicions a la línia de comanes a l’estil vi. Per activar l’edició vi heu d’entrar la comana “set -o vi” al shell, i si us convenç podeu afegir aquest setting al .bashrc.

24/1/2005

Aclariment sobre les coloraines del ls

Escrit per adriA

L’altre dia, quan parlava de les opcions del ls, vaig dir que en general no faig servir colors per identificar el tipus de fitxer. De fet, però, en algunes ocasions si que prefereixo fer servir l’opció –color=auto. Quan estic creant links simbòlics, per evitar que em quedin links fent pengim-penjam (dangling symlink) és molt útil tenir el codi de colors; perquè quan el link creat no apunta a un directori existent el nom del link apareix sobre un fons vermell intermitent. D’aquesta manera destaca molt l’error. Més d’una vegada m’he evitat haver de perseguir aquests errors estúpid gràcies a les coloraines. L’aclariment està fet!

23/1/2005

Repetició de comanes al vim

Escrit per adriA

Al vim, per repetir l’últim canvi fet en el text d’una manera ràpida només cal prémer “.” (el punt). Si, per exemple, volem afegir la mateixa paraula en quatre llocs diferents del text, l’escrivim un cop i després ens desplacem als llocs on volem tornar a inserir-la i prement el “.” ens estalviem haver de picar de nou la paraula.

Sovint, però, els canvis que volem repetir són més complexos - per exemple, volem fer, no una, sinó varies modificacions disperses en una frase que apareix unes quantes vegades al text. Quan per fer un canvi ens cal passar de mode comana a mode inserció no podrem fer servir el punt per repetir tota la seqüència de modificacions. El que ens cal és gravar totes les tecles premudes per fer el canvi en un registre del vi, i re-executar-les més tard:

1) Abans de començar a fer el primer canvi, premem la tecla “q” seguida del nom d’un registre (per exemple, “qa"). A la cantonada esquerra inferior del terminal ens apareix la paraula recording per indicar que s’estan enregistrant les comanes i canvis entrats.

2) Fem les modificacions desitjades.

3) Per acabar l’enregistrament tornem a prémer la tecla “q".

4) Per re-executar les modificacions enregistrades fem servir @nom_registre (seguint amb l’exemple anterior, “@a"). Si volem re-executar les comanes enregistrades més d’un cop podem fer-ho ràpidament amb “@@", que repetirà la darrera comana “@nom_registre” feta servir.

L’increment de productivitat que s’aconsegueix enregistrant i re-executant canvis d’aquesta manera tan senzilla és considerable. A vegades em sap greu que alguns companys de feina i amics es resisteixin a fer servir un editor de textos potent com el vim i que es pensin que el món s’acaba en copy-pastes i expressions regulars.

31/12/2004

Les altres opcions del ls

Escrit per adriA

Possiblement l’acció que més sovint fem quan treballem en Unix és llistar els continguts d’un directori. Els usuaris novells aprenen a fer servir la utilitat ls per explorar l’arbre de fitxers. De seguida, descobreixen les opcions “-l", per obtenir informació detallada sobre els fitxers continguts en un directori , i “-a", per destapar els fitxers i directoris ocults que sovint en Unix contenen la configuració d’alguns programes.

Els programes i utilitats de què disposem quan treballem a la línia de comanes acostumen a tenir moltes opcions que sovint són difícils de recordar (per algun motiu escric aquest bloc ;-) . Més que obsessionar-se a intentar aprendre quantes més opcions millor en fred, sense una motivació concreta, és més productiu identificar una acció que fem sovint, o que ens agradaria fer però que no sabem com es fa, i què pensem que es podria automatizar o fer de manera més òptima, i llavors buscar al manual (e.a.d, man) les combinacions d’opcions que ens calen. Amb el temps, tothom acaba desenvolupant un estil propi, una col·lecció personal d’opcions que acabem fent servir sense haver de pensar, que ens fan moure els dits quan treballem al teclat d’una màquina Unix de la mateixa manera que les paraules ens brollen de la boca quan parlem.

Per al ls, les opcions que formen part de la meva col·lecció particular, les que acabo recordant i fent servir sovint són les següents:

  • “-la”: Com ja he dit abans, aquestes dues opcions serveixen per obtenir informació detallada sobre els fitxers continguts en un directori i per mostrar els fitxers ocults, que en Unix tenen noms que comencen per un punt.
  • “-lhS”: La “h” ens donarà la mida dels fitxers en unitats de kilobytes, megues, gigues etc, enlloc de bytes a pèl, i la “S” ens les ordenarà de més gran a més petit. Aquest combinació d’opcions és molt útil quan em cal fer lloc en un sistema de fitxers i estic buscant quins fitxers eliminar
  • “-u”: Per trobar els fitxers que hem obert (accedit) recentment. Molt útil la combinació “-ltu” per mostrar i llistar per data d’accés.
  • “-ltr”: Per obtenir un llistat ordenat cronològicament, amb els fitxers més recents al final. Sovint, el llistat de fitxers que ens dóna el ls és massa llarg perquè es vegi sencer al terminal. Per aquests casos acostumem a passar la sortida del ls a un visualitzador (less, more, el que sigui) a través d’un pipe. A vegades però només estem interessats en veure el principi del llistat, per exemple si les hem ordenat amb “-t” o “-hS". Per aquests casos, ens podem estalviar el pipe i el visualitzador fent servir l’opció “-r".
  • “-X”: Ordena el llistat en ordre alfabètic segons les extensions dels fitxers. Personalment, trobo aquesta opció molt útil quan busco coses a la partició del disc on tinc instal·lat el Windows.
  • “-F”:Afegeix un indicador al principi o final del noms del llistat per indicar si es tracta de directoris(/), links simbòlics (@), executables (*), etc. Hi ha qui converteix el ls en un alias a ls -F –color=auto perquè a més a més dels indicadors faci servir un codi de color per cada tipus d’entrada. A mi, personalment, el colors més aviat em molesten i només només tinc l’alias amb l’opció -F.

12/12/2004

Primers passos amb el vi

Escrit per adriA

Després de la presentació del vi que vaig fer al darrer post, avui entraré una mica més en materia. Aquest post l’escric per a la gent nova al unix que vingui a petar a aquest weblog. En els propers posts intentaré ser més fidel a l’objectiu d’aquest weblog, i els posts els escriuré més per a mi , perquè em serveixi de repositori de tècniques que estic fent servir ara però que si deixo d’utilitzar durant mesos pot ser que se m’oblidin. Anem per feina.

Un editor modal

El vi és un editor modal. Una paraulota que només indica que l’editor interpreta de manera diferent les tecles premudes depenent del mode d’edició en què es treballa. Bàsicament el vi té 2 modes diferents. En el mode inserir (el mode d’entrada de text) el fem servir precisament per això, per escriure text. En mode comana (o mode línia - line mode), en canvi, podem fer cerques, eliminar text, copiar i enganxar, moure’ns rapidament pel text, etc. L’avantatge de tenir 2 modes diferenciats per les comanes i per escriure és la facilitat i rapidesa amb que es poden entrar moltes comanes una darrera l’altra. D’aquesta manera podem fer tasques repetitives, que trenquen el flux normal d’escriptura i pensament, d’una manera rapidíssima.

Escriure

El millor que es pot fer quan es llegeix documentació sobre programes informàtics i, més encara si volem aprendre a fer anar un editor de textos, és tenir-los a punt per experimentar mentre llegim. La manera més senzilla d’invocar el vi és des d’un shell amb

$ vi nomfitxer

o millor encara,

$ vim nomfitxer

Si no indiquem el contrari amb opcions passades en invocar el vi, l’editor comença en mode comana. Per començar a escriure premem la tecla “i". Així passem al mode d’inserció de text i podem començar a escriure just davant del caràcter on tenim el cursor. En la majoria de varietats de vi, incloent-hi el vim, quan es treball en mode inserir veureu que a la cantonada esquerra del terminal hi diu “– INSERT –". Sempre que volguem tornar al mode comana farem servir la tecla ESC (la tecla que es troba a la cantonada esquerra superior del teclat). Per deixar el mode comana i començar a escriure ho podem fer utilitzant diverses comanes que mouen el cursor a posicions diferents del text abans de passar a mode inserir. Així, si volem afegir una línia damunt de la línia on tenim el cursor, farem servir la comana “O” (o majúsucla), mentre que per escriure una línia a sota podem premer “o” (o minúscula). A més a més de la comana “i” (inserir), també podem fer servir la comana “a", per començar a escriure darrera del caràcter on tenim el cursor col·locat.

Canviar el cursor de posició

En mode comana ens podem moure pel text caràcter a caràcter, o línia a línia, fent servir “h” (esquerra), “j” (avall), “k” (amunt) i “l” (dreta). També podem fer servir les fletxes de moviment que inclouen la majoria de teclats moderns per moure’ns pel text, tant si treballem en mode comana o mode inserir. Per moure’ns pel text saltant de paraula en paraula podem fer servir la comana “w” (per avançar) o “b” (per saltar a la paraula anterior). Les comanes “Ctrl-U” i “Ctrl-D” ens mouran mitja pantalla amunt i avall respectivament. En vi podem saltar a una línia concreta del text donant el seu número després del caràcter “:” (així, per saltar des de qualsevol punt del text a la línia 80 fariem servir la comana “:80″). Per ajudar-vos a fer salts d’aquesta manera podeu fer que l’editor us ensenyi el número de cada línia amb la comana “:set num".

Esborrar i moure text

El vim té moltíssimes comanes que ens faciliten moure de posició i esborrar fragments del text. Per eliminar el caràcter sobre el que es troba el cursor tenim la comana “x". Per esborrar una línia sencera farem servir “dd". Les comanes “d$” i “d^” eliminen tots els caràcters que es troben entre la posició actual del cursor i el principi ("d$") i el final de la línia ("d^"). El text eliminat es guarda en un registre per defecte (l’equivalent al porta-papers del windows) i es pot enganxar en una altre punt del text amb les comanes “p” o “P", segons si volem enganxar el text davant o darrera del caràcter on es troba el cursor. Per copiar una línia al registre per defecte, però sense esborrar-la, tenim la comana “yy".

Per a moltes comanes que realitzen un acció sobre el text (eliminar un caràcter, moure el cursor una paraula cap endarrera, etc), podem entrar un nombre immediatament abans de la comana per indicar quantes vegades volem que es repeteixi l’acció. Així, per exemple, si volem avançar el cursor 4 paraules de cop farem servir “4w” i si volem eliminar 5 caràcters entrarem la comana “5x".

Cerques

En mode comana, per cercar paraules, o seqüències de caràcters, entrem la paraula després de “?” (per cercar des de la posició actual del cursor cap al principi del text) o “/"(quan volem cercar cap al final). Per fer cerques i substitucions sobre les paraules trobades es fa servir la comana “s", que tractarem un altre dia en un post dedicat únicament a substitucions i expressions regulars.

Gravar els canvis i sortir

Ens seriviria de poc tenir un editor si no poguéssim desar els canvis introduits en un text. Per gravar la feina feta podem fer servir “:w” (write). Si volem gravar i sortir del vi teclejarem “:wq” (write i després surt quit). Si, en canvi, volem sortir del vi sense gravar les modificacions introduïdes ho indicarem amb “:q!".

Passets seguits de gambades

Tot i que només he passat el rasclet timídament sobre la superfície del potencial del vi, les comanes que he presentat poden fer una mica més planeres les primeres hores de treball amb vi. Encara que ara al principi potser us sembla que editar textos amb vi és com caminar amb crosses, d’aqui a 4 dies, quan tingueu ben apreses aquestes i una dotzena més de comanes, ja veureu que el vi us ajudarà a fer gambades de mig quilometre, i no entendreu com havieu pogut viure fins ara només amb el notepad de windows ;-)

Intentaré acabar els posts amb uns petits resums que combinaré cada cert temps en una “xuleta” actualitzada que aniré republicant al weblog amb una certa freqüencia. Aquí sota hi ha la primera versió.

Resum

Comana Funció
i, a, o, O Entra al mode inserir per escriure text
ESC Passa de mode inserir a mode comana
h, j, k, l Moviments de la posició del cursor caràcter a caràcter
w, b, g, e, ge Moviments de la posició del cursor paraula a paraula
:Ctrl-U, :Ctrl-D
yy Copia la línia al registre per defecte
p, P Enganxa el contingut del registre per defecte
dd Elimina linies senceres (guardant una còpia al registre per defecte)
x Elimina el caràcter
:set nu Mostra número de línia
:w Escriu el text al fitxer
:q Surt del vim
:q! Surt del vim descartant els canvis
/paraula, ?paraula Cerca d’una paraula o seqüència de caràcters en el text. Prement “n” es salta a la següent aparició de la darrera paraula cercada

PD> De moment, no tinc temps de fer un disseny decent per aquest weblog i temporalment he eliminat els comentaris.

9/12/2004

Viscal el pa, visca el vi, visca la mare que et va parir!

Escrit per adriA

Tot i que fa uns anys em semblava que aprenia coses seguint les discussions entre fanàtics dels diversos editors de texts, ara les batalles entre partidaris de l’emacs i el vi més aviat m’avorreixen. En el passat, he fet servir l’emacs, el nedit (que potser encara el recomanaria per aquells usuaris empedreïts de windows que s’estan passat al unix poc convençuts) , el pico i el vi. Si us acabeu d’estrenar en el unix, podeu provar diferents editors per veure quin és el que us agrada més. Personalment, penso, però, que per saber realment si un editor ens anirà bé a mig o llarg termini (és a dir, quan comencem a dominar-lo una mica), cal utilitzar-lo durant uns dies. Per tant, a vegades quan es prova un editor només per un parell d’hores acabem jutjant-lo més pel hàbits que ens venen marcats per l’editor al que estem acostumats (això és claríssim per als usuaris de windows), que per les virtuds de l’editor en si i el possible augment de productivitat que ens ajudarà a assolir. A vegades és útil per triar (o descartar) un editor (en el que segurament acabarem invertint força hores) dedicar uns minuts a llegir algun text introductori que parli de la “filosofia” de funcionament de l’editor (és un editor que requreix l’ús intensiu del ratolí? és configurable i expandible amb les nostres pròpies comanes? facilita la reutilització de les eines del sistema operatiu? etc). Jo us recomano el vi, que és l’editor que utilitzo actualment i del que parlaré més sovint en aquest weblog.

El vi és un editor molf eficient, és a dir que et permet fer molta feina prement unes poques tecles. Tot i que no m’aterviria a dir que és un programa intuitiu, utilitza conceptes senzills i és fàcil de configurar. El vi és present en totes les variants de unix/linux des de fa molts anys i per tant segur que no ens trobarem mai davant d’un shell sense el nostre editor de capçalera. Alguns principiants (sobretot si vénen del windows) es sorprenen quan veuen que el vi no fa servir un punter mogut amb un ratolí, sinó que funciona en mode text dins del terminal, i que totes les comanes consisteixen en combinacions de tecles. Precisament, aquest és un dels seus punts forts. Com que no hem de moure les mans del teclat per fer córrer les barres laterals de la interfície visual, ni per moure’ns per dins dels text amb el mouse, sinó que ens podem moure de manera super eficient prement unes poques tecles, el resultat és que els textos es poden editar molt més ràpid. Treure les mans del teclat per moure el ratolí, a banda de fer-nos perdre temps, també ens força els músculs del coll, el braços i les espatlles, i és sovint una font de lesions i dolors a les mans (el conjut d’afectacions que anglès es coneixen com a RSI), que poden esdevenir malalties cròniques molt difícils de curar. La possiblitat de treballar en mode text també ens permet fer servir l’editor quan treballem en una màquina remota a través de Telnet o SSH.

Avui en dia, en moltes distribucions linux, vi és, per defecte, un alias del vim. El vim no és res més que una versió de vi en esteroides. Quan parli de vi en aquest weblog en general em referiré al vim. El vim pot fer tot el que fa el vi i molt més. Fins i tot, i una mica contra natura, es pot fer servir el vim amb una interfície gràfica (vi -g / gvim)!

El vi no existeix només en sistemes unix, també hi ha version per a windows i mac. És a dir que si arribem a dominar el vi podrem utilitzar la competència adquirida en sistemes unix per augmentar la nostra productivitat també quan treballem en d’altres sistemes operatius.

En el proper post deixaré la filosofia i les introduccions gentils, i començaré a entrar en matèria amb exemples pràctics.

PD> Perdoneu per la irreverència en el títol d’aquest post, però sembla que qui va triar el nom de l’editor més clàssic de l’entorn unix, el vi, ens ho va posar fàcil als catalans per fer una petita exhibició de rauxa catalana ;-)

8/12/2004

(Re)aprendre UNIX

Escrit per adriA

Fa uns 3 mesos vaig començar a treballar en una nova feina en què em passo el dia manipulant fitxers de text. Estic constantment movent-me amunt i avall de l’arbre de fitxers. A mig editar un fitxer en un directori he de consultar la sortida d’un script que acaba d’executar-se en un altre directori. A continuació he d’editar el .bashrc d’un company de feina per afegir-li una variable de shell. De seguida comprovo l’efecte del canvi de variable executant un petit script de prova que improvitzo a corre-cuita, però llavors recordo que cal executar-lo en un directori concret. Evidentment, peta, i cal que faci la cerca d’una paraula en un fitxer de 10000 linies. Necessito el grep. Pero quina és la seqüència de caràcters exacta que busco? Vinga, a trobar una expressió regular adequada. Moviments d’aquests els estic fent tot el sant dia. A vegades sembla que balli una dansa frenètica canviant constantment entre 2 parelles de ball, l’editor de textos o la línia de comanes.

Ja fa anys que vaig fer els meus primers passets a unix, pero mai com ara m’havia trobat amb la necessitat de saber els “trucs” que els usuaris avançats es treuen un darrera l’altre del barret. Moltes vegades m’havia interessat en descobrir noves maneres de fer feines repetitives més per curiositat que per l’augment de producitvitat que em comportaven. El principal problema era la consolidació de les coses apreses. Fins ara, el tipus de feina que havia de fer no em requeria treballar cada dia canviant contínuament de fitxer i directori. Quan feia aquesta mena de tasques normalment era durant uns pocs dies. Després, a vegades passaven mesos fins que se’m tornava a presentar una ocasió per aplicar algunes de les tècniques apreses, i acabava oblidant-les pel desús. Ara, però, la situació ha canviat perquè de moment no veig data d’acabament a aquesta ballaruca de fitxers. Per ser productiu em cal aprendre (i recordar) aquest petits trucs que són l’oxigen del planeta unix.

Com que no sé quant de temps continuaré manipulant fitxers amb aquesta intensitat, he pensat que seria un bona idea crear un bloc amb notes sobre les tècniques que vagi (re)aprenent. Així, si mai em torno a trobar davant d’un teclat amb el meu unix rovellat després de mesos d’inactivitat, puc venir a llegir aquest weblog i posar-me a to ràpidament. Ja que hi estic posat, amaniré el weblog amb altres notes sobre coses de unix que no m’ha calgut recordar però que potser poden servir d’ajuda a d’altra gent que es (re)inicia al unix. Espero que hagi quedat clar que ni proclamo ser un expert en els temes dels que parlare aquí, ni dono cap garantia que les tècniques que descrigui funcionin (ni que sigui mínimament). Deixo els comentaris oberts (encomanant-me a Sant AntiSpam) i agrairé les vostres aportacions si coneixeu tècniques alternatives a les que jo exposi en aquest weblog.

Gràcies per haver arribat fins aquí i fins demà que, en especial atenció als que esteu aterrissant al unix, us presentaré la meva primera parella de ball.

PD> I sí, quan dic unix, també vull dir Linux.