50 preguntas principales de la entrevista de Shell Scripting & Respuestas

Tabla de contenido

Descargar PDF

1: ¿Qué es un caparazón?

Shell es una interfaz entre el usuario y el kernel. Aunque solo puede haber un kernel; un sistema puede tener varios shell ejecutándose simultáneamente. Entonces, cada vez que un usuario ingresa un comando a través del teclado, el shell se comunica con el kernel para ejecutarlo y luego muestra la salida al usuario.

2: ¿Cuáles son los diferentes tipos de shells de uso común en un sistema Linux típico?

csh, ksh, bash, Bourne. El shell más utilizado y avanzado que se utiliza hoy en día es "Bash".

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

Los accesos directos se crean mediante "enlaces" en Linux. Hay dos tipos de enlaces que se pueden utilizar, a saber, "enlace suave" y "enlace duro".

4: ¿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 físicos son enlaces al inodo del archivo y deben estar en el mismo sistema de archivo que el del archivo. Eliminar el archivo original hace que el enlace suave esté inactivo (enlace roto) pero no afecta el enlace duro (el enlace duro seguirá teniendo acceso a una copia del archivo)

5: ¿Cómo pasará y accederá a argumentos a un script en Linux?

Los argumentos se pueden pasar como:

scriptName "Arg1" "Arg2"

…. "Argn" y se puede acceder a él dentro del script como $ 1, $ 2… $ n

6: ¿Cuál es el significado de $ #?

$ # muestra el recuento de argumentos pasados ​​al script.

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

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

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

P.ej:

if cat filleABCDEFGH

Entonces O / p debería ser

EFGHABCD

sed '1! G; h;$!d' file1

Aquí el comando G se agrega al espacio del patrón,

El comando h copia el búfer de patrones para contener el búfer

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

9: Dado un archivo, reemplace todas las apariciones de la palabra "ABC" con "DEF" desde la línea hasta el final solo en aquellas líneas que contienen 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" 

"(barra invertida) 011" es un equivalente octal de "carácter de tabulación" y

"(barra invertida) 012" es un equivalente octal del carácter de nueva línea.

11: ¿Cómo va a encontrar la 99 ª línea de un archivo utilizando sólo la cola y la cabeza de comandos?

cola +99 archivo1 | cabeza -1

12: Imprime la décima línea sin usar el comando de cola y cabeza.

sed -n '10p' file1

13: En mi shell bash, quiero que mi mensaje 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: ¿Explica sobre el bit de permiso "s" en un archivo?

El bit "s" se denomina bit "establecer ID 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, la ejecución del comando "passwd" para cambiar la contraseña actual hace que el usuario escriba su nueva contraseña en el archivo oculto aunque tenga "root" como propietario.

15: Quiero crear un directorio de modo que cualquier persona del grupo pueda crear un archivo y acceder al archivo de cualquier persona en él, pero nadie debería poder 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 estableciendo su bit adhesivo "t" de la siguiente manera:

mkdir direc1chmod g+wx direc1chmod +t direc1

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

Podemos encontrar esto usando el comando "uptime".

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

dedo "nombre de inicio de sesión"

… 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 $?

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

19: ¿Qué son los procesos zombies?

Estos son los procesos que han muerto pero cuyo estado de salida aún no es elegido por el proceso principal. Estos procesos, incluso si no son funcionales, todavía tienen su entrada de identificación de proceso en la tabla de procesos.

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

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

Por ejemplo, usando ftp:

Nombre de host FTP

> poner archivo1

> adiós

Arriba copia, archivo file1 del sistema local al sistema de destino cuyo nombre de host está especificado.

21: Quiero monitorear un archivo de registro que se actualiza continuamente, ¿qué comando se puede 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 std o / p, que muestra continuamente la parte de actualización del archivo.

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

Podemos usar ssh para hacer esto:

ssh nombre de usuario @ serverIP -p sshport

Ejemplo

ssh Esta dirección de correo electrónico está protegida contra spambots. Necesita tener JavaScript habilitado para verlo. -p 22

Una vez que se ejecuta 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 usar el comando "comm" de la siguiente manera:

comm -12 archivo1 archivo2… 12 suprimirá el contenido que se

única de 1 st y 2 nd archivo, respectivamente.

24: Escribe un guión para imprimir los primeros 10 elementos de la serie Fibonacci.

#!/bin/sha=1b=1echo $aecho $bfor I in 1 2 3 4 5 6 7 8doc=ab=$ab=$(($a+$c))echo $bdone

25: ¿Cómo se conectará a un servidor de base de datos desde Linux?

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

isql -S nombreDeServidor -U nombre de usuario -P contraseña

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

0 - Entrada estándar1 - Salida estándar2 - Error estándar

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

comando archivo2 2> archivo3

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

"exec" superpone el proceso recién bifurcado en el proceso actual; así que cuando ejecuto el comando usando exec, el comando se ejecuta en el shell actual sin crear ningún proceso nuevo.

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

29: ¿Cómo emulará wc -l usando awk?

awk 'END {print NR} fileName'

30: Dado un archivo, busque el número de líneas que contengan la palabra "ABC".

grep -c "ABC" archivo1

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

egrep es un grep extendido que admite características grep agregadas 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 imprimirá los nombres de inicio de sesión de todos los usuarios en un sistema?

El archivo / etc / shadow tiene todos los usuarios listados.

awk -F ':' '{print $1}' /etc/shadow|uniq -u

33: ¿Cómo configurar una matriz en Linux?

Sintaxis en ksh:

Set -A arrayname= (element1 element2… element)In bashA=(element1 element2 element3… . elementn)

34: Escriba la sintaxis del bucle "for"

Sintaxis:

for iterator in (elements)doexecute commandsdone

35: ¿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 que se necesita encontrar el espacio total en disco.

36: ¿Escribe la sintaxis de los condicionales "si" en Linux?

Sintaxis

If condition is successfulthenexecute commandselseexecute commandsfi

37: ¿Cuál es el significado de $?

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

38: ¿Cómo borramos todas las líneas en blanco en un archivo?

sed '[(backslash)011(backslash)040]*$/d' file1

donde (barra invertida) 011 es un equivalente octal del espacio y

(barra invertida) 040 es un equivalente octal de la pestaña

39: ¿Cómo voy a insertar una línea "ABCDEF" en cada 100 ª línea de un archivo?

archivo sed '100i \ ABCDEF' 1

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

encontrar . -mtime -2 -exec wc -l {} \;

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

Nosotros podemos usar:

umask 777

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

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

Podemos usar "ps -p ProcessId"

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

Bootblock, super block, inode block y Datablock son componentes fundamentales de todos los sistemas de archivos en Linux.

44: ¿Qué es un bloque de arranque?

Este bloque contiene un pequeño programa llamado "Registro de arranque maestro" (MBR) que carga el kernel durante el arranque del sistema.

45: ¿Qué es un superbloque?

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

46: ¿Qué es un bloque de inodo?

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

47: ¿Cómo puedo enviar un correo con un archivo comprimido como adjunto?

zip file1.zip file1 | mailx -s "asunto" ID de correo electrónico de los destinatarios

Contenido de correo electrónico

EOF

48: ¿Cómo creamos alias de comandos en un shell?

alias Aliasname = "Comando cuyo alias se va a crear".

49: ¿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 bloque.

50: ¿Cuál es el uso 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.

Articulos interesantes...