Bases del sistema operativo

1

Aviso de renovaci贸n del curso

2

Lo que aprender谩s sobre la administraci贸n de servidores linux

3

Distribuciones m谩s utilizadas de Linux

4

Instalaci贸n de Ubuntu Server

5

Instrucciones para instalar CentOS

6

Gesti贸n del 谩rbol de directorios

7

Diferencias entre LESS, CAT, HEAD y TAIL para lectura de archivos

8

Interacci贸n con archivos y permisos

9

Conociendo las terminales en linux

10

Manejo y monitoreo de procesos y recursos del sistema

11

Monitoreo de recursos del sistema

Instalaci贸n y manejo de software en Linux

12

An谩lisis de los par谩metros de red

13

Administraci贸n de paquetes acorde a la distribuci贸n

14

Manejo de paquetes en sistemas basados en Debian

15

Administraci贸n de software con YUM y RPM para CentOS

16

Nagios: Desempaquetado, descompresi贸n, compilaci贸n e instalaci贸n de paquetes

Administraci贸n de usuarios

17

Los usuarios, una tarea vital en el proceso de administraci贸n del sistema operativo

18

Creando y manejando cuentas de usuario en el sistema operativo

19

Entendiendo la membres铆a de los grupos

20

Usando PAM para el control de acceso de usuarios

Servicios en el sistema operativo

21

Autenticaci贸n de clientes y servidores sobre SSH

22

Configurando DNS con bind

23

Arranque, detenci贸n y recarga de servicios

24

NGINX y Apache en Ubuntu server

25

Instalaci贸n y configuraci贸n de NGINX

26

驴Qu茅 es NGINX Amplify?

27

NGINX Amplify: Instalaci贸n y configuraci贸n de un servidor para producci贸n

28

Monitoreo de MySQL con Nagios

29

Configuraci贸n de Nagios

30

Los logs, nuestros mejores amigos

31

Otros servicios de logs

Bash scripting

32

Las bases de bash

33

Las variables y su entorno de ejecuci贸n

34

Automatizando tareas desde la terminal

35

Automatizando la copia de seguridad

36

Crontab

Asegurando tu servidor

37

Entendiendo la gesti贸n de vulnerabilidades

38

驴Qu茅 es una superficie de ataque? Principio del menor privilegio

39

El firewall y sus reglas

40

Escaneo de puertos con NMAP y NIKTO desde Kali Linux

41

Lynis: Herramientas de auditoria de seguridad en Linux

Proyecto

42

Configuraci贸n de Node.js en un ambiente productivo

43

Configuraci贸n de NGINX para la aplicaci贸n de Node.js

Bonus: Linux en Azure

44

Aprende sobre Linux en Azure

45

Despliegue de una aplicaci贸n web MEAN

46

Crea una m谩quina virtual en la nube de Azure

Conclusiones

47

Lo que aprendiste sobre servidores linux

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Manejo y monitoreo de procesos y recursos del sistema

10/47
Recursos

Para ver todos los procesos que corren en el sistema podemos usar el comando ps. Recuerda que puedes ver la documentaci贸n de este comando con el comando man ps.

El comando grep nos ayuda a filtrar el resultado de un comando o archivo dependiendo de las palabras de cada l铆nea. Para esto tambi茅n vamos a usar el pipe (|), un s铆mbolo que nos ayuda a enviar el resultado de un comando a un segundo comando.

Por ejemplo, el comando ps aux | grep platzi imprime los procesos activos del sistema y, con ayuda del pipe, env铆a la lista al comando grep para filtrar el resultado, mostrando 煤nicamente las l铆neas con la palabra platzi.

Aportes 114

Preguntas 15

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

RESUMEN DE LA CLASE
|
Manejo y monitoreo de procesos y recursos del sistema
|
|
Comandos
|
ps: Muestra los procesos corriendo. Modificadores:

  1. aux: Muestra todos los procesos

jobs: Al igual que el comando anterior, muestra los procesos. A diferencia de ps, es un comando interno de la terminal
fg: Abre un proceso que estaba pausado
nohup: Genera un archivo llamado 鈥渘ohup.out鈥 que muestra toda la informaci贸n que produjo un proceso
grep: Nos ayuda a filtrar el resultado de un comando o el contenido de un archivo dependiendo de las palabras (o incluso expresi贸n regular) que le indiquemos
|
|
S铆mbolos especiales
|
"|" Pipe: Envia el standard output de un comando al standard input de otro.
"&" Ampersand: Envia un proceso al background
"./": Ejecuta un archivo

Cuando entres a la consola vi, para iniciar a editar y/o insertar texto presionas 鈥渋鈥, para salir y grabar cuando termines 鈥渃trl+c鈥, para guardar 鈥:wq鈥

Mis apuntes de esta clase:

<h1>1.7 Manejo y monitoreo de procesos y recursos del sistema</h1>

Una de las funciones importantes de los administradores de sistemas es verificar que todos los procesos que se est谩n ejecutando sean v谩lidos y no sean procesos que esten haciendo cosas maliciosas.

Para ver los procesos que est谩n corriendo en el SO:
ps aux
La informaci贸n m谩s importante que muestra este comando es que comando esta ejecuando el proceso.
Podemos buscar procesos por usuario usando el pipe y grep, ejemplo:
ps aux | greep platzi

Cuando trabajamos con alg煤n editor de texto, a veces necesitamos enviar estos procesos a un segundo plano.

vi {nombre} ==> abre un archivo de texto con el nombre que especificamos.

Para volver a la consola presionamos: ctrl+z ==> pasamos los procesos a background.

Para ver los procesos que se est谩n ejecutando ==> jobs

Para volver al proceso ==> fg 鈥 foreground.

Para salir de un vi ==> ctrl+c:wq

Iniciar un proceso sin que se pierda la consola:

  • ./script.sh ==> ejecuta el archivo y muestra el resultado.
  • ./script.sh & ==> ejecuta el archivo, muestra un proceso especifico y muestra el resultado.
  • nohup ./script.sh & ==> genera una salida con el nombre de nohup.out y en el enctramos toda la informaci贸n de lo que realiza el proceso. Esto es muy 煤til cuando realizamos despliegues en servidores porque sabemos que esta realizando el proceso.

Pueden usar el comando: htop para obtener un administrador de procesos y recursos probado en (Ubuntu server 20.0 lts)

La informacion de lo que significa cada parametro al ejecutar el comando ps aux

USER: usuario con el que se ejecuta el proceso
PID: ID del proceso
%CPU: porcentaje de tiempo que el proceso estuvo en ejecuci贸n desde que se inici贸
%MEM: porcentaje de memoria f铆sica utilizada
VSZ: memoria virtual del proceso medida en KiB
RSS: 鈥渞esident set size鈥, es la cantidad de memoria f铆sica no swappeada que la tarea a utilizado (en KiB)
TT: terminal que controla el proceso (tty)
STAT: c贸digo de estado del proceso (informaci贸n detallada m谩s adelante)
STARTED: fecha de inicio del proceso
TIME: tiempo de CPU acumulado
COMMAND: comando con todos sus argumentos

Cuando utilizamos ps con las opciones 鈥渁ux鈥 el resultado es:

a: eliminar la restricci贸n BSD 鈥渙nly yourself鈥 para agregar procesos de otros usuarios
u: utilizar el formato orientado al usuario
x: eliminar la restricci贸n BSD 鈥渕ust have a tty鈥 para agregar procesos que no tengan una tty asociada

Opciones de VIM

  • vim 鈫 Abre el editor de VIM
    • vim + un_nombre_archivo 鈫 Crea un archivo nuevo y lo abre
    • vim + un_archivo_ya_creado 鈫 Abre ese archivo y se puede editar
    • i 鈫 para insertar o editar
    • esc 鈫 para salir del editor
    • : 鈫 activar el modo comandos
    • :w 鈫 guardar el archivo
    • :q 鈫 salir de vim
    • :q! 鈫 forzar salir de vim (no realiza cambios)
    • :x 鈫 salir de vim guardando los cambios
    • :wq 鈫 guarda los cambios y luego sale de vim
    • :set 鈫 enumerar las l铆neas

Me gusto la opci贸n de mantener procesos en backgroun mientras usas la terminal.
Puedes abrir varios y acceder a ellos con FG N (donde N es el n煤mero del proceso).
Ej:

vi archivo1.txt ==> Ctrl+z
nano archivo2.sh ==> Ctrl+z
vim archivo3.php ==> Ctrl+z

Volver al archivo 2: FG 2
Volver al Archivo 1 FG 1
Volver al archivo 3 FG 3

nohup: Abbrebiacion de no hangups. Le dice al sistema operativo que no detenga el comando que le sigue, una vez iniciado. Incluso, cuando cerremos session.

Para quienes instalaron Ubuntu server sin interfaz gr谩fica y no pueden hacer scroll, para moverse hacia arriba o abajo cuando la info excede la pantalla, utilizar Shift+AvPag y Shift+RePag.

Adicionalmente nohup te permite dejar corriendo un proceso en background aunque se cierre tu terminal. Por ejemplo cuando tienes un script con un loop de monitoreo y quieres que se quede corriendo aunque tu sesion se cierre lo ejecutas:

$ nohup ./script.sh &

Esto tambi茅n se explica en el curso de introducci贸n a la l铆nea de comandos, aunque realmente el hecho de mandar un script al background significa pausarlo, yo pensaba que se segu铆a ejecutando por lo que trate de levantar un servidor de node con --watch usando ctrl + z pero el servidor se par贸 as铆 que prefiero tener 2 terminales para esos casos jaja:(

Podemos seleccionar el proceso que queramos pasar de segundo a primer plano con:

fg %[ID del proceso]

el ID depende de lo que nos arroje jobs.

recomendable utilizar htop, muestra informacion mas sencilla y el consumo de cada recurso de la maquina

instalaci贸n: sudo apt-get install htop
ejecucion: htop

EJERCIO:

  1. abrir un editor de texto y mandarlo a segundo plano

  2. llamar al proceso al segundo plano y escribir el codigo de algun programa. En este caso el programa pide dos n煤meros cierta cantidad de veces. y se imprime la suma de estos dos n煤meros.

  3. Se guarda el programa y despu茅s se ejecuta en segundo plano.

  4. se mata el proceso del programa

DESARROLLO

  • se crea un script con vim

    vim sumar_numeros.sh

  • luego se escribe el programa

#!/usr/bin/env bash

read t
for (( i=0; i<t; i++ ))
do
	echo "sumar: "
	read a
	read b
	echo "resultado: "
	echo $(( $a + $b ))
done
  • Para mandar a segundo plano se pulsa Ctrl + z

  • con jobs se observa procesos ejecutados

  • con fg 1 vuelve al trabajo, en este caso el 1 corresponde al editor vim

  • para guardar y salir de vim escriba :wq y opcional puede escribir directamente el nombre del archivo en el que quiere escribir el codigo

  • para ejecutar el script hay que permitir su ejecucion

    chmod +x sumar_numeros.sh

  • para mandarlo a segundo plano en una misma linea de codigo, haga:

    ./sumar_numeros.sh &

  • matar el proceso: encuentre el PID del proceso con ps y luego ejecute:

    kill -9 <PID>

Un repaso a modo de ejemplo. Espero les sirva.

Mi resumen:
PS vemos los procesos del sistema, con el par谩metro aux vemos mas procesos
| 鈥淧ipe鈥 permite mandar la salida del anterior comando al siguiente
grep : Permite identificar una cadena
man comando: permite ver el manual del comando
./ permite ejecutar un script siempre y cuando este tenga permisos de ejecuci贸n
nohup: permite mandar la salia del script a un .out y seguir usando la consola

top -u <user>

es tambien otra forma de manera interactiva para mostrar los procesos que tiene un usuario del sistema

Entendido

ps
ps aux --procesos corriendo en el SO
ps aux | grep dbz -- filtrar por dbz
vi dbz-- crear documento dbz
jobs --procesos que se estan ejecutando
fg --traer el proceso suspendido
./script.sh -- ejecutar script
./script.sh & -- ejecutar script y genera proceso especifico para el script
nohup ./script.sh -- genera una salida del resultado del script 

relacionado con este tema en particular considero muy 煤til la clase de Procesos del curso de terminal de comandos聽馃憣馃徏

Para los que se pregunten (como me pregunt茅 yo jeje) para sacar el 鈥渱鈥 para el grep, lo hice con la tecla ctrl (me sali贸 con la del lado derecho del teclado) + la tecla que est谩 al lado del n煤mero 1, para un teclado de pc de escritorio. En el port谩til, me sali贸 con oprimir esa misma tecla pero sin el ctrl.

son infinitas las posibilidades al momento de usar la terminal y linea de comandos

user@user:~/Documents/Platzi/linux-server$ cat bash.sh
# bin/bash

let a=2
let b=5
let c=$a+$b

echo "Hola Mundo Cruel!" $c
user@user:~/Documents/Platzi/linux-server$ ./bash.sh 
Hola Mundo Cruel! 7
user@user:~/Documents/Platzi/linux-server$ 

Guide: Manejo y monitoreo de procesos y recursos del sistema 馃懆馃徎鈥嶐煉

Ver guia completa en notion

ps muestra los procesos que est谩n corriendo en el sistema.

ps aux muestra todos los procesos que est谩n corriendo en el sistema.

驴Como identificar procesos de un usuario en espec铆fico?

ps aux | grep platzi donde concateno dos instrucciones con el pipe operator | y grep me ayuda a buscar una cadena de caracteres en espec铆fico.

Editor de texto VIM

VIM editor de texto, para crear un archivo nuevo vi nombre-archivo y enseguida nos lanza el editor. Utilizamos ctrl - z para detener el editor y abrir la consola.

El comando jobs me ayuda a visualizar los procesos detenidos, con fg vuelve a donde estaba anteriormente.

Para salir de VIM presionamos la tecla esc y digitamos**: q** o :wq para salir y guardar. Con la combinaci贸n de teclas Esc聽>聽Shift + ZZ salimos y guardamos, y Esc > Shift + ZX para salir sin guardar cambios.

  • :w聽鈥 Guardar los cambios realizados
  • :q聽鈥 Salir de VIM
  • :q!聽鈥 Salir de VIM y descartar cambios realizados
  • :wq聽鈥 Guardar y salir de VIM
  • :x聽鈥 Guardar los cambios y salir de VIM

Ejecutar un script

Con VIM podemos escribir scripts y ejecutarlos de la siguiente forma:

./script.sh

Como usar el editor VIM

VIM editor de texto, para crear un archivo nuevo vi nombre-archivo y enseguida nos lanza el editor, para iniciar con la escritura en VIM digitanos i. Utilizamos ctrl - z para detener el editor y abrir la consola.

Para salir de VIM presionamos la tecla esc y digitamos**: q** o :wq para salir y guardar. Con la combinaci贸n de teclas Esc聽>聽Shift + ZZ salimos y guardamos, y Esc > Shift + ZX para salir sin guardar cambios.

  • :w聽鈥 Guardar los cambios realizados
  • :q聽鈥 Salir de VIM
  • :q!聽鈥 Salir de VIM y descartar cambios realizados
  • :wq聽鈥 Guardar y salir de VIM
  • :x聽鈥 Guardar los cambios y salir de VIM

Que buenos comandos se dan en esta clase, toca apuntar uno por uno para no perder toda esta informacion.

nohup: Genera un archivo llamado 鈥渘ohup.out鈥 que muestra toda la informaci贸n que el script realiza y que es lo que va haciendo en el tiempo de ejecucion

bastante interesante

Sugerencia al instructor, limpiar pantalla para cada comando que se va a ejecutar nuevo, asi se muestra mucho mejor para la clase.

Podemos traer a primer plano un proceso espec铆fico anteponiendo & a nuestro par谩metro:

fg %numero_proceso

As铆, si por ejemplo, tenemos en segundo plano 2 procesos, llamar铆amos al segundo con:

fg %2

El comando 鈥渘ohup鈥 es un comando en Linux y otros sistemas operativos tipo Unix que se utiliza para ejecutar un comando sin interrupci贸n. El comando se utiliza normalmente para ejecutar un programa en segundo plano, incluso si el usuario que inici贸 el programa se desconecta o cierra su terminal.

El nombre 鈥渘ohup鈥 proviene de la frase 鈥渘o hangup鈥, que se refiere al hecho de que el comando evita que el proceso se termine cuando el usuario cuelga (se desconecta) de la terminal. Esto permite que el proceso contin煤e ejecut谩ndose, incluso si el usuario ya no est谩 conectado o interactuando con el sistema.

Para utilizar el comando 鈥渘ohup鈥, basta con especificar el comando que se desea ejecutar como argumento de 鈥渘ohup鈥. Por ejemplo, para ejecutar el comando 鈥渟leep鈥 en segundo plano, puede utilizar el siguiente comando:

nohup sleep 100 &

Esto ejecutar铆a el comando 鈥渟leep鈥 en segundo plano, y continuar铆a ejecut谩ndose incluso si el usuario que inici贸 el comando se desconecta o cierra su terminal. El s铆mbolo 鈥&鈥 al final del comando le dice al shell que ejecute el comando en segundo plano, para que el usuario pueda seguir usando la terminal mientras se ejecuta el comando.

En resumen, el comando 鈥渘ohup鈥 se utiliza para ejecutar un comando en segundo plano sin interrupci贸n, incluso si el usuario que inici贸 el comando cierra la sesi贸n o se desconecta de la terminal. El nombre 鈥渘ohup鈥 viene de

Nohup, abreviatura de no hang up es un comando en sistemas Linux que mantiene los procesos en ejecuci贸n incluso despu茅s de salir del shell o terminal. Nohup evita que los procesos o trabajos reciban la se帽al SIGHUP (Signal Hang UP). Esta es una se帽al que se env铆a a un proceso al cerrar o salir de la terminal.

Hay 2 modos de operaci贸n en el editor Vi, el modo normal y el modo insertar.

  • El modo normal: aparece al inicio all铆 podemos leer el archivo, escribir los comandos: w, para guardar :q, para salir de vi :wq, para guardar y salir de vi o crt+z para detener proceso enviarlo al background, i para ingresar al modo insertar
  • El modo insertar: all铆 escribimos el contenido del archivo. para pasar al modo normal desde el modo insertar solo pulsamos esc.

ctrl + z => Manda un proceso a background
jobs => lista procesos en background
fg => devuelve proceso desde el background

COMANDOS USADOS:
ps: Muestra los procesos corriendo. Modificadores:
aux: Muestra todos los procesos
jobs: Al igual que el comando anterior, muestra los procesos. A diferencia de ps, es un comando interno de la terminal
fg: Abre un proceso que estaba pausado
nohup: Genera un archivo llamado 鈥渘ohup.out鈥 que muestra toda la informaci贸n que produjo un proceso
grep: Nos ayuda a filtrar el resultado de un comando o el contenido de un archivo dependiendo de las palabras (o incluso expresi贸n regular) que le indiquemos.

<ps aux --Procesos corriendo en el SO
ps aux | grep ubuntu -- Filtra por usuario ubuntu
vi script.sh -- Crear documento script.sh
#!/bin/bash  -- Encabezado que sirve al sistema para designar que se trata de un Script de SO.
echo "Hola Mundo"
Control + Z
jobs --Procesos que se estan ejecutando
fg --Trae el proceso suspendido antes de salir con Control + Z 
chmod +x script.sh -- Da permisos de ejecuci贸n al archivo ya que seguro no lo tendr谩
./script.sh -- Ejecutar script
./script.sh & -- Ejecutar script y genera proceso especifico para el script
nohup ./script.sh & -- Genera una salida del resultado del script>

Me pasaba al levantar servidores en Nodejs que le daba sin querer a crtl+Z y ahora ya se por que y como paralo 馃槃

En centos8 al darle control-z a nano sale: 鈥渟uspension is not enabled鈥

Se corrige editando el archivo /etc/nanorc

Se le quita el comentario a la linea que dice:

set suspend

En el minuto 4:19 donde crea el script mas sencillo, le da guardar pero no explica como, tal vez pueda ser una pregunta muy tonta, pero al explicar coge impulso y se le olvida que esta ense帽ando en un curso basico

  1. script.sh
#!/bin/bash
sleep 5
echo "Hola mundo"
  1. Ejecutarlo en segundo plano:
./script.sh &
  1. Traerlo a primer plano:
fg

Reto cumplido !!!

Para guardar el archivo vi script.sh, pulsan 鈥淓sc鈥 y luego ingresan lo siguiente " :wq "
Para salir del archivo vi script.sh, pulsan 鈥淓sc鈥 y luego ingresan lo siguiente " :qa! "

unos comandos muy importantes que no menciona al usar VI son:
":q" para salir del archivo sin guardar
":wq" para guardar y salir del archivo

ctrl + Z hace la misma funcion que cambiar de ventana como ALT + Tab

Para realizar multiples procesos desde 鈥渦na鈥 consola, solo es necesario usar Byobu.

Es lo primero que instalo en cualquier servidor que necesito administrar en forma remota (o local).

Que genial鈥arios comandos nunca los hab铆a usado. Claro que hay que practicar porque si no鈥no se marea. La practica hace al maestro.!!..vamos que se puede.

Por ejemplo, el comando ps aux | grep platzi imprime los procesos activos del sistema y, con ayuda del pipe, env铆a la lista al comando grep para filtrar el resultado, mostrando 煤nicamente las l铆neas con la palabra platzi.

El comando grep nos ayuda a filtrar el resultado de un comando o archivo dependiendo de las palabras de cada l铆nea. Para esto tambi茅n vamos a usar el pipe (|), un s铆mbolo que nos ayuda a enviar el resultado de un comando a un segundo comando.

Para ver todos los procesos que corren en el sistema podemos usar el comando ps. Recuerda que puedes ver la documentaci贸n de este comando con el comando man ps.

Si la actividad que se quiere realizar es muy breve, no es necesario cerrar la sesi贸n de vi, solo te cambias a modo comando y escribes:
:!{comando} y este se ejecutara en tu terminal

Esta clase me ha sido muy 煤til ya que trabajo con RedHat y la opci贸n de tener procesos en background y luego tr谩elos es genial. Muchas gracias.

Hola, al momento de escribir ("#/bin/bash - echo 鈥渉ola鈥) el VI no me permite guardar, me doy cuenta que en la parte baja de la pantalla donde indica 鈥渋nsertar鈥 este desaparece y escribe :wq pero la terminal NO me permite guardar para pasar a la linea de comandos como puedo hacerlo? muchas gracias por responder

Mis apuntes:

#ps
Verifico los procesos

#jobs
Verifico procesos detenidos

#Ctrl + Z
Pongo en pausa una tarea

#fg
Ingreso a la 煤ltima tarea realizada.

#&
Oculta la salida del script
#Ejemplo:
sh script.sh &

excelente video esta muy bien explicado felicidades Jhon Edison Castro Sanchez

ctrl +z , jobs y fg son muy 煤tiles, antes era muy tedioso tener que salir buscar un archivo regresar para volverlo a editar.

Aprendido

tips:

ps: ver todos los proceso en nuestro shell activo.
ps -ef: ver todos los procesos del sitema (en formato completo).
ps -eLf: visualizar procesos con sus respectivos hilos/threads.
ps aux: Mostrar los procesos en estilo BSD
ps axo user, stat, pid, pcpu, comm: presonalizar los atributos a mostrar de los procesos.

En caso de tener varios procesos en bg, debo ocupar el id del proceso para traerlo al frente o por defecto fg siempre trae el primer proceso listado?

Me parece genial el comando nohup entrega un informe de la salida y adem谩s se pueden concatenar las salidas en el archivo nohup.out.
Reto:

ps aux: Lista los procesos corriendo.
Usando el comando | grep resaltamos procesos en especifico.
vi es un editor de texto complejo, para poder editar en el usamos i, para guardar usamos :wq (vaya proceso)

ps aux Muestra procesos, usuarios, comando
ps aux | grep 鈥減latzi鈥 Muestra procesos que mencionan platzi
jobs Muestra los procesos en background
fg Trae el proceso a frontground
./script.sh & Ejecuta script sin perder la consola
nohup ./script.sh & Ejecuta script sin perder la consola y crea nohup.out

poniendo en practica lo aprendido

nohup le permite a uno ver las salidas de un proceso o script en segundo plano

  • my script

resultado

Hay una herramienta que facilita mucho la apertura de las consola y de igual manera eliminarlas el software se llama Byobu Aqui esta la documentacion

Y lo podemos instalar con el comando.

El (-y) es para que no se pare la instalaci贸n por preguntarte si quieres continuar con ella.

sudo apt install -y byobu

que buen curso!

Un peque帽o aporte sobre el comando nohup

El comando nohup permite ejecutar un proceso en segundo plano, incluso si el usuario se desconecta o cierra la sesi贸n. Los mensajes de salida del proceso (es decir, lo que imprimir铆a en consola, por ejemplo) se redirigen a nohup.out o a un archivo especificado con el argumento -o. Este comando es especialmente 煤til para mantener procesos en ejecuci贸n de manera continua.

Me gusta la metodolog铆a de ense帽anza, y el conocimiento del instructor. Todo mi referente a Linux siempre tiene mucho tab煤, pero con una buena gu铆a este pensamiento se viene al piso f谩cilmente. Dedicado y agradecido por tan excelente curso y calidad.

En Linux y otros sistemas operativos tipo Unix, la tabla de procesos es una estructura de datos que contiene informaci贸n sobre todos los procesos que se est谩n ejecutando actualmente en el sistema. Esta informaci贸n incluye el ID del proceso (PID), el usuario propietario del proceso, el comando que se utiliz贸 para iniciar el proceso, el estado actual del proceso y otros detalles.

La tabla de procesos es gestionada por el n煤cleo de Linux, y se utiliza para realizar un seguimiento de los procesos que se est谩n ejecutando actualmente en el sistema. Esta informaci贸n es utilizada por el n煤cleo para gestionar la ejecuci贸n de los procesos, para asignar recursos del sistema como CPU y memoria, y para proporcionar informaci贸n a los programas de espacio de usuario que necesitan interactuar con los procesos.

La tabla de procesos puede visualizarse utilizando el comando 鈥減s鈥 en Linux, junto con las opciones apropiadas. Por ejemplo, el comando 鈥減s aux鈥 mostrar谩 la tabla de procesos, incluyendo informaci贸n sobre cada proceso como el PID, usuario, comando, uso de CPU y memoria, y TTY. La tabla de procesos tambi茅n puede visualizarse utilizando el sistema de archivos /proc, que proporciona una vista virtual de la tabla de procesos y otra informaci贸n del sistema.

En Linux y otros sistemas operativos tipo Unix, un proceso zombi es un proceso que ha finalizado su ejecuci贸n pero que todav铆a tiene una entrada en la tabla de procesos. Esto puede ocurrir si el proceso padre del proceso zombi a煤n no ha esperado a que salga, o si el proceso padre ha terminado sin limpiar adecuadamente sus procesos hijos.

Los procesos zombis suelen ser inofensivos y no consumen m谩s recursos del sistema que una peque帽a cantidad de memoria para su entrada en la tabla de procesos. Sin embargo, pueden indicar un problema con el proceso padre, ya que 茅ste es responsable de limpiar sus procesos hijos cuando han finalizado su ejecuci贸n.

Si hay un gran n煤mero de procesos zombi en el sistema, puede indicar que los procesos padre no est谩n limpiando correctamente sus procesos hijo, lo que puede causar problemas con la gesti贸n de recursos y el rendimiento del sistema. En tales casos, puede ser necesario investigar la causa de los procesos zombis y tomar las medidas adecuadas para resolver el problema.

Los procesos zombis pueden identificarse utilizando el comando 鈥減s鈥 en Linux, junto con las opciones apropiadas. Por ejemplo, el comando 鈥減s aux鈥 mostrar谩 el estado de cada proceso, incluyendo cualquier proceso que se encuentre en estado zombi. La columna STAT en la salida del comando 鈥減s鈥 mostrar谩 el estado de cada proceso, y una 鈥淶鈥 en esta columna indica un proceso zombi.

El comando 鈥減s aux鈥 es un comando com煤n en Linux que se utiliza para ver informaci贸n sobre los procesos que se est谩n ejecutando actualmente en el sistema. El comando se compone de dos partes: 鈥減s鈥 y 鈥渁ux鈥.
El comando 鈥減s鈥 se utiliza para mostrar informaci贸n sobre los procesos en el sistema. Esta informaci贸n puede incluir el ID del proceso (PID), el usuario propietario del proceso, el comando que se utiliz贸 para iniciar el proceso y el estado actual del proceso. Por s铆 mismo, el comando 鈥減s鈥 mostrar谩 informaci贸n sobre todos los procesos que son propiedad del usuario actual.

La opci贸n 鈥渁ux鈥 se utiliza para modificar el comportamiento del comando 鈥減s鈥. La opci贸n 鈥渁鈥 indica al comando 鈥減s鈥 que muestre informaci贸n sobre todos los procesos, no s贸lo sobre los que pertenecen al usuario actual. La opci贸n 鈥渦鈥 indica al comando 鈥減s鈥 que muestre informaci贸n adicional sobre cada proceso, como el uso de CPU y memoria del proceso. Por 煤ltimo, la opci贸n 鈥渪鈥 indica al comando 鈥減s鈥 que muestre tambi茅n los procesos que no tienen un terminal de control.
La lista incluye el PID (ID del proceso), el usuario propietario del proceso, el comando que se utiliz贸 para iniciar el proceso, el uso de CPU y memoria del proceso, el tama帽o de la memoria virtual (VSZ) y el tama帽o del conjunto residente (RSS) del proceso, el TTY (terminal) asociado al proceso y la hora a la que se inici贸 el proceso.
La columna TIME muestra el tiempo total de CPU que el proceso ha utilizado desde que se inici贸, y la columna STAT muestra el estado actual del proceso. Los valores posibles para la columna STAT son:

S: Reposo interrumpible (esperando a que se complete un evento).
D: suspensi贸n ininterrumpida (normalmente esperando a que se complete una E/S)
R: En ejecuci贸n
T: Detenido (normalmente debido a una se帽al)
Z: Zombie (un proceso que ha finalizado pero su proceso padre a煤n no ha esperado a que salga)
Las columnas TIME y STAT pueden proporcionar informaci贸n adicional sobre los procesos del sistema, y pueden ser 煤tiles para solucionar problemas o supervisar el rendimiento del sistema. Por ejemplo, puede utilizar la columna TIME para identificar los procesos que llevan mucho tiempo en ejecuci贸n, o puede utilizar la columna STAT para identificar los procesos que est谩n detenidos o en estado zombi.
En Linux, el VSZ (Virtual Memory Size) es la cantidad total de memoria virtual (en kilobytes) que est谩 actualmente asignada a un proceso. La memoria virtual es una caracter铆stica de los sistemas operativos modernos que permite a un proceso utilizar m谩s memoria de la que est谩 f铆sicamente disponible en el sistema.

La memoria virtual permite a un proceso almacenar temporalmente datos en el disco si no tiene suficiente memoria f铆sica para almacenar todos los datos en la RAM. Esto puede ser 煤til para procesos que necesitan trabajar con grandes cantidades de datos, ya que les permite utilizar m谩s memoria de la que ser铆a posible s贸lo con la RAM f铆sica del sistema.

La VSZ de un proceso puede ser una m茅trica importante para monitorizar el rendimiento del sistema, ya que puede proporcionar una indicaci贸n de la cantidad de memoria virtual que est谩 siendo utilizada por el proceso. Si la VSZ de un proceso es consistentemente alta, puede indicar que el proceso est谩 utilizando mucha memoria virtual y que puede estar impactando en el rendimiento general del sistema. por ejemplo, si un proceso tiene un uso de memoria virtual muy grande, puede indicar que puede haber un n煤mero considerable de fallos de p谩gina (https://en.wikipedia.org/wiki/Page_fault).
En Linux, el RSS (Resident Set Size) es la cantidad de memoria f铆sica (en kilobytes en la RAM) que un proceso est谩 utilizando actualmente. Esto incluye tanto la memoria que el proceso ha asignado para su propio uso, as铆 como cualquier memoria que haya sido compartida con otros procesos.
El RSS de un proceso puede ser una m茅trica importante para controlar el rendimiento del sistema, ya que puede proporcionar una indicaci贸n de la cantidad de memoria que est谩 siendo utilizada por el proceso. Si el RSS de un proceso es constantemente alto, puede indicar que el proceso est谩 utilizando mucha memoria y que puede estar afectando al rendimiento general del sistema.

No puedes hacer scroll en la terminal por lo que no puedes ver todo el contenido de ps aux u otros comandos?

Esto lo solucionamos ejecutanto el comando ps aux en less:

ps aux | less

con esto ya podran ver todo el contenido, para salir usan la tecla q

Comando para reiniciar la consola:

tput reset

me encanta este curso

exelente explicacion

RESUMEN DE LA CLASE
manejo y monitoreo de procesos y recursos del sistema
comandos

ohhh GREP, lo amo tanto

uff genial

un script para jugar al ahorcado esta un poco feito el codigo pero hace su trabajo.

 #!/bin/bash
 arreglos=(`cat "diccionario.txt"`)
 numeroRandom=$(($RANDOM%(${#arreglos[*]})))
 arregloEscogido=${arreglos[$numeroRandom]}
 escondido=()
 escogido=()
 vidas=10
 
  for ((i=0; i < ${#arregloEscogido}; i++))
  do
        #escondido=("${escondido[@]}" "_ ")   # los dos funcionan perfectamente para pushear valores.
        escogido+=("${arregloEscogido:$i:1}")
    done
 
  for ((i=0; i < ${#arregloEscogido}; i++))
  do
      #escondido=("${escondido[@]}" "_ ")   # los dos funcionan perfectamente para pushear valores.
      escondido+=("_ ")
 done
 
 
 while [ $vidas -gt 0 ]
 
      si_adivino=1
     clear
   echo "Adivina la palabra: ${escondido[*]} numero de vidas: $vidas"
   read -p "escribe una  letra: " letra
     for ((i=0; i < ${#arregloEscogido}; i++))
     do
          if [ $letra == ${arregloEscogido:$i:1} ]; then
              escondido[$i]=$letra
             si_adivino=0
         fi
      done
      if [ "${escondido[*]}" == "${escogido[*]}"  ]; then
         break
      elif [ "$letra" == "${arregloEscogido[*]}" ]; then
          break
      elif [ $si_adivino -eq 1 ]; then
         vidas=$((vidas - 1))
      fi
  done
 
 
  if [ $vidas -gt 0 ]; then
      echo "GANASTE la palabra correcta es: ${arregloEscogido}"
  else
      echo "Perdiste alpiste la palabra correcta es: ${arregloEscogido}"
  fi                              

:qa! = Cierra el editor vi

Terminal Ubuntu, en Win11

este es mi aporte es desde una Mac
aqui el cat

y aca la ejecuci贸n

As铆 que as铆 podemos tener varios procesos a la vez en una sola terminal, interesante a seguir

$ ps -> Procesos activos
$ ps aux -> Consumo de recursos de los procesos
**$ grep ** -> Nos ayuda a filtrar el resultado de un comando o archivo
$ comando_salida | grep palabra_a_filtrar -> nos ayuda a enviar el resultado de un comando a un segundo comando.
$ ps aux | grep platzi -> Ejemplo del comando de arriba
$ Ctrl + Z -> Enviar procesos a background, nos permite hacer multiples
tareas en una sola terminal
$ fg o fg num -> Seleccionamos el numero del proceso nuevamente a activar
$ vi script. sh -> Crear el siguiente script

#!/bin/bash
echo "hola"

$ ./script. sh & -> ejecuta y crea un proceso
$ nohup . /script.sh & -> crea un proceso nohup.out que lleva la salida del archivo script. sh
$ cat nohup. out -> imprime la salida guardada en el proceso nohup (nohup te da una salida, Y pipe | solo te deja seguir trabajando)

Buen contenido

para el comando 
ps
tambien podemos usar 
top
te mostrar谩 los procesos actuales en tiempo real

No es una buena practica dar el permiso de ejecuci贸n a todos (usuario, grupo, otros). Por ello para ejecutar el script, solo se agregar铆a el permiso de ejecuci贸n al usuario.

chmod u+x script.sh

Utilizando pipe | podemos realizar consultas m谩s interesantes.

Imagina que quieres ver los procesos con: ps aux, pero tambi茅n quieres filtrar, para filtrar lo podemos hacer con grep 鈥楲o que quieres buscar鈥, para utilizar ambas herramientas o comandos simplemente debes utilizar pipe |, de la siguiente manera:

ps aux | grep 'Lo que quieres filtrar'

驴Qu茅 es el comando nohup?
Nohup significa 鈥榥o hang up鈥 y, como su nombre lo indica, evita que el comando se cancele autom谩ticamente cuando cierra sesi贸n o sale del shell.

驴C贸mo usar el comando nohup?

Podemos utilizar nohup de dos formas. Primero est谩 ejecutando el comando con par谩metros sin recibir ninguna otra entrada mientras trabaja. Todos los resultados, incluidos los mensajes de error, se escribir谩n en el archivo nohup.out en el directorio de trabajo o en su directorio de inicio. Si el comando a煤n se est谩 ejecutando cuando cierra la sesi贸n o cierra la terminal, no terminar谩.

Use el comando nohup con 鈥&鈥

Para iniciar un proceso y ponerlo en segundo plano, b谩sicamente ejecuta el comando seguido del s铆mbolo 芦&禄. El s铆mbolo 芦&禄 al final del comando indica a bash que se ejecute nohup yourcommand en el fondo. Puede devolverse al primer plano con el comando fg.

Para una mejor experiencia de usuario, puedes administrar el servidor desde su consola del sistema operativo (m谩s bonita y configurada con sus temas). solo tienen que ejecutar
ssh [email protected]
ponen su contrase帽a y listo.

Me costo entendelo bien pero al final lo hice.
Vamos!!!

ps: sirve para ver que procesos corren en el sistema operativo
"ps aux"
spacebar pasar paginas del manual
ps aux | grep username
| concatena comando y grep busca string especifica
para idenficar procesos relacionado con la palabrqa clave username
Con control +z pongo los procesos en background
para ejecutar un script se usa ./nombreScript.sh
para hacerlo de manera asincronica ./nombreScript.sh & pero este no muestra salida, para que la muestre se usa nohup ./nombreScript.sh &

-Mis notas de clase-

Una de las funciones importantes de los administradores de sistemas es verificar que todos los procesos que se est谩n ejecutando sean validos y no sean procesos que est茅n haciendo cosas maliciosas.

En ocasiones estamos trabajando en un editor de texto en la consola, pero necesitamos volver a la consola sin cerrar el editor, para esto paramos el proceso de la consola presionando las teclas 鈥渃trl+z鈥 y esto me detendr谩 el proceso, puedo ver el proceso con el comando 鈥渏obs鈥, si quiero continuar el proceso puedo ejecutar el comando 鈥渇g鈥.

Podemos crear un 鈥渟cript. sh鈥 con alg煤n editor como vi o vim, luego para ejecutar esos scripts se debe colocar un punto 鈥.鈥 y una barra inclinada 鈥/鈥 antes del nombre del script. Ejemplo: 鈥./script. sh鈥 esto ejecutar铆a el script, pero antes se debe otorgar permisos de ejecuci贸n al archivo con 鈥渃hmod +x script. sh鈥.

El comando nohup es 煤til cuando se est谩n desplegando servidores ya que nos permite saber que realiza el script.

Comandos vistos en clase:
ps: Muestra los procesos que se est谩n ejecutando.
ps aux: Muestra todos los procesos en ejecuci贸n.
ps aux | greep {palabra}: Busca los procesos que se ejecutan por el usuario (especificado en 鈥渰palabra}鈥). O que contengan la palabra en su salida.
jobs: Permite ver los procesos que se est谩n ejecutando
fg {#}: Permite reanudar procesos. si solo hay un proceso se puede poner solo ps sin el numero del proceso.
nohup {script}: Genera un archivo llamado 鈥渘ohup. out鈥 que muestra la informaci贸n que genera un proceso.

nohup is a POSIX command which means 鈥渘o hang up鈥. Its purpose is to execute a command such that it ignores the HUP signal and therefore does not stop when the user logs out. Output that would normally go to the terminal goes to a file called nohup.out, if it has not already been redirected.

Jobs Command: Jobs command is used to list the jobs that you are running in the background and in the foreground. If the prompt is returned with no information no jobs are present. All shells are not capable of running this command. This command is only available in the csh, bash, tcsh, and ksh shells.

**COMANDOS BASICOS EN VI O VIM
**
q!: cierra archivo sin guardar
x! : cierra archivo y guarda

wq! : cierra archivo y guarda

i: inset
v:modo visual
d : delete
y :copiar
p :paste

Dejo mis notas por si alguien le sirve:

monitoreo de procesos:

ps aux ---> ver todos los procesos que actualmente estan en el SO
ps aux | grep anthony --> filtrarai todos los procesos del usuario anthony
jobs --> ver los procesos que estoy ejecutando actualmente
ejemplo, si estoy editando con vim y le doy ctrl+z , detengo el vim y veo el proceso detenido con jobs

y para volver al proceso anterior que par茅 seria:

fg --> vuelve al editor en este caso

creando script:

vim script.sh --> crea el archivo y entra al editor

dentro coloco:

#!/bin/bash
echo "hola"
chmod +x script.sh --> damos permiso de ejecucion
./script.sh --->ejecuta script
./script.sh  & --->ejecuta script background y muestra el proccess ID
nohup ./script.sh & --> ejecutas el archivo y ademas crea un archivoo con las salidas del script.sh

aplicacion de comandos de monitoreo
nohup

Recuerden que pueden utilizar Hyper-v para virtualizar de forma nativa con Windows. 馃槂

Les comparto mi corto script xd.
[](
@echo off
Set/a suma=5+3
Echo %suma%
Echo
Pause
)

Excelente, gracias

Bastante interesante y muy utiles estos comandos.