Curs de Unix1/33
Curs de Unix
Departament d’Electrònica
Enginyeria La Salle
Curs de Unix2/33
Index
1 Introducció1.1 Què és Unix.1.2 ftp, vi, pine.1.3 profile.
2 Línia de comandes2.1 Maneig d'arxius: ls, chmod, mv, cp, rm.2.2 Comandes diverses: man, cat, wc, tail, grep, egrep, fgrep,
sort, cut, diff, less, find, finger.
3 Redireccionament
Curs de Unix3/33
Índex
4 Scripts4.1 Tractament de variables.
4.2 Entrada/sortida.
4.3 El condicional if, la comanda test.
4.4 La comanda case.
4.5 Iteratius: while, for
5 Funcions
6. Bibliografia
7. Exemples
Curs de Unix4/33
1 Introducció
1.1 Què és Unix?
A principis dels anys 70, Ken Thompson, un programador dels laboratoris AT&T Bell Laboratories, => sistema operatiu (primera versió de Unix escrita en ensamblador sobre PDP7). A partir d'aquí, Dennis Ritchie => desenvolupament d'un llenguatge de programació que va anomenar 'C', per a poder exportar el sistema a altres processadors. Distribucions (versions) més conegudes: BSD => 1978
System V, =>1980Altres (AIX, Irix, Solaris Linux)
Utilitat => treball en xarxa de forma eficient (TCP/IP es va fer quasi per a Unix, i Internet inicialment es va construir en màquines Unix).
Curs de Unix5/33
1 Introducció
1.2 vi, ftp, pine
1.2.1 Ftp
Permet fer intercanvis d'arxius entre màquines Nomenclatura:
ftp <màquina> El programa es pot fer funcionar en mode ASCII (fitxers de texte) o en BIN. És contraprudent agafar un arxiu de texte en mode BIN (no funcionarà).
Instruccions Principals:-get <arxiu> :agafa l'arxiu i el posa allà des d'on fem l'ftp.-put <arxiu> :posa l'arxiu, que està on hem fet l'ftp, al directori on es
treballa.
Curs de Unix6/33
1 Introducció
1.2.2 Vi
vi és un editor de texteNomenclatura:
vi <arxiu> instruccions: - i :permet inserir caràcters.
- x :permet esborrar el caràcter anterior al cursor. Si fem nx, esborrem n caràcters.
- dd :permet esborrar una línia sencera. Si fem ndd, esborrarem n línies.- :n :anirem a la línia n de l'arxiu.- :<nom> :cerca una cadena de caràcters que correspongui amb
<nom>.- w :salva el document.- q :surt del document, sempre que s'hagi salvat prèviament.- wq :salva el document i en surt.- q! :surt de l'editor sense salvar.La tecla d'escapament serveix per a
tornar al menú. A més, hi ha entrada del manual del sistema.
...
Curs de Unix7/33
1 Introducció
1.2.3 Pine
Pine és una utilitat que permet manejar el correu dels usuaris de la màquiina amb d'altres.
1.3 Profile
És el nom de l'arxiu que conté els detalls de configuració de l'entorn de cada usuari.
És l'equivalent a l'autoexec.bat de MS-DOS.
Curs de Unix8/33
2 Línia de comandes
2.1 Maneig d'arxius
ls Mostra el contingut del directori actual.
Nomenclatura:
ls [opcions] Opcions:
-a ,tots els arxius.-l ,llistat llarg. Inclou tots els premisos, propietaris, grups i tipus de
fitxer.
mvCanvia el nom a un arxiu o directori, o mou un grup de fitxers a un directori.
Nomenclatura:mv <arxiu1> <arxiu2>mv <dir1> <dir2>mv <arxius> <dir>
Curs de Unix9/33
2 Línia de comandes
chmod Assigna els permisos d'escriptura, lectura o execució al propietari, al grup o a
tothom dels arxius.
Nomenclatura:
chmod [opcions] <permisos> <fitxer>
Opcions:
-R ,recursiu.
Permisos:
S'han de posar els permisos d'usuari, grup i resta de possibles usuaris.
Cap permís: 0. Permís d'execució: 1.
Permís de lectura: 2. Permís d'escriptura: 4.
Exemple:
chmod pepet 720
Curs de Unix10/33
2 Línia de comandes
cp Permet copiar arxius.
Nomenclatura:
cp [opcions] <origen> <desti>
Opcions:
-p ,conserva els permisos origianls sobre el destí.
-R ,copia recursiva.
rm Esborra arxius (no directoris).
Nomenclatura:
rm [opcions] <nom>
Opcions:
-r ,permet esborrar un directori.
-i ,pregunta si es vol esborrar arxiu per arxiu.
La comanda rmdir permet esborrar dirèctament un directori sense fer servir la opció r.
Curs de Unix11/33
2 Línia de comandes
2.2 Comandes diverses:
manEnsenya per la pantalla el manual d'us de qualsevol comanda de la shell, així com les llibreries ANSI de C que pertanyen al compilador Unix.
Nomenclatura:
man <nom>
Ens podem moure per la pantalla amb les tecles u (amunt) i d (avall). Per a sortir, emprarem la q.
catMostra el contingut d'un arxiu de texte per la pantalla.
Nomenclatura:
cat <nom>
Curs de Unix12/33
2 Línia de comandes
wc Compta el nombre de caràcters, paraules o línies en un arxiu.
Nomenclatura:
wc [opcions] <nom>
Opcions:
-c ,compta caràcters.
-w ,compta paraules separades per espai, tabulador o salt de carro.
-| ,compta els salts de carro.
tail Permet veure el final o l'inici d'un arxiu.
Nomenclatura:
tail [offset] <arxiu>
L'offset és un valor que pot ser negatiu o positiu. Si és positiu, ensenya n línies de l'inici de l'arxiu. Si és negatiu, ensenya n línies del final.
Curs de Unix13/33
2 Línia de comandes
grep, egrep, fgrepPermet trobar una expressió o caràcter en un fitxer o grup de fitxers.
Nomenclatura:
grep [opcions] <expressió> <arxius>
egrep [opcions] <expressió> <arxius>
fgrep [opcions] <expressió> <arxius>
Opcions:
-v ,llista les línies que no coincideixen amb l'expressió.
-c ,compta les línies que coincideixen.
-n ,cada línia s'ensenya amb el seu nombre relatiu corresponent.
-i ,pèrdua del case-sensitive.
-f ,arxiu, on l'arxiu conté l'expressió a trobar. Només es pot fer servir amb fgrep.
- | ,permet múltiples opcions. Només es pot fer servir amb egrep.
Curs de Unix14/33
2 Línia de comandes
sortPermet fer la ordenació de les paraules o caràcters d'un arxiu. La ordenació pot ser amb criteris numèrics, per caràcter o múltiples.
Nomenclatura:
sort [opcions] <arxiu>
Opcions:
-c ,comrova que l'arxiu estigui prèviament ordenat
-d ,ordena alfabèticament
-f ,intercanvia majúscules amb minúscules a efectes d'ordenació.
-r ,inverteix l'ordre.
Curs de Unix15/33
2 Línia de comandes
cutPermet extreure camps dintre d'un arxiu o grup d'arxius.
Nomenclatura:
cut -f<camp> -d<separador_de_camps> <arxius>
El camp són els caràcters a sumprimir dintre de l'arxiu. Poden tenir caràcters previs que no volem i que es poden suprimir introduin-los prèviament amb el separdor de camps. El camp es defineix amb la seva posició a partir de l'inici de la línia i es poden escollir diversos camps separant per comes.
Exemple:
cut -f1,5 -d:/etc/passwd
Aquest ordre donaria el login de cada usuari i els seu password.
Curs de Unix16/33
2 Línia de comandes
diffCompara dos fitxers de text i mostra que s'hauria de fer per a fer que siguin idèntics.
Nomenclatura:
diff arxiu1 arxiu2
lessEdita sense possibilitat d'escriure un arxiu de text. Moviment = “man”
findPermet trobar un arxiu dintre del directori on estem treballant.
Nomenclatura:
find -name <arxiu>
finger
Permet saber el nombre i el nom dels usuaris que estan connectats.
Curs de Unix17/33
3 Redireccionament
Funció interconnectar processos per generar comandes més complexes
Opcions i aplicacions:|| “OR”. Executa la comanda de l´esquerra, si la comanda de l´esquerra no té éxit (fals) s´executa la de la dreta. Sintaxi: “$<com1> || <com2>”&& “AND”. Executa la comanda de la seva dreta nomès si la de la esquerra té éxit. La sintaxi és la mateixa que ||> Redireccionament de la sortida de la comanda que té a la dreta a un arxiu (Ex: who >temp)>> El mateix que (>), però en aquest cas es fa un afegeix al final de l´arxiu.< Agafa l´entrada d´un programa (que escriurem a l´esquerra) des d´un arxiu (que el posarem a la dreta). (Ex: sort <temp).| (pipe) Serveix per fer redireccionament sense l´ús de arxius temporals (Ex: els dos exemples últims utilitzen un temp que ens el podem estalviar fent “$ who | short”).& multitasca. Permet mostrar el shell $ i deixar una comanda operant deixant lliure el telcat per fer una altra cosa. (Ex: “$who &”).
Curs de Unix18/33
4 Scripts
El sistema operatiu ens permet fer petites aplicacions que corren com programes.
Perquè el sistema la pugui entendre, a la primera línia de l'arxiu hem de posar "!#bin/bash".
I
Curs de Unix19/33
4 Scripts
4.1 Tractament de variables
Per a declarar una variable només cal donar-li un valor.
-Accedir al contingut d'una variable '$variable'
-Per assignar un valor 'variable=...'.
Si vull copiar a sobre b ho farem així:
a=$b
A més a més, hi ha deu variables pròpies del sistema que tenen noms numèrics de 0 a 9. El seu valor se'ls hi dóna en cridar el programa, la variable 1 serà el primer paràmatre després del nom, la 2 el segon... La variable 0 correspon al propi nom del script, i podem saber quants paràmetres s'han introduit amb una variable de nom #.
Curs de Unix20/33
4 Scripts
4.2 Entrada/Sortida
ReadEns llegirà el que s´escrigui per mitjà de teclat desde que es comença la comanda fins que es pulsa return. Aquesta informació es guardarà a la variable indicada.Nomenclatura:
read <variable>
Echo
Comanda utilitzada per mostrar missatges a la pantalla.
Nomenclatura:Echo " .... ”
Particules que s’utilitzen amb la comanda echo: \t -> tabulació \n -> salt de línia \v -> salt de línia i tabulació
Curs de Unix21/33
4 Scripts
4.3 El condiconal if, la comanda test.
Curs de Unix22/33
4 Scripts
Curs de Unix23/33
4 Scripts
La condició booleana pot ser dels tipus:-a and-o or-eq equal-ne not equal-gt greater than-lt little than-ge great or equal-le little ot equal
Exemple: if [ $a -eq “hola” ] )
A més diposem de la comanda “test” que la farem servir que comprovar l´estat o l´existència d´un arxiu:
test –f si exiteix el fitxer retorna certtest –x si el fitxer és executabletest –r si el fitxer és llegibletest –s si el fitxer és llegible i té un tamany major a zero (no és
buit)
Curs de Unix24/33
4 Scripts
4.4 La comanda Case
Segons el valor de la variable executa un conjunt de sentències o un altre.
Nomenclatura:
“ case $<variable> in
valor1) <sentencies>
;;
valor2 ) <sentencies>
;;
*) <sentencies>
;;
esac
“
Curs de Unix25/33
4 Scripts
4.5 Iteratius: while for i until
While La sentència s’executarà la sentència fins que l'expressió no es compleixi.Nomengaltura:
while [expressió] do<sentencies>done
For
La comanda for realitza la iteració un nombre concret de cops:
Nomenclatura:for <nomvariable> in <valor incial> , <valor final>do<sentencies>done
Curs de Unix26/33
4 Scripts
Until
Executara la sentència fins que l'expressió es compleixi.
Nomenclatura:
until [expressió] do
<sentencies>
done
Curs de Unix27/33
5 Funcions
Definicio de la funció:
Function <nom de la funcio> {
<sentencies>
}
Crida a la funció:
<nom de la funcio>
El programa salta a la funció, executa el codi i després torna al punt de la crida per continuar executant el codi que ve després de la crida.
Curs de Unix28/33
6 Bibliografia
• "Running Linux.", Matt Welsh, Matthias Kalle Dalhemer &Lar Kaufman; ed. O'Reilly, 1999. => biblioteca, explica com instal·lar i manejar un ordinador amb Linux.
• "Advanced progamming in the UNIX environment.", W. Richard Stevens; ed. Addison Wesley. => biblioteca. Explica el funcionament de processos del sistema i com crear-ne.
• "A user guide to the UNIX system.", Rebecca Thomas PhD, Jean Yates; ed. Osborne/Mc Graw-Hill. => biblioteca, parla sobre la línia de comandes. Antiguitat. Potser problemes de compatibiltat amb el que diu.
• "Using Linux.", Jack Tacket Jr., David Gunter; ed. QUE Corporation.
Curs de Unix29/33
6 Bibliografia
www
www.starlinux.com.ar/revista/agosto2000/bash2.html
personal2.iddeo.es/19quiros56/Quirospa/unix.html
www.linux.org.ar/info/articulos/Novack/Novack-1.html
Curs de Unix30/33
7 Exemples
Per veure si existeix un arxiu:
clear
if !(test -f $1)
then
echo " La palabra esta en el archivo "
exiy
else
echo " la palabra no esta “
fi
Curs de Unix31/33
7 Exemples
Per veure si una paraula esta fins un fitcher:
clear
if !(grep $1 $2)
then
echo " la palabra no esta "
exit
else
echo " la palabra esta en esta linia “
fi
Curs de Unix32/33
7 Exemples
Utilitzacio de funcions:
clearfunction Orden{ sort $archivo }function Desorden{ sort -r $archivo }function Muestra{grep $palabra $archivo }
Curs de Unix33/33
7 Exemples
opciones=$#
funcion=$1
archivo=$2
palabra=$3
case $funcion in
ordenar)
Orden;;
desordenar)
Desorden;;
existe)
Muestra;;
esac