LPIC-1- 8 de Octubre de 2018

Muestra sólo las 3 primeras lineas de 1 fichero:

Muestra las 3 últimas lineas de 1 fichero:

tail -f 3 /etc/fstab
Si este fichero se va llenando, en tiempo real veremos cómo se va llenando y cambiando (f=follow)

wc

sort:

Ordenar por campo:
Indicamos “:” como separador de campo, y elegimos el tercer campo:

Para que se ordenen bien los números:

cut:

Cortamos del caracter 3 al carácter 5
d=delimitador, f=field

hexdump: visor de ficheros binarios

“redireccionadores”

>

cat /etc/fstab > /dev/null
“Tiramos el contenido a la nada”: se destruye

>>

No machaca el fichero: lo crea si no existe y si no, va añadiendo la redireción al archivo

2>

salida de estandar y salida de error

El 2 significa la salida numero 2: la de error.

Redireccionar el error, sin machacar: 2>>

Redireccionador por excelencia: pipe |

¿cuántas líneas tiene el archivo fstab?
Cortamos la info recogida con el date y recortamos la info, cogiendo del carácter 12 al  19.

Cogemos sólo la primera palabra (el comando):

grep

Buscar texto

¿cuántos ficheros hay que en su nombre aparezca ‘txt’?
-i: ignora mayúsculas/minúsculas
muestra número de línea donde encuentra la ocurrencia
Búscame las líneas que NO tienen (v) la palabra “ext4”
En todos estos ficheros, en qué lineas hay el texto que yo quiero
Errores? no hay permiso de lectura: no soy root!
¿no queremos ver los errores feos? Los enviamos a null!! 🙂
Nos ahorramos usar el comando wc, especificando -c: contar lineas con la ocurrencia “ext4”
¡Hay libros enteros sobre grep!

RegEx
¿es un e-mail? FORMATO: letras@letras.letras – patron e-mail
¿es un teléfono? 9 números – patron numeros

Dossier Expresiones Regulares
https://github.com/q2dg/LPIC1/blob/master/ExprReg.pdf

Grep con expresiones Regulares

Buscar palabras al principio de la línea: grep -E “^ext14” /etc/fstab

Buscar palabras al principio de la línea: grep -E “^UUID” /etc/fstab

Busca las líenas que al final tienen un 1

Buscamos ‘a’ y cualquier otro carácter, juntos.

Líneas que tienen exactamente 4 carácteres: grep -E “^….$” /etc/fstab

Líneas que tienen 12 carácteres
Contacmos carácteres linea 1 y mostramos lineas que tengan 45 carácteres

Busca linas que tengan entre 30 y 50 caracteres:

Lineas que tienen 30 caracteres o mas

? -> El carácter anterior es opcional

+ -> Afecta a la letra de antes: la b es obligatoria y a dem,as, puede que se repita:

  • * -> O no está, o esta una vez, o mas
lo del parentesis, que aparece una vez o más
Una a y 2 d’s
Si aparece ab o dd, cualquiera es válida
Escapamos carácter especial . con la barra \ -> “hacerle perder ese significado especial que pueda tener
Contamos el número de carpetas
Me muestra las carpetas ocultas

sed

Editor muy potente

awk: permite hacer programas que modifiquen texto (combinacion de grep y cut es lo basico del awk

s de substituir, g de manera global, una palabra por otra (antiga por nova)

parametro i “inline”: en cada linea del fichero:

modifica el archivo!
Con el -E podemos usar RegEx, y cambiamos todas las “a” por pizza
Eliminamos linea
Añadimos líneas (i de insertar)
Insertamos una linea y eliminamos otra

sed one liners:

http://sed.sourceforge.net/sed1line.txt

————————————————-

Procesos – Comando ps

Proceso: progrqama ejecutándose en memoria

Conocer en tiempo real lo que está pasando en el ordenador

ps

Foto instantánea de procesos que hay ahora en memoria

PID: Process Identifier

Kernel le asigna un PID al azar. Este programa ya etá identificado por este numero único.

Time a 00:00:00-> suma de la cantidad de tiempo que el proceso se está ejecutando – es tan tan tan rápido, que por eso marca 00!

pts=pseudo terminal

¿en qué terminal estoy?

Los programas graficos no tienen asignado un terminal. Los servicios/deamons, tampoco.

ps -e | less
195 procesos en ejecución (le quitamos uno, por el titulo que muestra el ps -e
detale de los procesos con ps -eF

UID: User Identifier: ¿qué usuario ha arrancado ese programa?

PPID: Parent Process Identifier: el identificador del padre de ese proceso.
Kernel: proceso número 1.
Si matamos el primer proceso, matamos todo: /sbin/init
El Kernel es el 0.
Corchetes: no son programas de verdad, son funciones del kernel, no son comandos que tu puedes ejecutar.

El proceso 1 es el Init

Columna SZ: Size, tamaño maximo q podria llegar a ocupar este proceso en la RAM. No quiere decir que lo ocuper ahora mismo, pero está reservado.

RSS: Tamaño Real de memoria que esta utilizando este programa/proceso.

PSR: en qué CPU se está ejecutando este programa

Kernel: el árbitro, el que pone los procesos en la CPU que toque

¿cuantas CPU tenemos? lscpu – ¿cuántas colas tengo? 4 🙂

STIME: a qué hora se empezó a ejecutar ese programa

ps -eF –sort -rss
Con el guion delante de rss, hacemos orden inverso

Mostramos los 5 procesos que están ocupando más memoria: ps -eF –sort -rss | head -n 5
¿Está el firefox funcionando? NO. Solo muestra el proceso de busqueda con grep firefox
Elegimos las columnas que queremos que aparezcan
ps -e -o uid,pid,cmd –sort -rss
ELAPSED: ¿Cuánto timepo lleva en ejecución?
ps -o uid,pid,cmd,rss,sz,etime,stime
time/elapse*100 = tanto por ciento de uso de la cpu
espacio de memoria ocupado por el proceso / tamaño total de la ram = %Mem
¿Cuánta memoria tenemos? free -h (h de human)
Columna S: estado del proceso: en ejecución o fuera (en la cola) – R=ready, en ejecucion | S=sleeping,esperando su turno

Estados más raros: T, Stopped, el kernel lo ha apartado de la cola
Estado Zombie: programas que tendrían que estar muertos y no lo están. A veces, los programas no quieren morir: se quedan medio-tontos. Esos son los zombies. Suelen desaparecer solos porque el kernel acaba con ellos. Letra: Z.


pstree: arbol de procesos

PID y parametros del programa

pidof

¿cuáles son los PIDs de los programas que estamos ejecutando? En este caso son 2 porque tenemos 2 ventanas de bash abiertas – pidof

killall

killall bash
killall

Señal 15 – ¿Señor programa, quiere usted morir? – Se espera a que el programa cierre de manera ordenada.

killall -s 9 bash

señal 9: mata a todos (no usa el resepto de la señal 15)

kill

requiere en PID

pidof bash
kill -s 9 7010

CONTROL+C: señal 2

Señal 19: detiene proceso, señal 18: re-emprende proceso

lpic1@debian:~$ kill -s 19 8773
lpic1@debian:~$ kill -s 18 8773

top

top: cada 3 segundos muestra información actualizada de todos los procesos en memoria

Muestra hora actual, tiempo que está el sistema subido, cuantos usuarios están identificados, cantidad de carga del ordenador durante el ultimo cuarto de hora, cuanto trabajo ha tenido durante los últimos 5 minutos, cuanto trabajo ha tenido durante el ultimo minuto.

cualquier numero de esos 3, si llega a 4 (4 es el numero de CPUs son las que tenemos), las 4 CPUs están a pleno renidimiento: 100%. Si supera el 4, hay más trabajo del que pueden procesar las CPUs.

%Cpu(s): clasificacion de la ocupacion de la CPU por parte de los programas de usuario (us), de sistema (sy), ni, id (iddle: % de tiempo en el que la CPU está sin hacer nada), wa: waiting->entra un proceso en la CPU pero antes de ejecutarse ha de hacer algo previo (sobre todo, leer y escribir en disco duro, que es lento), interesa que sea un numero muy bajo, porque si no la maquina se colapsa, si se le y escribe mucho del disco duro, aumenta este numero.
hi: interrupciones de hardware que entran en la CPU (movimiento raton, teclado, dato por la red, si aumenta mucho, puede haber problema de hardware), si=software interruption, st=es para maquinas virtuales

ls ha estado 3 milésimas en la cola
time ls / -R

Datos de la memoria

shared: espacio de memoria donde hay librerias que usan varios programas
buff/cache=”tengo 2,2G de ram con cosas, pero no pasa nada si se borran, son datos que normalmente están en el disco duro, memoria caché”

available =  free ram + cache ram

swap: actua como si fuera ram pero no lo es, es un trozo de disco duro