Está en la página 1de 152

TEMA 12 INTRODUCCION A

LINUX

Qu es LiNUX ?
Linux es un clon de Unix gratuito, programado inicialmente por
Linus Torvalds con la asistencia tcnica de un grupo de
programadores a travs de la Internet.
Cumple todas las caractersticas de los Sistemas Operativos
UNIX actuales, y con todos los modernos avances en los
Sistemas Operativos, con capacidad de multitarea real,
memoria virtual, libreras compartidas, consumicin escasa de
recursos, manejo estupendo de la memoria, trabajo con
TCP/IP...
Linux se ejecuta principalmente en mquinas basadas en
PC's. Actualmente
est soportado prcticamente en el 100% de los procesadores
del mercado.

distribuciones

Slackware
Debian GNU/Linux
Knoppix
Fedora Core
SuSe
Mandriva
Gentoo Linux
Ubuntu

Slackware

http://www.slackware.com
Una de las primeras distribuciones que surge
Disenada por Patrick Volkerding a partir de SLS Linux
Gran aceptacion al principio hasta llegar a ser la distribucion mas
popular del mercado. Actualmente ha perdido terreno a favor de
distribuciones mas modernas, siendo relegada a aplicaciones
especializadas
Sistema de instalacion de paquetes sin control de versiones ni
dependencias
Necesita un mayor conocimiento de Linux que la mayora de las
otras distribuciones populares

Debian GNU/Linux

http://www.debian.org
Distribucin bastante popular que no est desarrollada por ninguna
compaa comercial sino que es fruto del trabajo de diversos
voluntarios en toda la comunidad de Internet
Creado por Debian Project el ao 1993
Distribucin completamente gratis, sin restriccin de licencias en
donde todo el software es GNU/GPL y no incluye software
comercial
Sistema de gestin e instalacin de paquetes DEB
No tiene marcado ningn entorno grafico en especial ya sea
GNOME, KDE. . .
Tres ramas
Stable
Testing
Unstable

Knoppix

http://www.knoppix.org
Distribucin live basada en Debian y utilizando KDE
Variante GNOME: Gnoppix
Desarrollada por Klaus Knopper
Orientada al usuario domestico, puede servir para
Ensear y demostrar de manera sencilla el sistema Linux
Probar rpidamente la compatibilidad de hardware bajo Linux
antes de comprarlo o utilizarlo
Utilizar las herramientas incluidas para restaurar un sistema
corrupto

Fedora Core
http://fedora.redhat.com
Creada por Red Hat en su iniciativa de abrir su
distribucin a las contribuciones de la
comunidad de usuarios
Resultado de la fusin de Red Hat Linux con el
proyecto Fedora Linux
Creacin de Red Hat Enterprise Linux
Orientada a la participacin de la comunidad de
usuarios

Centrada, en principio, en el entorno grafico


GNOME

SuSe
http://www.suse.de
Distribucin de una compaa alemana, posteriormente
adquirida por Novell
Combina el sistema de paquetes de Red Hat Linux
(RPM) con una organizacin derivada de Slackware
Es una de las distribuciones mas sencillas de instalar y
administrar, ya que cuenta con varios asistentes grficos
para completar gran cantidad de tareas
Centrada, en principio, en el entorno grafico KDE

Mandriva
http://www.mandrivalinux.com
Aparecida en julio de 1998 y propiedad de
Mandrivasoft
Originalmente basada en Red Hat Linux
Es otra de las distribuciones mas sencillas de
instalar y administrar, estando orientada a
usuarios con pocos conocimientos
Centrada, en principio, en el entorno grfico
KDE

Gentoo Linux
http://www.gentoo.org
Orientada a usuarios con cierta
experiencia con Linux
La piedra angular de Gentoo es Portage,
un sistema de distribucin de software
basado en ports de BSD

Ubuntu
http://www.ubuntu.com
Patrocinada por Canonical Ltd., una
empresa privada fundada y financiada por
Mark Shuttleworth
Basada en Debian GNU/Linux
Gnome
Tratamiento extico del usuario root
(sudo)

Mostrando Ficheros
El comando que se utiliza en Unix, y por lo tanto en
Linux para mostrar los ficheros es el comando: "ls",
tambin se utiliza "dir", pero no es mas que una copia
de "ls", con otro nombre
Una vez iniciada la sesin, escribe:
$ ls
Vers los ficheros que estn en ese directorio. Esos ficheros pueden
ser:
ejecutables (binarios), de texto, directorios, scripts (conjunto de
comandos dentro de un fichero de texto).

Ejercicio (cuaderno de prcticas)


Que comando ms-dos es equivalente al
comando ls en unix

Permisos de los ficheros


Permisos para el
dueo

Permisos para el
resto

drwx------ 3 root root


Tipo de archivo

Permisos para el
grupo

4096 Desktop/

Permisos de los ficheros


Escritura

drwx------ 3 root root


Lectura

Ejecucin

4096 Desktop/

Permisos de los ficheros


Dueo

drwx------ 3 root root


Grupo

4096 Desktop/

Ejercicio (cuaderno de prcticas)


Explica los permisos de los siguientes
ficheros
-rw-rw-rwx uno.dat
drwx-wxrwx dos
---------x tres.dat
-rwx------ cuatro.dat

Mostrando los ficheros en color


Para ver los ficheros con colores usa:
$ ls - -color s
Adems, el parmetro "s",mostrar el tamao del fichero
("size" en ingls)

alias
Teclea lo siguiente:
$ alias ls='ls - - color -s'
ahora, escribe ls
$ ls

SORPRESA!!

Creando Directorios
Un directorio, es un archivo el cual tiene la propiedad de
poder almacenar, ficheros y directorios.
$ mkdir directorio
Esto creara un subdirectorio en el directorio actual
$ mkdir /home/daniel/directorio
Esto creara un subdirectorio en el directorio /home/daniel

Ejercicio (cuaderno de prcticas)


Crea la siguiente estructura de directorios
/

home

usuario

uno

unouno

dos

unodos

tres

Borrando Directorios (CUIDADO!)


Para borrar directorios en Linux, debes usar el
comando:
rmdir NombreDirectorio
NOTA:
rm rf Nombredirectorio
Funcionara igual que deltree en MS-DOS

Ejercicio (cuaderno de prcticas)


Borra la estructura de directorios con
fondo color canela
/

home

usuario

uno

unouno

dos

unodos

tres

Renombrando Directorios
El comando que se utiliza para RENOMBRAR, es el
mismo que se utiliza para MOVER,que es: 'mv'

Para cambiar el nombre del directorio carlos a javier,


habr que escribir:
mv carlos javier
El mismo comando se usa para renombrar tanto
FICHEROS como DIRECTORIOS.

Ejercicio (cuaderno de prcticas)


Cambia el nombre del directorio unodos y
ponle unod, y al directorio unouno le
pones unou
/

home

usuario

uno

unouno

dos

unodos

tres

Moviendo ficheros/directorios
Para mover ficheros, o directorios usa el comando mv:
Por ejemplo queremos MOVER el fichero: 'carta_a_pepe.txt' a
/home/javier/cartas_a_amigos/, pues escribimos:

mv carta_a_pepe.txt /home/javier/cartas_a_amigos/
PERO, TAMBIN CON EL MISMO COMANDO SE PUEDE MOVER
UN DIRECTORIO, Por ejemplo:
mv cartas_a_amigos /
(mueve "cartas_a_amigos" a la raz)

Ejercicio (cuaderno de prcticas)


Realiza la siguiente transformacin:
/

home

usuario

uno

unouno

dos

unodos

tres

home

usuario

uno
dos

unouno
unodos

tres

Accediendo a directorios, y En
que directorio estoy?
Para acceder a un directorio:
cd NombreDirectorio
ruta actual:
pwd
cd
Sin parmetros regresara a "casa. Por ejemplo la casa del usuario javier
ser /home/javier.
(Este comando, hace lo mismo que si escribes: "cd ~", o "cd $HOME)
Si quisiera ir al directorio /home/javier/programacin/C, y estuviera como
el usuario "javier", escribira (independientemente de yo donde estuviera)
cd ~/programacin/C

Accediendo a directorios, y En
que directorio estoy?
Ojo con los espacios en blanco

cd /
Independientemente del directorio donde te
encuentres ira directamente a la raz
cd ..
Acceder a la carpeta/directorio inmediatamente
anterior

rbol de directorios de
UNIX/LINUX

/
Root directory, starting point of the directory tree
/home
Personal directories of users
/dev
Device files that represent hardware components
/etc
Important files for system configuration
/etc/init.d
Boot scripts
/usr/bin
Generally accessible programs
/bin
Programs needed early in the boot process
/usr/sbin
Programs reserved for the system administrator
/sbin

/usr/share/doc
Various documentation files
/usr/share/man
System manual pages (man pages)
/usr/src
Source code of system software
/usr/src/linux
Kernel source code
/tmp, /var/tmp
Temporary files
/usr
All application programs
/var
Configuration files (such as those linked from /usr)
/var/log
System log files
/lib
Shared libraries (for dynamically linked programs)
/proc
Process file system

Crear con Vi. comandos


:q
Salir, slo cuando no has
realizado ningn cambio.
:q!
Salir sin guardar cambios.
:wq
Guardar cambios y salir.
:w
Guardar cambios y continuar
edicin.
u
Deshace el ltimo cambio en el
texto.
Mayus+a
Aade texto al final de la lnea
en la que est situado el cursor.

Mayus+i
Inserta texto al principio de la
lnea en la que est situado el
cursor.
x
Elimina un carcter.
dd
Elimina una linea
/cadena
Buscar cadena hacia abajo del
texto.
?cadena
Buscar cadena hacia arriba del
texto.

EJERCICIO (cuaderno de
practicas)
Crea la siguiente estructura de ficheros y directorios en
tu directorio home y recoge en tu cuaderno de practicas
los pasos necesarios para realizarla.
activ1

datos1

Fichero.txt
Introduce aqu tu cantante favorito

datos2

Datos.doc
Introduce aqu tu
nombre y apellidos

vacio

EJERCICIO (cuaderno de
practicas)
Ahora el directorio home debe de contener lo siguiente.

activ1

datos1

Fichero.txt

datos2

Datos.doc

estavacio

EJERCICIO (cuaderno de
practicas)
Ahora el directorio home debe de contener lo siguiente.

activ1

datos1

datos2

estavacio

Datos.doc

EJERCICIO (cuaderno de
practicas)
Ahora el directorio home debe de contener lo siguiente.

activ1

datos2

estavacio

Datos.doc

EJERCICIO (cuaderno de
practicas)
Borra todo el directorio activ1 de un golpe y apunta todo lo
que has hecho en tu cuaderno de prcticas.

Ejercicio (cuaderno de prcticas)

Dime que son los siguientes directorios


/
/proc
/home
/opt
/etc
/lib

Limpiando la pantalla
clear
Limpia la pantalla
Limpiar la pantalla no requiere parmetros algunos,
por lo que es bastante fcil de recordar, clear
significa en ingls "limpiar", mientras que cls, es el
acrnimo ingls de "Clear Screen", "Limpiar la
pantalla"

EJERCICIO (cuaderno de
prcticas)

(intenta hacer un alias para cls).


cls limpiar la pantalla, al igual que el
comando clear.

Montando Unidades
Un sistema de ficheros, no es ms que una particin en tu
disco duro (que puede ser nica) la cual tiene un formato,
y el formato es la forma de colocar los archivos.
Cuando se carga el sistema, automticamente tambin
cargan su sistema de ficheros, y trabajan con su sistema
de ficheros, nica y exclusivamente
Linux, carga automticamente su Sistema de ficheros
Al cargar, se le denomina "montar", en ese momento, al
igual que han hecho otros sistemas operativos puedes
empezar a trabajar
con tu sistema de ficheros

Pero Linux, al contrario que otros sistemas puede adems


acceder a Sistemas de Archivos que no son suyos, es decir,
puedes desde Linux, acceder a tu particin de MSDOS,
Windows, etc...
Es ms, puedes acceder a tu disquete o disquetes que te
hayan pasado que estn formateados en otros sistemas, por
ejemplo de un Mac.

Para montar tu disquete haz:


(En este caso, debers asegurarte de que existe el
directorio (/mnt o /media)/floppy, si no existiera cralo
usando: mkdir (/mnt o /media)/floppy)
1. introduce el disquete en la disquetera
2. escribe: mount -t vfat /dev/fd0 (/mnt o /media)/floppy
3. escribe cd (/mnt o /media)/floppy

Accediendo a Unidades
Para acceder a las unidades (una vez montadas),
debers acceder escribiendo:
cd (/mnt o /media)/[directorio que haga referencia a
la unidad montada y existente en el directorio mnt]
Ejemplo:
cd (/mnt o /media)/floppy
Acceder a tu disquete.

Desmontar Unidades
Desmontar las unidades es FUNDAMENTAL, si no se
desmontan las unidades y no se cierra correctamente el
sistema se corre el riesgo de perder datos.
Para desmontar las unidades bastar con escribir:
umount /dev/[dispositivo montado que se quiera
desmontar]
Ejemplos:
umount /dev/fd0
Desmontar el disquete.
umount /dev/hda1
Desmontar la particin 1 del disco duro A
umount -a
Desmontar TODAS las unidades montadas.

Midnight Commader:
El Midnight Commader de Linux, es un entorno amigable
en modo texto que te ayudar a hacer todas, todas, las
gestiones de ficheros que normalmente usas, para
ejecutar el Midnight Commander, bastar con escribir:

mc
Y ya estars en un entorno amigable para tu gestin de
ficheros.

ejercicio
Con el midnight comander crea la
siguiente estructura en un disquete o en el
directorio /home
activ1

datos1

Fichero.txt

datos2

Datos.doc

estavacio

equivalencias

Las formas, MAYSCULAS y


minsculas son diferentes en Linux
A partir de ahora, debers saber que las maysculas y
minsculas son distintas en Linux, ahora, debers saber
muy bien como escribes el nombre de un fichero.
Para Linux, maria.txt es distinto de MARIA.TXT

Pidiendo ayuda, uso

Para pedir ayuda de un comando podrs hacer:


man comando
Por ejemplo:
man cp

La combinacin de teclas, desde el


Terminal.
La combinacin de teclas ms usada es la de [Ctrl]+
[tecla de funcin] para abrir un nuevo terminal (una
nueva consola) en el que poder trabajar.
Lo ms normal es [Ctrl]+[F1] hasta [Ctrl]+[F6], en modo
texto.

Los procesos escondidos, (Demonios)


Los demonios (del ingls daemons), son, en Linux, programas
que se encargan de gestionar y administrar el sistema. Son
varios y permiten la automatizacin de Linux hasta lmites
insospechados.
Estos programas se llaman as porque se ejecutan (o corren)
en segundo plano, y una vez configurados no requieren solicitar
permisos al usuario para hacer tal y cual operacin, con el
incremento de velocidad que esto supone.
Algunos de los ms conocidos son el crond, el atd y el pppd.
Curiosamente, los archivos terminados en d suelen ser
demonios. Su uso suele estar bastante bien documentado.

AT
at se puede usar para ejecutar, solamente una
vez, un trabajo a una determinada hora.
Podemos definir los comandos a ejecutar o bien
por la entrada estandar o en un fichero. El
formato en uno u otro caso seria:
at hora:minuto o at -f fichero hora:minuto.
Un ejemplo nos aclarara las cosas. (^D significa
que pulsamos las teclas Ctrl + D). Estos dos
ejemplos hacen lo mismo (arrancan de nuevo la
maquina) aunque se definen de manera distinta:

[ralf@servidor1]# at 12.12.2006 21:30


>reboot
^D
[ralf@servidor1]# cat /tmp/at_reboot
reboot
[ralf@servidor1]# at -f /tmp/at_reboot 12.12.2006
21:30

Ejercicio (cuaderno de prcticas)


Deja programado el sistema para que
rearranque (reboot) dentro de 2 minutos.
Anota detalladamente el proceso en tu
cuaderno de prcticas.

Qu procesos se estn
ejecutando?
Para ver que procesos se estn ejecutando
debers usar: ps, igualmente que desde Xwindow
pulsas [Ctrl]+[Esc].
Si quieres que esa informacin sea constante
debes utilizar el comando top.
Aadiendo ps a, vers TODOS los procesos que
en ese momento se estn ejecutando,
exceptuando los demonios.

Matando Procesos!
Esta posibilidad se usa cuando por algn motivo
un proceso se queda "colgado" en un terminal
(ojo! se puede quedar "colgado" un terminal,
pero PARA NADA el resto del sistema Linux).
Para ello haremos, como superusuario:
$ ps a
y veremos qu proceso es. Tras esto usaremos el
comando kill, que tiene esta sintaxis:
kill [-s seal] pid ...
kill l [seal]

Ejemplo
kill 558
Matar el proceso 'gnuchessx' que est ejecutando
el usuario 'javier
kill 9 116
Mata a toda costa el proceso 116.

RECUERDA:
El SuperAdministrador 'root', podr matar
todos los procesos que estn ejecutando
otros usuarios, as tambin, los usuarios
podrn matar sus propios procesos, y ningn
usuario podr matar otro proceso distinto del
suyo.

Ejercicio (cuaderno de prcticas)


Abre dos consolas. En una hazte
superusuario y realiza un kill -9 proceso a
la segunda consola que abriste como un
usuario comn

Quin soy y dnde estoy?


El comando whoami nos dir quines somos en
la terminal en la que estemos, o sea, nuestro
nombre de usuario.
El comando who nos dice quienes estn
conectados al sistema en un momento
determinado.
El comando w es una variacin del anterior que te
ofrece otro tipo de informacin, como puede ser el
comando que estn ejecutando los usuarios.
Del mismo modo, cuando queramos saber qu
recorrido hemos hecho por el disco duro (el path de
nuestro directorio, por ejemplo), escribiremos pwd.

Los ficheros tienen propietarios


En todo sistema Linux los archivos pertenecen a
quien los crea, que es entonces el nico que puede
borrarlos, ejecutarlos, etc. Esto es as porque Unix
estaba pensado para ser manejado por muchos
usuarios a la vez, y de esta forma nadie poda
acceder a tus archivos sin tu consentimiento previo.

-rw - - r - - carlos users carta.txt

Los ficheros tienen propietarios


En todo sistema Linux los archivos pertenecen a
quien los crea, que es entonces el nico que puede
borrarlos, ejecutarlos, etc. Esto es as porque Unix
estaba pensado para ser manejado por muchos
usuarios a la vez, y de esta forma nadie poda
acceder a tus archivos sin tu consentimiento previo.
permisos

-rw - - r - - carlos users carta.txt

Los ficheros tienen propietarios


En todo sistema Linux los archivos pertenecen a
quien los crea, que es entonces el nico que puede
borrarlos, ejecutarlos, etc. Esto es as porque Unix
estaba pensado para ser manejado por muchos
usuarios a la vez, y de esta forma nadie poda
acceder a tus archivos sin tu consentimiento previo.
permisos

usuario

-rw - - r - - carlos users carta.txt

Los ficheros tienen propietarios


En todo sistema Linux los archivos pertenecen a
quien los crea, que es entonces el nico que puede
borrarlos, ejecutarlos, etc. Esto es as porque Unix
estaba pensado para ser manejado por muchos
usuarios a la vez, y de esta forma nadie poda
acceder a tus archivos sin tu consentimiento previo.
permisos

usuario

grupo

-rw - - r - - carlos users carta.txt

Los ficheros tienen propietarios


En todo sistema Linux los archivos pertenecen a
quien los crea, que es entonces el nico que puede
borrarlos, ejecutarlos, etc. Esto es as porque Unix
estaba pensado para ser manejado por muchos
usuarios a la vez, y de esta forma nadie poda
acceder a tus archivos sin tu consentimiento previo.
permisos

usuario

grupo

-rw - - r - - carlos users carta.txt

Nombre del
fichero

Cambiamos el propietario de un
fichero
Hay 3 utilidades para cambiar los atributos a un fichero:
chown Cambia de dueo al fichero.
chgrp Cambia de grupo a un fichero.
chmod Cambia los atributos a un fichero.
Al crear un fichero, por defecto, ser del dueo que lo crea,
osea, si estoy como juan carlos, y escribo:
vi carta.txt
la carta creada ser de juan carlos, con los atributos propios
del mismo, pero si estoy como root, y creo la misma carta, la
carta ahora ser de root.

Normas bsicas
1. Slo el dueo de un fichero, podr cambiarles sus
propiedades, e incluso de dueo.
2. Ningn usuario podr cambiarle las propiedades a
ningn fichero, ni su dueo
3. root, podr cambiarle las propiedades a TODOS los
ficheros, e incluso cambiarles de dueo.
4. Lo de arriba mencionado, no servir de nada, si al grupo
al que pertenece tambin tiene la propiedad de escribir
sobre el fichero, por lo cual, podr cualquier usuario
cambiar el dueo, grupo o propiedades a un fichero.

Para cambiar de dueo a un fichero, debers usar el


comando chown, o bien utilizar mc, que es ms fcil,
siempre y cuando tenga los atributos que permitan ser
cambiados.
chown -c javier EsteFichero
Ahora "EsteFichero" pertenecer a javier.
Si quieres cambiar de grupo al fichero "EsteFichero"
chgrp c users EsteFichero
Y si desde el princio hubieras querido cambiar de usuario y
de grupo haber escrito:
chown c javier.users EsteFichero

Ejemplos de modificacin de permisos


de un fichero, y su significado.
1. chmod u+rwx carta.txt
Donde "u", se refiere al usuario el cual cre el archivo.
2. chmod g+rxw carta.txt
Donde "g", se refiere al grupo del usuario
3. chmod o+rwx carta.txt
Donde "o", se refiere al resto de usuarios.
usar "a", modificar todos los atributos
4. chmod a+x miscript
Le pondr todos los atributos de ejecucin al script "miscript", para
lo ejecuten, el dueo, el grupo y otros.
Tambin puede utilizarse chmod con nmeros OCTALES

Ejercicio (cuaderno de prcticas)

Que hacen los siguientes comandos:


1. chmod u+x carta.txt
2. chmod g+rw carta.txt
3. chmod o+rx carta.txt
4. chmod a+wx miscript.sh

Cambiando los permisos


(absoluto)
Para determinar los permisos de un archivo o
directorio se utiliza el comando chmod, este
comando puede utilizar dos mtodos para
establecerlos pero utilizaremos el ms sencillo
llamado Absoluto. Este asigna un valor a cada
permiso:
4 r-lectura
2 w-escritura
1 x-ejecucin

Dependiendo los permisos que se quieran asignar se sumaran


los valores y se utilizar un valor del 0 al 7 para cada modo
(propietario, grupo, otros).
luis@kamaleon $ ls -l README
-rw-r- -r- -1usuario
users587may2317:17README

Permisos Actuales

Cambiar a:

USUARIO

GRUPO

OTROS

rwx

rwx

rwx

4+2+0

4+0+0

4+0+0

rwx

rwx

rwx

4+2+0

4+2+0

4+0+0

luis@kamaleon $ chmod 664 README


luis@kamaleon $ ls -l README
-rw-rw-r-- 1 luis usuario
587 may 23 17:17 README

Ahora demos permisos de lectura y ejecucin a Otros en el


Archivo Xvnc
luis@kamaleon

$ ls -l Xvnc

-rwxr-x- -1luisusuario1508208jun1814:07Xvnc*

Permisos Actuales

Cambiar a:

rwx

rwx

rwx

4+2+1

4+0+1

0+0+0

rwx

rwx

rwx

4+2+1

4+0+1

4+0+1

luis@kamaleon $ chmod 755 Xvnc


luis@kamaleon $ ls -l Xvnc
-rwxr-xr-x 1 luis usuario 1508208 jun 18 14:07 Xvnc*

Por ltimo aqu esta una tabla que permite saber rpidamente
que valor asignar como permiso a cualquiera de los tres
modos.

Valor

Permisos

0
1
2
3
4
5
6
7

----x
-w-wx
r-r-x
rwrwx

Ejercicio (cuaderno de practicas)


Ejecuta el comando apropiado para cambiar los
permisos al fichero datos.txt. Utiliza el modo absoluto.
usuario

grupo

otros

rw

rx

rwx

rw

rwx

r-x

r-x

rwx

r-x

Ejercicio (cuaderno de practicas)


propietario

grupo

fichero

usuario

grupo

otros

root

users

Fich1.dat

rw

alumno

root

Fich2.dat

rx

alumno2

root

Fich3.dat

rwx

rw

alumno2

users

Fich4.dat

rwx

r-x

alumno

root

Fich5.dat

r-x

alumno2

root

Fich6.dat

rwx

r-x

root

dialout

Fich7.dat

r-x

rwx

alumno

dialout

Fich8.dat

r-x

alumno2

rwx

Fich9.dat

r-x

rwx

Ejercicios (cuaderno de practicas)


1. Listar todos los archivos del directorio bin.
2. Listar todos los archivos del directorio tmp.
3. Listar todos los archivos del directorio etc que
empiecen por t en orden inverso.
4. Listar todos los archivos del directorio dev
que empiecen por tty y tengan 5 caracteres.
5. Listar todos los archivos del directorio dev
que empiecen por tty y acaben en 1,2,3 4.
6. Listar todos los archivos del directorio dev
que empiecen por t y acaben en C1.

Sigue
7. Listar todos los archivos, incluidos los ocultos, del
directorio raz.
8. Listar todos los archivos del directorio etc que
empiecen por t.
9. Listar todos los archivos del directorio usr y sus
subdirectorios.
10. Cambiarse al directorio tmp.
11. Verificar que el directorio actual ha cambiado.
12. Mostrar el da y la hora actual.
13. Con un solo comando posicionarse en el directorio
$HOME.
14. Verificar que se est en l.

Sigue
15. Listar todos los ficheros del directorio HOME.
16. Borrar todos los archivos y directorios visibles de
vuestro directorio PRUEBA.
17. Crear los directorios dir1, dir2 y dir3 en el directorio
PRUEBA. Dentro de dir1 crear el directorio dir11. Dentro
del directorio dir3 crear el directorio dir31. Dentro del
directorio dir31, crear los directorios dir311 y dir312.
18. Copiar el archivo /etc/motd a un archivo llamado
mensaje de vuestro directorio PRUEBA.
19. Copiar mensaje en dir1, dir2 y dir3.
20. Comprobar el ejercicio anterior mediante un solo
comando.

Sigue
21. Copiar los archivos del directorio rc.d que se
encuentra en /etc al directorio dir31.
22. Copiar en el directorio dir311 los archivos de /bin que
tengan una a como segunda letra y su nombre tenga
cuatro letras.
23. Copiar el directorio de otro usuario y sus
subdirectorios debajo de dir11 (incluido el propio
directorio).
24. Mover el directorio dir31 y sus subdirectorios debajo
de dir2.
25. Mostrar por pantalla los archivos ordinarios del
directorio HOME y sus subdirectorios.

Sigue
26. Ocultar el archivo mensaje del directorio dir3.
27. Borrar los archivos y directorios de dir1, incluido el
propio directorio.
28. Copiar al directorio dir312 los ficheros del
directorio /dev que empiecen
por t, acaben en una letra que vaya de la a a la b y
tengan cinco letras en
su nombre.
29. Borrar los archivos de dir312 que no acaben en b y
tengan una q como
cuarta letra.
30. Mover el directorio dir312 debajo de dir3.

Definicion de script
El guin o archivo de procesamiento por
lotes (en ingls "script") es un conjunto de
instrucciones, sentencias de control, variables y
dems elementos de programacin
generalmente almacenadas en un archivo de
texto (pueden considerarse como un archivo de
instrucciones o como un programa).
Normalmente en Unix por regla general los
script tienen el siguiente nombre : script.sh
(extensin sh). No es obligatorio.

Convertir Script a ejecutable


Para convertir un script a ejecutable debers hacer:
1. Crear el fichero
2. Crear el cdigo con una salida determinada
3. Guardar el fichero, como por ejemplo "MiScript"
4. Ponerle los atributos de ejecutable escribiendo:
chmod a+x MiScript

Ejercicio (cuaderno de prcticas)


Crea el siguiente fichero scr1.sh y escribe
en el la siguiente cadena:
echo Este es mi primer script
Guardalo y hazlo ejecutable mediante el
procedimiento que ya hemos visto.

Ver un archivo.
Para ver el contenido de un archivo podrs escribir:
cat
more
less
cat
cat <fichero>, y vers el contenido de un fichero, por ejemplo
cat carta.txt
vers el contenido de la carta, pero si la carta es demasiado
grande debers escribir un parmetro para que puedas leer
detenidamente el contenido, es "| more", entonces, para
cartas largas escribe:
cat carta.txt |more

more
more <fichero>, realiza la misma opcin de
cat carta.txt |more
pero evidentemente tendrs que escribir menos, bastar
escribir el comando de la siguiente manera: more carta.txt
less
Ya que con cat, perders el contenido del fichero por la
parte superior de la pantalla, con less, podrs navegar por
el fichero, y con los cursores podrs ir para arriba y para
abajo dentro del mismo fichero: less carta.txt
Esto se parece un poco a lo que estuvimos viendo en
MS-DOS no ?

Ejercicio (cuaderno de practicas)

Que hacen los siguientes comandos


1 cat fichero.txt
2 tac fichero.txt curioso no?
3 more fichero.txt
4 cat fichero.txt | more
5 less fichero.txt

Ver un archivo comprimido


Los archivos comprimidos suelen tener la extensin
gz.
Para ver un archivo comprimido, y sin quererlo
descomprimir podrs utilizar los comandos zcat,
zmore y zless, que realizan las mismas cosas que
cat, more y less respectivamente, pero en ficheros
NO comprimidos.

Copiar un Archivo
Para copiar un archivo debers utilizar el comando cp, este
comando es muy potente, y podrs realizar un montn de
operaciones con el, su funcionamiento es el siguiente:
cp <origen> <destino>
As, por ejemplo, si queremos copiar la carta "carta.txt" como
"MiCarta.txt", podrs escribir:
cp carta.txt MiCarta.txt

Tambin podrs indicar la ruta de origen y destino


(directorios en lo que est situado), por ejemplo,
supongamos que escribimos pwd, y nos dicen que estamos
en:
/home/javier
Queremos copiar el archivo FAQ que hay en
/usr/doc/HOWTO/ a mi directorio MisDocumentos, que se
encuentra en /home/javier/MisDocumentos, podremos
escribir:
cp /usr/doc/HOWTO/FAQ MisDocumentos/
o
cp /usr/doc/HOWTO/FAQ /home/javier/MisDocumentos/

Mover un Archivo
Mover un archivo, significa, quitarlo de su posicin actual
para fijarlo donde se le indique, esta operacin, se hace en
Linux con mv de la siguiente manera:
mv fichero_o_directorio_a_mover ruta_donde_moverlo
Supongamos que nos encontramos en: /home/javier:
Por ejemplo para mover el fichero "mbox" que est en mi
directorio al directorio MisDocumentos/javier/ que est en
/usr, escribir:
mv mbox /usr/MisDocumentos/javier
Ahora, el fichero mbox, se encuentra en el directorio javier,
que est en MisDocumentos que
est en usr, es decir: "/usr/MisDocumentos/javier"

Renombrar un Archivo
Para renombrar un archivo utilizars el comando mv de la
siguiente manera:
mv NombreOriginal NuevoNombre
Por ejemplo, renombrar el fichero mbox, a EmailSaved
mv mbox EmailSaved

Borrar un Archivo
Para borrar un archivo, es tan fcil como utilizar el comando
rm de la siguiente manera:
rm fichero_a_borrar
Ejemplo:
rm mbox

Borrar un DIRECTORIO
Para borrar un directorio debers utilizar el comando rmdir, de
la siguiente manera:
Esto es un ejemplo:
Crea un directorio que se llame ParaBorrar, con el comando
mkdir:
mkdir ParaBorrar
Vemos los ficheros que tenemos con el comando ls
ls
y lo borramos con rmdir
rmdir ParaBorrar
ls
Ya sabes, que tambin podrs crear un directorio o borrarlo,
sin necesidad de acceder a el, simplemente indicando su ruta:
mkdir /usr/doc/HOWTO/EstoEsMio
rmdir /usr/doc/HOWTO/EstoEsMio

Imprimir un Archivo
Para verter el contenido de un archivo sobre papel,
debers utilizar el comando lpr, de la siguiente
manera:
lpr Fichero_a_imprimir

Comprimir un archivo. gzip


Para comprimir un archivo con gzip, debers utilizar:
gzip ratio_compresin fichero_a_comprimir
Ejemplo:
gzip CartaExtensa.txt
Crear un fichero llamado CartaExtensa.txt.gz que
contendr el contenido de la carta CartaExtensa, pero
comprimido.
Si ahora escribes:
gzip - 9 CartaExtensa.txt
Crear un fichero, con un ratio de compresin an
mayor, con la misma informacin ms comprimida.

Ejercicio (cuaderno de prcticas)


Crea con vi un fichero amigos.txt con al
menos 5 nombres y telfonos de tus
amigos (ficticios).
Comprime el fichero
Comprime el fichero con ratio de
compresin mximo (-9)
Apunta en el cuaderno todos los pasos
que has dado.

Comprimir un directorio
Generalmente se utiliza esta estructura:
tar cvf[z] FicheroComprimido RutaAComprimir
z Usar
gzip (recomendado)
(Bastar con ver el ejemplo)
tar cvfz TodoUsuario.tgz /home
La extensin al fichero comprimido, debers indicrselo t, y
t pondrs la extensin .tgz, para indicar que se utiliz la
opcin gzip.
Tambin t y slo t, debers indicar como .tgz, o .tar.gz,
(dentro de estas dos) osea el fichero podr ser:
TodoUsuario.tgz o TodoUsuario.tar.gz

Ejercicio (cuaderno de prcticas)


Crea en tu directorio personal un
directorio compri con un fichero amigos.txt
en l. El fichero tendr al menos 5
nombres y telfonos de tus amigos
(ficticios).
Comprime el directorio.

Ejercicio (cuaderno de practicas)


Crea un directorio muchos con 3 ficheros dentro
de l. Los ficheros se llamarn nombre.txt
direccion.txt y pueblo.txt en el anotaras los datos
ficticios de una persona.
Comprime el directorio muchos con el comando
tar.
Borra el directorio muchos.
Muestra el contenido del fichero que has creado
con el comando:
tar tvfz muchos.tgz ( o tar.gz )

Descomprimir un archivo.
Para descomprimir un archivo,
gzip d fichero.gz
tar xvf fichero.tar
Descomprimir un fichero creado con tar.

Descomprimir un directorio.
tar xvf fichero.tar [-C /ruta/directorio]

Ejercicio (cuaderno de prcticas)


Descomprime los directorios y archivos
creados en ejercicios anteriores.
Si existen los ficheros o directorios sin
comprimir, brralos antes de
descomprimirlos
Comprueba que el contenido es el mismo
que antes de comprimir.

RPM Package Manager


RPM Package Manager (o RPM, originalmente llamado
Red Hat Package Manager) es una herramienta de
administracin de paquetes pensada bsicamente para
Linux. Es capaz de instalar, actualizar, desinstalar,
verificar y solicitar programas. RPM es el formato de
paquete de partida del Linux Standard Base.
Originalmente desarrollado por Red Hat para Red Hat
Linux, en la actualidad muchas distribuciones Linux lo
usan dentro de los cuales las ms destacadas son
Fedora Linux, MandrivaLinux, SuSE Linux, Conectiva
Linux y otros ms sencillos como SabiosS Linux.
Tambin se ha portado a otros sistemas operativos.

Instalar un .RPM
rpm i ProgramaAINSTALAR
rpm U ProgramaAactualizar (Upgrade)

Desinstalar un .RPM
rpm e ProgramaADesinstalar
RPM Package Manager (o RPM, originalmente llamado Red Hat
Package Manager) es una herramienta de administracin de paquetes
pensada bsicamente para Linux. Es capaz de instalar, actualizar,
desinstalar, verificar y solicitar programas.

Ejercicio (cuaderno de prcticas)


De www.nvu.com descrgate el paquete nvu
para tu versin de suse linux.
Escoge bien el producto que vas a bajarte.
Una vez descargado instlalo mediante el
procedimiento que hemos visto.
Nota: nvu es un editor libre de pginas web. Es
menos potente que el dreamweaver de windows
pero funciona en linux y no tienes que pagar por
l.
Comprueba que funciona correctamente.

Consulta de RPMs INSTALADOS


Para saber que paquetes .RPM estn instalados, ser tan
fcil como escribir:
rpm -qa
Pero, claro, esta informacin aparecer un tanto
desordenada, porque que podemos forzar su informacin y
una fcil consulta escribiendo:
rpm qa | sort | less
Te recordamos, que esto te dir todos los programas que
estn instalados va .RPM, osea, que los que hubieran sido
instalados como .tgz, (o .tar.gz, que es lo mismo), o .deb, o
cualquier otro tipo de paquete que no fuera compatible con el
.rpm, no mostrar esta informacin.

Consulta de un paquete
INSTALADO
Para saber cierta informacin sobre un paquete, bastara
poner:
rpm -qi nombre
Para consultar donde est instalado...
rpm -qil nombre
Para consultar un paquete QUE NO EST INSTALADO, y
ahora mismo lo tienes delante:
rpm -qpi nombre.xxx.xx.rpm
Si quieres saber donde se instalar
rpm -qpil nombre.xxx.xx.rpm

Ejercicio (cuaderno de prcticas)


Haz las consultas anteriores sobre el
paquete nvu que hemos instalado.

Forzar una instalacin


Para actualizar una instalacin que deseamos a toda
costa, bastar con poner:
rpm - U programa.xxx.xx.rpm
para forzarlo usamos: force
rpm - U - - force programa.xxx.xx.rpm

Ejercicio (cuaderno de prcticas)


Usa [Ctrl]+[F2], Si ests desde un terminal
1. Ve al directorio raz "/", y crea con VI una carta a un(a)
amigo(a), a la carta la llamas: "MYLETTER.txt"
2. Crea un directorio en /usr/local que se llame "amigos", de
forma que cuando hagas un ls veas tu carta
/usr/local/amigos.
3. Copia la carta "MYLETTER.txt" en el directorio "amigos"
que est en "/usr/local"
4. Renombra /usr/local/amigos, por /usr/local/mis_amigos
Para regresar al terminal inicial debers de pulsar [Ctr]+[F1]

Gestionando usuarios
Linux, como clnico de Unix, sistema nacido en Internet,
est pensado para servir a varios usuarios a la vez. Para
ello existe la cuenta de "root" o superususario, y la de los
dems usuarios del sistema.

Creando un usuario
Para crear un usuario, escribimos, entrando como root,
"useradd" sin las comillas ms el nombre del usuario. Ej.:
useradd carlos
Habrs creado un usuario sin clave de acceso. Faltar
crear una clave de acceso para el nuevo usuario creado y
para eso veremos mas tarde el comando passwd

Borrando a un usuario

Para borrar un usuario, bastar con escribir el


comando:
"userdel" y el nombre del usuario, ejemplo.:
userdel carlos

Cambio de usuario
su [options] [username]
Con su podemos hacer login en el sistema como si fueramos
otro usuario.
Si tecleamos su user comenzaremos una nueva shell como
si fueramos el usuario user
Ejemplo:
su carlos
Una vez tecleado esto nos pedir la clave del usuario carlos.
(A root no se la pedir)

Quiero cambiar la password


passwd [usuario]
Los usuarios pueden cambiar sus password con este
comando.
Root puede cambiar la password de cualquier usuario del
sistema.

EJERCICIO (cuaderno de prcticas)


Crea el usuario alfredo y establece la siguiente
password para su cuenta alboran
Cambia de usuario a alfredo y ejecuta el
comando whoami
Ejecuta el comando who para ver quin hay en
el sistema.
Borra el usuario que has creado.
Recoge en el cuaderno de prcticas los
comandos que has utilizado.

Reiniciando el sistema
reboot

Qu memoria libre tengo en el sistema?


free

Cuanto ocupa la informacin de este


directorio?
du
Cunto espacio me queda en el disco
duro?
df

Buscando ese fichero perdido


find directorio_a_buscar name nombre_del_fichero
EJEMPLOS:
Buscar el fichero mio.txt en el directorio /home/antonio:
find /home/antonio name mio.txt
Buscar el fichero mio.txt en TODO el sistema:
find / name mio.txt

Que tendr este fichero.


Comando: cat nombre_fichero
cat mio.txt
Mostrara el contenido del fichero mio.txt

Buscando cadenas en ficheros


Comando grep
Ejemplo:
grep sofia fichero.txt
Buscar sofia en el fichero de nombre fichero.txt

Sern estos dos ficheros iguales???

diff fichero1 fichero2


El comando diff compara el contenido de cualquier par de
ficheros. Nos dir las lineas que no coinciden. Con este
comando podemos saber si nuestros ficheros son iguales o
difieren en algun dato.

Ejercicio (cuaderno de prcticas)


Con que comando cambio de usuario
Con que comando puedo buscar una cadena
dentro de un fichero
Con que comando reinicio la maquina
Con que comando veo la memoria libre que hay
en el sistema
Con que comando veo el espacio que ocupa un
directorio
Con que comando puedo mostrar el contenido
de un fichero.

El archivo /etc/passwd
En el archivo /etc/passwd se localiza toda la informacin de
los usuarios del sistema. Por ejemplo, si ejecutamos como
root el siguiente comando:
# cat /etc/passwd
Veremos algo como esto:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
......

Cada lnea del archivo representa un registro nico constituido


por los campos (cada cadena separada por el smbolo de dos
puntos ":") que representan la informacin del usuario.
Analicemos la lnea para el usuario (cliente) mysql:

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

shell por defecto


path o ruta del directorio personal
comentario
ID de grupo
ID de usuario
la contrasea esta cifrada
nombre del usuario

EJERCICIO (cuaderno de prcticas)


Listar el fichero /etc/passwd y dime que
significan cada uno de los parmetros de
la linea que contiene al usuario root.

Archivo /etc/groups
El fichero de grupos contiene toda la informacin de
pertenencia a grupos, y opcionalmente elementos como la
contrasea del grupo (generalmente almacenado en gshadow
en los sistemas actuales), este fichero debe ser legible por el
mundo para que el sistema funcione correctamente. El
formato es:
nombregrupo:contrasea_cifrada:GID:miembro1,miembr
o2,miembro3
Un grupo puede no contener miembros (p. ej., no est
usado), slo un miembro o mltiples miembros, y la
contrasea es opcional (y no se suele usar).

Cada lnea del archivo representa un registro nico constituido


por los campos (cada cadena separada por el smbolo de dos
puntos ":") que representan la informacin del grupo.
Analicemos la lnea para el grupo users:

users:x:100:andres,perico,alonso,juan

GID de grupo

Nombre de los
usuarios que
pertenecen a ese
grupo

la contrasea esta cifrada


nombre del usuario
nombregrupo:contrasea_cifrada:GID:miembro1,miembro2,miembro3

Ejercicio (cuaderno de prcticas)


Dime el nombre del grupo al que
pertenecen los siguientes usuarios
(mailman, root, ftp, mail y daemon)

ENLACES HARD (DUROS)


Un enlace "hard" (hard link) es una nueva
referencia a un mismo archivo; consiste en
una nueva entrada de directorio que
apunta a un archivo ya existente y
apuntado desde otra entrada de directorio.
El contenido se encuentra en un solo lado,
pero el archivo puede ser accedido desde
varios lugares, eventualmente con
diferentes nombres.

F1.TXT
DATOS DEL FICHERO
F2.TXT

EJEMPLO
echo 'Hola todos de nuevo!' > adios
ln adios adios.ln0
ln crea un segundo nombre referido al mismo archivo; no se
hace copia, crea un enlace (link). Verificar que :
ls -l adios*
muestra un conteo de 2 en la columna de enlaces. Al crear el
enlace con el comando ln, observar que el archivo existente
va en primer lugar, luego uno o ms nombres de enlaces a
crear.

Cuando se borra un archivo con varios enlaces, slo se borra


el enlace.
El archivo es realmente borrado slo cuando desaparece el
ltimo enlace.
ln dir2 dir2ln
da error; no se puede crear un enlace hard para un directorio.

Enlaces simblicos.
Un enlace simblico (symbolic link) es un
archivo que apunta a otro archivo o
directorio.
El archivo de enlace simblico contiene
solamente la ruta del otro archivo o
directorio.

DATOS DEL FICHERO


F1.TXT

F2.TXT
F1.TXT

EJEMPLO
ln -s nota nota.ls0
crea nota.ls0 como enlace simblico.
ln -s dir2 dir2ls
crea dir2ls como enlace simblico hacia un directorio.
ls -l
muestra la letra l en el tipo de archivo para indicar que es un
enlace simblico.
ls dir2
ls dir2ls
muestran el mismo contenido de archivos.
ls -l dir2ls
muestra que es un enlace simblico e indica hacia donde
apunta.

Un enlace simblico se borra con rm, y no con rmdir, puesto


que el enlace simblico es un archivo y no un directorio, an
cuando sea un enlace simblico hacia un directorio.
cuando se borra un enlace simblico, slo se borra un archivo
puntero, y no el objeto real.

Variables de entorno

$BASH

El path al binario Bash


bash$ echo $BASH
/bin/bash
$BASH_VERSION

version de Bash instalada en el sistema


bash$ echo $BASH_VERSION
3.00.14(1)-release
tcsh% echo $BASH_VERSION
BASH_VERSION: Undefined variable.

Mirar $BASH_VERSION es un buen metodo para


saber que shell se est ejecutando, normalmente
$SHELL no proporciona una respuesta correcta.

$GROUPS

Grupos al que pertenece el usuario


root# echo $GROUPS
0

$HOME

home directory del usuario, usualmente


/home/username

$HOSTNAME

El comando hostname asigna el nombre del


sistema en el momento de boot en el script
init.
$HOSTTYPE

host type
como $MACHTYPE, identifica el sistema
hardware.

bash$ echo $HOSTTYPE


i686

$PATH

path, usualmente /usr/bin/,


/usr/X11R6/bin/, /usr/local/bin, etc.
Cuando se ejecuta un comando, la shell hace
una busqueda en los directorios de la variable
path en busca de ejecutables.
bash$ echo $PATH
/
bin:/usr/bin:/usr/local/bin:/usr/X11R6/
bin:/sbin:/usr/sbin
PATH=${PATH}:/opt/bin aade el directorio /opt/bin al actual path.

$PPID
El $PPID de un proceso es el process
ID (pid) de su proceso padre.
$PWD
working directory (directorio actual)
$SECONDS
Numero de Segundos que el script lleva
ejecutandose.

$UID
user ID number
ver el fichero /etc/passwd

ENV para ver el entono

También podría gustarte