PDF de programación - Linux - Comandos - Fork - Guía 1er laboratorio

Imágen de pdf Linux - Comandos - Fork - Guía 1er laboratorio

Linux - Comandos - Fork - Guía 1er laboratoriográfica de visualizaciones

Publicado el 23 de Abril del 2018
621 visualizaciones desde el 23 de Abril del 2018
395,9 KB
7 paginas
Guía 1er laboratorio

Linux - Comandos - Fork

Cuentas

Linux:

• Cuenta (passwd): sisop@labs.cs.uns.edu.ar

(sis2013OP..)

Windows:
• Cuenta (passwd): So (s2013O..)

Programación en C

Linux

• sobre Linux:
• gcc compiler

• sobre Windows:

• Dev-C++ (http://sourceforge.net/projects/dev-cpp/)
• Code::Blocks (http://codeblocks.org).

• Entorno de trabajo:

• Modo texto: usando las terminales.
• Modo gráfico: entorno CDE (Common Desktop Environment) -

Gnome -KDE

• Ingreso al sistema y manejo de múltiples

consolas:

• En cada sesión se pueden habilitar varias sesiones. KDE,

Gnome, Java.

• Root: superusuario

• Cambios modo texto/ modo gráfico: ctrl+alt+f1, ctrl+alt+f7

Linux - Estructura de

directorios

Los directorios tienen diferentes funciones de almacenamiento y
organización. Clasificación:
• Estáticos: sólo los cambia el root, pero pueden ser leídos por

otros usuarios (/bin, /sbin, /opt, /boot …)

• Dinámicos: pueden leerse y escribirse por su respectivo

usuario. (/var/mail, /var/spool/, /home ..)

• Compartidos: archivos que pueden leerse por varios usuarios

y otra computadora

• Restringidos: archivos que no se pueden compartir, sólo

modificables por el admin (/boot, /etc, )

Linux: Estructura de

directorios
/ → directorio raíz.
/etc → configuración de los programas instalados.
/etc/X11/ → Archivos de configuración para el X Window System,
versión 11.
/var (variables) → Archivos variables.
/var/spool: Tareas a la espera de ser procesados (ej: colas de
impresión y correo no leído)
/var/mail: correos o mensajes de los usuarios.
/var/log: logs del sistema.
/var/run: información reciente.
/var/tmp: archivos temporales (no se borran entre sesiones).

Linux: Estructura de

directorios

/bin → binarios (ejecutables).
/sbin → binarios de sistema (uso exclusivo del root).
/usr → usuarios (aplicaciones y datos).
/usr/bin: ejecutables para todos los usuarios.
/usr/sbin: binarios no esenciales. por ej: demonios para varios servicios
de red.
/usr/include: headers para C y C++
/usr/lib: bibliotecas para C y C++.
/usr/src: códigos fuente de algunas aplicaciones y del kernel Linux.

Linux: Estructura de

directorios

/root → /home del administrador.
/dev → dispositivos del sistema.
/home → archivos del usuario.
/home/sistop
/lib → bibliotecas esenciales.
/mnt → montajes temporales de unidades.
/tmp → ficheros temporales.
/proc → procesos.
/media → montaje de los medios extraíbles de almacenamiento.

Comandos básicos

• cd: ingresar/cambiar de directorio.
• mkdir: para crear un directorio. — rmdir: para borrar un directorio.
• rm: para borrar archivos. — cp: para copiar archivos — mv: para mover o cambiar de

nombre a un archivo.

• ls: muestra el contenido de un directorio

• ls –a : muestra las entradas que comienza con .
• ls –l : muestra todos los atributos

• more : muestra texto paginado en pantalla.
• cat: concatena archivos y los imprime en la salida standard
• touch: cambia la fecha y hora de un archivo
• pwd: para ver la posición en la que se encuentra un archivo

Comandos básicos

• grep: buscador de patrones, por ej: grep root /etc/passwd
(-n) muestra el número de línea, por ej: grep –n root /etc/
passwd
grep –v bash /etc/passwd | grep –v nologin

• find: busca por archivos en la jerarquía de directorios
find <path> <expresión>. Ej: find / -name nombrearch
• finger: lista información del usuario.
• wc: imprime el número de líneas, palabras y bytes de un archivo

Comandos básicos

• W: cuántos están logeados y qué están haciendo — Who: quienes están logeados
• &: para ejecutar un proceso en background
• man: ayuda — man –a: muestra en todos los manuales en que aparece

(1) programas ejecutables o comandos del shell
(2) systems calls
(3) library calls
(4) special files (usually found /dev)
(5) file formats and conventions
(6) juegos
(7) misceláneos
(8) system administration commands
(9) kernel routines (no standard)

• uname: imprime la información del SO y la máquina (nombre, versión, etc)

Comandos básicos

• Montaje del sistema de archivos manualmente:
mount /dev/fd0 – mount /dev/floppy para
montar un diskette y luego poder verlo con:
ls /mnt/floppy, /media/floppy
umount/dev/fd0 – umount/dev/floppy para
desmontar el diskette y poder utilizar otro o
apagar la computadora.

Comandos básicos

• Editores:
—> vi: editor por default de UNIX (modo de edición y comado)
—> pico: en la versión de Centos y en el Fedora 4 no viene
este paquete, en algunas distribuciones viene incluido. En
realidad lo llaman nano
—> kate: editor en modo gráfico del KDE.
—> dtpad (funciona hasta la versión de red hat 9)
—> emacs: reconoce las palabras reservadas.

Modos de init (Fedora)

0 — Halt
1 — Single-user text mode (without networking)
2 — No se utiliza (a definir por el usuario) - Full multi-user text
mode
3 — Full multi-user text mode
4 — Sin usar (a definir por el usuario)
5 — Full multi-user graphical mode (with an X-based login screen)
6 — Reboot

Init

Gestión de usuarios y grupos

/etc/passwd

• El init como proceso 1 de Unix.
• /etc/init.d, /etc/rc0.d, /etc/rc1.d …
• ¿Qué relación tienen estos directorios con los

distintos modos de arranque?

• Quién puede acceder al sistema y qué puede hacer.
• Primera linea de defensa del sistema contra accesos no deseados.
• Registrados las cuentas de usuarios, claves de accesos y privilegios.
Ejemplo —> usuario1:FXWUuZ.vwXttg:500:501:usuario
pepito:/home/usuario1:/bin/bash

Nombre de la cuenta (Login)

UID de esta cuenta


usuario1:
FXWUuZ.vwXttg: Clave de acceso encriptada (password)
500:
501:
usuario pepito:
/home/usuario1:
/bin/bash: Interprete de comando (shell) de usuario pepito

GID del grupo principal al que pertenece la cuenta

Nombre del usuario

Directorio de trabajo de usuario1

Gestión de usuarios y

grupos

• /etc/group:

Almacena información de grupos.

• /etc/shadow:

Guarda los passwords encriptados más algunas propiedades
adicionales.
Contiene una línea por cada usuario de /etc/passwd

• /etc/gshadow:

Passwords encriptados del grupo.

Comandos de procesos

(top)

• top: muestra información de procesos se están corriendo

en tiempo real.
• 1 línea: Datos del sistema
• 2 línea: Total procesos corriendo y los divide por
estados. (Running, Sleeping, Stopped, zombie)

• 3 línea: Uso de CPU en ese momento
• 4 línea: Uso de memoria
• 5 linea: Uso de SWAP

Comandos de procesos

process status (ps)
• ps: lista los procesos que se están ejecutando

• Sin parámetros: muestra procesos del usuario que está logueado.
• ps -a: procesos de todos los usuarios.
• ps -u: lista información de proceso que está corriendo (usuario,

utilización de CPU, memoria)

• ps -x: lista procesos de todas las terminales y usuarios
• ps -aux: (para que prueben los alumnos)
• ps axm: m muestra los threads de cada uno de los procesos,

funciona utilizando la librería pthread.

Comandos de procesos

(top)

• Procesos corriendo:

PID, USER, PR (prioridad), VIRT (mem virtual usada), S (estado del proceso), %CPU, % MEM

• Opciones

u → filtra por usuarios
k → matar procesos
r → cambiar prioridad
q → salir

• Ordenamiento

N (upercase) —> por PID
A (upercase) —> por aparición, primero los mas nuevos
P (upercase) —> por uso de CPU. Es la default
M (upercase) —> por memoria residente
T (upercase) —> por tiempo.
W (upercase) —> Guarda la configuración.

Comandos de procesos

(pstree - kill)

• pstree: árbol con la jerarquía de procesos.

Instalado en las distribuciones de Linux pero no
en Solaris.

• kill: para matar un proceso.

(-9) : SIGKILL . Por ej: kill -9 <procnum>
• /proc: virtual filesystem con información de los

procesos.

Comandos de procesos

Espera por terminación de procesos

• wait:

Espera a que cualquier proceso hijo termine

• waitpid:

Espera a que el proceso hijo con PID termine

• getpid, getppid: Investigar

Fork

• Crea una réplica de sí mismo.
• Es un system call implementado en el kernel.
• Continúa ejecutando concurrentemente.
• La copia creada se llama proceso “hijo” del proceso originario

(proceso “padre”).

• Idénticos procesos resultantes, salvo PID.
• El system call devuelve el PID del hijo al padre y 0 al hijo.
• El hijo hereda recursos del padre (ficheros abiertos, variables)
• Más información: man fork

Comandos de procesos

(exec)

• exec: Cambia la imagen del proceso actual. Esto

es, sustituye la imagen de memoria por un
programa diferente.

int execlp(const char *file, const char
*arg, ...);
primer argumento → la ruta absoluta del archivo
a ejecutar
retorna -1 en caso de error.
*arg → argumentos a pasar al ejecutable

Comandos de procesos

(exec)

• Existen diferentes versiones del exec:
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char
*arg, ...);
int execv(const char* path, char* const argv[]);
int execve(const char* path, char* const argv[],
char* const envp[]);
int execvp(const char *file, char *const argv[]);
• Para su funcionamiento se requiere incluir el archivo de

cabecera unistd.h

Uso del compilador

• gcc [ opción | archivo ] …
gcc -o salida entrada.c
probar:
- gcc hola.c
- gcc hola hola.c

• Para investigar:

man gcc
comando “>”
  • Links de descarga
http://lwp-l.com/pdf10582

Comentarios de: Linux - Comandos - Fork - Guía 1er laboratorio (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad