SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
© All rights reserved. www.keepcoding.io
Comandos GNU
Julián García-Sotoca Pascual
© All rights reserved. www.keepcoding.io
Índice
● Edición de ficheros con vi
● Procesando secuencias de texto y filtros
● Tuberías y redirecciones
● Crear, monitorizar y matar procesos
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● VI es un editor de texto disponible en todas las distribuciones
GNU/Linux y en la mayoría de Unix
● Proporciona muchas funcionalidades que lo hacen ser uno de los
más usados por los administradores
● Realmente cuando se portó de los antiguos Unix al proyecto GNU
se añadieron funcionalidades, creando el vi improved o vim
● Existen muchos otros como emacs o nano, pero Vi se ha
convertido en el estándar
● En ciertas situaciones de emergencia es el único editor disponible
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modos de operación:
○ Comando: acepta comandos en forma de letras
○ Edición o Insert: cualquier caracter introducido es insertado
en el documento a excepción de la tecla esc
○ Ex o Última línea: precedido por : permite la manipulación de
ficheros
● Es importante reconocer el modo en que estamos operando
● El editor arranca en modo comando
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modos de operación:
Comando
Última línea
Edición
ESC Intro / ESC
:
i a I A o O
Salida
q q! x wq
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Guía básica: vi fichero arranca en modo comando editando el fichero indicado
i inserta texto a la izquierda del cursor
a inserta texto a la derecha del cursor
I Inserta texto al inicio de la línea
A inserta texto al final de la línea
ESC Vuelve al modo comando
X borra el caracter bajo el cursor
dd borra la línea actual
dw borra la palabra actual
h o flecha izquierda mueve el cursor a la izquierda
j o flecha abajo mueve el cursor a la línea de abajo
k o flecha arriba mueve el cursor a la línea de arriba
l o flecha derecha mueve el cursor a la derecha
:w guarda los cambios
:q sale del editor
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Formas de iniciar:
○ vi: abre el programa sin abrir ningún archivo
○ vi fichero: edita el fichero si existe y si no lo crea
○ vi fichero1 fichero2: edita varios archivos, para cambiar al
siguiente archivo :next o :n y para el previo :prev o :N
○ vi +[número] fichero: edita el fichero iniciando en la línea
indicada
○ vi +/patrón fichero: edita el fichero iniciando en la primera vez
que encuentre el patrón
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo comando:
○ Multiplicadores: permite ejecutar un comando tantas veces
como se le indica
5Y copia 5 líneas
10dd borra 10 líneas
3dw borra 3 palabras
8j mueve el cursor 8 líneas abajo
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo comando:
○ Movimiento del cursor
○ Movimiento de pantalla
Flechas mover en distintas direcciones
^ o $ mueve al inicio o al final de la línea
G última línea
xG mueve el cursor a la línea x
xl mueve el cursor al carácter x de la línea
Ctrl+f una pantalla adelante
Ctrl+b una pantalla atrás
Ctrl+d media pantalla adelante
Ctrl+u media pantalla atrás
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo comando:
○ Borrado
○ Copiar y pegar
x borra un carácter
dd borra la línea
D o d$ borra desde el cursor hasta fin de línea
d0 borra desde el cursor hasta el inicio de línea
dw borra desde el cursor hasta fin de la palabra
Y o yy copia línea
P pega antes del cursor
p pega después del cursor
yw copia palabra
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo comando:
○ Búsqueda
○ Otros
/cadena busca adelante la cadena
?cadena busca atrás la cadena
n repite el último comando de búsqueda
N repite el último comando de búsqueda en sentido inverso
dw borra desde el cursor hasta fin de la palabra
u deshace la última acción
U deshace todos los cambios en una línea
. repite la acción
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo última línea:
:q salir si no ha habido cambios
:q! salir sin guardar
:w guardar cambios
:w fichero1 guardar cambios en el fichero1
:wq o :x guardar y salir
:r arch2 inserta un archivo
:e arch2 edita un archivo nuevo
:r! comando inserta la salida de un comando
© All rights reserved. www.keepcoding.io
Edición básica de ficheros con vi
● Modo última línea:
○ configuración
Se puede modificar permanentemente añadiendo las opciones
en el fichero .vimrc
:set number muestra los números de línea
:set nonumber oculta los números de línea
:set showmode muestra el modo actual de vi
:set
noshowmode
oculta el modo actual de vi
:set list muestra caracteres ocultos
:set nolist no muestra caracteres ocultos
:set ignorecase ignora mayúsculas en las búsquedas
:set
noignorecase
no ignora mayúsculas en las búsquedas
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● cut
○ selecciona determinadas columnas o campos de un fichero y lo
muestra por pantalla
○ útil para mostrar el contenido de ficheros tabulados
○ opciones más comunes:
■ -b: devuelve los bytes seleccionados
■ -c: devuelve los caracteres seleccionados
■ -d: cambia el delimitador de campo, por defecto es TAB
■ -f: selecciona únicamente esos campos
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● fmt
○ permite reformatear un texto que tiene líneas demasiado largas
○ con -width o w, se puede cambiar la longitud de la nueva línea
● nl
○ numera las líneas del fichero parseado, equivalente a cat -b
○ opciones más comunes:
■ -ba para enumerar también las líneas vacías
■ -i permite cambiar el valor de incremento
■ -n permite cambiar el formato de numeración
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● join
○ permite combinar dos ficheros macheando el contenido de algún
campo específico
○ con -t se puede especificar el carácter que separa los campos
○ ambos ficheros deben tener los campos en el mismo orden
● paste
○ similar a join, pero no utiliza un campo clave, en este caso pega
línea a línea separado por un tabulador
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● expand/unexpand
○ convierte los tabuladores en espacios
○ en ocasiones es mejor reemplazarlo para mejorar la
compatibilidad
○ por defecto sustituye un tabulador por 8 espacios
○ unexpand hace la operación inversa
○ opciones comunes:
■ -t: cambia el número de espacios
■ -i: solo convierte en el inicio de las líneas
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● od
○ permite mostrar el contenido de ficheros en Octal
○ utilizando las herramientas anteriores con ficheros binarios es
posible que deje la consola incontrolable
○ la salida está compuesto por números del 0 al 7 (octal) en
agrupaciones de 6 bytes
○ el primer campo de cada línea es el índice sobre el fichero
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● split:
○ permite dividir un fichero en dos o más ficheros
○ es necesario pasarle un prefijo que usará para construir los
nuevos ficheros a los que se le añadirá un código alfabético
○ es necesario pasarle cual será el tamaño máximo de los ficheros
divididos
■ para dividir por bytes se usa -b
■ para dividir por líneas se usa -l
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● tr
○ intercambia o borra caracteres que vienen del standard input (lo
veremos más adelante)
○ se ejecuta pasándole dos grupo de caracteres, el primero los
que se quieren reemplazar (SET1) y el segundo los que se van a
usar para reemplazarlos (SET2)
○ con -d se borran los caracteres del SET1
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● wc
○ permite obtener un conteo de palabras
○ por defecto devuelve las líneas, las palabras y los bytes de un
fichero
○ con -l devuelve únicamente las líneas
○ con -w devuelve las palabras
○ con -c los bytes
○ con -m los caracteres
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● xargs
○ herramienta muy potente que permite construir un comando
desde la entrada estandard
xargs comando argumentos <entrada>
○ al comando que se construye se le pasa todo el contenido hasta
que alcanza un límite especificado por -n o -L
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● sort
○ ordena el contenido de un fichero
○ por defecto ordena alfabéticamente pero también puede
ordenar:
■ ignorando mayúsculas con -f
■ numérico con -n
■ en orden inverso con -r
■ por un campo específico con -k
○ Con -u podriamos evitar la aparición de líneas duplicadas
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● uniq
○ elimina líneas consecutivas duplicadas
○ para ser más útil es posible que se necesite ordenar antes el
fichero
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● grep
○ busca determinado patrón en uno o más ficheros
○ devuelve el fichero que contiene el patrón y la línea donde lo
contiene
○ permite usar expresiones regulares en el patrón
○ algunas de las opciones más usadas:
■ -r búsqueda recursiva en el directorio especificado y
subdirectorios
■ -i ignora la diferencia entre mayúsculas
■ -An o -Bn, o -Cn: devuelve las n-líneas anteriores o posteriores
a la ocurrencia
■ -v muestra todas las líneas excepto la que tiene el patrón
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● grep
○ existen 2 variantes
■ egrep: usa expresiones regulares extendidas
■ fgrep: no interpreta expresiones regulares
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● sed
○ modifica el contenido de ficheros sacando por pantalla la salida
modificada
○ se suele utilizar para automatizar ediciones repetitivas
○ se le puede pasar un comando a ejecutar o listas más complejas
desde un fichero
○ algunos de los comandos más comunes son:
■ d → borrar líneas
■ s → sustituciones, permitiendo añadir banderas
● g sustituye todas las instancias del patrón
● n sustituye la n-ésima instancia de patrón
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● sed
○ ejemplos
sed s/patrón/nuevo_string/ fichero Sustituye la primera ocurrencia de patrón en cada línea
sed s/patrón/nuevo_string/g fichero Sustituye todas las ocurrencias de patrón en cada línea
sed 1,5s/patrón/nuevo_string/g fichero Sustituye todas las ocurrencias de patrón en el rango de líneas
sed -i s/patrón/nuevo_string/g fichero Guarda los cambios de la sustitución en la misma línea (no es reversible)
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● awk
○ se utiliza para extraer y sacar por pantalla partes específicas de
un fichero
○ es muy potente y es un lenguaje de programación en sí mismo
○ trabaja muy bien con campos y registros
○ el fichero de entrada se lee línea a línea y awk machea la
expresión en el orden y realiza la acción
○ con -F se le puede indicar el carácter separador de campo
○ el comando o acción, debe ir entre comillas simples
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● awk
○ ejemplos
awk ‘{print $0}’ /etc/passwd Devuelve todo el fichero
awk -F: ‘{print $0}’ /etc/passwd Devuelve la primera columna de cada línea
awk -F: ‘{print $0 $7}’ /etc/passwd Devuelve la primera y la séptima columna de cada línea
© All rights reserved. www.keepcoding.io
Procesado de secuencias de texto y filtros
● sed & awk da para escribir un libro
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
● Todos los procesos en Unix abren 3 descriptores
○ stdin → standard input. Valor numérico 0
○ stdout → standard output. Valor numérico 1
○ stderr → standard error. Valor numérico 2
● Dispositivos virtuales: /dev/stdin, /dev/stdout y /dev/stderr
● stdin normalmente hace referencia al teclado
● stdout y stderr normalmente hace referencia a la pantalla
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
Standard streams
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
File descriptors
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
● Flujos
○ Para redireccionar la salida estándar a un archivo → “>”
○ Si no se quiere sobreescribir el archivo → “>>”
○ Para redireccionar el contenido de un archivo a la entrada
estandard → “<”
○ Para especificar la salida:
■ “2>” → solo redirige el stderr al fichero
■ “&>” → redirige el stdout y stderr al fichero
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
● Flujos
○ La tubería (pipe) permite enviar la salida de un comando a la
entrada de otro. Se especifica con el carácter “|”
○ Con el comando tee se puede redireccionar simultáneamente a
un archivo y a la stdout
○ Se puede utilizar la salida de un comando como argumento para
otro con comillas invertidas “`”
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
Pipes and Filters – The Unix Shell
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
Pipes
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
● Ejemplos cmd > fichero
cmd 1> fichero
Envía el stdout al fichero
cmd 2> fichero Envía el stderr al fichero
cmd > fichero 2>&1 Envía el stdout y stderr al fichero
cmd > fichero 2> fichero2 Envía el stdout al fichero y stderr al fichero2
cmd < fichero Recibe en el stdin desde fichero
cmd >> fichero
cmd 1>> fichero
Añade el stdout al fichero
cmd 2>> fichero Añade el stderr al fichero
cmd >> fichero 2>&1 Añade el stdout y el stderr al fichero
cmd1 | cmd2 Pasa el stdout del cmd1 como stdin del cmd2
cmd1 2>&1 | cmd2 Pasa el stdout y el stderr del cmd1 como stdin del cmd2
© All rights reserved. www.keepcoding.io
Tuberías y redirecciones
● tee:
○ lee del Standard Input y escribe en un fichero y en el standard
output
○ con -a añade si el fichero donde se escribe ya existe
○ Ejemplo:
cmd1 | tee salida_cmd1.log | cmd2 | cmd3
De esta forma en el fichero salida_cmd1.log tendríamos el stdout
del cmd1 que además se habría pasado como entrada del cmd2.
Por pantalla veríamos la salida del cmd3
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Procesos
○ Un proceso es un programa en ejecución
○ Cada proceso está identificado por un PID
○ Linux es multitarea permitiendo arrancar más de un proceso
simultáneamente.
○ Estados de un proceso:
Process In a Linux Based System - Nilmar Shereef PT
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Procesos
○ Todo lo que se ejecuta en el sistema es un proceso
○ Un proceso puede ejecutar otros procesos, también conocidos
como procesos hijos
○ Cada proceso tiene una serie de atributos:
■ PID
■ UID & GUI
■ Proceso padre o PPID
■ Entorno
■ Directorio de trabajo
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Tipos de procesos
○ Interactivos: necesitan ser iniciados por un usuario
○ Batch: procesos automáticos y programados
○ Daemons: procesos de servidor que se ejecutan continuamente
○ Threads: tareas o procesos ligeros que se ejecutan bajo el
paraguas de un proceso principal, compartiendo memoria y
otros recursos
○ Kernel Threads: tareas del kernel sobre las que el usuario no
tiene ningún control
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Monitorización:
○ ps: muestra procesos activos
○ top o htop: monitorización continua
○ pstree: muestra el árbol de procesos
○ pidof: devuelve el PID de un programa
○ kill: envía señales de control para procesos
○ killall o pkill: utiliza el nombre del proceso en lugar del PID
○ nice o renice: nos permite gestionar las prioridades de un
proceso
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Señales de control:
○ Cada proceso corriendo en el sistema está en escucha de
señales
○ Estas señales son mensajes numéricos muy simples que envía el
kernel o el usuario
○ Cuando el proceso recibe una señal puede realizar una acción
○ Existen multitud de señales definidas, cada una se referencia con
un nombre y un número
○ Se puede usar el comando kill para enviar señales a los
procesos. Para mostrar todas las señales disponibles
ejecutamos kill -L
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Señales de control:
Señal ID Función
SIGHUP 1 Reinicia el proceso, recarga la configuración
SIGINT 2 Interrumpe el proceso, igual a Ctrl+C
SIGKILL 9 Fuerza la finalización del proceso
SIGSEGV 11 Fuerza un Segmentation fault
SIGTERM 15 Solicita al proceso que finalice
SIGTSTP 20 Para la ejecución y lo deja listo para continuar
SIGCONT 18 Continúa la ejecución
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Terminando procesos
○ Se suele utilizar el comando kill para matar procesos
○ La señal por defecto que se envía es la 15 o SIGTERM
○ En caso de que no responda al comando se puede enviar la
señal 9 o SIGKILL
○ Ocasionalmente algún proceso se ha podido quedar bloqueado
en el momento de terminar y en el ps o top aparecen como
zombi.
■ estos procesos siguen consumiendo algunos recursos
■ si es recurrente es posible que haya un fallo en el software
■ y recuerda...
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Terminando procesos
You can’t kill zombies,
because they’re already
dead!!
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Control de procesos:
○ Formas de iniciar un proceso:
■ comando → debe estar en el path
■ ./comando → lanzado desde el directorio donde está
■ /home/keepcoding/script/comando → ruta absoluta al
comando
○ Cuando se arranca un proceso de esta manera se queda
ocupando el terminal, en primer plano o foreground
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Control de procesos:
○ Si quisiéramos mantener libre el terminal, el proceso lo
deberíamos arrancar en segundo plano o background
○ Para ello:
■ lo arrancamos directamente en segundo plano añadiendo &
■ lo arrancamos con nohup (hace que no responda a señales
SIGHUP)
■ lo pasamos a segundo plano: con Ctrl+Z le mandaríamos un
SIGSTPT y con el comando bg le diríamos que continuase su
ejecución en background
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Control de procesos:
○ Por cada proceso en background se crea un job
○ Se pueden listar con el comando jobs
○ para recuperar el control de un job en concreto usamos el
comando fg
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Prioridades
○ Linux nos permite modificar las prioridades de cierto proceso
○ Útil para el control de procesos que utilizan muchos recursos
○ La prioridad de los procesos se muestra en la salida del top o del
ps -l
○ Cuanto mayor es el número menos tiempo de CPU se le asigna
○ Para cambiar la prioridad se utiliza:
■ nice → al arrancar un proceso
■ renice → en un proceso que ya está ejecutándose
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Prioridades
○ Las prioridades que se indican en los comandos nice y renice
van de entre el -20 (mayor prioridad) al 19 (menor prioridad)
○ Si no se indica otra se ajusta a 10
○ por defecto los procesos tienen prioridad 0
○ Solo root puede asignar prioridades <0
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ Existen tres opciones para programar tareas para ejecutarse
más adelante en el tiempo:
■ at → para ejecuciones puntuales
■ cron → para ejecuciones recurrentes
■ anacron
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ at
■ permite especificar de varias formas un tiempo futuro en el que
ejecutar cierta tarea → now, noon, midnight, teatime, 12pm,
04:50, now+2
■ Al ejecutar el comando at entra en una shell donde
introducimos los comandos a ejecutar (Ctrl+D para salir)
■ Algunas herramientas nos sirven para gestionar estos jobs:
● atq
● atrm
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ cron
■ Servicio que corre en background
■ Cada minuto examina los ficheros de configuración y
determina si debe ejecutar alguna tarea
■ Los ficheros de configuración se encuentran en:
● /etc/cron.d
● /etc/crontab
● /var/spool/crontab
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ cron
■ Existen dos métodos para programar la ejecución de tareas:
● Editar el crontab con el comando crontab -e
● Añadir los scripts que se quieren ejecutar en los directorios
/etc/cron.daily, /etc/cron.hourly, /etc/cron.weekly o
/etc/cron.monthly
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ El formato de los ficheros crontab es el siguiente:
■ para los ficheros /etc/crontab y /etc/cron.d/:
■ para los crontab de usuario /var/spool/crontab/usuario:
© All rights reserved. www.keepcoding.io
Crear, monitorizar y matar procesos
● Programación de tareas
○ anacron
■ similar a cron, pero en lugar de fijar una hora exacta se
especifican intervalos
■ posiblemente anacron sea invocado por el mismo cron

Mais conteúdo relacionado

Semelhante a Lista de Comandos UNIX

Semelhante a Lista de Comandos UNIX (20)

Clase11 (consola linux)
Clase11 (consola linux)Clase11 (consola linux)
Clase11 (consola linux)
 
Curso c++
Curso c++Curso c++
Curso c++
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Certificado 2
Certificado 2Certificado 2
Certificado 2
 
Sistemade ficheros pdf
Sistemade ficheros pdfSistemade ficheros pdf
Sistemade ficheros pdf
 
Sistema de ficheros Ubuntu
Sistema de ficheros UbuntuSistema de ficheros Ubuntu
Sistema de ficheros Ubuntu
 
Shell comandosbasicos
Shell comandosbasicosShell comandosbasicos
Shell comandosbasicos
 
programacion-Devian-C.pdf
programacion-Devian-C.pdfprogramacion-Devian-C.pdf
programacion-Devian-C.pdf
 
EL SHELL Y COMANDOS BASICOS DE LINUX
EL SHELL Y COMANDOS BASICOS DE LINUXEL SHELL Y COMANDOS BASICOS DE LINUX
EL SHELL Y COMANDOS BASICOS DE LINUX
 
Lenguaje C (pdf)
Lenguaje C (pdf)Lenguaje C (pdf)
Lenguaje C (pdf)
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Copiade sistemadeficheros
Copiade sistemadeficherosCopiade sistemadeficheros
Copiade sistemadeficheros
 
Linux ud3 - redireccionamiento y tuberias
Linux   ud3 - redireccionamiento y tuberiasLinux   ud3 - redireccionamiento y tuberias
Linux ud3 - redireccionamiento y tuberias
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emerson
 
Rar
RarRar
Rar
 
Fundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacionFundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacion
 
GNU/Linux-Debian
GNU/Linux-Debian GNU/Linux-Debian
GNU/Linux-Debian
 
Tutrorial batch de hackxcrak
Tutrorial batch de hackxcrakTutrorial batch de hackxcrak
Tutrorial batch de hackxcrak
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
T3.2 iñigoestornes
T3.2 iñigoestornesT3.2 iñigoestornes
T3.2 iñigoestornes
 

Mais de KeepCoding

Resumen etiquetas html5
Resumen etiquetas html5 Resumen etiquetas html5
Resumen etiquetas html5 KeepCoding
 
Cómo subir una app al app store
Cómo subir una app al app storeCómo subir una app al app store
Cómo subir una app al app storeKeepCoding
 
Curso iPad Usuario
Curso iPad UsuarioCurso iPad Usuario
Curso iPad UsuarioKeepCoding
 
Curso Android Básico
Curso Android BásicoCurso Android Básico
Curso Android BásicoKeepCoding
 
Iniciacion a Cocos2d en @bcndevcon
Iniciacion a Cocos2d en @bcndevconIniciacion a Cocos2d en @bcndevcon
Iniciacion a Cocos2d en @bcndevconKeepCoding
 

Mais de KeepCoding (6)

Resumen etiquetas html5
Resumen etiquetas html5 Resumen etiquetas html5
Resumen etiquetas html5
 
Cómo subir una app al app store
Cómo subir una app al app storeCómo subir una app al app store
Cómo subir una app al app store
 
Curso iPad Usuario
Curso iPad UsuarioCurso iPad Usuario
Curso iPad Usuario
 
Curso Android Básico
Curso Android BásicoCurso Android Básico
Curso Android Básico
 
Taller OpenGL
Taller OpenGLTaller OpenGL
Taller OpenGL
 
Iniciacion a Cocos2d en @bcndevcon
Iniciacion a Cocos2d en @bcndevconIniciacion a Cocos2d en @bcndevcon
Iniciacion a Cocos2d en @bcndevcon
 

Último

BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfMarianneBAyn
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxTaim11
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesssuserbe0d1c
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdffrank0071
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariaandresingsiseo
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docxssusere34b451
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfprofmartinsuarez
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptxjarniel1
 
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccna
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccnaTELECOMUNICACIONES- CAPITULO2: Modelo Osi ccna
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccnajrujel91
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 

Último (20)

BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
 
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccna
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccnaTELECOMUNICACIONES- CAPITULO2: Modelo Osi ccna
TELECOMUNICACIONES- CAPITULO2: Modelo Osi ccna
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 

Lista de Comandos UNIX

  • 1. © All rights reserved. www.keepcoding.io Comandos GNU Julián García-Sotoca Pascual
  • 2. © All rights reserved. www.keepcoding.io Índice ● Edición de ficheros con vi ● Procesando secuencias de texto y filtros ● Tuberías y redirecciones ● Crear, monitorizar y matar procesos
  • 3. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● VI es un editor de texto disponible en todas las distribuciones GNU/Linux y en la mayoría de Unix ● Proporciona muchas funcionalidades que lo hacen ser uno de los más usados por los administradores ● Realmente cuando se portó de los antiguos Unix al proyecto GNU se añadieron funcionalidades, creando el vi improved o vim ● Existen muchos otros como emacs o nano, pero Vi se ha convertido en el estándar ● En ciertas situaciones de emergencia es el único editor disponible
  • 4. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modos de operación: ○ Comando: acepta comandos en forma de letras ○ Edición o Insert: cualquier caracter introducido es insertado en el documento a excepción de la tecla esc ○ Ex o Última línea: precedido por : permite la manipulación de ficheros ● Es importante reconocer el modo en que estamos operando ● El editor arranca en modo comando
  • 5. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modos de operación: Comando Última línea Edición ESC Intro / ESC : i a I A o O Salida q q! x wq
  • 6. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Guía básica: vi fichero arranca en modo comando editando el fichero indicado i inserta texto a la izquierda del cursor a inserta texto a la derecha del cursor I Inserta texto al inicio de la línea A inserta texto al final de la línea ESC Vuelve al modo comando X borra el caracter bajo el cursor dd borra la línea actual dw borra la palabra actual h o flecha izquierda mueve el cursor a la izquierda j o flecha abajo mueve el cursor a la línea de abajo k o flecha arriba mueve el cursor a la línea de arriba l o flecha derecha mueve el cursor a la derecha :w guarda los cambios :q sale del editor
  • 7. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Formas de iniciar: ○ vi: abre el programa sin abrir ningún archivo ○ vi fichero: edita el fichero si existe y si no lo crea ○ vi fichero1 fichero2: edita varios archivos, para cambiar al siguiente archivo :next o :n y para el previo :prev o :N ○ vi +[número] fichero: edita el fichero iniciando en la línea indicada ○ vi +/patrón fichero: edita el fichero iniciando en la primera vez que encuentre el patrón
  • 8. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo comando: ○ Multiplicadores: permite ejecutar un comando tantas veces como se le indica 5Y copia 5 líneas 10dd borra 10 líneas 3dw borra 3 palabras 8j mueve el cursor 8 líneas abajo
  • 9. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo comando: ○ Movimiento del cursor ○ Movimiento de pantalla Flechas mover en distintas direcciones ^ o $ mueve al inicio o al final de la línea G última línea xG mueve el cursor a la línea x xl mueve el cursor al carácter x de la línea Ctrl+f una pantalla adelante Ctrl+b una pantalla atrás Ctrl+d media pantalla adelante Ctrl+u media pantalla atrás
  • 10. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo comando: ○ Borrado ○ Copiar y pegar x borra un carácter dd borra la línea D o d$ borra desde el cursor hasta fin de línea d0 borra desde el cursor hasta el inicio de línea dw borra desde el cursor hasta fin de la palabra Y o yy copia línea P pega antes del cursor p pega después del cursor yw copia palabra
  • 11. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo comando: ○ Búsqueda ○ Otros /cadena busca adelante la cadena ?cadena busca atrás la cadena n repite el último comando de búsqueda N repite el último comando de búsqueda en sentido inverso dw borra desde el cursor hasta fin de la palabra u deshace la última acción U deshace todos los cambios en una línea . repite la acción
  • 12. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo última línea: :q salir si no ha habido cambios :q! salir sin guardar :w guardar cambios :w fichero1 guardar cambios en el fichero1 :wq o :x guardar y salir :r arch2 inserta un archivo :e arch2 edita un archivo nuevo :r! comando inserta la salida de un comando
  • 13. © All rights reserved. www.keepcoding.io Edición básica de ficheros con vi ● Modo última línea: ○ configuración Se puede modificar permanentemente añadiendo las opciones en el fichero .vimrc :set number muestra los números de línea :set nonumber oculta los números de línea :set showmode muestra el modo actual de vi :set noshowmode oculta el modo actual de vi :set list muestra caracteres ocultos :set nolist no muestra caracteres ocultos :set ignorecase ignora mayúsculas en las búsquedas :set noignorecase no ignora mayúsculas en las búsquedas
  • 14. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● cut ○ selecciona determinadas columnas o campos de un fichero y lo muestra por pantalla ○ útil para mostrar el contenido de ficheros tabulados ○ opciones más comunes: ■ -b: devuelve los bytes seleccionados ■ -c: devuelve los caracteres seleccionados ■ -d: cambia el delimitador de campo, por defecto es TAB ■ -f: selecciona únicamente esos campos
  • 15. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● fmt ○ permite reformatear un texto que tiene líneas demasiado largas ○ con -width o w, se puede cambiar la longitud de la nueva línea ● nl ○ numera las líneas del fichero parseado, equivalente a cat -b ○ opciones más comunes: ■ -ba para enumerar también las líneas vacías ■ -i permite cambiar el valor de incremento ■ -n permite cambiar el formato de numeración
  • 16. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● join ○ permite combinar dos ficheros macheando el contenido de algún campo específico ○ con -t se puede especificar el carácter que separa los campos ○ ambos ficheros deben tener los campos en el mismo orden ● paste ○ similar a join, pero no utiliza un campo clave, en este caso pega línea a línea separado por un tabulador
  • 17. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● expand/unexpand ○ convierte los tabuladores en espacios ○ en ocasiones es mejor reemplazarlo para mejorar la compatibilidad ○ por defecto sustituye un tabulador por 8 espacios ○ unexpand hace la operación inversa ○ opciones comunes: ■ -t: cambia el número de espacios ■ -i: solo convierte en el inicio de las líneas
  • 18. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● od ○ permite mostrar el contenido de ficheros en Octal ○ utilizando las herramientas anteriores con ficheros binarios es posible que deje la consola incontrolable ○ la salida está compuesto por números del 0 al 7 (octal) en agrupaciones de 6 bytes ○ el primer campo de cada línea es el índice sobre el fichero
  • 19. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● split: ○ permite dividir un fichero en dos o más ficheros ○ es necesario pasarle un prefijo que usará para construir los nuevos ficheros a los que se le añadirá un código alfabético ○ es necesario pasarle cual será el tamaño máximo de los ficheros divididos ■ para dividir por bytes se usa -b ■ para dividir por líneas se usa -l
  • 20. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● tr ○ intercambia o borra caracteres que vienen del standard input (lo veremos más adelante) ○ se ejecuta pasándole dos grupo de caracteres, el primero los que se quieren reemplazar (SET1) y el segundo los que se van a usar para reemplazarlos (SET2) ○ con -d se borran los caracteres del SET1
  • 21. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● wc ○ permite obtener un conteo de palabras ○ por defecto devuelve las líneas, las palabras y los bytes de un fichero ○ con -l devuelve únicamente las líneas ○ con -w devuelve las palabras ○ con -c los bytes ○ con -m los caracteres
  • 22. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● xargs ○ herramienta muy potente que permite construir un comando desde la entrada estandard xargs comando argumentos <entrada> ○ al comando que se construye se le pasa todo el contenido hasta que alcanza un límite especificado por -n o -L
  • 23. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● sort ○ ordena el contenido de un fichero ○ por defecto ordena alfabéticamente pero también puede ordenar: ■ ignorando mayúsculas con -f ■ numérico con -n ■ en orden inverso con -r ■ por un campo específico con -k ○ Con -u podriamos evitar la aparición de líneas duplicadas
  • 24. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● uniq ○ elimina líneas consecutivas duplicadas ○ para ser más útil es posible que se necesite ordenar antes el fichero
  • 25. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● grep ○ busca determinado patrón en uno o más ficheros ○ devuelve el fichero que contiene el patrón y la línea donde lo contiene ○ permite usar expresiones regulares en el patrón ○ algunas de las opciones más usadas: ■ -r búsqueda recursiva en el directorio especificado y subdirectorios ■ -i ignora la diferencia entre mayúsculas ■ -An o -Bn, o -Cn: devuelve las n-líneas anteriores o posteriores a la ocurrencia ■ -v muestra todas las líneas excepto la que tiene el patrón
  • 26. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● grep ○ existen 2 variantes ■ egrep: usa expresiones regulares extendidas ■ fgrep: no interpreta expresiones regulares
  • 27. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● sed ○ modifica el contenido de ficheros sacando por pantalla la salida modificada ○ se suele utilizar para automatizar ediciones repetitivas ○ se le puede pasar un comando a ejecutar o listas más complejas desde un fichero ○ algunos de los comandos más comunes son: ■ d → borrar líneas ■ s → sustituciones, permitiendo añadir banderas ● g sustituye todas las instancias del patrón ● n sustituye la n-ésima instancia de patrón
  • 28. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● sed ○ ejemplos sed s/patrón/nuevo_string/ fichero Sustituye la primera ocurrencia de patrón en cada línea sed s/patrón/nuevo_string/g fichero Sustituye todas las ocurrencias de patrón en cada línea sed 1,5s/patrón/nuevo_string/g fichero Sustituye todas las ocurrencias de patrón en el rango de líneas sed -i s/patrón/nuevo_string/g fichero Guarda los cambios de la sustitución en la misma línea (no es reversible)
  • 29. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● awk ○ se utiliza para extraer y sacar por pantalla partes específicas de un fichero ○ es muy potente y es un lenguaje de programación en sí mismo ○ trabaja muy bien con campos y registros ○ el fichero de entrada se lee línea a línea y awk machea la expresión en el orden y realiza la acción ○ con -F se le puede indicar el carácter separador de campo ○ el comando o acción, debe ir entre comillas simples
  • 30. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● awk ○ ejemplos awk ‘{print $0}’ /etc/passwd Devuelve todo el fichero awk -F: ‘{print $0}’ /etc/passwd Devuelve la primera columna de cada línea awk -F: ‘{print $0 $7}’ /etc/passwd Devuelve la primera y la séptima columna de cada línea
  • 31. © All rights reserved. www.keepcoding.io Procesado de secuencias de texto y filtros ● sed & awk da para escribir un libro
  • 32. © All rights reserved. www.keepcoding.io Tuberías y redirecciones ● Todos los procesos en Unix abren 3 descriptores ○ stdin → standard input. Valor numérico 0 ○ stdout → standard output. Valor numérico 1 ○ stderr → standard error. Valor numérico 2 ● Dispositivos virtuales: /dev/stdin, /dev/stdout y /dev/stderr ● stdin normalmente hace referencia al teclado ● stdout y stderr normalmente hace referencia a la pantalla
  • 33. © All rights reserved. www.keepcoding.io Tuberías y redirecciones Standard streams
  • 34. © All rights reserved. www.keepcoding.io Tuberías y redirecciones File descriptors
  • 35. © All rights reserved. www.keepcoding.io Tuberías y redirecciones ● Flujos ○ Para redireccionar la salida estándar a un archivo → “>” ○ Si no se quiere sobreescribir el archivo → “>>” ○ Para redireccionar el contenido de un archivo a la entrada estandard → “<” ○ Para especificar la salida: ■ “2>” → solo redirige el stderr al fichero ■ “&>” → redirige el stdout y stderr al fichero
  • 36. © All rights reserved. www.keepcoding.io Tuberías y redirecciones ● Flujos ○ La tubería (pipe) permite enviar la salida de un comando a la entrada de otro. Se especifica con el carácter “|” ○ Con el comando tee se puede redireccionar simultáneamente a un archivo y a la stdout ○ Se puede utilizar la salida de un comando como argumento para otro con comillas invertidas “`”
  • 37. © All rights reserved. www.keepcoding.io Tuberías y redirecciones Pipes and Filters – The Unix Shell
  • 38. © All rights reserved. www.keepcoding.io Tuberías y redirecciones Pipes
  • 39. © All rights reserved. www.keepcoding.io Tuberías y redirecciones ● Ejemplos cmd > fichero cmd 1> fichero Envía el stdout al fichero cmd 2> fichero Envía el stderr al fichero cmd > fichero 2>&1 Envía el stdout y stderr al fichero cmd > fichero 2> fichero2 Envía el stdout al fichero y stderr al fichero2 cmd < fichero Recibe en el stdin desde fichero cmd >> fichero cmd 1>> fichero Añade el stdout al fichero cmd 2>> fichero Añade el stderr al fichero cmd >> fichero 2>&1 Añade el stdout y el stderr al fichero cmd1 | cmd2 Pasa el stdout del cmd1 como stdin del cmd2 cmd1 2>&1 | cmd2 Pasa el stdout y el stderr del cmd1 como stdin del cmd2
  • 40. © All rights reserved. www.keepcoding.io Tuberías y redirecciones ● tee: ○ lee del Standard Input y escribe en un fichero y en el standard output ○ con -a añade si el fichero donde se escribe ya existe ○ Ejemplo: cmd1 | tee salida_cmd1.log | cmd2 | cmd3 De esta forma en el fichero salida_cmd1.log tendríamos el stdout del cmd1 que además se habría pasado como entrada del cmd2. Por pantalla veríamos la salida del cmd3
  • 41. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Procesos ○ Un proceso es un programa en ejecución ○ Cada proceso está identificado por un PID ○ Linux es multitarea permitiendo arrancar más de un proceso simultáneamente. ○ Estados de un proceso: Process In a Linux Based System - Nilmar Shereef PT
  • 42. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Procesos ○ Todo lo que se ejecuta en el sistema es un proceso ○ Un proceso puede ejecutar otros procesos, también conocidos como procesos hijos ○ Cada proceso tiene una serie de atributos: ■ PID ■ UID & GUI ■ Proceso padre o PPID ■ Entorno ■ Directorio de trabajo
  • 43. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Tipos de procesos ○ Interactivos: necesitan ser iniciados por un usuario ○ Batch: procesos automáticos y programados ○ Daemons: procesos de servidor que se ejecutan continuamente ○ Threads: tareas o procesos ligeros que se ejecutan bajo el paraguas de un proceso principal, compartiendo memoria y otros recursos ○ Kernel Threads: tareas del kernel sobre las que el usuario no tiene ningún control
  • 44. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Monitorización: ○ ps: muestra procesos activos ○ top o htop: monitorización continua ○ pstree: muestra el árbol de procesos ○ pidof: devuelve el PID de un programa ○ kill: envía señales de control para procesos ○ killall o pkill: utiliza el nombre del proceso en lugar del PID ○ nice o renice: nos permite gestionar las prioridades de un proceso
  • 45. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Señales de control: ○ Cada proceso corriendo en el sistema está en escucha de señales ○ Estas señales son mensajes numéricos muy simples que envía el kernel o el usuario ○ Cuando el proceso recibe una señal puede realizar una acción ○ Existen multitud de señales definidas, cada una se referencia con un nombre y un número ○ Se puede usar el comando kill para enviar señales a los procesos. Para mostrar todas las señales disponibles ejecutamos kill -L
  • 46. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Señales de control: Señal ID Función SIGHUP 1 Reinicia el proceso, recarga la configuración SIGINT 2 Interrumpe el proceso, igual a Ctrl+C SIGKILL 9 Fuerza la finalización del proceso SIGSEGV 11 Fuerza un Segmentation fault SIGTERM 15 Solicita al proceso que finalice SIGTSTP 20 Para la ejecución y lo deja listo para continuar SIGCONT 18 Continúa la ejecución
  • 47. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Terminando procesos ○ Se suele utilizar el comando kill para matar procesos ○ La señal por defecto que se envía es la 15 o SIGTERM ○ En caso de que no responda al comando se puede enviar la señal 9 o SIGKILL ○ Ocasionalmente algún proceso se ha podido quedar bloqueado en el momento de terminar y en el ps o top aparecen como zombi. ■ estos procesos siguen consumiendo algunos recursos ■ si es recurrente es posible que haya un fallo en el software ■ y recuerda...
  • 48. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Terminando procesos You can’t kill zombies, because they’re already dead!!
  • 49. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Control de procesos: ○ Formas de iniciar un proceso: ■ comando → debe estar en el path ■ ./comando → lanzado desde el directorio donde está ■ /home/keepcoding/script/comando → ruta absoluta al comando ○ Cuando se arranca un proceso de esta manera se queda ocupando el terminal, en primer plano o foreground
  • 50. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Control de procesos: ○ Si quisiéramos mantener libre el terminal, el proceso lo deberíamos arrancar en segundo plano o background ○ Para ello: ■ lo arrancamos directamente en segundo plano añadiendo & ■ lo arrancamos con nohup (hace que no responda a señales SIGHUP) ■ lo pasamos a segundo plano: con Ctrl+Z le mandaríamos un SIGSTPT y con el comando bg le diríamos que continuase su ejecución en background
  • 51. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Control de procesos: ○ Por cada proceso en background se crea un job ○ Se pueden listar con el comando jobs ○ para recuperar el control de un job en concreto usamos el comando fg
  • 52. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Prioridades ○ Linux nos permite modificar las prioridades de cierto proceso ○ Útil para el control de procesos que utilizan muchos recursos ○ La prioridad de los procesos se muestra en la salida del top o del ps -l ○ Cuanto mayor es el número menos tiempo de CPU se le asigna ○ Para cambiar la prioridad se utiliza: ■ nice → al arrancar un proceso ■ renice → en un proceso que ya está ejecutándose
  • 53. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Prioridades ○ Las prioridades que se indican en los comandos nice y renice van de entre el -20 (mayor prioridad) al 19 (menor prioridad) ○ Si no se indica otra se ajusta a 10 ○ por defecto los procesos tienen prioridad 0 ○ Solo root puede asignar prioridades <0
  • 54. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ Existen tres opciones para programar tareas para ejecutarse más adelante en el tiempo: ■ at → para ejecuciones puntuales ■ cron → para ejecuciones recurrentes ■ anacron
  • 55. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ at ■ permite especificar de varias formas un tiempo futuro en el que ejecutar cierta tarea → now, noon, midnight, teatime, 12pm, 04:50, now+2 ■ Al ejecutar el comando at entra en una shell donde introducimos los comandos a ejecutar (Ctrl+D para salir) ■ Algunas herramientas nos sirven para gestionar estos jobs: ● atq ● atrm
  • 56. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ cron ■ Servicio que corre en background ■ Cada minuto examina los ficheros de configuración y determina si debe ejecutar alguna tarea ■ Los ficheros de configuración se encuentran en: ● /etc/cron.d ● /etc/crontab ● /var/spool/crontab
  • 57. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ cron ■ Existen dos métodos para programar la ejecución de tareas: ● Editar el crontab con el comando crontab -e ● Añadir los scripts que se quieren ejecutar en los directorios /etc/cron.daily, /etc/cron.hourly, /etc/cron.weekly o /etc/cron.monthly
  • 58. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ El formato de los ficheros crontab es el siguiente: ■ para los ficheros /etc/crontab y /etc/cron.d/: ■ para los crontab de usuario /var/spool/crontab/usuario:
  • 59. © All rights reserved. www.keepcoding.io Crear, monitorizar y matar procesos ● Programación de tareas ○ anacron ■ similar a cron, pero en lugar de fijar una hora exacta se especifican intervalos ■ posiblemente anacron sea invocado por el mismo cron