Está en la página 1de 14

Guia de superviv`

encia inform`
atica
Llicenciatura de Matem`atiques UAB, 20062007
Josep Maria Mondelo

b`
Us
asic de Linux

1
1.1

Consoles virtuals

Disposeu de 6 consoles virtuals de text, hi podeu accedir fent CTRL-ALT-F1,


CTRL-ALT-F2, . . . , CTRL-ALT-F6.
Disposeu dun n
umero arbitrari de consoles gr`afiques, comencant amb la
CTRL-ALT-F7. Aquesta es la consola en la que aterreu quan engegueu
lordinador. Podeu provar de passar a la primera consola de text, amb
CTRL-ALT-F1, despres tornar a la gr`afica amb CTRL-ALT-F7.
Nomes podeu entrar des de la consola gr`afica (CTRL-ALT-F7). Per entrar,
heu descriure, com a nom dusuari
NIU
on NIU es el vostre NIU. Com a password, heu descriure el mateix que useu
en Windows. Si no podeu entrar, proveu de:
Desbloquejar les maj
uscules i el teclat num`eric (tecles Bloq May
us i
Bloq Num).
No usar el teclat num`eric (nomes els n
umeros de sobre les lletres).
Seleccionar KDE com es tipus de sessio dentrada.

1.2

Arbre de directoris

En Linux (de fet en qualsevol sistema Unix) no hi ha lletres dunitat


(a:,c:,. . . ) com al Windows, sino que hi ha un u
nic arbre de directoris.
El directori arrel es representa per /, i aquest mateix car`acter fa de separador de directoris. Aix, /bin es el subdirectori bin del directori arrel, i
/bin/ls es el fitxer ls del directori /bin.
Existeix una operacio anomenada muntar, que consisteix a associar els
continguts dun cert dispositiu (com un floppy, un CD-ROM o una particio
del disc dur) a un punt de larbre de directoris general. Loperacio contr`aria
es diu desmuntar. Veurem exemples daix`o mes endavant.
1

1.3

Lnia de comandes

Si des de lentorn gr`afic obriu una terminal (icona Terminal program de la


barra de sota, o be, a lesquerra de la barra inferior, cliqueu al logo de KDE
[una K], llavors Sistema, Terminales, Konsole) us apareixer`a alguna
cosa semblant a
sh-3.00$
Aquests car`acters acabats en d`olar sanomenen prompt, i la seva pres`encia
indica que el sistema est`a esperant que li entreu una comanda. Si escriviu
alguna cosa i apreteu RETURN, la primera paraula del que hagueu escrit sinterpretar`a com el nom dun programa a executar, i la resta sinterpretar`a
com arguments, que es passaran al programa en q
uestio.
Aix, si escriviu
ls
sexecutar`a la comanda ls, que mostra els fitxers del directori de treball
(probablement el vostre directori home). Si, en canvi, escriviu
ls -l
sexecutar`a la comanda ls amb lopcio -l, i, per tant, a mes dels noms dels
fitxers del directori de treball, veureu informacio addicional com els seus
permisos, tamany o data de darrera modificacio (vegeu la seg
uent seccio).

1.4

Comandes b`
asiques

pwd
el que es presuposa als noms
Escriu el nom del directori de treball. Es
de fitxers que escriviu sense especificar el directori al qual pertanyen.
cd
Canvia el directori de treball a largument que se li passi. Si no se li
passa cap argument, canvia el directori de treball al vostre directori
home. Dins la llista darguments, .. fa refer`encia al directori pare
del directori de treball, i . fa refer`encia al directori de treball.
ls
Sense cap mes argument, llista el contingut del directori de treball.
Si li poseu un nom de de directori o fitxer, llista aquest directori o
fitxer (p.ex., feu ls /bin, ls /bin/ls). Amb lopcio -l us mostra
2

informacio addicional, com hem vist abans. Lopcio -d no llista el


contingut dels directoris especificats, sino els directoris mateixos. Per
exemple, si feu
ls -ld /bin/ls /bin
(noteu que es poden barrejar opcions, -ld equival a -l -d) obtindreu
drwxr-xr-x
-rwxr-xr-x

2 root
1 root

root
root

4096 Feb 17 13:32 /bin


43784 Mar 18 2002 /bin/ls

En aquestes lnies, la primera columna son els permisos, la tercera el


propietari del fitxer, la quarta el grup del fitxer, a continuacio ve la
data d
ultima actualitzacio i finalment el nom.
La columna de permisos sinterpreta com segueix: la primera lletra
ens indica si lentrada corresponent es un directori (d) o un fitxer (-)1 .
Les tres seg
uents fan refer`encia al permsisos del propietari del fitxer:
r vol dir que (el propietari) pot veure el seu contingut, w vol dir que
pot modificar el seu contingut, i x vol dir que el pot executar. Per a
directoris, executar vol dir poder fer-lo de treball (amb la comanda
cd). Les lletres 57 fan refer`encia al grup, i les lletres 810 fan refer`encia
a la resta dusuaris.2
cp
Copia fitxers. Te dues formes principals:
cp fitx1 fitx2
que copia fitx1 a sobre de fitx2 (compte!), i
cp fitx1 fitx2 directori
que copia els fitxers fitx1 i fitx2 al directori directori.
Amb lopcio -r saccepten directoris a la llista de fixters, i llavors es
copia tot el seu contingut tambe.
1

Hi ha mes codis: l vol dir link simb`


olic, p vol dir pipeline, s vol dir socket. No les
farem servir
2
Com heu endevinat, en un sistema Unix, els usuaris estan agrupats en grups.

A la llista darguments saccepten els anomenats caracters comod, que


son * i ?. Lint`erpret de comandes,3 abans dexectuar cap comanda
expandeix els car`acters comod, dacord amb les seg
uents regles:
* representa qualsevol conjunt de car`acters de qualsevol longitud.
? representa exactament un car`acter.
Aix, *.c fa refer`encia a tots els fitxers que acabin en .c, i solucio*
fa refer`encia a qualsevol fitxer que comenci per solucio. Per exemple,
si al directori de treball teniu uns fitxers solucio1.txt, solucio2.txt,
solucio3.txt i els voleu copiar al directori pare del directori de treball,
heu de fer
cp solucio?.txt ..
suposant que no hi ha cap altre fitxer que correspongui al patro solucio?.txt
(si nhi hagues algun, aquest tambe es copiaria).
La opcio -i us demana confirmacio abans de fer qualsevol accio potencialment perillosa. Per exemple, us demanar`a confirmacio si feu
cp -i fitx1 fitx2
i fitx2 ja existeix.
mv
Mou fitxers i/o directoris (moure vol dir copiar i esborrar loriginal).
Admet els arguments de cp que hem vist. Tambe susa per canviar un
fitxer de nom.
rm fitx1 fitx2
Esborra els fitxers fitx1 i fitx2. Amb lopcio -r, esborra tambe
directoris i el seu contingut.
mkdir
Crea directori(s).
rmdir
Esborra directori(s).
3

El programa ens mostra el prompt i interpreta les nostres comandes, tambe conegut
com a shell.

mount, umount
Serveixen per muntar i desmuntar dispositius (vegeu la seccio 1.2).
Ladministrador del sistema pot muntar el dispositiu que vulgui al directori que vulgui, mentre que els usuaris normals nomes poden muntar
dispositius especfics a llocs especfics, triats per ladministrador.
Per exemple, poseu un disquet a la disquetera i proveu de fer
ls -l /mnt/floppy
mount /mnt/floppy
ls -l /mnt/floppy
umount /mnt/floppy
ls -l /mnt/floppy
Podeu fer el mateix amb un CD, llavors heu de canviar floppy per
cdrom.
IMPORTANT!! Heu de tenir en compte que, mentre un dispositiu est`a
muntat, el sistema operatiu suposa que hi pot escriure quan li sembli,
aix que MAI NO TREGUEU UN DISQUET DE LA DISQUETERA
` MUNTAT, perqu`e el podreu deixar en estat corrupMENTRE ESTA
4
te.
mdir, mcopy, mdel, mmd, mrd,. . .
Son un conjunt de comandes, que formen part dunes utilitats anomenades MTOOLS, que permeten manipular un disquet sense muntarlo. Son equivalents a les comandes corresponents de MSDOS (o del
Smbolo del sistema de Windows) sense la m. Nomes heu de tenir en
compte que el separador de directoris es /, com a Unix, i no \ com a
MSDOS i Windows.
Aix, per veure el contingut dun disquet heu de fer
mdir a:
i per copiar un fitxer programa.c al directori practica1 del disquet
(suposant que existeixi), heu de fer
mcopy programa.c a:/practica1
4

Amb un CD no tindreu aquest problema perqu`e, mentre estigui muntat, encara que
apreteu el bot
o no sortir`
a. Amb la disquetera aix`
o no es pot fer perqu`e el mecanisme
dextracci
o es mec`
anic. El mateix comentari saplica als dispositius demmagatzemament
USB.

Si voldreu mirar el contingut del disquet des de Windows, podeu usar


la opcio -t de mcopy per fer la conversio entre els formats de texte de
Linux (Unix, en general) i Windows. Per exemple, si feu
mcopy -t programa.c a:/practica1
se suposa que programa.c (al directori de treball) est`a en format de
Unix i es copiar`a fent la conversio UnixWindows, mentre que si feu
mcopy -t a:/practica1/programa.c .
se suposa que programa.c (al disquet) est`a en format de Windows i es
copiar`a fent la conversio WindowsUnix.
MAI NO HEU DUSAR lopcio -t amb fitxers que no siATENCIO!!!
guin de texte (com els programes C), perqu`e ELS CORROMPRERIEU.
Per exemple, NO lheu dusar amb fitxers .gif, .doc, .xls, .jpg, entre
molts daltres.

1.5

Una sessi
o dexemple

A continuacio teniu una sessio dexemple per exercitar les comandes que hem
vist. Tot el que hi hagi darrera un car`acter # es un comentari i no ho heu
descriure.
cd
pwd
cd /bin
pwd
cd ..
pwd
cd
pwd

#
#
#
#
#
#
#

ens posem al directori home


ara el veiem
ens canviem al directori /bin
voil`
a
canviem al directori pare de /bin
que e
s /
tornem al directori home

ls -ld /bin/ls /bin

#
#
#
#
#
#
#
#

/bin/ls es un fitxer
/bin un directori
per desactivar la protecci
o de
sobreescriptura
fem un direcori anomenat "dirproves"
creem dos fitxers f1, f2
... que ara veiem
sobreescrivim f2 amb f1

unalias cp
mkdir
touch
ls -l
cp f1

dirproves
f1 f2
f1 f2
f2

cp
ls
cp
ls
cp

-i
-l
-i
-l
-i

f1 f2
dirproves
f1 f2 dirproves
dirproves
f1 f2 dirproves

cp f1 f2 dirproves
rm dirproves/*
touch a1
ls -l . dirproves
cp * dirproves

ls
rm
cp
ls
rm
ls
mv
ls
mv

-l dirproves
dirproves/*
f? dirproves
-l dirproves
dirproves/*
-l . dirproves
f1 dirproves
-l . dirproves
f2 f3

ls -l
rmdir dirproves
ls -l dirproves
rm dirproves/*
rmdir dirproves
touch f1 f2
mkdir dirproves
cp * dirproves
ls -l . dirproves
rm -r dirproves
ls -l
mdir a:
mmd a:/pract0

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

pregunta abans de matxacar


dirproves e
s buit
hi copiem f1 i f2
... que ara shan de veure
f1, f2 ja s
on a dirproves
demana confirmaci
o abans de matxacar
matxaca sense preguntar
esborra tots els fitxers de dirproves
fem un fitxer "a1"
llista el directori de treball
i dirproves
copia tots els fitxers del directori
de treball a dirproves,
es queixa perqu`
e no pot
copiar directoris.

# nom
es copiem f1, f2
# ara ho veiem

# f1 desapareix de . i passa a dirproves


# f2 passa a ser f3, matxacant
#
els continguts
# no podem!
# e
s perqu`
e no e
s buit
# ara s

# esborrem dirproves recursivament


# ... ja no hi e
s
# si hi ha un disquet a la disquetera
#
veiem el seu contingut
# fem un subdirectori anomenat
7

mdir a:
mcopy f? a:/pract0
mdir a:/pract0
mdel a:/pract0/*
mrd a:/pract0
mdir a:

#
pract0
# el veiem
# hi copiem f1, f2
# esborrem el contingut de pract0
#
(al disquet!)
# esborrem el subdirectori pract0
# ja no hi e
s

Configuraci
o de la peixera

Quan us connecteu a la peixera, el vostre directori home es de la forma


/home/samba/homes/<NIU>
on <NIU> es el vostre NIU. Aquest directori es troba al disc dur de lordinador on esteu treballant. Tot el que guardeu en ell no ho podreu veure
des dun altre ordinador. A mes, el contingut daquests directoris sesborra
peri`odicament.
El vostre directori personal de 20MB dins el servidor es troba muntat a
/home/samba/homes/<NIU>/Desktop/Servidor
Tot el que guardeu aqu quedar`a guardat al servidor, i per tant ho veureu
des de qualsevol ordinador. Tambe ho veureu des de Windows.
Proveu de fer:5
cd
df .
cd Desktop/Servidor
df .
En particular, descobrireu que el servidor es diu apolo.uab.es.
5

La comanda df (disk free) escriu lespai usat i disponible a la unitat demmagatzemament (com disquet, disc dur, unitat de xarxa o mem`
oria USB) on es troba el directori
que li passeu com a argument.

de leditor
Us

Per escriure programes, podeu fer servir un editor anomenat KWrite 6 . El


podeu engegar clicant al logo de KDE, llavors Mas aplicaciones, Editores,
KWrite. Dentre les seves caracterstiques, ens interessen:
Que te syntax highlighting, o sigui, que escriu cada paraula dun
color dacord amb el llenguatge (C en el nostre cas). Perqu`e ho faci,
ha de saber de quin tipus de fitxer es tracta, aix que, si esteu editant
un fitxer nou, no tindreu colors fins qu`e el graveu per primer cop.
A lesquerra del texte teniu icones que us permenten amagar blocs
de programa.
Cada cop que el cursor es a sota dun par`entesi, clau o claud`ator, silumina el par`entesi, clau o claud`ator oposat. Aix`o es u
til, per exemple,
per no oblidar-vos de tancar par`entesis a expressions aritm`etiques complicades.

del compilador de C
Us

Fem anar el compilador de C del projecte GNU, que es el compilador standard


als sistemes Linux. De fet es el mateix compilador que fa servir el DevC++.
Es diu gcc, i una invocacio tpica es:
gcc -pedantic -g -Wall -o executable font.c -lm
El significat de cada argument es el seg
uent:
-pendantic es perqu`e el compilador no accepti cap desviacio lANSI C
standard. Daquesta manera ens assegurem de fer programes compatibles amb tots els compiladors de C existents.
-g es per incloure informacio simb`olica, de manera que el programa es
pugui executar sota un debugger.
-Wall es perqu`e el compilador doni tots els warnings. Nhi ha alguns,
relacionats amb construccions potencialment perilloses, que per defecte
no es treuen.
6

Nhi ha molts mes, en particular un de mes sofisticat que es diu Kate. Aquest editor
permet tenir obert simult`
aniament a la matexia finestra un codi font, la llista de fitxers
del directori de treball i una terminal, on es pot compilar i executar.

-o executable vol dir que guardi el codi executable produt a un fitxer


anomenat executable.
font.c es el fitxer amb el codi font en C.
-lm es perqu`e, en generar lexecutable, es linki contra les llibreries
matem`atiques (les que contenen les funcions sin(), fabs(), etc).
Lopcio -g es pot canviar per -O3, que vol dir optimitzar a nivell 3.
Llavors no podreu executar el programa sota el debugger,7 per`o, depenent de
com sigui el codi, el temps dexecucio es reduir`a notablement (son freq
uents
factors entre 2 i 3, de vegades saconsegueix mes).

del debugger
Us

Disposeu dun debugger fet pel projecte GNU, que sanomena gdb. Funciona
amb lnia de comandes. Per exemple, per comencar una sessio de debugging
amb el programa generat a dalt, haureu de fer
gdb executable
Llavors us apareixer`a un prompt (gdb) i podeu entrar comandes.
Per executar pas a pas, heu de comencant posant un breakpoint a la
rutina main():
b main
Llavors podeu engegar lexecucio amb:
r
Observareu com satura a main(). Podeu veure on esteu del programa fent
bt
(vol dir backtrace). Per executar una instruccio, hi ha dues comandes: la
comanda
s
(vol dir step), i la comanda
7

Be, de fet s que podreu, per`


o no podreu veure el codi C, nomes el codi m`
aquina desensamblat, i per tant no sabreu a quina lnia esteu, ni podreu posar breakpoints referents al
codi C, etc.

10

n
(vol dir next). La difer`encia entre les dues es que, quan esteu a sobre duna
rutina, la s entra a dins, mentre que la n no ho fa.
Si voleu continuar lexecucio del programa fins a un altre lloc, hi heu de
posar un altre breakpoint (b 150 per parar a la lnia 150, b jacobi per
parar a la rutina jacobi(), etc) i llavors escriure la comanda
c
(vol dir continue).
Podeu veure el contingut de qualsevol variable amb la comanda
p
(vol dir print). Per exemple, per veure el contingut de la variable index
escriureu p index, i per veure la segona component del vector u posareu
p u[1]. De fet la comanda p no es nomes veure el contingut de variables,
sino que admet qualsevol expressio. Aix, si voleu canviar el valor de la
segona component del vector u, podeu fer p u[1]=3.
Quan engegueu el gdb, si al mateix directori hi ha un fitxer anomenat
.gdbinit, sexecuten les comandes que hi hagi a dintre. Aix, si hi poseu
(dins .gdbinit)
b main
r
llavors, nomes engegar el gdb, comencar`a lexecucio del programa i saturar`a
a la rutina main().
Una situacio en la qual el debugger es especialment u
til es quan el programa sinterromp amb el missatge Segmentation fault. Dues de les causes
mes freq
uents daquest error es accedir a un vector amb un ndex fora de rang
o usar un punter amb una adreca inv`alida (p.ex. sense inicialitzar). Si llavors
executeu el programa sota el debugger (sense cap breakpoint), quan saturi
podreu veure la lnia de codi on sha produt el Segmentation fault amb
la comanda bt. Llavors amb la comanda p podeu veure valors dndexs, etc.,
per veure si es aquesta lnia on sha produt lacces incorrecte a la mem`oria. 8
I recordeu: la millor manera de depurar un programa es no equivocar-se.
Repasseu el codi un parell de vegades abans de demprar el debugger.
Trobareu mes informacio fent info gdb des duna terminal (en particular, trobareu una sessio dexemple molt instructiva).
8

Heu de tenir en compte que aix`


o no sempre passa: pot ser que en un punt del programa feu un acc`es inv`
alid a mem`
oria que desestabilitzi el sistema de gesti
o de mem`
oria
din`
amica, de manera que el programa no casca aqu sin
o mes endavant. Llavors lerror es
molt mes difcil de trobar.

11

de gnuplot
Us

un programa per graficar, basat en lnia de comandes. Permet dibuixar


Es
funcions definides per expressions que involucren funcions elementals, per`o
la seva pot`encia radica en la facilitat amb la que es poden dibuixar fitxers
de dades.

6.1

Dibuixos bidimensionals

Un fitxer de dades per al gnuplot es un fitxer de text que consta de v`aries


lnies, on cada lnia ser`a un punt de la gr`afica. Un fitxer de dades pot constar
de diversos datablocks, que estan separats per lnies en blanc.
Per a gr`afiques bidimensionals susa la comanda plot. Per exemple, suposem que tenim un fitxer de text anomenat dades.dat amb contingut
#
#
0
1

Aixo es un comentari
Primer datablock
1 0
1 1

# Segon datablock
2 1 1
3 1 0
Si entrem dins gnuplot i escrivim
plot "dades.dat" using 1:3 with lines
llavors gnuplot recorrer`a el fitxer, per cada lnia considerar`a el punt amb
coordenada x la columna 1 i coodenada y la columna 3, i unir`a amb lnies els
punts consecutius de cada datablock (o sigui, a cada lnia en blanc aixequem
el llapis). El dibuix que obtindrem es:
1
"dades.dat" using 1:3
0.8
0.6
0.4
0.2
0
0

0.5

1.5

12

2.5

Observeu que els rangs shan ajustat perqu`e hi c`apiguen exactament els 4
punts que shan dibuixat. Els podem ampliar fent
set xrange [-1:4]; set yrange [-1:2]
replot
i obtenim
2
"dades.dat" using 1:3
1.5
1
0.5
0
-0.5
-1
-1

A with lines podeu canviar lines per points, linespoints, dots,


impulses i altres. Podeu comprovar qu`e fan escrivint
set xrange [-pi:3*pi]
set autoscale y
plot sin(x) with lines
plot sin(x) with points
plot sin(x) with linespoints
plot sin(x) with dots
plot sin(x) with impulses
Sempre i quan no hi hagi lloc a confusio, les comandes es poden abreujar.
Aix, es pot fer
set autoscale
plot "dades.dat" u 1:3 w l

6.2

Sortida a fitxer

Una caracterstica molt pr`actica de gnuplot es que no nomes permet graficar


a la pantalla, sino que tambe permet guardar la gr`afica en fitxer en diversos
formats gr`afics. Per exemple, per guardar la gr`afica de sin(x) en un fitxer
dibuix.png en format PNG, heu de fer

13

set termimal png


set out dibuix.png
plot sin(x)
set out
set term x11

# format: PNG
# sortida a dibuix.png
#
#
#
#

per tancar el fitxer dibuix.png


per tornar a dibuixar per pantalla
(al gnuplot de Windows heu descriure
"windows" enlloc de "x11")

Llavors, des duna terminal, podeu obrir el fitxer gr`afic que acabeu de generar
fent
display dibuix.png
(dins gnuplot podeu fer !display dibuix.png). Tambe podeu convertir aquest fitxer a qualsevol altre format gr`afic amb la comanda convert.
Per exemple, per convertir-lo en TIFF amb una resolucio de 150 punts per
polcada, heu descriure (a una terminal, o dins gnuplot per`o amb ! al
davant)
convert -density 150 dibuix.png dibuix.tif
Per saber en quins formats podeu gravar des de gnuplot, dins de gnuplot
heu descriure help set terminal.

14

También podría gustarte

  • Z Imatge TeoriaJuny11
    Z Imatge TeoriaJuny11
    Documento1 página
    Z Imatge TeoriaJuny11
    sioncaera
    Aún no hay calificaciones
  • Cosas
    Cosas
    Documento1 página
    Cosas
    sioncaera
    Aún no hay calificaciones
  • Heptagon
    Heptagon
    Documento1 página
    Heptagon
    sioncaera
    Aún no hay calificaciones
  • Heptagon
    Heptagon
    Documento1 página
    Heptagon
    sioncaera
    Aún no hay calificaciones
  • Cat Dosier Inkscape
    Cat Dosier Inkscape
    Documento22 páginas
    Cat Dosier Inkscape
    sioncaera
    Aún no hay calificaciones
  • Cosas
    Cosas
    Documento1 página
    Cosas
    sioncaera
    Aún no hay calificaciones
  • Dossier Infografies
    Dossier Infografies
    Documento2 páginas
    Dossier Infografies
    sioncaera
    Aún no hay calificaciones
  • Cosas
    Cosas
    Documento1 página
    Cosas
    sioncaera
    Aún no hay calificaciones
  • Horaris FGC Sabadell
    Horaris FGC Sabadell
    Documento2 páginas
    Horaris FGC Sabadell
    sioncaera
    Aún no hay calificaciones
  • Cosas
    Cosas
    Documento1 página
    Cosas
    sioncaera
    Aún no hay calificaciones