PDF de programación - Problemas de programación en UNIX/Linux

Imágen de pdf Problemas de programación en UNIX/Linux

Problemas de programación en UNIX/Linuxgráfica de visualizaciones

Publicado el 14 de Enero del 2017
929 visualizaciones desde el 14 de Enero del 2017
208,1 KB
81 paginas
Creado hace 17a (06/02/2007)
Problemas de programación

en UNIX / Linux

Javier Gutiérrez

[email protected]



Introducción

Versión

0.1

Fecha

16/09/2006



Este libro pretende ser un compendio de los problemas de programación de
sistemas UNIX / LINUX que se suelen estudiar en las prácticas de la asignatura
Sistemas Operativos.

Se ha intentado en todo momento que este libro sea una referencia útil y
práctica. Por ello, se ha incluido al principio de cada capítulo un resumen con los
conceptos teóricos necesarios para resolver los ejercicios. Además, muchos ejercicios
cuentan con notas aclaratorias que ayudan a su comprensión. Junto con este libro,
también se ofrece un archivo comprimido con todo el código fuente de las soluciones.

Actualmente, este libro aún está en desarrollo. Periódicamente se incluyen
nuevos ejercicios, se completan los capítulos e, incluso, se añaden capítulos nuevos. A
continuación se muestra una tabla de versiones para que todos los lectores puedan saber
si poseen la versión más actualizada y cuales son los cambios entre las distintas
versiones.


Comentarios

Primera versión de libre distribución. Incluye
los ejercicios y soluciones de los capítulos 1,
3, 4, 5 y 6 y dos apéndices.



Índice.







Capítulo 1.



Ejercicios de comandos.



4



1.1. Resumen de conceptos.

Para una versión posterior.


1.2. Enunciados.


1.1. Análisis de ficheros log.



Para llevar un control exahustivo de todas las conexiones de un servidor
corporativo cada conexión queda registrada en un fichero log (o fichero de traza). A
continuación, muestra el formato y un ejemplo. Cada fichero log recibe un nombre
según el formato indicado en la figura 1 y almacena todas las conexiones registradas en
un único día. Todos los ficheros log se almacenan en un directorio cuya ruta completa
guarda la variable de entorno LOGS

Formato del contenido:

IP: a.b.c.d P:p T:t

Siendo IP la dirección de la máquina que realiza la conexión, a, b, c y d
números entre 0 y 255, p el número del puerto que recibe la conexión y t los
segundos que dura la conexión.

Formato del nombre:

Fichero-log.año.mes.dia

Siendo año un número de 4 cifras, mes un número de 2 cifras y día un número de
dos cifras que indican la fecha en que se recibieron las conexiones que guarda
el fichero.

Ejemplo de fichero log:

IP: 125.130.2.5 P:25 T:84
IP: 125.130.2.5 P:80 T:124
IP: 125.130.1.7 P:21 T:12
IP: 224.25.81.183 P:135 T:0



Resuelva los apartados a y b suponiendo que se encuentra en su directorio de

trabajo.


a) Cuente el número total de conexiones realizadas (utilice el comando wc).
b) Genere un nuevo archivo llamado analisis.dat que contenga todas las

conexiones recibidas por el puerto 25 durante el mes de abril (04) de 2005.

c) Cuente el número de cohesiones realizadas desde la máquina de la subred

d) Muestre por la consola todas las conexiones realizadas a través de los puestos

125.130.

por debajo del puerto 90.



5


A partir de la información del comando df -ka que se muestra a continuación,
escriba en una línea un comando o conjunto de comandos conectados mediante tuberías
para realizar las siguientes operaciones:



> df -ka
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d2 4129290 191573 3896425 5% /
/dev/md/dsk/d5 4129290 1129374 2958624 28% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
/dev/md/dsk/d8 4129290 1360464 2727534 34% /var
swap 5541176 24 5541152 1% /var/run
swap 5542488 1336 5541152 1% /tmp
/dev/md/dsk/d11 18491215 3223353 15082950 18% /opt
/dev/dsk/c0t9d0s7 35007716 5337270 29320369 16% /export/home
/dev/dsk/c0t10d0s7 35007716 15579221 19078418 45%
/export/home/alumnos
-hosts 0 0 0 0% /net
-xfn 0 0 0 0% /xfn
murillo:vold(pid287) 0 0 0 0% /vol
>_



a) Obtener un listado de los sistemas de ficheros sin capacidad (capacity = 0%).
b) Obtener un listado de los sistemas con una capacidad igual o superior al 40%.
c) Obtener el número de sistemas de ficheros (Filesystems) montados a partir

de /export/



1.3. Tipos de ficheros.



1.2. Espacio de disco.

A partir de la información almacenada en el archivo “fichero”, cuyo contenido
se muestra a continuación, escriba en una línea un comando o conjunto de comandos
conectados mediante tuberías para realizar las siguientes operaciones:



murillo:/export/home/prof/lensis> file * > ficheros
murillo:/export/home/prof/lensis> cat ficheros
ficheros: empty file
hola: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
holaMundo.c: c program text
holaMundo.e: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
holaMundo.o: ELF 32-bit MSB relocatable SPARC Version 1
identidad: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
identidad.c: c program text
identidad.c~: c program text
imprime.c: c program text
list: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
listArgs: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
listArgs.c: c program text
listArgs.c~: c program text
pot_fac: directory



6





1.4. Listado de procesos.



a) Contar el número de directorios que aparece en el archivo “ficheros”.
b) Contar el número de archivos ejecutables que aparecen en el archivo “ficheros”.

A partir de la información del comando ps que se muestra a continuación, escriba
en una línea un comando o conjunto de comandos conectados mediante tuberías para
realizar las siguientes operaciones:



murillo:/export/home/prof/lensis> ps -a
PID TTY TIME CMD
529 pts/3 0:02 dtsessio
512 pts/3 0:00 ksh
528 pts/3 0:00 ttsessio
1615 pts/5 3:59 nwadmin
21477 pts/22 0:00 tcsh
7204 pts/3 0:01 dtfile
7203 pts/3 0:00 sh
7206 pts/3 0:00 dtfile
22717 pts/18 0:01 tcsh
21476 pts/22 0:00 ksh
23630 pts/40 0:00 ps
22716 pts/18 0:00 ksh
21576 pts/22 0:05 emacs
7160 pts/7 0:00 ksh


3 y 5.

a) Obtener un listado de todos los procesos en ejecución en la terminal o puesto

b) Contar el número de procesos en ejecución en la terminal o puesto 3.
c) Contar el número de intérpretes de comandos (programa ksh) que está

ejecutando el sistema. Este apartado no tiene nada que ver con la figura 1.



1.5. Búsqueda de patrones


A continuación se proponen varios enunciados para resolver mediante el

comando grep con los patrones adecuados.

a) Muestre el nombre de todos los archivos de la carpeta practicas del apartado
anterior que utilicen llamadas al sistema para trabajar con semáforos (utilice
la opción –l del comando grep para obtener el nombre de los ficheros en
lugar de las líneas que cumplan el patrón).

b) Escriba una instrucción grep que obtenga los mismos resultados que la
siguiente sentencia: "grep -v '^[^a]' fichero". La sentencia grep que escriba
debe tener un patrón diferente del patrón usado en la sentencia grep anterior.
c) Contar el número de archivos de código fuente C (.c) del directorio donde

me encuentro.



7

d) Cuente el número de copias de seguridad (hechas por el editor Emacs) de
archivos con código C que aparecen en el directorio ficheros. Las copias de
seguridad de Emacs tienen el mismo nombre que el archivo original
terminado con el carácter ‘~’.

A continuación se proponen varios apartados para ser resueltos utilizando variables

a) El servidor web Apache coloca en una variable de entorno APACHE_PID el
pid del proceso en ejecución y deseamos enviarle una señal para terminar su
ejecución de manera abrupta.

b) Asigne el valor de la variable PATH a una variable de entorno con nombre



1.6. Variables de entorno.


de entorno.

RUTA.



1.7. Gestión de ficheros.



A continuación se proponen varios apartados para ser resueltos utilizando los

comandos para gestionar ficheros y directorios.

a) Suponiendo que en su directorio de trabajo (el directorio donde se encuentra)
existen 4 ficheros llamados f01, f02, f03 y f04, escriba un único comando
para copiar los tres primeros a una carpeta ficheros que cuelga de su
directorio HOME.

b) Copie todos los archivos existentes/ubicados dentro la carpeta ejemplos, que
cuelga de la carpeta temporal, a la carpeta practicas que cuelga de su
directorio de trabajo (o cuenta).

c) Copie el archivo profile-ejemplo situado en el directorio tmp que cuelga del
directorio raíz, a su directorio home con el nombre .profile. Escriba el
comando utilizando rutas absolutas.

d) Borre un fichero con nombre core situado en su directorio home.
e) Mueva todos los archivos de código fuente C del directorio donde me
encuentro a un subdirectorio llamado src que cuelga del directorio donde me
encuentro.



1.8. Permisos de ficheros.


quitando los permisos adecuados.

Resuelva los siguientes apartados mediante el comando chmod otorgando o

a) Un fichero prueba tiene los siguientes permisos rw-r-----. Escriba un
comando que produzca el mismo efecto que el
  • Links de descarga
http://lwp-l.com/pdf369

Comentarios de: Problemas de programación en UNIX/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad