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
1.423 visualizaciones desde el 23 de Abril del 2018
395,9 KB
7 paginas
Guía 1er laboratorio

Linux - Comandos - Fork

Cuentas

Linux:

• Cuenta (passwd): [email protected]

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