Bienvenidos, en este artículo veremos 50 preguntas para una entrevista sobre scripts de shell. Comparte este articulo y síguenos para recibir más guías y cursos.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

Índice

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

1) ¿Qué es una Shell?

El shell es una interfaz entre el usuario y el núcleo. Aunque solo puede haber un núcleo, un sistema puede tener varios shell ejecutándose simultáneamente. Por lo tanto, siempre que un usuario ingresa un comando a través del teclado, el shell se comunica con el núcleo para ejecutarlo y luego mostrar el resultado al usuario.

2) ¿Qué es un Shell Scripting?

Shell Scripting es un programa informático de código abierto diseñado para ejecutarse en el shell de Unix/Linux. Shell Scripting es un programa que escribe una serie de comandos para que los ejecute el shell. Puede combinar secuencias de comandos largas y repetitivas en un único y sencillo script que se puede almacenar y ejecutar en cualquier momento, lo que reduce los esfuerzos de programación.

3) ¿Cuáles son los diferentes tipos de shells comúnmente utilizados en un sistema Linux típico?

csh, ksh, bash, Bourne. El shell más utilizado y avanzado en la actualidad es “Bash”.

4) ¿Cuál es el equivalente a un acceso directo a un archivo que tenemos en una ventana en un sistema Linux?

En Linux, los accesos directos se crean mediante “enlaces”. Hay dos tipos de enlaces que se pueden utilizar: “enlaces blandos” y “enlaces duros”.

5) ¿Cuál es la diferencia entre enlaces blandos y duros?

Los enlaces blandos son enlaces al nombre del archivo y también pueden residir en diferentes sistemas de archivos; sin embargo, los enlaces duros son enlaces al inodo del archivo y deben estar en el mismo sistema de archivos que el del archivo. Eliminar el archivo original hace que el enlace blando quede inactivo (enlace roto) pero no afecta al enlace duro (el enlace duro seguirá accediendo a una copia del archivo)

6) ¿Cómo pasarás y accederás a los argumentos de un script en Linux?

Los argumentos se pueden pasar como:

scriptName “Arg1” “Arg2″….”Argn” y se puede acceder dentro del script como $1, $2… $n

7) ¿Cuál es la diferencia entre $* y $@?

$@ trata cada argumento entre comillas como argumento separado, pero $* considerará todo el conjunto de parámetros posicionales como una sola cadena.

8) Utilice el comando sed para reemplazar el contenido del archivo (emular el comando tac)

P.ej:

if cat fille ABCD EFGH

Entonces O/p debería ser

EFGH
ABCD

sed ‘1! G; h;$!d’ file1

Aquí el comando G se agrega al espacio de patrones,

El comando h copia el buffer de patrones al buffer de retención

y el comando d elimina el espacio del patrón actual.

9) Dado un archivo, reemplace todas las apariciones de la palabra “ABC” con “DEF” desde la quinta línea hasta el final solo en aquellas líneas que contengan la palabra “MNO”

sed –n ‘5,$p’ file1|sed ‘/MNO/s/ABC/DEF/’

10) Dado un archivo, escriba una secuencia de comandos para encontrar el recuento de cada palabra.

tr –s «(backslash)040» <file1|tr –s «(backslash)011″|tr «(backslash)040 (backslash)011» «(backslash)012» |uniq –c where «(backslash)040» is octal equivalent of «space»

“(backslash)011” es un equivalente octal de “carácter de tabulación” y

“(backslash)012” es un equivalente octal del carácter de nueva línea.

11) ¿Cómo encontrarás la línea 99 de un archivo usando solo los comandos tail y head?

tail +99 file1|head -1

12) Imprima la décima línea sin utilizar los comandos tail y head.

sed –n ’10p’ file1

13) En mi shell bash quiero que mi indicador tenga el formato ‘$”Directorio de trabajo actual”:”nombre de host”> y cargue un archivo que contenga una lista de funciones definidas por el usuario tan pronto como inicie sesión, ¿cómo automatizará esto?

En bash shell, podemos crear un archivo “.profile” que se invoca automáticamente tan pronto como inicio sesión y escribo la siguiente sintaxis en él.

export PS1=’$ `pwd`:`hostname`>’ .File1

Aquí File1 es el archivo que contiene las funciones definidas por el usuario y “.” invoca este archivo en el shell actual.

14) Explique qué es el bit de permiso “s” en un archivo.

El bit “s” se llama bit “establecer identificación de usuario” (SUID).

El bit “s” en un archivo hace que el proceso tenga los privilegios del propietario del archivo durante la instancia del programa.

Por ejemplo, ejecutar el comando “passwd” para cambiar la contraseña actual hace que el usuario escriba su nueva contraseña en un archivo shadow aunque su propietario sea “root”.

15) Quiero crear un directorio tal que cualquier persona en el grupo pueda crear un archivo y acceder al archivo de cualquier persona que contenga, pero nadie pueda eliminar un archivo que no sea el creado por él mismo.

Podemos crear el directorio dando acceso de lectura y ejecución a todos en el grupo y configurando su bit fijo “t” de la siguiente manera:

mkdir direc1 chmod g+wx direc1 chmod +t direc1

16) ¿Cómo puedo saber cuánto tiempo ha estado funcionando el sistema?

Podemos encontrarlo usando el comando “uptime”.

17) ¿Cómo puede un usuario conocer toda la información sobre un usuario específico como su shell predeterminado, su nombre real, su directorio predeterminado, cuándo y durante cuánto tiempo ha estado usando el sistema?

finger “loginName”…donde loginName es el nombre de inicio de sesión del

usuario cuya información se espera.

18) ¿Cuál es la diferencia entre $$ y $!?

$$ proporciona el ID del proceso que se está ejecutando actualmente, mientras que $! muestra el ID del proceso que recientemente pasó a segundo plano.

19) ¿Qué son los procesos zombies?

Estos son los procesos que han finalizado pero cuyo estado de salida aún no ha sido seleccionado por el proceso padre. Estos procesos, incluso si no están en funcionamiento, aún tienen su entrada de identificación de proceso en la tabla de procesos.

20) ¿Cómo copiarás un archivo de una máquina a otra?

Podemos utilizar utilidades como “ftp”, “scp” o “rsync” para copiar un archivo de una máquina a otra.

Por ejemplo, usando FTP:

FTP hostname

>put file1

>bye

Las copias anteriores, el archivo file1 del sistema local al sistema de destino cuyo nombre de host se especifica.

21) Quiero monitorear un archivo de registro que se actualiza continuamente, ¿qué comando puedo usar para lograr esto de manera más eficiente?

Podemos usar tail –f filename. Esto hará que solo se muestren las últimas 10 líneas predeterminadas en la salida estándar, lo que muestra continuamente la parte actualizada del archivo.

22) Quiero conectarme a un servidor remoto y ejecutar algunos comandos, ¿cómo puedo lograrlo?

Podemos usar ssh para hacer esto:

ssh laprovittera@devandhack.com -p sshport

Example

ssh root@122.52.251.171 -p 22

Una vez ejecutado el comando anterior, se le pedirá que ingrese la contraseña.

23) Tengo 2 archivos y quiero imprimir los registros que son comunes a ambos.

Podemos utilizar el comando “comm” de la siguiente manera:

comm -12 file1 file2 … 12 suprimirá el contenido que se encuentra

único para el 1er y 2do archivo respectivamente.

24) Escribe un script para imprimir los primeros 10 elementos de la serie de Fibonacci.

 
#!/bin/sh a=1 b=1 echo $a echo $b for I in 1 2 3 4 5 6 7 8 do c=a b=$a b=$(($a+$c)) echo $b done

25) ¿Cómo te conectarás a un servidor de base de datos desde Linux?

Podemos utilizar la utilidad isql que viene con el controlador de cliente abierto de la siguiente manera:

isql –S serverName –U username –P password

26) ¿Cuáles son los 3 flujos estándar en Linux?

0 – Standard Input1 – Standard Output2 – Standard Error

27) Quiero leer todas las entradas al comando desde el archivo1, dirigir toda la salida al archivo2 y el error al archivo 3, ¿cómo puedo lograr esto?

command <file1 1>file2 2>file3

28) ¿Qué pasará con mi proceso actual cuando ejecute un comando usando exec?

“exec” superpone el proceso recién bifurcado en el proceso actual; por lo tanto, cuando ejecuto el comando usando exec, el comando se ejecuta en el shell actual sin crear ningún proceso nuevo.

Por ejemplo, al ejecutar «exec ls» en el símbolo del sistema se ejecutará ls y una vez que ls salga, el proceso se cerrará.

29) ¿Cómo emularás wc –l usando awk?

awk 'END {print NR} fileName'

30) Dado un archivo, encuentre el número de líneas que contienen la palabra «ABC».

grep –c “ABC” file1

31) ¿Cuál es la diferencia entre grep y egrep?

egrep es una versión extendida de grep que admite funciones grep adicionales como “+” (1 o más ocurrencias de un carácter anterior), “?” (0 o 1 ocurrencia de un carácter anterior) y “|” (coincidencia alternativa)

32) ¿Cómo configurar un array en Linux?

Sintaxis en ksh:

Set –A arrayname= (element1 element2 ….. element) In bash A=(element1 element2 element3 …. elementn)

33) Escriba la sintaxis del bucle “for”

Sintaxis:

for iterator in (elements) do execute commands done

34) ¿Cómo encontrará el espacio total en disco utilizado por un usuario específico?

du -s /home/user1….donde user1 es el usuario para el cual se necesita encontrar el espacio total en disco.

35) ¿Escribe la sintaxis para los condicionales “si” en Linux?

Sintaxis

If condition is successful then execute commands else execute commands fi

36) ¿Cuál es el significado de $?

El comando $? proporciona el estado de salida del último comando que se ejecutó.

37) ¿Cómo eliminamos todas las líneas en blanco de un archivo?

sed ‘^ [(backslash)011(backslash)040]*$/d’ file1

donde (backslash)011 es un equivalente octal del espacio y

(backslash)040 es un equivalente octal de la tabulación

38) ¿Cómo insertaré una línea “ABCDEF” cada 100 líneas de un archivo?

sed ‘100i\ABCDEF’ file1

39) Escriba una secuencia de comandos para encontrar todos los archivos modificados en menos de 2 días e imprimir el recuento de registros de cada uno.

find . –mtime -2 –exec wc –l {} \;

40) ¿Cómo puedo configurar el permiso rwx predeterminado para todos los usuarios en cada archivo que se crea en el shell actual?

Podemos utilizar:

umask 777

Esto establecerá el permiso rwx predeterminado para cada archivo que se cree para cada usuario.

41) ¿Cómo podemos encontrar el nombre del proceso a partir de su ID de proceso?

Podemos utilizar «ps –p ProcessId»

42) ¿Cuáles son los cuatro componentes fundamentales de cada sistema de archivos en Linux?

El bloque de arranque, el superbloque, el bloque de inodo y el bloque de datos son componentes fundamentales de cada sistema de archivos en Linux.

43) ¿Qué es un bloque de arranque?

Este bloque contiene un pequeño programa llamado “Master Boot Record” (MBR) que carga el kernel durante el arranque del sistema.

44) ¿Qué es un superbloque?

El superbloque contiene toda la información sobre el sistema de archivos, como el tamaño del sistema de archivos, el tamaño del bloque utilizado por su número de bloques de datos libres y la lista de inodos y bloques de datos libres.

45) ¿Qué es un bloque de inodo?

Este bloque contiene el inodo de cada archivo del sistema de archivos junto con todos los atributos del archivo excepto su nombre.

46) ¿Cómo puedo enviar un correo con un archivo comprimido como adjunto?

zip file1.zip file1|mailx –s “subject” Recipients email id

Contenido del correo electrónico

EOF

47) ¿Cómo creamos alias de comandos en un shell?

alias Aliasname=”Comando cuyo alias se desea crear”.

48) ¿Qué son los campos de permiso “c” y “b” de un archivo?

Los campos de permiso “c” y “b” generalmente están asociados con un archivo de dispositivo. Especifica si un archivo es un archivo de caracteres especiales o un archivo especial de bloques.

49) ¿Cuál es la utilidad de una línea shebang?

La línea Shebang en la parte superior de cada script determina la ubicación del motor que se utilizará para ejecutar el script.

Estas preguntas de la entrevista también te ayudarán en tus exámenes orales.

50) ¿Cómo puedo comprobar el estado de la memoria?

Puedes utilizar el comando

free -m para mostrar la salida en MB

free -g para mostrar la salida en GB

No te detengas, sigue avanzando

Aquí tienes un propósito para este 2025 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: Cómo Iniciarse en Hacking y Ciberseguridad en 2025 que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Hacker de 0 a 100 desde las bases hasta conseguir empleo

Este es un mega post. Una guía con más de 400 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía: Cómo Iniciarse en Hacking y Ciberseguridad en 2025 y curso: Cómo iniciarse en Hacking y Ciberseguridad para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

Esta guía va a tener una actualización constante durante todo el año. Para no hacer de esta guía un post maratónicamente largo voy a dividirlo en varios capítulos que van desde como iniciar en hacking y ciberseguridad, pasando por conocimientos básicos como Redes, Linux, Programación, Hasta como obtener certificaciones y trabajo. Cada capítulo contiene links a otros posts en donde desarrollo mejor cada tema y a webs externas que complementan este material.

Lo que vas a aprender en esta guía de Hacking y Ciberseguridad

Esta es la guía completa de Cómo Iniciarse en Hacking y Ciberseguridad en 2025:

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 2.000.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes seguirme en mis redes:

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.