Sessió 2 dia 30/03

Instal·lant
Engegant
L'intèrpret d'ordres
Movent-nos pels directoris
M'he perdut. On estic?
Llistant arxius
Creant directoris
Eliminant directoris
Tampoc m'agrada teclejar tant
Copiant
Esborrant
Movent
Comodins
Consultant informació
Històric
Tancament
Resum d'ordres del terminal

Instal·lant

Un cop fetes les particions ens demanarà una contrasenya de root, el root és l'usuari amb més privilegis de GNU/Linux o sigui l'administrador, usa una bona contrasenya i només l'has d'utulitzar per a coses que no puguis fer amb un usuari normal. Segurament tot seguit et demanin que introdueixis els usuaris, així que fes-te un compte normal per a tu i altra per a cada usuari que hagi d'usar el sistema (pensa que després pots afegir més usuaris).

Una bona contrasenya ha de tenir, si més no, sis caràcters. Ha de contenir caràcters alfabètics i numèrics, majúscules i minúscules, i algun caràcter que no sigui una lletra, és a dir, +, *, #, @ etc. A més una bona contrasenya no ha de tenir res a veure amb tu, ni el nom del teu fill, la matrícula del cotxe, ni res de semblant. Exemple d'una bona contrasenya: +vpeMq100v
Uf, què difícil, i com m'enrecordo jo d'això? Doncs bé mira què fàcil: más(+) vale pájaro en Mano que ciento (100) volando.

Engegant

Per fi tenim ja instal·lada la nostra distribució ja sigui la favorita, la recomanada o per casualitat. Arrenquem el nostre ordinador, bip, revisió mèdica, lilo o grub, triem que arrenqui GNU/Linux i segons hàgim instal·lat se'ns presenta una bonica pantalla gràfica demanant-nos el nom d'usuari i la contrasenya, o bé ens arrenca directament en la consola. Els que ja estiguin en la consola bé, perquè és aquí on comença tot.

Per als que no esteu a un terminal podeu anar de la següent forma: Ctrl+Alt+Tecla de funció, on Tecla de funció és F1, F2, F3, F4, F5 o F6 que coincideix amb el número del terminal virtual al que volem accedir.

Abans de res indicar-vos que en GNU/Linux poden existir més d'un terminal, en els quals funciona una consola (de fet la interfície gràfica es mostra en un terminal en el qual està corrent xfree86, que és el motor gràfic de GNU/Linux). Com físicament només pot haver un terminal en una pantalla, s'usen els anomenats terminals virtuals, normalment vénen per defecte de 4 a 6 terminals i una última consola en la qual s'està executant la manera gràfica, si vas triar arrencar en aquesta manera (normalment el 7).

Doncs bé, entrem en el nostre sistema amb l'usuari que ja vam donar d'alta (millor que no useu root a menys que sigui necessari, per ximple que això us sembli).

Què ens trobem?

Per començar cal dir que tot en GNU/Linux són fitxers, els directoris inclosos, que no són més que fitxers amb enllaços o informació a més fitxers (no espantar-se que no cal anar mirant-los, l'ús és com en qualsevol altre sistema), fins i tot els dispositius són fitxers una miqueta especials, però que al cap i a la fi estan representats en el sistema com fitxers (recordeu com es diuen les particions).

Com ja vaig comentar abans aquí no existeix A:, B:, C:, D: ... ni res de semblant, en qualsevol sistema Unix/Linux tot està a partir del que denominem arrel i es representa mitjançant el símbol '/', a partir d'aquí penja tot la resta formant un arbre (se li denomina arbre a tota l'estructura de directoris i fitxers).

A les dades d'una partició no s'accedeix a través de /dev/hdXY com alguns hagin pogut deduir, ja que això representa el dispositiu en si, no el seu contingut. Doncs bé, les particions en GNU/Linux cal muntar-les i es poden muntar en la part que vulguem, la que més ràbia ens faci, i simplement cal accedir al directori on estigui muntada la partició o disc dur per veure el contingut d'aquest. Això passa absolutament amb tot, fins i tot si hem d'usar carpetes compartides en la xarxa, primer es munten i després s'accedeixen com si del teu propi disc dur es tractessin.

Una vegada vist això, veurem com estan distribuïdes les coses dintre del nostre sistema, cap destacar que pot haver variacions d'uns sistemes a uns altres però en general tots segueixen les mateixes regles:

/ directori arrel, d'aquí penja tot i és el principi del nostre sistema de fitxers.

/boot conté el nucli de Linux i altres arxius que s'executen en arrencar el sistema.

/bin, en aquest directori es troben els programes essencials per al sistema.

/dev, en aquest directori ens trobem tots els nostres dispositius, tals com discs durs, terminals, consoles o terminales virtuals, busos ...

/etc, conté els fitxers de configuració del sistema i els seus subdirectoris, els fitxers de configuració del que representin.

/sbin, com /bin però només els essencials per al sistema que usa el súper usuari, o sigui root. Així que normalment no tindrem accés a aquesta carpeta i els seus executables.

/home, conté els 'home' de cada usuari, o sigui les carpetes amb els fitxers de cada usuari. Per fer analogies és com la carpeta "Documents and Settings" de qualsevol Windows 2000/XP.

/lib, conté les imatges de les llibreries compartides del sistema. Aquests fitxers contenen codi que és usat per multitud de programes.

/proc, és un sistema de fitxers virtual, i els arxius que conté resideixen en memòria. Aquí ens trobem representats els processos que corren en el nostre sistema i alguns "especials".

/tmp, doncs on va a parar les escombraries que genera el sistema, o sigui, els maleïts temporals que generen els nostres programes.

/usr, és un directori realment important, aquí es troben les coses que no són essencials en el sistema i dintre d'ell tenim altre bin, sbin, etc, lib, ...

/usr/include, inclou els fitxers de capçalera per al compilador de C i diversos més.

/usr/local, igual que /usr, però els específics del teu sistema i que probablement no estiguin en altre Unix o GNU/Linux.

/usr/src, és un directori on es troben els codis fonts del sistema. Per exemple, /usr/src/linux conté el font del Kernel.

/var, conté directoris que sovint tendeixen a créixer i canviar la seva grandària, aquí solem trobar coses com les pàgines que allotja un servidor en /var/www.

/var/spool, conté fitxers que seran passats a altre programa. Per exemple, si la teva màquina està connectada a una xarxa, el correu d'arribada serà emmagatzemat en /var/spool/mail fins a que ho llegeixis o ho esborris. Articles nous de les "news" (grups de notícies) tant sortints com entrants poden trobar-se en /var/spool/news, etc.

/opt, com curiositat, si instal·leu el Messenger de Yahoo i no ho teniu s'us crearà i s'instal·larà allí.

/mnt, aquí és on normalment muntem discos durs, carpetes en xarxa, cd's, disquets ...

L'intèrpret d'ordres

Bé, doncs el primer que tenim a la vista és l'intèrpret d'ordres esperant-nos per rebre ordres. L'intèrpret d'ordres és per a Unix/Linux com el COMMAND.COM del MS-DOS només que molt més potent i a més no hi ha un sol intèrpret sinó que hi ha diversos. El més usat i que probablement estiguis usant és el bash, el nom bash prové de Bourne Again SHell, però existeixen altres com el sh (el segon més usat) o tsh. Per canviar d'un a altre només has de teclejar el seu nom i per tornar a l'anterior teclejar exit.

Les diferències que hi ha entre els diversos intèrprets no ens preocupen ara, es diferencien fonamentalment a l'hora de fer shell scripts.

I què és el primer que ens trobem: el prompt, en el meu cas és una mica tal que així:

ramon@portatil:$

Com el seu nom ens suggereix (prompt significa sol·licitud), l'intèrpret d'ordres ens està sol·licitant que li donem una ordre. Com podem observar el prompt ens dóna una informació, aquesta depèn de com ho tinguem configurat, però d'això parlarem més endavant en el curs. En el meu cas el primer és el nom de l'usuari seguit del nom de la meva màquina, el següent és el directori on em trobo, en aquest cas estic en /home/ramon (per això es veu el símbol ˜ que sempre indica el directori /home de l'usuari). I finalment el símbol '$' indica que sóc un usuari normal, si tingués un '#'' indicaria que sóc superusuari (root), com en el següent exemple:

root@portatil:/home/ramon #

Una cosa cal que quedi clara, els sistemes Unix/Linux són case sensitive, o sigui, que diferencien entre minúscules i majúscules, per a l'ordinador no serà el mateix Ls, lS, ls, LS, ja que per al sistema operatiu són totes diferents.

Movent-nos pels directoris

L'ordre per moure'ns per l'estructura de la xarxa és 'cd' i el seu format és el següent:

cd [directori]

On 'cd' és l'ordre i el que està entre claudàtors és l'argument, a l'estar entre claudàtors és opcional.

Per moure'ns d'un directori a un altre usem aquesta ordre, tenim 2 formes de nomenar un directori: la primera és per la seva ruta absoluta i la segona és per la seva ruta relativa. L'absoluta es refereix al nom complet començant des de '/', un exemple seria anar a /etc (jo estic en /home/ramon).

ramon@portatil:$ cd /etc
ramon@portatil:/etc$

Això té un problema, ja que sempre hem d'escriure la ruta completa on vulguem anar. Per no haver de fer-lo, usarem les rutes relatives: posem el nom del directori que volem entrar però a partir des del que estem. Per veure això tornarem a /home/ramon (en el vostre cas el directori de treball vostre) i d'allí anirem a /home/ramon/docs.

ramon@portatil:/etc$ cd /home/ramon
ramon@portatil:$ cd docs
ramon@portatil:/docs$

En el primer cas hem usat de nou una ruta absoluta i en el segon com ja estàvem en /home/ramon hem posat solament docs per entrar en /home/ramon/docs, que seria la seva ruta absoluta.

Dintre de tot directori existeixen dos directoris especials que són '.' i '..'. El primer fa referència al directori actual, és a dir, si fas 'cd .' et quedes on estàs (el directori especial '.' ja veureu més endavant l'útil que és), i el segon fa referència al directori pare, o sigui, si estem en /home/ramon i fem 'cd ..' acabarem en /home.

ramon@portatil:$ cd .
ramon@portatil:$ cd ..
ramon@portatil:/home$

Aquests dos directoris especials els usarem en la rutes relatives, és el mateix fer 'cd ./docs' que 'cd docs' que per a aquesta ordre en concret ens dóna el mateix però en uns altres pot ser que necessiteu usar './'. Imagineu-vos que des de /home/ramon voleu entrar (si tinguéssiu altre usuari anomenat així) en /home/pepe, per no haver d'escriure la ruta absoluta recorrerem a 'cd ../pepe' i aconseguirem mitjançant una ruta relativa donar un salt endarrere en l'arbre i entrar en 'pepe'

ramon@portatil:$ cd docs
ramon@portatil:/docs$ cd ..
ramon@portatil:$ cd ./docs
ramon@portatil:/docs$ cd ..
ramon@portatil:$ cd ../pepe
ramon@portatil:/home/pepe$

Bé doncs no es vagin encara, àdhuc hi ha més. Hi ha una referència especial, estiguem on estiguem si fem 'cd' o bé 'cd ˜' tornem al nostre directori de treball ja que ˜ (sota consola ho aconseguim prement la tecla AltGr + 4, bé la tecla Insert o Alt + 126) és una referència al nostre directori de treball.

ramon@portatil:$ cd /usr/bin
ramon@portatil:/usr/bin$ cd ˜
ramon@portatil:$

Amb això ja hem vist aquesta ordre tan simple però útil.

M'he perdut. On estic?

Si ens perdem, bé per que ens hem mogut molt movent-nos per l'arbre de directoris o bé perquè el nostre prompt no ens indica a cada moment on estem, tenim una ordre ben senzilla:

pwd

ramon@portatil:$ pwd
/home/ramon
ramon@portatil:$

Abans de continuar cal comentar una cosa, per evitar confusions explicaré una mica els 'alias'. L'intèrpret d'ordres ens dóna l'opció de definir-nos el que denominarem 'alias', per exemple, pots fer que la paraula 'casa' executi 'cd', sembla una bonica forma de crear ordres al nostre gust. Algunes de les ordres que aquí explicaré tenen definits alies en moltes distribucions pel que el resultat pot ser que no sigui el mateix. Si això us ocorre teclegeu 'alias ORDREQUEFALLA=ORDREQUEFALLA' (compte, sense espais en l'igual), per exemple, si quan féssiu 'cd' us manés a /usr/bin (és un exemple rar, però bé) bastaria amb executar 'alias cd=cd'.

Per veure quins alies teniu definits executeu 'alias -p'

ramon@portatil:$ alias -p
.  alias ls='ls --color=auto'
ramon@portatil:$

El que veurem a continuació és molt probable que hagis de fer-lo perquè surti el mateix que t'estic explicant. L'ús d'alies sobretot s'utilitza per executar per defecte opcions molt útils sense haver d'escriure-les sempre, fins i tot si vens del món de MS-DOS pots definir totes les teves ordres de sempre amb els anàlegs en GNU/Linux, útil, veritat? ;) (encara que això últim no ho recomano, no és bo agafar vicis dolents).

Nota: els alies que definim s'esfumaran quan tanquem la nostra sessió o reiniciem la màquina, però no tingueu por. Ja explicarem més endavant com definir les coses permanentment.

Llistant arxius

Bé, ja sabem moure'ns, però això no ens serveix de molt si no sabem què hi ha en els nostres directoris. Per a això tenim una bona ordre:

ls [opcions][directori]

Ara executarem 'ls' tal qual i ens trobarem amb la següent sortida:

ramon@portatil:/documents$ ls
bookmarks.html    Open Office    Reconèixer SATA en l'arrencada
ramon@portatil:/documents$

Ens trobem amb una sortida una mica pobra, perquè en alguns casos no sabrem ni diferenciar què és cada cosa: un fitxer? un directori?. Amb l'opció '-F' obtindrem més informació:

ramon@portatil:/documents$ ls -F
bookmarks.html    Open Office/   Reconèixer SATA en l'arrencada
ramon@portatil:/documents$

Ara podem apreciar que als directoris al final li afegeixen '/'. A 'ls' també li podem indicar el directori que volem mirar:

ramon@portatil:/documents$ ls -F /usr/local/bin
mencoder*   mplayer*
ramon@portatil:/documents$

En aquest cas a més veiem un * al final d'aquests fitxers, el que ens indica que són executables. També podem trobar-nos amb una @ indicant que és un enllaç. Altra opció interessant i que ens serà útil és '-a' que ens mostra els fitxers ocults (recorda que en GNU/Linux tot són fitxers).

ramon@portatil:/documents$ ls -F -a
./   ../   bookmarks.html    Open Office/   Reconèixer SATA en l'arrencada
ramon@portatil:/documents$

Podem observar que apareixen més fitxers que estaven ocults. En GNU/Linux, qualsevol fitxer que comenci per '.' és un fitxer ocult contant els directoris especials '.' i '..' que ja us vaig comentar abans. Una opció realment útil i que us interessarà és 'l':

ramon@portatil:/documents$ ls -Fa -l
.  total 60
drwxr-xr-x     3 ramon ramon    4096 2005-03-31 10:43 ./
drwxr-xr-x    37 ramon ramon    4096 2005-03-31 10:42 ../
-rw-r--r--     1 ramon ramon   44409 2005-03-27 23:55 bookmarks.html
drwxr-xr-x     2 ramon ramon    4096 1970-01-01 01:00 Open Office/
-rw-r--r--     1 ramon ramon    1735 2005-03-30 02:05 Reconèixer SATA en l'arrencada
ramon@portatil:/documents$

Per començar veureu que es poden barrejar opcions i que '-l' ens dóna una gran quantitat d'informació. La primera indica el tipus de fitxer i els permisos (per exemple, drwxr-xr-x), els permisos no els explicaré ara per que no toca, però si comentar que la primera lletra indica quin tipus de fitxer és ('d' ens indica que és directori, '-' que és un fitxer normal, 'c' que és un dispositiu orientat a caràcter, 'b' dispositiu orientat a bloc i 'l' indica que és un enllaç). El següent ens indica: el nombre d'enllaços que existeixen a ell, el propietari, el grup propietari, la grandària en bytes, la data i el nom.

Si quan fem un 'ls' la llista és molt llarga podem moure'ns endarrere amb Shift+RePág, o bé usar la canonada i 'more'. Un exemple:

ramon@portatil:/bin$ ls -la | more
total 3140
drwxr-xr-x     2 root root     4096 2005-03-29 10:25 .
drwxr-xr-x    22 root root     4096 2005-03-27 18:52 ..
-rwxr-xr-x     1 root root     2756 2005-03-17 20:09 arch
-rwxr-xr-x     1 root root   643852 2005-01-13 22:44 bash
-rwxr-xr-x     1 root root    15960 2005-03-18 14:22 cat
.......... (ometo arxius perquè no ocupi tant)...........
-rwxr-xr-x     1 root root    11256 2005-03-18 14:22 false
-rwxr-xr-x     1 root root     5568 2005-03-18 16:37 fgconsole
--Més--

Finalment, ja només ensenyar-vos altra opció que us agradarà moltíssim '--color':

ramon@portatil:/documents$ ls --color
bookmarks.html    Open Office    Reconèixer SATA en l'arrencada
ramon@portatil:/documents$

La veritat s'explica per ella sola, no? No seguirem amb més opcions de 'ls' perquè hi ha gairebé tantes com lletres de l'abecedari, tant en majúscules com en minúscules.

Creant directoris

Per començar, després d'haver après a moure'ns pel sistema el primer que veurem és com crear un directori, per a això tenim la següent instrucció:

mkdir [opcions] directori [directori2 ... directori3]

On com podeu apreciar podem crear d'un a diversos directoris alhora, així que ara toca provar-lo.

ramon@portatil:$ mkdir curs
ramon@portatil:$ cd curs
ramon@portatil:/curs$ mkdir dir1 dir2
ramon@portatil:/curs$ ls -l
.  total 8
drwxr-xr-x    2 ramon ramon 4096 2005-03-31 10:52 dir1
drwxr-xr-x    2 ramon ramon 4096 2005-03-31 10:52 dir2
ramon@portatil:/curs$

Com podeu veure l'ús és ben senzill, com opcions destacarem '-p' que crea els directoris pares que no existeixin, com veiem en el següent exemple.

ramon@portatil:/curs$ mkdir -p ./dir1/NOEXISTEIXO/ops
ramon@portatil:/curs$ cd dir1
ramon@portatil:/curs/dir1$ ls
NOEXISTEIXO
ramon@portatil:/curs/dir1$ cd NOEXISTEIXO/
ramon@portatil:/curs/dir1/NOEXISTEIXO$ ls
ops
ramon@portatil:/curs/dir1/NOEXISTEIXO$

I finalment l'opció '-m', que ens dóna la possibilitat d'indicar-li els permisos que tindran els nostres directoris, però... com encara no ho hem vist en el curs queda pendent que ho proveu vosaltres mateixos quan vegem com són els permisos. L'opció -m va seguit de la manera abans de posar els directoris.

Eliminant directoris

Ja que hem après a crear-los cal aprendre l'opció contrària, i ja que mkdir venia de make directory ara necessitem un remove directory:

rmdir [opcions] directori [directori2 ... directori3]

Així que el que ens queda és començar a provar-lo:

ramon@portatil:/curs/dir1/NOEXISTEIXO$ rmdir ops
ramon@portatil:/curs/dir1/NOEXISTEIXO$ cd ..
ramon@portatil:/curs/dir1$ cd ..
ramon@portatil:/curs$ rmdir ./dir1/NOEXISTEIXO/
ramon@portatil:/curs$ ls
dir1    dir2
ramon@portatil:/curs$ rmdir dir1 dir2
ramon@portatil:/curs$ ls
ramon@portatil:/curs$

Com podeu veure es poden esborrar diversos alhora, igual que amb mkdir creàvem diversos alhora. En aquest cas per a rmdir solament comentaré una opció interessant i és '-p'. Aquesta opció el que fa és esborrar recursivamente la ruta completa que li indiquem, per exemple, si tenim /a/b/c un 'rmdir -p /a/b/c' és equivalent a 'rmdir /a/b/c' + 'rmdir /a/b' + rmdir 'a'. Anem a l'exemple:

ramon@portatil:/curs$ mkdir -p ./dir1/u/dos
ramon@portatil:/curs$ ls
dir1
ramon@portatil:/curs$ ls dir1
u
ramon@portatil:/curs$ ls ./dir1/u
dos
ramon@portatil:/curs$ rmdir -p dir1/u/dos
ramon@portatil:/curs$
Tampoc m'agrada teclejar tant

Això potser ho havia d'haver explicat abans, però m'acabo de'n recordar ara mateix. L'intèrpret d'ordres, per facilitar-nos el nostre treball, emplena per nosaltres amb el més lògic els arxius i les ordres, simplement començant a escriure'ls i prement tabulador. Per exemple, no ens recordem de com s'escrivia l'ordre 'mkdir' i solament recordem de 'mkd' premem el tabulador i ens ho emplena automàticament o ens indicarà quines ordres comencen per 'mdk'. En el meu cas tabulo i em xiula, no em surt res, torno a tabular i ara sí em dóna les ordres que comencen per mkd:

ramon@portatil:/bin$ mkd
mkdir    mkdirhier    mkdosfs
ramon@portatil:/bin$ mkd

Ara si afegeixo una 'i' em completa amb 'mkdir', ja que 'mkdir' està contingut dintre del nom de 'mkdirhier'. Ara tenim el que buscàvem, però si tornem a tabular ens escriurà 'mkdirhier'. Amb el que arribem a la conclusió que emplenarà quan: a) No hi ha altre ordre que coincideixi amb la cadena que hàgim escrit, i b) Quan el nom d'una ordre estigui contingut en altre podent seguir tabulant per arribar a l'altre.

Quan existeixen moltes possibilitats, tantes que no caben en pantalla, abans ens preguntarà si mostrar-lo o no. Per exemple, executar:

ramon@portatil:/bin$ m
Display all 117 possibilities? (y or n)
ramon@portatil:/bin$ m

En el meu cas he contestat amb 'n' ja que no vull veure la llista completa. Per exemple, si volguéssim veure tots els executables accessibles no tindríem més que tabular dues vegades sense escriure res.

ramon@portatil:/bin$
Display all 2176 possibilities? (y or n)
ramon@portatil:/bin$
Copiant

I una vegada vist això arribem al moment en el qual crearem còpies dels arxius, per a això tenim la següent ordre:

cp [Opcions] Origen Destinació

L'ús és ben senzill, només cal indicar l'origen i la destinació del que volem copiar:

ramon@portatil:$ cp /curs/dir1/bookmarks.html /curs/dir2
ramon@portatil:$ cd curs/dir2
ramon@portatil:/curs/dir2$ ls
bookmarks.html
ramon@portatil:/curs/dir2$

Com veiem no se'ns demana confirmació per copiar, i pogués ocórrer que ens haguéssim equivocat i sobreescrivíssim un arxiu que ja tingués sense que ens pregunti, ja que 'cp' també renombra incloent el nom en la destinació.

'cp' és encara més versàtil, ja que amb l'opció '-r' podem copiar directoris sencers encara que és preferible usar l'opció '-R' perquè '-r' no té un comportament definit (o sigui que pot passar qualsevol cosa) si es copien fitxers que no són normals com poden ser un dispositiu. Vegem un exemple:

ramon@portatil:/curs$ mkdir copiadebin
ramon@portatil:/curs$ cp -R /bin ./copiadebin
ramon@portatil:/curs$ cd copiadebin
ramon@portatil:/curs/copiadebin$ ls
bin
ramon@portatil:/curs/copiadebin$ cd bin
ramon@portatil:/curs/copiadebin/bin$ ls
arch     dmesg             hostname           mkdir          pidof         sleep          zcmp
bash     dnsdomainname     ip                 mknod          ping          stty           zdiff
.......... (ometo arxius perquè no ocupi tant)...........
dir      gzip              mkbimage           netstat        sh            zcat
ramon@portatil:/curs/copiadebin/bin$

I per a rematar només queda comentar que 'cp' també té l'opció '-p', que és igual que en 'mkdir' i 'rmdir' així que sobren les explicacions. Per cert, 'cp' admet més d'un origen, així que pots copiar diversos arxius en una sola línia a una mateixa destinació.

Esborrant

Si 'cp' ve de copy llavors alguns ja haureu endevinat quin ordre és la d'esborrar:

rm [opcions] llistadefitxersaesborrar

Vegem l'ús més simple de rm:

ramon@portatil:/curs/dir1$ cp bookmarks.html tesborrare
ramon@portatil:/curs/dir1$ ls
bookmarks.html    tesborrare
ramon@portatil:/curs/dir1$ rm tesborrare
ramon@portatil:/curs/dir1$ ls
bookmarks.html
ramon@portatil:/curs/dir1$

Igual que 'cp', 'rm' també té l'opció '-i' i també pot esborrar directoris sencers amb '-r' i '-R' (en aquest cas ambdós són iguals), encara que també s'esborren amb '-d', però '-d' no té un caràcter recursiu i deixa desenllaçats els fitxers que conté (o sigui que és una cagada, així que millor no usar-la) el que vol dir que es queden com diríem sense cap directori que els contingui, pel que cal tenir molta cura amb aquesta opció.

ramon@portatil:/curs$ rm -ri dir1 dir2
rm: descendir al directori «dir1»? (s/n) s
.  rm: esborrar el fitxer regular «dir1/bookmarks.html»? (s/n) s
.  rm: esborrar el directori «dir1»? (s/n) s
.  rm: descendir al directori «dir2»? (s/n) s
.  rm: esborrar el fitxer regular «dir2/bookmarks.html»? (s/n) s
.  rm: esborrar el directori «dir2»? (s/n) s
.  ramon@portatil:/curs$

Solament queda apuntar que, tant 'cp' com 'rm', si '-i' fa que pregunti l'opció contrària és '-f' que no preguntarà res de res.

Movent

Vinga, que segur que alguns ja s'han imaginat que per moure és:

mv [Opcions] origen destinació

Bé, 'mv' equival a copiar i esborrar, i igual que 'cp' admet diversos orígens i un directori destinació. Així que amb els exemples vists abans amb 'cp' sobren els exemples, excepte per al cas que l'origen i la destinació són el mateix, però en la destinació s'indica un nom de fitxer amb la qual cosa el que fem és renomenar:

ramon@portatil:/curs/dir1$ ls
bookmarks.html
ramon@portatil:/curs/dir1$ mv bookmarks.html enllacos
ramon@portatil:/curs/dir1$ ls
enllacos
ramon@portatil:/curs/dir1$

Com veieu el directori origen i destinació és el mateix, per la qual cosa en la destinació hem indicat un canvi de nom.

Comodins

Veurem l'ús dels comodins, que no és ni més ni menys que una característica de l'intèrpret d'ordres que ens permet referir-nos a un conjunt de fitxers alhora.

Començarem veient primer el comodí '*': el comodí * fa referència a qualsevol caràcter o cadena de caràcters (és a dir, substitueix a un, cap o molts caràcters). Per a entendre'l bé, ja que l'explicació pot ser una mica confusa, vegem com sempre un exemple simple:

ramon@portatil:/curs/dir1$ cd /dev
ramon@portatil:/dev$ ls l*
.  log    lp0    lvm

loop:
0.
ramon@portatil:/dev$

El que acabem d'indicar-li a ls amb l'ús de * és que ens llisti tots els fitxers que comencin per 'l' seguit de qualsevol cosa, fins i tot ens llista el contingut d'un directori que comença per 'l'. Altre exemple, perquè ens quedi definitivament clar, pot ser aquest:

ramon@portatil:/dev$ ls *rr*
stderr
ramon@portatil:/dev$

En aquest cas el que hem fet és dir-li que ens llisti tots els fitxers que continguin la cadena 'rr' (fins i tot els que comencin o acabin per 'rr' ja que * fins i tot pot ser cap caràcter).

Si sou observadors i/o curiosos veureu que no funciona amb els fitxers ocults (recordeu que comencen per '.' ), perquè afectaria entre altres coses als directoris especials '.' i '..', i segons amb quines ordres ho utilitzem pot provocar veritables problemes (com per exemple rm).

El següent i últim comodí és '?' que fa referència a qualsevol caràcter, però en aquest cas només a un (no pot ser cap com el cas de *). Per veure'l clar vegem un exemple (per variar):

ramon@portatil:/bin$ ls ?a??
bash    dash    date    nano
ramon@portatil:/bin$

En aquest cas li preguntem a ls per tots aquells arxius que tenen longitud 4 i el segon caràcter és una 'a', senzill, veritat?

Pots combinar tant * com ? per aconseguir el resultat desitjat:

ramon@portatil:/bin$ ls ?a?*
bash    cat    dash    dati    false    nano    tar
ramon@portatil:/bin$

El que hem fet és dir-li a 'ls' que ens mostri tots aquells arxius que de segon caràcter tenen una 'a' sent tres el nombre mínim de caràcters. Potser amb 'ls' no li vegeu molta utilitat a aquests comodins, però imagineu-vos amb cp, rm i mv per exemple. Podeu fer tantes combinacions com s'us acudeixin, així que a provar vosaltres mateixos.

Consultant informació

Moltes vegades necessitem conèixer més sobre una ordre determinata o de l'ús del propi intèrpret i ens agradaria tenir un manual, en el cas de GNU/linux disposem d'un manual en línia molt útil denominat 'man'. La seva sintaxi bàsica és la següent:

man [secció] ordre

Per exemple per saber tot de 'cp' no hi ha mes que consultar 'man cp' ens mourem amb els cursors dalt o baix i per sortir premem la lletra 'q'. La barra espaiadora pasa pàgina a pàgina i podem usar Re Pag i Av Pag del nostre teclat per moure'ns.

El manual en línia està dividit en seccions, concretament de la 1 a la 9, cadascuna referides a una cosa diferent. Per exemple, la secció 2 és la de programació de C. Per defecte no posarem secció i trobarem el que busquem ja que busca en totes, però en ocasions (com per exemple quan es programa) hi ha funcions que es diuen igual que alguna ordre de Linux i per defecte ens donarà l'ordre en comptes de la funció. En aquest cas, per exemple, li especificarem que volem la secció 2. Per veure per vosaltres mateixos com s'usa més a fons 'man' proveu amb 'man man'.

Altra font útil d'ajuda en línia és sens dubte l'ordre 'info', que té un maneig per visualitzar la informació igual que 'man'.

Històric

Per a no haver d'escriure una vegada i una altra les mateixes ordres, l'intèrpret d'ordres manté un històric de les ordres que introduïm. Per mostrar-les useu les tecles de cursor dalt i baix.

Per veure tot l'historial de cop tenim l'ordre 'history', que ens mostrarà numerades totes i cadascuna de les ordres que li hem donat a l'intèrpret d'ordres. Això és especialment útil per executar directament una ordre de l'historial usant '!' seguit del nombre d'ordre vist amb 'history'. Per exemple, per a l'ordre 5 de l'historial executeu '!5'.

En el cas de bash l'historial és guardat en el nostre propi directori de treball, en el fitxer '.bash_history', en el qual podrem visualitzar i manipular el seu contingut al nostre gust. (Recordeu que és un fitxer ocult).

Tancament

Ja per finalitzar només indicar-vos que, si esteu en manera consola, per tancar la sessió cal teclejar 'exit', 'logout', o Ctrl+D, per parar la màquina 'halt', i per reiniciar-la prémer 'ctrl+alt+sup'.


copyleft © 2014 ramon lopez
última actualització 16/09/14 17:23