Minientrada

RAID 1: La Seguridad Reflejada en el Espejo del Almacenamiento

Vamos con la segunda entrada de este conjunto de artículos. Hoy os traigo RAID 1.

¿Cómo Funciona RAID 1?

Imagínate escribir un diario y hacer una copia exacta en otro cuaderno cada vez que añades algo. Así, si pierdes uno, ¡el otro sigue intacto! En RAID 1, cada vez que guardas datos, se almacenan en todos los discos configurados en modo espejo. Este método ofrece máxima seguridad a tus datos, porque mientras haya al menos un disco en buen estado, puedes seguir accediendo a tu información sin perder ni un byte.

Ventajas de RAID 1

  1. Redundancia Total: RAID 1 garantiza que tus datos estén seguros, ya que cada disco tiene una copia idéntica. Si un disco falla, no pierdes nada; simplemente continúas operando con la copia del otro disco.
  2. Fácil Recuperación de Datos: Al ser una copia exacta, la recuperación es simple y rápida. Solo necesitas reemplazar el disco dañado, y el sistema reconstruirá la copia automáticamente.
  3. Sin Necesidad de Paridad: A diferencia de otros niveles RAID que usan paridad para reconstruir datos, RAID 1 usa replicación, por lo que no hay cálculos complicados ni tiempos largos de recuperación.

Desventajas de RAID 1

  1. Pérdida de Capacidad: RAID 1 sacrifica la mitad de tu espacio de almacenamiento. Por ejemplo, si tienes dos discos de 1 TB cada uno en RAID 1, solo tienes 1 TB de almacenamiento utilizable, ya que el otro TB se usa para la copia.
  2. Velocidad de Escritura: Al tener que duplicar cada escritura en dos discos, puede ser ligeramente más lento en comparación con un solo disco o con configuraciones RAID orientadas a la velocidad, como RAID 0.
  3. Costo: RAID 1 es caro en términos de espacio, ya que debes comprar el doble de capacidad para obtener el espacio que realmente vas a usar.

¿Cuándo Usar RAID 1?

RAID 1 es ideal para situaciones en las que la seguridad de los datos es lo más importante. Algunos casos en los que RAID 1 es perfecto incluyen:

  • Servidores de archivos importantes: En empresas donde la pérdida de datos sería catastrófica, RAID 1 es una buena opción. Es muy común en servidores donde la información debe estar siempre disponible.
  • Computadoras personales para almacenar documentos críticos: Si tienes archivos personales que no puedes permitirte perder, como fotos, documentos legales o proyectos de trabajo, RAID 1 es ideal.
  • Sistemas de bases de datos: Bases de datos donde el acceso constante a los datos es crucial pueden beneficiarse de la redundancia de RAID 1, ya que pueden seguir funcionando incluso en caso de fallos de disco.

¿Cuándo No Usar RAID 1?

  • Para aplicaciones que necesitan gran velocidad: Si tu prioridad es la velocidad, RAID 1 no es la mejor opción. RAID 0 o RAID 10 ofrecen mejor rendimiento.
  • Si tienes presupuesto limitado y mucho volumen de datos: RAID 1 puede ser caro en términos de espacio, por lo que si necesitas aprovechar cada gigabyte, podría no ser ideal.
  • Para almacenamiento temporal o datos replicados en la nube: Si ya tienes respaldo en la nube o tus datos no son críticos, RAID 1 puede ser excesivo.

Consejos para Usar RAID 1 de Forma Eficiente

  1. Elige discos de alta calidad: RAID 1 es solo tan seguro como los discos que uses. Asegúrate de que ambos discos sean de buena calidad para minimizar el riesgo de fallos.
  2. Realiza respaldos externos: RAID 1 ofrece redundancia, pero eso no es un respaldo completo. Haz copias de seguridad en otros dispositivos o en la nube para mayor seguridad.
  3. Mantén tu sistema monitoreado: Aunque RAID 1 es seguro, conviene mantener los discos monitorizados para identificar posibles fallos antes de que ocurran.

Alternativas a RAID 1

Si buscas equilibrio entre velocidad y seguridad, considera RAID 5 o RAID 10. RAID 5 ofrece un buen balance entre rendimiento y redundancia, y RAID 10 combina la velocidad de RAID 0 con la seguridad de RAID 1, pero requiere más discos.

Conclusión

RAID 1 es una excelente opción si tu prioridad es la seguridad de los datos y la facilidad de recuperación en caso de fallos. Aunque tiene el costo de espacio y no ofrece ventajas en velocidad, es uno de los métodos más confiables para quienes necesitan tener una copia constante de su información. Así que, si tienes archivos que no puedes arriesgarte a perder, RAID 1 es como un espejo de seguridad que los protege a toda costa.

En resumen, RAID 1 es el héroe de la redundancia en el almacenamiento. Con él, tu información siempre estará segura, incluso en caso de fallos, pero asegúrate de que es lo que necesitas antes de optar por él. ¡Nada como el buen espejo de datos cuando la seguridad es lo primero!

RAID 0: La Velocidad Extrema en Almacenamiento ¿A qué precio?

Os voy a ir trayendo una serie de mini artículos para hablar de los diferentes niveles de RAID que existen y en que casos se deben usar para maximizar sus beneficios.

Primero de todo explicar que los niveles de RAID (Redundant Array of Independent Disks) son configuraciones que agrupan discos para mejorar el rendimiento, la redundancia (seguridad de los datos) o ambas cosas.

¿Qué es RAID 0?

RAID 0, también conocido como striping, es una de las configuraciones más sencillas de RAID. A diferencia de otros niveles de RAID, que enfocan sus esfuerzos en la redundancia y la seguridad de los datos, RAID 0 se centra exclusivamente en la velocidad. Divide los datos en «bloques» y los distribuye entre múltiples discos. Esto permite que la información se lea y se escriba en paralelo, lo que acelera de manera impresionante el acceso a los datos.

¿Cómo Funciona RAID 0?

Imagina que tienes una fila de empleados en una oficina, y debes darles una tarea larga y pesada. Si todos trabajan juntos en partes diferentes de la tarea, terminarán mucho más rápido. En RAID 0, los discos duros hacen justo eso: al dividir los datos en fragmentos y distribuirlos entre todos los discos, pueden leerse y escribirse simultáneamente, aumentando la velocidad general del sistema.

Sin embargo, este sistema tiene un pero importante: si alguno de los discos falla, se pierde toda la información. Como los datos están divididos en pedazos, perder un disco es como perder páginas al azar en un libro; la historia se convierte en un caos incompleto. RAID 0 no ofrece ningún mecanismo de redundancia, por lo que su enfoque en la velocidad viene acompañado de un alto riesgo.

Ventajas de RAID 0

  1. Velocidad extrema: La mayor ventaja de RAID 0 es su velocidad. Al dividir los datos entre múltiples discos, el sistema puede acceder a ellos más rápido que si estuvieran en un solo disco. Ideal para tareas que requieren gran rendimiento, como edición de video, trabajo gráfico intensivo y videojuegos de alto rendimiento.
  2. Uso completo de la capacidad de los discos: A diferencia de RAID 1 o RAID 5, RAID 0 no reserva espacio para paridad o duplicación. Esto significa que puedes usar el 100% de la capacidad de cada disco, lo cual puede ser útil si buscas maximizar el espacio disponible.

Desventajas de RAID 0

  1. Nula tolerancia a fallos: La mayor desventaja de RAID 0 es que no ofrece protección de datos. Si un disco falla, se pierden todos los datos, ya que los fragmentos de información distribuidos entre los discos no pueden ser reconstruidos sin la pieza faltante.
  2. Aumento del riesgo con cada disco agregado: Cuantos más discos uses en RAID 0, mayor es la probabilidad de fallos. Como todos los discos están conectados, la falla de uno afecta a todo el sistema.

¿Cuándo Usar RAID 0?

RAID 0 es ideal para situaciones en las que la velocidad es más importante que la seguridad de los datos. Por ejemplo:

  • Edición de video: Si trabajas con archivos de video grandes y necesitas tiempos de acceso rápidos, RAID 0 puede ser una buena opción.
  • Gaming de alto rendimiento: RAID 0 puede reducir los tiempos de carga en algunos videojuegos, mejorando la experiencia.
  • Trabajos temporales: Si solo necesitas almacenamiento rápido para tareas momentáneas o datos que puedes perder sin problemas, RAID 0 es una opción viable.

¿Cuándo No Usar RAID 0?

  • Para almacenar datos importantes o irremplazables: RAID 0 es una pésima opción si necesitas almacenar documentos críticos o personales, ya que el riesgo de pérdida es muy alto.
  • En sistemas de archivos compartidos o de uso prolongado: RAID 0 no es adecuado para servidores o sistemas que dependen de un acceso constante y seguro a los datos.

Consejos para Usar RAID 0 de Forma Segura

  1. Hacer respaldos frecuentes: Como RAID 0 no tiene redundancia, es crucial realizar copias de seguridad regulares. Así, si uno de los discos falla, no perderás toda tu información.
  2. Usar discos de alta calidad: Los discos SSD suelen ser más confiables que los discos duros convencionales y tienen menor tasa de fallos, por lo que pueden reducir el riesgo en RAID 0.
  3. Considerar otras alternativas: Si necesitas equilibrio entre velocidad y seguridad, considera otras configuraciones como RAID 5 o RAID 10, que ofrecen rendimiento con cierta tolerancia a fallos.

Conclusión

RAID 0 es la configuración perfecta si quieres máxima velocidad y tienes un plan para manejar la falta de seguridad. Su uso es ideal para aplicaciones que necesitan mucha rapidez y pueden sacrificar la protección de datos. Sin embargo, para almacenamiento a largo plazo o archivos importantes, RAID 0 es una apuesta muy arriesgada.

En resumen, RAID 0 es como la adrenalina de las configuraciones RAID: rápida y emocionante, pero debes saber cuándo y cómo usarla para que no se convierta en un riesgo innecesario.

Minientrada

Microsoft está ofreciendo cursos gratuitos

Ahora que llega la navidad, Microsoft lanza su oferta de cursos para que aprendas sobre el funcionamiento de sus herramientas. Este es el listado:

1. Microsoft Azure Fundamentals
🔹 Course AZ-900T00
🔹 24-Hour Course
🧪 Course Link: https://lnkd.in/d8XygMy8

2. Microsoft Azure Administrator
🔹 Course AZ-104T00
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/ds32UBjW
🧪 Hands-on Labs: https://lnkd.in/dRxxETCT

3. Configuring and Operating Microsoft Azure Virtual Desktop
🔹 Course AZ-140
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/dvS88gCq

4. Developing Solutions for Microsoft Azure
🔹 Course AZ-204T00
🔹 120-Hour Course
🧪 Course Link: https://lnkd.in/dwhMCa3d

5. Designing Microsoft Azure Infrastructure Solutions
🔹 Course AZ-305T00
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/dvcizsEA

6. Microsoft Azure Data Fundamentals
🔹 Course DP-900T00
🔹 24-Hour Course
🧪 Course Link: https://lnkd.in/dyuHKuHM

7. Microsoft Azure AI Fundamentals
🔹 Course AI-900T00
🔹 24-Hour Course
🧪 Course Link: https://lnkd.in/dBtqWGJS
🧪 Hands-on Labs: https://lnkd.in/dRkGdWgJ

8. Designing and Implementing a Microsoft Azure AI Solution
🔹 Course AI-102T00
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/d696r_W5

9. Develop Generative AI Solutions with Azure OpenAI Service
🔹 Course AI-050T00
🔹 24-Hour Course
🧪 Course Link: https://lnkd.in/dMhRzaYj

10. Microsoft Security, Compliance, and Identity Fundamentals
🔹 Course SC-900T00
🔹 24-Hour Course
🧪 Course Link: https://lnkd.in/dYivZX87

11. Data Engineering on Microsoft Azure
🔹 Course DP-203T00
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/dkYYW-sG

12. Microsoft Security Operations Analyst
🔹 Course SC-200T00
🔹 96-Hour Course
🧪 Course Link: https://lnkd.in/dw-P6GC6
🧪 Hands-on Labs: https://lnkd.in/dUq-n-B5

13. Designing and Implementing Microsoft Azure Networking Solutions
🔹 Course AZ-700T00
🔹 72-Hour Course
🧪 Course Link: https://lnkd.in/dDqjGrCY
🧪 Hands-on Labs: https://lnkd.in/d59BEDX3

Ataques DDoS, cómo funcionan y cómo se protegen las grandes empresas

En un post anterior, explicamos la importancia de protegernos contra ataques DDoS a través de un ejemplo del mayor ataque de la historia (CloudFlare). Os dejo el enlace por si queréis consultarlo: «Ataque DDoS más grande de la Historia«. Hoy os voy a explicar cómo funcionan este tipo de ataques y la importancia de estar bien protegidos.

Agotamiento de los ciclos de CPU

El procesamiento de paquetes consume recursos de la CPU. Con tráfico legítimo, cada paquete que llega a un servicio genera una acción específica que consume diferentes cantidades de procesamiento según la tarea requerida. Sin embargo, antes de que el paquete llegue al servicio, necesita pasar por varias etapas: los encabezados de la capa 3 se deben analizar y procesar para dirigir el paquete a la interfaz y máquina correctas, mientras que los encabezados de la capa 4 aseguran que el paquete se enrute al socket apropiado (si existe).

Adicionalmente, otros mecanismos pueden inspeccionar el paquete en busca de anomalías o amenazas. Si el volumen de paquetes maliciosos enviados por un atacante es lo suficientemente alto, estos pueden consumir todos los recursos de la CPU, lo que impide el procesamiento de tráfico legítimo y provoca una denegación de servicio (DoS).

Para protegerte contra los ataques de alta velocidad de paquetes, debes poder inspeccionar y descartar los paquetes maliciosos utilizando el mínimo número posible de ciclos de CPU, es decir, mantenidendo suficiente CPU para procesar los paquetes legítimos. Otra opción es  adquirir más CPU, o CPU más rápidas, para realizar el procesamiento, pero ese puede ser un proceso muy largo que conlleva altos costes.

Agotamiento del ancho de banda de la red

El ancho de banda de la red es la capacidad total de datos que se puede enviar a un servidor en un momento dado. Para entenderlo mejor, imagina el ancho de banda como una tubería: una pajilla transporta menos agua que una manguera de jardín. Si un atacante logra enviar más datos basura de los que la tubería puede manejar, tanto los datos legítimos como los no deseados serán descartados antes de que lleguen al servidor, logrando así el objetivo del ataque DDoS.

Protegerse de este tipo de ataques es complicado, ya que, cuando la red está saturada, las opciones son limitadas. Puedes aumentar el tamaño del «conducto» (es decir, aumentar la capacidad del ancho de banda), desviar el tráfico legítimo hacia otro «conducto» que no esté saturado, o intentar que la fuente del ataque deje de enviar tráfico no deseado al sistema.

Cómo se producen los ataques DDoS

Desde el punto de vista de los atacantes, también existen limitaciones a la hora de generar un ataque. Al igual que el servidor necesita ciclos de CPU para recibir un paquete, el atacante también requiere ciclos de CPU para crearlo. Si el costo en términos de potencia de CPU fuera el mismo para enviar y recibir paquetes, el atacante necesitaría la misma cantidad de recursos que la víctima para ejecutar el ataque. Sin embargo, normalmente existe una asimetría de costos, ya que un atacante puede generar paquetes con menos recursos de CPU que los que necesita el servidor para procesarlos. Aun así, generar un ataque no es gratuito y puede requerir una cantidad considerable de potencia de procesamiento.

Para saturar el ancho de banda de una red, el atacante debe enviar más datos de los que el sistema objetivo puede manejar. En este caso, el atacante necesita superar la capacidad de la red de la víctima. Debido a la dificultad de generar tanto tráfico, los atacantes suelen emplear métodos como ataques de reflejo o amplificación, como el ataque de amplificación DNS. Este tipo de ataque permite al atacante enviar pequeños paquetes a un servicio intermedio, el cual devuelve grandes respuestas a la víctima, sobrecargando su red.

En ambos casos, los atacantes necesitan controlar múltiples dispositivos para ejecutar el ataque. Estos pueden ser servidores de proveedores de servicios en la nube, o dispositivos vulnerables como DVRs, routers o cámaras web infectados con malware, que juntos conforman una botnet.

Anycast de CloudFlare

Ahora que sabemos como funcionan los ataques, vamos a ver cómo CloudFlare evito el Ataque DDoS más grande de la Historia. El primer ingrediente secreto (aunque no es tan secreto) es que la red de Cloudflare se basa en Anycast.

Anycast permite que varias máquinas de cualquier parte del mundo anuncien una única dirección IP. Si envias un paquete a esa dirección IP el sistema lo derivará la máquina más cercana. Esto implica que cuando un atacante utiliza su botnet distribuida para lanzar un ataque, el ataque se recibirá de forma distribuida en toda la red de Cloudflare. Es decir, el ataque se irá repartiendo entre distintas máquinas: un DVR infectado en Dallas, enviará paquetes a un servidor de Cloudflare en Dallas, una cámara web infectada en Londres enviará paquetes a un servidor de Cloudflare en Londres, etc.

Anycast permite a Cloudflare asignar recursos informáticos y de ancho de banda más cerca de las regiones que más los necesitan. Las regiones densamente pobladas generarán mayores cantidades de tráfico legítimo, y los centros de datos ubicados en esas regiones tendrán más recursos de ancho de banda y de CPU para satisfacer esas necesidades.

Aprende JavaScript con estos Repositorios de GitHub

Hoy os traigo una serie de repositorios de GitHub que os permitirán aprender más sobre JavaScript y profundizar más en las curiosidades del leguaje.

You Don’t Know JS

⭐ 178k+

Una serie de libros que profundizan en los mecanismos fundamentales del lenguaje JavaScript.

Enlace: https://github.com/getify/You-Dont-Know-JS

WTFJS

⭐ 34k+

Una lista de ejemplos curiosos y difíciles de JavaScript.

Enlace: https://github.com/denysdovhan/wtfjs

JS The Right Way

⭐ 8k+

Una referencia rápida sobre buenas prácticas y estándares aceptados de código JavaScript.

Enlace: https://github.com/jstherightway/js-the-right-way

Clean Code JavaScript

⭐ 90k+

Principios de ingeniería de software del libro Clean Code, adaptados para JavaScript.

Enlace: https://github.com/ryanmcdermott/clean-code-javascript

33 JS Concepts

⭐ 62k+

Una guía de 33 conceptos modernos de JavaScript que todo desarrollador debería conocer.

Enlace: https://github.com/leonardomso/33-js-concepts

ES6 for Humans

⭐ 7k+

Una guía explicativa para comenzar a escribir ES6 de manera clara y comprensible.

Enlace: https://github.com/metagrover/ES6-for-humans

Javascript-algorithms

⭐ 187k+

Este repositorio contiene ejemplos basados en JavaScript de muchos algoritmos y estructuras de datos populares.

Enlace: https://github.com/trekhleb/javascript-algorithms/blob/master/README.es-ES.md

Web para encontrar ideas de proyectos para aprender a ser un gran desarrollador

Hoy os traigo Roadmap.sh, una plataforma en línea que ofrece guías detalladas y bien organizadas para ayudar a los desarrolladores y profesionales de la tecnología en su proceso de aprendizaje y en el desarrollo de habilidades clave. Estas guías, conocidas como «mapas de ruta», son representaciones visuales que indican las tecnologías, herramientas y conceptos necesarios para avanzar en una carrera tecnológica específica.

Principales características:

  • Mapas de ruta adaptados a diferentes roles: La plataforma ofrece guías específicas para varios perfiles tecnológicos, como desarrollador frontend, backend, DevOps, ingeniero de datos, entre otros. Cada mapa de ruta está diseñado para mostrar el orden recomendado de aprendizaje de tecnologías y conceptos clave según el rol.
  • Actualización constante: Los mapas de ruta se actualizan regularmente para mantenerse al día con las últimas tendencias y prácticas recomendadas en la industria tecnológica.
  • Recursos adicionales: Además de los mapas, Roadmap.sh sugiere recursos, tutoriales y documentación que pueden ser útiles para aprender cada tecnología o concepto en profundidad.
  • Diseño visual intuitivo: Los mapas de ruta están diseñados de manera clara y visual, lo que permite a los usuarios ver de forma sencilla qué deben aprender y en qué orden hacerlo.

¿Para qué sirve?

Roadmap.sh es una herramienta útil para quienes están comenzando en un área tecnológica nueva o desean profundizar sus conocimientos en un campo específico. Los mapas de ruta ayudan a:

  • Guiar el aprendizaje: Ofreciendo un plan estructurado sobre los pasos a seguir en el proceso de aprendizaje.
  • Evitar la sobrecarga de información: Focalizando el aprendizaje en las tecnologías y conceptos más relevantes para una carrera específica.
  • Mantenerse actualizado: Asegurando que los profesionales sigan las tendencias actuales en desarrollo de software y otras áreas tecnológicas.

En resumen, Roadmap.sh es una herramienta valiosa para quienes buscan un enfoque claro y organizado para avanzar en su carrera tecnológica.

Cómo iniciar Windows en Modo Seguro

Para obtener un tutorial más detallado sobre cómo iniciar Windows 10 en modo seguro, os dejo este tutorial en inglés: How to Start Windows 10 in Safe Mode with Networking

Básicamente los pasos a seguir son los siguientes:

  1. Pulsa las teclas Ctrl+Alt+Supr al mismo tiempo para entrar en la pantalla de seguridad de Windows.
  2. Mientras mantienes pulsada la tecla Mayúsculas, haz clic en el botón de encendido (botón de encendido de Windows 10) y luego haz clic en Reiniciar.
  3. Cuando Windows 10 se reinicie, estarás en la pantalla Elegir una opción. En esta pantalla, haga clic en el botón Solucionar problemas para acceder a las opciones de Solución de problemas.
  4. En la pantalla Solución de problemas, haga clic en el botón Opciones avanzadas para abrir la pantalla de opciones avanzadas.
  5. En la pantalla de Opciones avanzadas, haga clic en la opción Configuración de inicio. Se abrirá la pantalla Configuración de inicio.
  6. En la pantalla Configuración de inicio, haga clic en el botón Reiniciar. Windows se reiniciará.
  7. Tras el reinicio, aparecerá la pantalla Configuración de inicio. En esta pantalla debes pulsar la tecla número 5 de tu teclado para entrar en Modo seguro con funciones de red.
  8. Su ordenador se reiniciará. Una vez reiniciado, aparecerá un mensaje de inicio de sesión. Inicie sesión para acceder al Modo seguro con funciones de red.

Guía de BASH para principiantes

Bash (Bourne Again Shell) es un lenguaje de shell basado en el Bourne Shell original, que fue distribuido con el V7 Unix en 1979 y se convirtió en el estándar para escribir scripts de shell.

En la actualidad, es el shell principal en la mayoría de las distribuciones de Linux, en macOS y, recientemente, ha sido habilitado para ejecutarse en Windows a través del WSL (Subsistema de Windows para Linux).

Operadores cadenas

CARÁCTER DESCRIPCIÓN
= es igual a
== es igual a
!= no es igual a
< es mayor que el orden alfabético ASCII
> es mayor que el orden alfabético ASCII
-z la cadena es nula (es decir, de longitud cero)
-norte la cadena no es nula (es decir, de longitud cero)

Operadores numéricos

CARÁCTER DESCRIPCIÓN
-eq es igual a
-ne no es igual a
-gt es mayor que
-ge es mayor o igual a
-lt es menor que
-le es menor o igual a
< es menor que – colocar entre paréntesis dobles
<= es menor o igual que (misma regla que la fila anterior)
> es mayor que (misma regla que la fila anterior)
>= es mayor o igual que (misma regla que la fila anterior)

Códigos de salida/error

CÓDIGO DE SALIDA NO. DESCRIPCIÓN
1 Catchall para errores generales
2 Mal uso de las funciones integradas del shell
126 El comando invocado no puede ejecutarse
127 Comando no encontrado
128 Argumento no válido para salir
128+n Señal de error fatal «n»
130 Script terminado por Control-C

Señales de control

COMBINACIÓN DE TECLAS DESCRIPCIÓN
Ctrl+C La señal de interrupción envía SIGINT al trabajo que se ejecuta en primer plano.
Ctrl+Y El carácter de suspensión retrasada. Provoca la detención de un proceso en ejecución cuando intenta leer la entrada del terminal. El control se devuelve al shell, el usuario puede poner en primer plano, en segundo plano o finalizar el proceso. La suspensión retrasada solo está disponible en sistemas operativos que admiten esta función.
Ctrl+Z La señal de suspensión envía un SIGTSTP a un programa en ejecución, deteniéndolo y devolviendo el control al shell.

Otras señales

NOMBRE NÚMERO ACCIÓN  DESCRIPCIÓN
SIGHUP 1 salida Cuelga
SIGINT 2 salida Interrumpe.
SIGQUIT 3 volcado de memoria En paz.
SIGILL 4 volcado de memoria Instrucción ilegal.
SIGTRAP 5 volcado de memoria Trampa de rastro.
SIGIOT 6 volcado de memoria Instrucción IOT.
SIGEMT 7 volcado de memoria Instrucción MT.
SIGFPE 8 volcado de memoria Excepción de punto flotante.
SIGKILL 9 exit Muertes (no se pueden atrapar ni ignorar).
SIGBUS 10 core dump Error de autobús.
SIGSEGV 11 core dump Violación de segmentación.
SIGSYS 12 core dump Mal argumento para la llamada al sistema.
SIGPIPE 13 salida Escribe en una pipa sin que nadie pueda leerlo.
SIGALRM 14 salida Despertador.
SIGTERM 15 salida Señal de terminación del software.

Permisos

CÓDIGO DESCRIPCIÓN
s setuid cuando está en la columna de usuario
s setgid cuando está en la columna del grupo
t sticky bit
0—— El derecho de acceso que debería tener este lugar no está concedido.
4—–r Se concede acceso de lectura a la categoría de usuario definida en este lugar.
2—–w Se concede permiso de escritura a la categoría de usuario definida en este lugar.
1—–x El permiso de ejecución se otorga a la categoría de usuario definida en este lugar.
u Permisos de usuario
g permisos de grupo
oh otros permisos

Archivos especiales

ARCHIVO INFORMACIÓN
/etc/profile Ejecutado automáticamente al iniciar sesión
~.bash_profile
———————
~/.bash_login
———————
~.profile
Lo que se encuentre primero se ejecuta al iniciar sesión.
~/.bashrc Es leído por todos los shells sin inicio de sesión.

Expresiones regulares

OPERADOR EFECTO
. Coincide con cualquier carácter individual.
? El ítem anterior es opcional y se igualará, como máximo, una vez.
* El elemento anterior coincidirá cero o más veces.
+ El elemento anterior coincidirá una o más veces
{N} El elemento anterior coincide exactamente N veces.
{N,} El elemento anterior coincide N o más veces.
{N,M} El elemento anterior coincide al menos N veces, pero no más de M veces.
Representa el rango si no es el primero o el último en una lista o el punto final de un rango en una lista.
^ Coincide con la cadena vacía al principio de una línea; también representa los caracteres que no están en el rango de una lista.
$ Coincide con la cadena vacía al final de una línea.
[aoeiAOEI] Coincide con 1 carácter cualquiera de la lista.
[^AOEIaoei] ¡Coincide con 1 carácter cualquiera, que no está en la lista!
[af] Coincide con 1 carácter cualquiera en el rango af

Comandos

BUILTIN DESCRIPCIÓN
: Equivalente a verdadero.
. Lee y ejecuta comandos desde un archivo designado en el shell actual.
[ Es sinónimo de prueba pero requiere un argumento final de ].
alias Define un alias para el comando especificado.
bg Reanuda un trabajo en modo de fondo.
bind Vincula una secuencia de teclado a una función o macro de línea de lectura.
break Sale de un bucle for, while, select o Until.
builtin Ejecuta el comando integrado del shell especificado.
caller Devuelve el contexto de cualquier llamada de subrutina activa.
case
cd Cambia el directorio actual al directorio especificado.
command Ejecuta el comando especificado sin la búsqueda normal del shell.
compgen Genera posibles coincidencias de finalización para la palabra especificada.
complete Muestra cómo se completarían las palabras especificadas.
comopt
continue Reanuda la siguiente iteración de un bucle for, while, select o Until.
declare Declara una variable o tipo de variable.
dirs Muestra una lista de los directorios recordados actualmente.
disown Elimina los trabajos especificados de la tabla de trabajos para el proceso.
echo Muestra la cadena especificada en STDOUT.
enable Habilita o deshabilita el comando de shell integrado especificado.
eval Concatena los argumentos especificados en un solo comando y ejecuta el comando.
exec Reemplaza el proceso de shell con el comando especificado.
exit Obliga al shell a salir con el estado de salida especificado.
export Establece las variables especificadas para que estén disponibles para los procesos de shell secundarios.
fc Selecciona una lista de comandos de la lista del historial.
fg Reanuda un trabajo en modo de primer plano.
getopts Analiza los parámetros posicionales especificados.
hash Encuentra y recuerda la ruta completa del comando especificado.
help Muestra un archivo de ayuda.
history Muestra el historial de comandos.
if Utilizado para ramificación.
jobs Enumera los trabajos activos.
kill Envía una señal del sistema al ID de proceso especificado (PID).
let Evalúa cada argumento en una expresión matemática.
local Crea una variable de alcance limitado en una función.
logout Sale de un shell de inicio de sesión.
mapfile
popd Elimina entradas de la pila de directorios.
printf Muestra texto usando cadenas formateadas.
pushd Agrega un directorio a la pila de directorios.
pwd Muestra el nombre de ruta del directorio de trabajo actual.
read Lee una línea de datos de STDIN y la asigna a una variable.
readonly Lee una línea de datos de STDIN y la asigna a una variable que no se puede cambiar.
return Obliga a una función a salir con un valor que puede ser recuperado por el script que la llama.
set Establece y muestra valores de variables de entorno y atributos de shell.
shift Gira los parámetros posicionales una posición hacia abajo.
shopt Alterna los valores de las variables que controlan el comportamiento opcional del shell.
source Lee y ejecuta comandos desde un archivo designado en el shell actual.
suspend Suspende la ejecución del shell hasta que se reciba una señal SIGCONT.
test Devuelve un estado de salida de 0 o 1 según la condición especificada.
times Muestra el tiempo acumulado de shell del sistema y del usuario.
trap Ejecuta el comando especificado si se recibe la señal del sistema especificada.
type Muestra cómo se interpretarían las palabras especificadas si se usaran como un comando.
typeset Declara una variable o tipo de variable.
ulimit Establece un límite en el recurso específico para los usuarios del sistema.
umask Establece permisos predeterminados para archivos y directorios recién creados.
unalias Elimina el alias especificado.
unset Elimina la variable de entorno o el atributo de shell especificado.
until Bucle que es muy similar al bucle while excepto que se ejecuta hasta que el comando de prueba se ejecuta con éxito. Mientras el comando de prueba falle, el ciclo hasta continúa.
wait Haga que el shell espere a que termine un trabajo.
while Espera a que se complete el proceso especificado y devuelve el estado de salida.