Aunque el sistema operativo Linux comenzó como un proyecto de hobby de Linus Torvalds en 1991, ha crecido hasta convertirse en un actor dominante en la alimentación de superordenadores, servidores web, teléfonos inteligentes y muchas otras tecnologías.
Linux goza de gran popularidad por su estabilidad, seguridad y uso eficaz de los recursos. El uso y la demanda de Linux han ido creciendo a lo largo de los años, y esta tendencia no se detendrá pronto.
En 2021, Statista informó de que el 47% de los desarrolladores profesionales utilizan Linux. Ese mismo año, el 9º Informe anual sobre empleos de código abierto mostró que el desarrollo y la administración de Linux era la 2ª habilidad más demandada por los directores de contratación y los desarrolladores.
Las habilidades en Linux son cruciales en el desarrollo de software, administración de sistemas, DevOps, administración de redes, ingeniería de seguridad y ciencia de datos, entre muchas otras. Por lo tanto, si usted está interesado en cualquiera de esos campos, es probable que sea entrevistado acerca de sus habilidades en Linux.
Para ayudarle a prepararse, aquí tiene algunas de las principales preguntas de las entrevistas sobre Linux con las que probablemente se encontrará y sus respuestas.
¿Qué es Linux?
Respuesta: Linux es un sistema operativo libre y de código abierto desarrollado en 1991 por Linux Torvalds y publicado bajo la Licencia Pública General GNU (GPL).
¿Por qué utilizar Linux?
Respuesta: Utilizar el sistema operativo Linux tiene varias ventajas. En primer lugar, Linux es altamente seguro y casi completamente inmune a los ataques de malware.
Además, Linux es altamente estable, fiable y rara vez se bloquea, razón por la cual muchos servidores utilizan Linux. Linux también tiene la ventaja de ser ligero, consume menos RAM y memoria, lo que permite utilizarlo incluso en máquinas más antiguas.
Por si fuera poco, Linux es gratuito, de código abierto, se actualiza con regularidad y es altamente personalizable, lo que permite a los usuarios retocar cualquier parte del sistema operativo para adaptarlo a sus necesidades. También existen diferentes distribuciones optimizadas para hackers, otras para programadores e incluso para usuarios en general.
¿Cuáles son los componentes básicos del sistema operativo Linux?
Respuesta: El SO Linux está formado por tres componentes básicos.
- Núcleo: Este es el componente central del SO Linux. Es la capa más baja del SO Linux e interactúa directamente con el hardware de un ordenador. El núcleo asigna y gestiona los recursos de hardware como la CPU, la memoria y el almacenamiento y proporciona servicios a otras partes del SO y a los programas que se ejecutan en el ordenador.
- Shell: Es una interfaz de línea de comandos que permite a los usuarios interactuar con el sistema operativo y ejecutar programas. Actúa como interfaz entre los usuarios y el núcleo. Interpreta los comandos de los usuarios y los ejecuta.
- Aplicaciones: Estos programas se ejecutan sobre el sistema operativo y proporcionan funciones específicas como la navegación web, el procesamiento de textos y la reproducción de música, entre otras.
El núcleo, el shell y las aplicaciones conforman el sistema operativo Linux.
¿Por qué Linux se considera más seguro?
Respuesta: Un factor clave que hace que Linux sea seguro es su naturaleza de código abierto. Muchos desarrolladores examinan regularmente el código de Linux, y cuando se encuentra un fallo o una vulnerabilidad, se plantea en el foro de Linux y se soluciona en cuestión de días.
Además, la forma en que Linux gestiona los permisos y privilegios garantiza que no se dé acceso de root a ningún usuario normal por defecto.
Esto limita el daño que puede hacer un virus. Sus bajas cifras de uso por parte de los usuarios cotidianos también contribuyen a su seguridad, ya que los piratas informáticos prefieren apuntar a sistemas operativos con muchos usuarios.
¿Qué es el núcleo Linux?
Respuesta: Es la capa más baja del sistema operativo Linux y su componente central. El núcleo se sitúa entre el hardware y otras partes del sistema operativo Linux. El núcleo interactúa con el hardware de un ordenador y gestiona los recursos de hardware como la memoria, la CPU y el almacenamiento.
También se asegura de que a las distintas tareas y procesos se les asignen los recursos necesarios para ejecutarse sin problemas y con eficacia.
¿Cuál es la diferencia entre Linux y Unix?
Respuesta: Linux es un sistema operativo libre y de código abierto desarrollado por Linus Torvalds, mientras que Unix es un sistema operativo portátil, propietario, multitarea y multiusuario desarrollado por AT&T. Unix no es de código abierto, a diferencia de Linux.
¿Qué es una interfaz gráfica de usuario?
Respuesta: Una interfaz gráfica de usuario (GUI) es una interfaz de usuario para un sistema operativo que permite a los usuarios interactuar con él a través de elementos gráficos como ventanas, iconos, menús, punteros y barras de desplazamiento (WIMPS).
Los elementos gráficos se manipulan mediante dispositivos señaladores como un ratón, un lápiz óptico, un trackball o un dedo en las pantallas táctiles.
¿Qué es la CLI?
Respuesta: Una interfaz de línea de comandos (CLI) es una interfaz de usuario basada en texto que permite a los usuarios interactuar con un sistema informático introduciendo comandos como cadenas de texto en el terminal.
El sistema informático responde ejecutando los comandos pasados o mostrando la información solicitada.
Explique Linux Shell.
Conteste: El shell de Linux es un programa que interpreta y ejecuta los comandos introducidos a través de la interfaz de línea de comandos permitiendo a los usuarios interactuar con el sistema operativo y controlar así sus ordenadores.
El shell recibe comandos en formato legible por humanos, los interpreta en una forma que pueda ser entendida por el núcleo y luego los pasa al núcleo para su ejecución.
Tipos de Shell en Linux.
Respuesta: Hay varios tipos de shells en Linux, cada uno optimizado para un uso particular. Los diferentes tipos de shells en Linux incluyen:
- El Bourne Shell denotado como sh
- El Bourne Again Shell denotado como Bash
- El C Shell denotado como csh
- El KornShell denotado como ksh
- La Shell Z denotada como zsh
- La Shell Interactiva Amistosa denotada como fish
- Debian Almquist Shell denotada como dash
- TENEX C Shell denotado como tcsh
Las anteriores son algunas de las shell más populares de Linux.
¿Qué es un script de shell?
Respuesta: Es un archivo de texto con una secuencia de comandos para ser ejecutados por un shell de Linux en el orden en que aparecen.
Los scripts de shell contienen comandos que, de otro modo, tendrían que introducirse en la interfaz de línea de comandos de uno en uno. Los scripts de shell son útiles para automatizar tareas repetitivas o para ejecutar trabajos por lotes.
Explique los permisos de archivos en Linux.
Conteste: Existen tres tipos de permisos de archivos en Linux:
- Lectura (r): Este permiso permite a un usuario abrir y leer el contenido de un archivo o ver el contenido de un directorio. Sin embargo, un usuario no puede modificar el archivo o el contenido de un directorio.
- Escritura (w): Un permiso de escritura en un archivo permite a un usuario modificar el contenido de un archivo. Un permiso de escritura sobre un directorio permite a un usuario añadir, eliminar y renombrar archivos en un directorio.
- Ejecutar (x) : Permite a un usuario ejecutar el archivo como un programa. En Linux, un usuario no puede ejecutar un programa a menos que tenga un permiso de ejecución.
Los anteriores conforman los tipos de archivos en el sistema operativo Linux.
¿Cómo conceder permisos en Linux?
Respuesta: Para conceder permisos en Linux, se utiliza el comando chmod, que significa ‘cambiar modo’. chmod se utiliza para cambiar los permisos de un archivo o un directorio.
Se pueden conceder permisos para los diferentes conjuntos de usuarios, que incluyen: grupo(g), usuario(u), otros(o), y todos los usuarios(a). Los permisos para estos usuarios pueden concederse añadiendo( ) o restando(-) los permisos de lectura(r), escritura(w) y ejecución(x).
La sintaxis para modificar los permisos concedidos es la siguiente:
chmod permisos archivo/nombre-directorio
¿Cómo encontrar dónde está almacenado un archivo en Linux?
Respuesta: Para encontrar dónde se almacena un archivo en Linux, primero, ejecute el comando
find <nombredelarchivo>
para buscar el archivo en los directorios disponibles. Si se encuentra un archivo con el NombreDeArchivo introducido, puede ejecutar lo siguiente:
realpath <nombreDeArchivo>
para encontrar una ruta absoluta a la ubicación de almacenamiento del archivo.
¿Cómo eliminar un directorio en Linux?
Respuesta: Para eliminar un directorio en Linux, puede utilizar el comando rmdir. Este comando significa «eliminar directorio» y se utiliza para borrar directorios vacíos.
Por ejemplo, para borrar un directorio vacío llamado test, ejecute
rmdir test
Para borrar un directorio no vacío, ejecute rm junto con su bandera -r ,
rm -r ejemplo
¿Qué es el espacio de intercambio?
Respuesta: Es un área reservada en un disco duro, normalmente en forma de partición, utilizada por el sistema operativo Linux cuando la RAM está llena.
Si se necesita más memoria y la RAM está llena, inactiva o se accede a ella con poca frecuencia, se eliminan páginas de la RAM y se almacenan en el espacio de intercambio liberando espacio para más procesos en la RAM.
¿Qué es LILO?
Respuesta: El cargador Linux (LILO) es un cargador de arranque para el sistema operativo Linux. Un cargador de arranque es un programa que carga un sistema operativo en la memoria y lo inicia después de encender un ordenador.
Una vez que se enciende un ordenador, LILO localiza el núcleo de Linux y otros programas necesarios y los carga en la memoria. Una vez hecho esto, inicia el núcleo Linux.
¿Qué es la redirección?
Respuesta: Es alterar el origen de la entrada estándar, que suele ser el teclado, y los destinos de la salida estándar y el error estándar, que suele ser la pantalla.
Por ejemplo, mediante la redirección, la entrada puede obtenerse de un archivo, y también la salida y la información de error pueden guardarse en un archivo.
¿Qué es la agrupación de comandos?
Respuesta: Es una forma de ejecutar múltiples comandos colectivamente como una sola unidad. La agrupación permite ejecutar varias órdenes como un único bloque.
La agrupación suele utilizar funciones como la redirección y la canalización para crear scripts más complejos y automatizar tareas.
¿Qué es un servidor Linux sin estado?
Respuesta: Este servidor no almacena ninguna información de estado ni datos localmente. Todo el almacenamiento de datos se produce en el lado del cliente, y el servidor no tiene ningún registro de los datos que sirve.
¿Qué es el enlace de red?
Respuesta: Se trata de una técnica para compilar varias interfaces de red en una única interfaz. Esto aumenta el ancho de banda de la red, el rendimiento y la conectividad de respaldo, mejorando el rendimiento de una red.
¿Qué es el comando grep?
Respuesta: El comando de impresión global de expresiones regulares (Grep) es una herramienta de línea de comandos que se utiliza para buscar patrones en un archivo y muestra todas las líneas del archivo que contienen los patrones. El patrón buscado es una expresión regular y normalmente una cadena de caracteres.
¿Qué son los Daemons?
Respuesta: Los daemons son programas utilitarios que se ejecutan en segundo plano sin intervención del usuario. Los daemons realizan tareas como la monitorización de periféricos y el mantenimiento del sistema. Los daemons garantizan que el sistema operativo funcione sin problemas.
¿Qué son los enlaces simbólicos?
Respuesta: Un enlace simbólico, también denominado enlace simbólico o enlace blando, es un tipo de archivo en el SO Linux que apunta a otro archivo o directorio. Es el equivalente a un acceso directo en el sistema operativo Windows.
Los enlaces simbólicos mejoran la accesibilidad de archivos que de otro modo habría sido difícil o incómoda.
¿Qué son las variables de entorno?
Respuesta: Son variables dinámicas que se establecen en el intérprete de comandos y se utilizan para almacenar información que los programas necesitan para ejecutarse o configurar su comportamiento para adaptarlo a las necesidades de los usuarios.
Algunos ejemplos de variables de entorno son LANG, que almacena el idioma por defecto en un sistema. TEMP, que indica el directorio utilizado para los archivos temporales y HOME, que muestra el directorio personal de los usuarios actuales, entre otras.
Diferencie entre los comandos Bash y dos para ver el contenido de los archivos.
Conteste: En el shell bash, los comandos que puede utilizar para ver el contenido de los archivos incluyen:
- cat – imprime el contenido del archivo en la pantalla
- nl – similar a cat, pero antepone números de línea al contenido mostrado
- less– lee el contenido de un archivo una página (pantalla) cada vez
- head – muestra las 10 primeras líneas de un archivo en la pantalla
- tail– muestra en pantalla las 10 últimas líneas de un archivo
En el intérprete de comandos dos, se pueden utilizar los siguientes comandos para ver el contenido de un archivo:
- type – muestra el contenido de un archivo sin modificarlo
- more – muestra el contenido de un archivo pantalla a pantalla
Los shells Bash y dos tienen diferentes comandos utilizados para ver el contenido de los archivos.
Nombre algunas distribuciones de Linux.
Conteste: Las distribuciones Linux son versiones de Linux construidas sobre el shell Linux que se empaquetan y distribuyen a los usuarios.
Algunas distribuciones populares de Linux incluyen Ubuntu, Fedora, Debian, CentOS, Arch Linux, Red Hat Enterprise Linux y Mint Linux.
¿Cuáles son los diferentes estados de proceso en Linux?
Respuesta: Los principales estados de proceso en Linux incluyen:
- En ejecución – un proceso está siendo ejecutado actualmente por la CPU
- Durmiendo – un proceso está esperando recursos que actualmente no están disponibles
- Detenido – un proceso ha sido terminado por el procesador o por una señal
- Zombie – un proceso ha sido terminado, pero su proceso padre aún no ha vaciado sus recursos
Los anteriores conforman los principales estados de proceso en Linux.
¿Cuáles son las diferentes llamadas al sistema de gestión de procesos en Linux?
Respuesta: Las diferentes llamadas al sistema de gestión de procesos incluyen:
- fork () – Se utiliza para crear un nuevo proceso
- kill () – se utiliza para enviar una señal para terminar un proceso en ejecución
- wait() – suspende la ejecución del proceso que llama hasta que termine un proceso hijo
- exec () – carga un programa en el proceso actual y lo ejecuta
- exit () – termina la ejecución de un programa
Las anteriores son las principales llamadas al sistema de gestión de procesos en Linux.
¿Cómo encontrar el estado de un proceso?
Respuesta: Puede encontrar el estado de un proceso ejecutando el comando ‘ps ‘ para ver el estado actual de todos los procesos activos en un sistema Linux.
Para ver más detalles sobre un proceso en particular, ejecute lo siguiente:
ps -p <processID>
¿Cómo detener un proceso en ejecución en Linux?
Respuesta: Puede detener un proceso en ejecución en Linux ejecutando:
kill <processID>
Para matar un proceso en ejecución utilizando su ID. También puede detener un proceso en ejecución por su nombre ejecutando:
killall <nombredelproceso>
¿Cómo afecta la distinción entre mayúsculas y minúsculas a los comandos?
Respuesta: En el SO Linux, los comandos distinguen entre mayúsculas y minúsculas, lo que significa que el intérprete de comandos trata los comandos escritos en diferentes mayúsculas como distintos y diferentes.
Por ejemplo, el comando ‘rmdir’ no es lo mismo que ‘RMDIR’. En el sistema operativo Linux, las órdenes de la línea de comandos se escriben normalmente en minúsculas.
¿Cuál es el comando utilizado para comprobar cuánta memoria está utilizando Linux?
Respuesta: El comando free, cuando se ejecuta, muestra la cantidad de espacio utilizado y el espacio libre en el sistema. Se pueden utilizar diferentes banderas con el comando para mostrar diferentes tipos de información.
¿Qué es el comando ls?
Respuesta: Es un comando para listar el contenido de un directorio.
¿Qué es el comando ps?
Respuesta: El comando ps muestra información sobre los procesos actualmente activos.
¿Qué es el comando netstat?
Respuesta: Es un comando utilizado para mostrar información relativa a las conexiones de red en el sistema. Muestra información sobre las conexiones de red actualmente activas.
¿Qué es el comando cp?
Respuesta: Es un comando utilizado para copiar archivos y directorios.
¿Qué es el comando mkdir?
Respuesta: Es un comando utilizado para crear directorios en Linux.
¿Qué es el comando cat?
Respuesta: Es un comando utilizado para ver el contenido de un archivo, crear un archivo nuevo, redirigir la salida de otros comandos, concatenar varios archivos y mostrar la salida en la pantalla.
Palabras finales
Este artículo sobre preguntas y respuestas para entrevistas sobre Linux le ayudará a superar con éxito esa próxima entrevista.
¡Mucha suerte! 👍