Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema operativo que implementa las caracterisisticas del sistema operativo UNIX:
Multitarea
Multiusuario
Multiplataforma
Sistema Operativo
Sistema de computo
Es un sistema que se utiliza para realizar calculos númericos de manera rapida y automatizada.
CPU Unidad de central de proceso, procesador, dispositivo digital que realiza las operaciones. RAM Memoria
de acceso aleatorio, espacion donde se almacenan los datos y el cádigo al momento de ser utilizados.
HD Disco duro, unidad de almancenamiento permanente de los datos y el codigo, cuando no estan siendo
utilizados.
Terminal Dispositivo que consta de monitor, teclado y puerto de comunicación, conectado al servidor que
permite el acceso al usuario al sistema.
Conexión actual
Se realiza utilizando un emulador de terminal utilizando el protocolo de red tcp/ip y el protocolo de
comunicacion o servicio ssh, previamente se utilizo telnet, pero actualmente no se recomienda su uso por ser
un protocolo inseguro.
Al conectarse la primera vez, solicita la aceptación de la clave de encriptación del trafico entre el
cliente y el servidor:
Al aceptar:
Se debe proporcionar el nombre del usuario y su correspondiente contraseña.
Luego de proporcionar un usuario y claves válidos el sistema nos proporciona un shell, un shell es la interface
del usuario hacia el sistema operativo, una de las tareas del sjhell es permitirlea al usuario ejecutar
programas en el servidor:
$id
uid=1000(lcarrera) gid=1000(lcarrera) grupos=1000(lcarrera),10(wheel)
contexto=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$hostname
centos-base
$uname
Linux
$cal
junio de 2019
do lu ma mi ju vi sá
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
$date
sáb jun 8 15:53:11 -05 2019
$ who
root tty1 2019-06-08 14:54
user2 pts/0 2019-06-08 15:19 (172.17.2.52)
user8 pts/1 2019-06-08 15:19 (172.17.2.61)
user1 pts/2 2019-06-08 15:20 (172.17.2.51)
user7 pts/3 2019-06-08 15:46 (172.17.2.59)
user6 pts/4 2019-06-08 15:42 (172.17.2.58)
user3 pts/5 2019-06-08 15:23 (172.17.2.53)
user5 pts/6 2019-06-08 15:33 (172.17.0.57)
user11 pts/7 2019-06-08 15:45 (172.17.2.54)
user10 pts/8 2019-06-08 15:41 (172.17.2.64)
lcarrera pts/9 2019-06-08 15:42 (172.17.2.68)
user4 pts/10 2019-06-08 15:42 (172.17.2.55)
user9 pts/11 2019-06-08 15:46 (172.17.2.66)
]$ w
15:54:13 up 1:01, 13 users, load average: 0,01, 0,02, 0,05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 14:54 11:57 0.47s 0.47s -bash
user2 pts/0 172.17.2.52 15:19 29.00s 0.03s 0.03s -bash
user8 pts/1 172.17.2.61 15:19 5.00s 0.04s 0.04s -bash
user1 pts/2 172.17.2.51 15:20 4:53 0.03s 0.03s -bash
user7 pts/3 172.17.2.59 15:46 37.00s 0.03s 0.03s -bash
user6 pts/4 172.17.2.58 15:42 2:37 0.03s 0.03s -bash
user3 pts/5 172.17.2.53 15:23 30:39 0.01s 0.01s -bash
user5 pts/6 172.17.0.57 15:33 21.00s 0.03s 0.03s -bash
user11 pts/7 172.17.2.54 15:45 13.00s 0.03s 0.03s -bash
user10 pts/8 172.17.2.64 15:41 37.00s 0.03s 0.03s -bash
lcarrera pts/9 172.17.2.68 15:42 5.00s 0.04s 0.00s w
user4 pts/10 172.17.2.55 15:42 5.00s 0.05s 0.05s -bash
user9 pts/11 172.17.2.66 15:46 37.00s 0.05s 0.05s -bash
Estos comandos estan diseñados para realizar un acción simple, los gtes comandos serán utilizados en el
transcurso del laboratorio:
id Proporciona los datos de identifación del usuario: uid (user id), gid (group id)
hostname Proporciona el nombre de la estación
uname Proporciona el nombre del sistema operativo
cal Proporciona el calendario del mes actual
date Proporciona la fecha y hora del sistema
w Proporciona la lista de usuarios activos en el sistema
who Proporciona la lista de usuarios activos en el sistema
cat Muestra el contenido de un archivio
head Muestra las 10 primeras lineas de un archivo
tail Muestra las 10 últimas lineas de un archivo
write Permite enviar un mensaje a otro usuario activo
talk Inicia un chat iteractivo con otro usuario del sistema
cut Extrae columnas de un archivo de texto
grep Extrae lineas de un archivo de texto, las lineas deben tener un contenido especifico.
ls (list) Lista el contenido de un directorio.
Se puede obtener información adicional sobre el proposito de un comando con el comando man:
$man cal
Distribución
Son un conjunto de programas que acompañan al sistema operativo (Linux).: redhat, centos, fedora, debian,
ubuntu, slackware, suse, archlinux......
En el laboratorio utilizaremos la distribución CentOS la cual está basada en el codigo binario de RedHAT, por
lo tanto compartiran muchas caracteristicas.
Una caracteristica del sistema es que la configuración se realiza utilizando archivos de texto:
nombre
Nombre con el cual el usuario ingresara al sistema
usuario
Codigo de identificación del grupo principal del usuario, los archivos y procesos se
gid
crean identificados con este código.
Directorio Ruta del directorio en el sistema de archivos en el cual el usuario tieme todos los
hogar permisos.
programa
Programa que se ejecutará cada vez que el usuario ingrese al sistema.
de inicio
El Shell
EL shell es un programa que le permite al usuario interactuar con el sistema operativo, para que un programa
sea considerado como un shell, debe tener las sgtes caracteristicas:
Linea de comando
Es el area comprendida entre el prompt y la digitación de la tecla enter
$ enter
Linea de comando
El contenido de la linea de comandos es analizado por el shell en busca de caracteres especiales que
activaran una función especial del shell.
Ejecucion de comandos:
Donde:
comando
nombre del programa a ejecutar, corresponde con el nombre del archivo
binario del programa.
opciones
Caracteres precedidos de guión que modifican el comportamiento del
comando.
parametros
Objetos sobre los que actua el comando, generalmente nombres de archivos.
Secuencias de programación
EL ejecutar una secuencia de programación, aparecera el prompt secundariom para indicar que la acción se a
divido en varias lineas, el prompt secundario está definido por la variable de entorno PS2
$inicio
>do
>comandos
>creacion de variables
>estructuras de control
>..
>donde
$
Creación de variables
Una variable es una area de memoria con nombre que almacena un valor, las variables pueden ser creadas
por el sistema (Variables del sistema) o por el usuario (variables de usuario).
Los nombres de las variables del sistema se escriben en mayúsculas y las del usuario en minúsculas.
$nombre=valor
Para ver el entorno utilizamos el comando set,
PATH Indica los directorios donde el shell debe buscar los ejecutables. PS1 Definicion del prompt principal
PS2 Definición del prompt secundario. HOME Ruta del directorio hogar del usuario. MAIL Ruta de la casilla de
correo del usuario. USER Nombre del usuario.
Expansion de variables
La expansion de variables es la acción realizada por el shell cuando en la linea de comandos aparece el
simbolo $ el shell reemplazara el simbolo $ y la cadena que los sigue por el contenido de la variable que
tenga el mismo nombre que la cadena.
Se utiliza cuando los nombres de los archivos con los cuales se va atrabajar cumple con un patron el shell
reconce el sgte conjuntos de caracteres para realizar esta acción.
Caracteres Significado
[abc] Reemplaza un caracter, siempre y cuando sea uno de los encerrados entre los corchetes
[a-z]
[A-Z] Reemplaza un caracter, siempre y cuando sea uno de los compredidos en el rango.
[1-9]
Reemplaza un caracter, siempre y cuando NO sea uno de los indicados entre los
[^abc]
corchetes.
ejemplos
$ ls /dev/tty*
/dev/tty /dev/tty17 /dev/tty26 /dev/tty35 /dev/tty44 /dev/tty53
/dev/tty0 /dev/tty18 /dev/tty27 /dev/tty36 /dev/tty45 /dev/tty54
/dev/tty1 /dev/tty19 /dev/tty28 /dev/tty37 /dev/tty46 /dev/tty55
/dev/tty10 /dev/tty2 /dev/tty29 /dev/tty38 /dev/tty47 /dev/tty56
/dev/tty11 /dev/tty20 /dev/tty3 /dev/tty39 /dev/tty48 /dev/tty57
/dev/tty12 /dev/tty21 /dev/tty30 /dev/tty4 /dev/tty49 /dev/tty58
/dev/tty13 /dev/tty22 /dev/tty31 /dev/tty40 /dev/tty5 /dev/tty59
/dev/tty14 /dev/tty23 /dev/tty32 /dev/tty41 /dev/tty50 /dev/tty6
/dev/tty15 /dev/tty24 /dev/tty33 /dev/tty42 /dev/tty51 /dev/tty60
/dev/tty16 /dev/tty25 /dev/tty34 /dev/tty43 /dev/tty52 /dev/tty61
$ ls /dev/tty?
/dev/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8
/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9
$ ls /dev/tty[246]
/dev/tty2 /dev/tty4 /dev/tty6
$ ls /dev/tty[246][15]
/dev/tty21 /dev/tty25 /dev/tty41 /dev/tty45 /dev/tty61
$ ls /dev/tty[1][1-9]
/dev/tty11 /dev/tty13 /dev/tty15 /dev/tty17 /dev/tty19
/dev/tty12 /dev/tty14 /dev/tty16 /dev/tty18
$ ls /dev/tty?[1-9]
/dev/tty11 /dev/tty19 /dev/tty28 /dev/tty37 /dev/tty46 /dev/tty55
/dev/tty12 /dev/tty21 /dev/tty29 /dev/tty38 /dev/tty47 /dev/tty56
/dev/tty13 /dev/tty22 /dev/tty31 /dev/tty39 /dev/tty48 /dev/tty57
/dev/tty14 /dev/tty23 /dev/tty32 /dev/tty41 /dev/tty49 /dev/tty58
/dev/tty15 /dev/tty24 /dev/tty33 /dev/tty42 /dev/tty51 /dev/tty59
/dev/tty16 /dev/tty25 /dev/tty34 /dev/tty43 /dev/tty52 /dev/tty61
/dev/tty17 /dev/tty26 /dev/tty35 /dev/tty44 /dev/tty53 /dev/tty62
/dev/tty18 /dev/tty27 /dev/tty36 /dev/tty45 /dev/tty54 /dev/tty63
$ ls /dev/tty[246]
/dev/tty2 /dev/tty4 /dev/tty6
$ ls /dev/tty[^246]
/dev/tty0 /dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty8 /dev/tty9
Cuando ejecutamos un comando y el sistema operativo le ha asignado tiempo de ejecución en el CPU y area
de memoria para el código y sus datos, se dice que hemos creado un proceso.
stdin Archivo de entrada estandar, es el archivo de donde el proceso obtendra los datos que debe manejar.
Se identifica con el descriptor de archivos 0
stdout Archivo de salida estandar, es el archivo donde el proceso almacenara los resultados. Se identifica con
el descriptor de archivo 1.
stderr Archivo de salida de error estandar, es el archivo donde se almacenaran los mensajes de error
producidos al ejecutar el proceso, se identifica por el descriptor de archivos 2.
Inicialmente el shell asocia estos tres descriptores a un solo archivo, el archivo que representa el terminal del
usuario.
La redirección de entrada y salida es la caracteristica del shell que le permite variar las asociaciones de
archivo iniciales del proceso.
Redirección de salida.
En este caso la salida estandar (stdout) es enviada a otro archivo, el shell realiza la redireccion cuando
encuentra los sgtes simbolos:
ejemplos
En caso de necesitar redirigir la salida de error estandar se debe especificar en la linea de comandos a la
izquierda del simbolo > el descriptor de archivos 2.
Ejemplo
$ ls -l junio
-rw-rw-r--. 1 lcarrera lcarrera 181 jun 8 19:12 junio
$ ls -l junio datos
ls: no se puede acceder a datos: No existe el fichero o el directorio
-rw-rw-r--. 1 lcarrera lcarrera 181 jun 8 19:12 junio
ls -l junio datos 2> errores
-rw-rw-r--. 1 lcarrera lcarrera 181 jun 8 19:12 junio
$ ls
errores junio
$ cat errores
ls: no se puede acceder a datos: No existe el fichero o el directorio
Redirección de entrada
En este caso los datos de entrada (stdin) ya no se toman del terminal, sino, del archivo indicado a la derecha
del simbolo <
El comando abrira el archivo y utilizara su contenido como si hubiese sido digitado del terminal.
Ejemplo
Utiliza el valor de "etiqueta" como delimitador del contenido, todo lo que se encuentre entre los delimitadores
se utilizara como entrada para el comando, al encontrar la útima etiqueta al final de la linea.
Ejemplo
La salida del comando1 es usado como entrada del comando2, la salida del comando2 es usada como
entrada para el comando3 .....
ejemplos:
Forma 2:
comando2 `comando1`
Ejemplos
$ ls -l `which cal`
-rwxr-xr-x. 1 root root 37736 mar 14 05:37 /usr/bin/cal
$ usuarios=`grep "user" /etc/passwd |wc -l`
$ echo $usuarios
20
Ejercicios
1. Crear un archivo que contenga los nombres de los usuarios conectados al sistema.
2. Crear una variable que contenga los nombres de los usuarios conectados al sistema.
3. Crear un archivo que contenga las lineas 10 a 15 del archivo /etc/passwd.
4. Crear un archivo que contenga la lista de usuarios cuyo nomre inicia con la cadena user y su directorio
hogar.
5. Crear un archivo qye contenga la lista de usuarios conectados al sistema y su dirección ip de conexion.
tiempo: 30min