You are on page 1of 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 dos tres unouno unodos

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 dos tres unouno unodos

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 dos tres unouno unodos

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
dos

unouno
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

Datos.doc

estavacio

EJERCICIO (cuaderno de practicas)


Ahora el directorio home debe de contener lo siguiente.

activ1

datos2

Datos.doc

estavacio

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 Nombre del fichero

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

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- - 1 usuario users 587 may 23 17:17 README

USUARIO rwx
Permisos Actuales 4+2+0 6 rwx

GRUPO rwx
4+0+0 4 rwx

OTROS rwx
4+0+0 4 rwx

Cambiar a:

4+2+0
6

4+2+0
6

4+0+0
4

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- - -

1 luis

usuario 1508208 jun 18 14:07 Xvnc* rwx rwx 4+0+1 5 rwx 0+0+0 0

Permisos Actuales

4+2+1 7

rwx Cambiar a: 4+2+1 7

rwx 4+0+1 5

rwx 4+0+1 5

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 0 1 2 3 4 5 6 7

Permisos ----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 x rx x w w x

otros w r rw r-x x r-x

1
2 3 4 5 6

rw x rwx rwx r-x rwx

Ejercicio (cuaderno de practicas)


propietario root alumno alumno2 grupo users root root fichero Fich1.dat Fich2.dat Fich3.dat usuario rw w rwx grupo x rx x otros w r rw

alumno2
alumno alumno2

users
root root

Fich4.dat
Fich5.dat Fich6.dat

rwx
r-x rwx

w
w w

r-x
x r-x

root
alumno alumno2

dialout
dialout rwx

Fich7.dat
Fich8.dat Fich9.dat

r-x
x r-x

rwx
r-x rwx

w
w w

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 la contrasea esta cifrada nombre del usuario

Nombre de los usuarios que pertenecen a ese grupo

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

You might also like