31
Introducción al SO Linux. Archivos y directorios

Introduccion a linux_archivos_y_directorios (1)

Embed Size (px)

Citation preview

Introducción al SO Linux.

Archivos y directorios

NORMAS DE ESTUDIO OBLIGATORIAS

Cada uno de las órdenes que veamos en clase deberá ser copiada en el cuaderno de la asignatura, especificando claramente su sintaxis.

Cada una de los ejemplos o ejercicios que resolvamos en clase también quedarán reflejados en nuestro cuaderno, con las anotaciones necesarias para entender perfectamente su funcionamiento.

En ocasiones trataremos puntos que no están reflejados en el libro de texto. Estas cuestiones también quedarán guardadas en nuestro cuaderno de trabajo.

Características generales de Linux

Es un SW de libre distribución. Es un SO multiusuario. Consta de dos componentes básicos:

Shell: En él se introducen órdenes, se ejecutan programas, etc. (Command.com(MS-DOS), Explorador de Windows)

Núcleo: Es la parte del SO que interactúa con el HW.

Estas características son generales y válidas para todas las versiones de UNIX/LINUX.

Introducción al sistema multiusuario Linux

Historia y versiones. GNU Linux: Creado por Linus B. Torvalds, estudiante que intentó crear

un SO que aprovechase todas las posibilidades de su PC. LA primera versión estable de Linux fue la 1.0 (1994).

Linux se diseño como un sistema clónico de UNIX, pero en la actualidad es un SO completo.

Distribución PaqueteMandrake Rpm

Red Hat Rpm

Debian Deb

Gentoo Src

SuSE Rpm

Slackware Tar.gz

Lycoris Rpm

Beehive Tar.gz

Turbolinux Rpm

Caldera rpm

Características generales. Multiusuario y multitarea. Algoritmos por prioridades o multinivel. Memoria virtual. Sistema de archivos jerárquico.1

Comunicación con otros ordenadores. Sistemas de seguridad. Interfaz de texto/gráfica.

1.-Linux gestiona los dispositivos como si fueran directorios

El sistema Linux internamente

Componentes del SO: -Núcleo. -Shell. -Sistema de archivos. -Órdenes.

El núcleo (kernel) y el Shell. Núcleo (Kernel).

El núcleo sirve para interactuar con el HW proporcionando servicios que son utilizados por otros programas para utilizar el HW sin tenerse que preocupar de su gestión.

Cada programa se relaciona con la máquina a través del núcleo, mediante llamadas al sistema.

El núcleo se carga en memoria al arrancar la máquina y actúa directamente con los elementos físicos. Permanece en ella hasta que ésta se apaga.

Shell. Es el interprete de comandos u órdenes de Linux. Actúa como interfaz

de comunicación entre el usuario y el ordenador. Cada usuario conectado tendrá un Shell para su uso. El shell se carga

automáticamente cuando se accede al fichero /etc/passwd. Posteriormente en el fichero .profile se personaliza el entorno de trabajo.

El sistema Linux internamente

Funciones del Shell. Además de un interprete de comandos, el shell es un lenguaje de

programación. Sobre él se pueden ejecutar órdenes con las que se pueden crear programas (guiones).

En el momento que un usuario se conecta a Linux, se inicia un programa del Shell. Este primer programa es un Shell de presentación.

Realizada esta operación se muestra en pantalla el símbolo $, para que el usuario pueda introducir sus órdenes.

Prácticamente todas las órdenes de Linux son programas que están almacenados en el sistema de archivos.

$orden [-modificadores][argumentos]

El sistema Linux internamente

Interfaces de usuario. Son las partes del SO que permiten al usuario interactuar con Linux. La interfaz primaria de Linux es tipo texto. Existen interfaces gráficas como:X Windows, Open Look, GNOME,

KDE. Desde el entorno gráfico podemos abrir nuevas sesiones de usuario

con la combinación de las teclas Ctrl+Alt+F1, Ctrl+Alt+F2….. En cada una de ellas aparecerá un nuevo terminal y se pedirá un

login y un pasword. Podemos pasar de unas a otras y salir al entorno gráfico con

Ctrl+Alt+F7.

ACTIVIDADES

Características de: Interfaz gráfica Xwindows Interfaz gráfica Open Look KDE GNOME

Procedimiento de conexión y desconexión

Normalmente si la contraseña introducida es correcta, el sistema carga un shell para ese usuario y aparecerá un símbolo del sistema, que variará dependiendo del tipo de shell asignado ($ para usuarios y # para administrador, aunque esto depende del shell que se cargue).

Cuando el administrador da de alta a un nuevo usuario, además de asignarle el nombre, le asigna un número de identificación de usuario (uid).

Además a cada usuario se le incluye en un grupo de trabajo (gid), que también tiene asociado un número.

La información correspondiente al uid y al gid de cada usuario puede ser conocida mendiante la orden id: $id

Órdenes en Linux

Podemos ejecutarlas en modo texto o gráfico. Formato de las órdenes:

En una misma línea podemos introducir más de una orden Cada orden se separa de la siguiente mediante espacios en blanco. Primero se introduce la orden seguida de sus argumentos o

parámetros. Estos deben ir separados por espacios en blanco.

Orden [-opciones] [argumentos] Orden: Indica la acción a realizar. Opciones: Se introducen seguidas del carácter – Argumentos: Puede ser un archivo o directorio. Se

utilizan como entrada del comando

Órdenes en Linux

Orden Sintáxis Función

clear clear Limpia la pantalla en modo comando.

date date [-u|-utc|-universal] [MMDDhhmm[[CC]YY][.ss]]$ date

Presenta en pantalla el día y la hora que tiene el equipo en ese momento. Muestra, de izquierda a derecha, el día de la semana, mes, día del mes, hora, meridiano y año.

cal cal [-smjy13] [month] year]$ cal 1 1999

Calendario perpetuo que incorpora el sistema. Nos permite ver calendarios completos de otros años o calendarios de un mes determinado.

who who [options] [file | ARG1 ARG2]$ who

Muestra por pantalla una línea por cada usuario que en ese momento está conectado al sistema. Muestra de izda a drcha el nombre de presentación del usuario, el número de terminal y la fecha y hora de presentación. Una variedad de este comando es who i am, que sólo muestra información referente al usuario conectado

Órdenes en Linux

Orden Sintáxis Funciónsu su nombreusuario

su rootCambia del usuario actual al indicado. El comando "su" permite abrir una sesión con el ID de otro usuario.

sudo sudo opcion comando (lo ejecuta un usuario normal)

sudo su

Permitir a un usuario común hacer tareas de administración que solo puede hacer el SuperUsuario (Administrador).

passwd passwd [-f | -g | -s | -q] [name]

$ passwdEsta orden se introduce sin parámetros o modificadores. Permite al usuario cambiar o asignar una contraseña.

uname uname [-asnrvm]

$ unameMuestra información como el SO, versión , tipo de ordenador desde el que nos conectamos, etc.

logname logname Esta orden tiene como misión mostrar el contenido de la variable logname. Esta variable contiene el nombre del usuario conectado al ordenador.

id id [-aZGgnru] [user] Muestra el número de identificación y el grupo al que pertenece el usuario.

Actividades

Busca información sobre: ¿Para qué utiliza Linux el fichero passwd? ¿En qué directorio podemos encontrarlo? ¿Para qué utiliza Linux el fichero .profile? ¿En que directorio podemos encontrarlo?

ACTIVIDAD

¿Qué órdenes debemos dar para responder a las siguientes cuestiones?: Se nos ha olvidado nuestro nombre de usuario, o tenemos varias

sesiones abiertas, cada una con una cuenta de usuario distinta y no sabemos cuál es el usuario de la sesión que estamos usando.

Queremos saber si el año 2002 fue bisiesto. Para esto hay que comprobar que el mes de febrero tenía 28 o 29 días.

Debemos cambiar la password de nuestro usuario a “passwordnueva”.

Volver a cambiar la contraseña a la que teníamos inicialmente.

Estructura del sistema Linux

La estructura es jerárquica, en forma de árbol invertido.

Se parte de un directorio principal root, representado por el carácter /.

Archivos y directorios: Podemos utilizar cualquier carácter para nombrar a los

archivos, a excepción del carácter /. Es recomendable no utilizar caracteres especiales, acentos,

etc. No se pueden incluir espacios en blanco. No usar: ! # ( ) ‘ “ | < > @ $ { } * ? \ Tab Espacio Retroceso + - Linux diferencia las minúsculas de las mayúsculas.

Estructura del sistema Linux

Los tipos de archivos en Linux: Archivos ordinarios.

Guardan la información con la que trabajan los usuarios (texto, programas, gráficos, etc).

Enlaces físicos. No es realmente un tipo de archivo, sino un segundo nombre asignado a

un archivo. Enlaces simbólicos.

Se utilizan para asignar más de un nombre a un archivo. No sirven para directorios. Es un archivo que sólo contiene el nombre de otro archivo.

Directorios. Son archivos especiales que contienen referencias a otros archivos.

Archivos especiales. Suelen representar dispositivos físicos como unidades de

almacenamiento, impresoras, etc. Linux trata los archivos especiales como si fueran ordinarios.

Estructura del sistema Linux Estructura jerárquica de archivos y directorios:

En Windows, cada unidad de disco se identifica como una carpeta básica que sirve de raíz a otras. En Linux, existe una única raíz llamada / de la que cuelgan todos los ficheros y directorios, y que es independiente de los dispositivos que estén conectados al ordenador.

No hay límites en la cantidad de archivos y directorios a crear dentro de un directorio.

Ejemplo de una estructura típica en Linux $pwd Mostrará por pantalla la ruta absoluta en la que estamos situados.

/

usr dev home

docu1 sbin bin lib inet pts francis gema miguel

datos

Public_htm

Estructura del sistema Linux Metacaracteres.

Son caracteres con significado especial

Caminos en Linux. Los nombres completos de los caminos absolutos van desde el directorio

raíz hasta el propio archivo o directorio. En linuz también hay caminos relativos. Su utilización es similar a DOS y

también existen los directorios . Y ..

Carácter Acción

? Sustituye a un solo carácter

* Sustituye a cualquier carácter o conjunto de caracteres

[ ] Cuando se utilizan como parte de nombres de archivo o directorio, representan un solo carácter de los incluidos entre los corchetes, que sustituirán al carácter en el nombre de archivo o directorio en la posición en la que estén estos corchetes.

! Permite la negación o exclusión de caracteres

Estructura del sistema Linux

/. Raíz del sistema de archivos. /dev Dispositivos que estén físicamente instalados en el

PC. /etc Ficheros de configuración del sistema. /bin Mayoría de los ficheros ejecutables. /lib Librerías compartidas. /var Información temporal de los programas. /home Directorios home de los usuarios. /home/Alex /sbin Programas únicamente accesibles por el

superusuario /usr Programas de uso común para todos los usuarios. /usr/man Manuales accesibles con el comando man /tmp Directorio temporal usado por algunos programas.

Estructura del sistema Linux

Variables de entorno: Una variable de entorno es un objeto designado para contener información usada por una o más aplicaciones $# Nº de argumentos recibidos $* Todos los argumentos $- Opciones dadas $? Valor devuelto por el último comando $$ Identificador del proceso actual. $HOME Directorio del usuario $IFS Lista de caracteres que se utilizan como separadores de

argumentos $MAIL Archivo donde se almacena el correo electrónico del

usuario. $PS1 Prompt del usuario $PS2 Prompt de continuación de línea $PATH Lista de directorios de búsqueda para los comandos.

Directorios en Linux

Órdenes para el manejo de directorios.

Orden Sintáxis Función

ls ls [options] [file] Lista por la salida estándar los archivos contenidos en el directorio en el que estamos situados.

cd cd [directory] Sirve para cambiarse de un directorio a otro dentro de la estructura que tengamos en ese momento.

pwd pwd Indica cuál es el directorio en el que estamos situados.

mkdir mkdir [directory] Sirve para crear nuevos directorio. Hay que tener en cuenta que para usar este comando debemos considerar rutas.

rmdir rmdir [directory] Sirve para eliminar directorios. En principio el directorio debe estar vacío. Si utilizamos el parámetro –r, se eliminará el directorio en cuestión y todo lo que contiene.

Actividad para clase

Crearemos una estructura de directorios en el directorio home. Hay que tener en cuenta que si la sesión pertenece al usuario user1 el directorio home sería /home/user1. Crearemos un directorio llamado carpeta, dentro del cual crearemos otros tres directorios: uno, dos, y tres. Y dentro del directorio tres los direcotorios A y B.

Nos situamos en el directorio tres y retrocedemos hasta el directorio carpeta.

Borramos el directorio tres con todo su contenido.

Archivos en LinuxOrden

ArchivosSintáxis Función

cat cat [options] [file] Permite visualizar en pantalla el contenido de un archivo.

cp cp [options] [file] filepathcp [options] [file] [directory]

Sirve para copiar archivos.

rm rm [options] [file] Con esta orden podemos eliminar archivos.

mv mv [options] [source] [target] Permite cambiar el fichero de un directorio a otro. Si lo que queremos es cambiar el nombre de un archivo dentro del directorio activo, tenemos que tener en cuenta que es obligatorio incluir el nuevo nombre, es decir, el nombre de destino.

ln ln [options] [source] [target]ln [options] [source] [directory]

Permite asignar a un archivo existente un segundo nombre.

sort sort [options] [file] Ordena alfabéticamente las líneas que contiene un archivo. La ordenación es de mayor a menor. Es importante tener en cuenta que hay diferencia entre mayúsculas y minúsculas.-r realiza la ordenación en orden inverso.+n indica que la ordenación se hará por el campo que ocupa la posición n.

more more [options] [-num] [+/pattern] [+ linenum] [file] Parecido a cat pero si el contenido del archivo ocupa más de una pantalla, con more lo veremos pantalla a pantalla.

tail tail nombrefichero Muestra las últimas diez líneas del fichero nombrefichero.

grep grep [options] PATTERN [file]grep [options] [-e PATTERN | file] [file]

Permite buscar palabras y cadenas de caracteres en un archivo especificado

ACTIVIDAD

Órdenes para el manejo de archivos. Prueba cada una de las siguiente órdenes y comenta los resultados.

EJEMPLOS: $ls > listado $cat listado $cp doc1 doc 2 $cp /usr/contable/doc1 /dev/doc2 $rm /usr/contable/doc1 $mv doc1 doc2 $mv /home/user1/carpeta/uno/arch2 /home/carpeta/user1/dos $ln doc1 doc2 $sort –r +2 doc1 $more doc1 $grep ‘pedro’ doc1

Permisos y derechos en Linux

Linux es un SO diseñado especialmente para trabajar en red, por eso la seguridad es un elemento fundamental.

Los permisos de los usuarios se establecen en tres niveles: Permisos del propietario. Permisos del grupo. Permisos del resto de usuarios.

Usuarios en Linux: El administrador crea usuarios y les otorga permisos. Estos

privilegios afectan tanto al directorio home de cada usuario, como a los directorios o archivos que el administrador decida.

Propietario es aquel usuario que crea un archivo dentro de su directorio de trabajo o en un directorio sobre el que tenga derechos.

A los usuarios que no pertenecen al grupo de trabajo de quien creó el archivo se les denomina reston de usuarios.

Permisos y derechos en Linux

Tipos de permisos en Linux: En Linux cada archivo queda identificado por diez caracteres

(MÁCARA). El 1º por la izda indica el tipo de archivo que es. Los 9 siguientes en bloque de tres hacen referencia a los permisos

concedidos respectivamente a: propietario, grupo, resto.

Permiso Identifica

- Sin permiso

r Permiso de lectura

w Permiso de escritura

x Permiso de ejecución

Carácter Identifica

- Archivo ordinario

d Directorio

b Archivo de bloques especiales

c Archivo de caracteres especiales

l Archivo de vínculo o enlace

p Archivo especial de cauce

Permisos y derechos en Linux

Tipos de permisos en Linux: La orden chmod permite modificar la máscara para que se puedan

realizar más o menos operaciones sobre archivos o directorios. Los bloque de tres caracteres a partir del segundo de la máscara

corresponden, respectivamente, al propietario, al grupo y al resto de usuarios.

Si no se especifica el tipo de usuario lo que haremos será realizar la operación sobre todos los usuarios a la vez

Permiso Identifica Opciones

chmod chmod [options] [mode][file]Sin permiso [-R]

Carácter Acción

- Elimina derechos

+ Añade derechos

= Asigna permisos especificados

Carácter Actúa sobre

u Propietario

g Grupo al que pertenece el usuario

o Resto de usuarios

ACTIVIDAD

Crea el archivo doc1 y describe el resultado de aplicar los permisos siguientes en Linux:

Carácter Identifica

$chmod g+x doc1 Se otorga permiso de ejecución al grupo al que pertenece el archivo llamado doc1

$chmod rwx doc1 Se asignan los privilegios de lectura, escritura y ejecución a todos los usuarios para el archivo doc1

$chmod go-wx doc1 Se quitan privilegios de escritura y ejecución al gurpo y al resto de usuarios del archivo doc1

$chmod =x doc1 Asigna a todos los usuarios el permiso de ejecución. Esta misma orden podría ser $chmod ugo+x doc1.

$chmod = doc1 Quita todos los privilegios a todos los usuarios del archivo doc1

Impresión de archivos

Linux incorpora programas y utilidades para la impresión de archivos.

Estos programas se aglutinan en el sistema lp, que incluye la mayoría de las utilidades para lanzar trabajos de impresión, cancelarlos, controlar el spool, etc.

También se puede realizar esta operación desde el entorno gráfico.

Actividades

1. Entra en el sistema con el nombre asignado por el administrador.

2. Averigua qué usuarios están identificados ante el sistema.3. Identifica el sistema en el que estamos trabajando.4. Realiza los mismos ejercicios sobre archivos y directorios

(crear, eliminar,…) de las unidades de MSDOS; el directorio principal de trabajo de cada usuario es el directorio home. Podrás encontrar dichos enunciados en las diapositivas de MSDOS.

5. Copia, desde donde diga el profesor, el siguiente fichero, llamado coches, a nuestro directorio personal de trabajo.

RENAULT:CLIO:AZUL:1200:85CV SEAT:IBIZA:BLANCO:1900:140CV CITROEN:ZX:AZUL:1900:95CV SEAT:LEON:VERDE:1400:120CV

Actividades

7. Muestra por pantalla las últimas dos líneas de este fichero.8. Ordena el fichero por marcas y visualízalo.9. Ordena el fichero por modelos y visualízalo.10. Busca en el fichero anterior las líneas en las que el color sea

BLANCO.11. Crea un archivo llamado pruebas y posteriormente

comprueba sus privilegios.12. Crea un enlace al archivo prueba, llamado enlace, y

comprueba sus privilegios.13. Imprime el contenido del archivo coches.14. Confecciona una tabla indicando la sintaxis y para que sirven

las siguientes órdenes: clear, date, cat, who, passwd, ls, scrt, chmod.