50 domande e risposte all'intervista sullo scripting Shell (2024)
Domande e risposte sull'intervista sullo scripting della shell Linux
1) Cos'è una conchiglia?
La shell è un'interfaccia tra l'utente e il kernel. Anche se può esserci un solo kernel, un sistema può avere molte shell in esecuzione contemporaneamente. Quindi, ogni volta che un utente immette un comando tramite la tastiera, la shell comunica con il kernel per eseguirlo e quindi visualizzare l'output all'utente.
👉 Download gratuito del PDF: domande e risposte sull'intervista su Shell Scripting
2) Cos'è uno scripting di shell?
Shell Scripting è un programma per computer open source progettato per essere eseguito dalla shell Unix/Linux. Shell Scripting è un programma per scrivere una serie di comandi da far eseguire alla shell. Può combinare sequenze di comandi lunghe e ripetitive in un unico e semplice script che può essere memorizzato ed eseguito in qualsiasi momento, riducendo gli sforzi di programmazione.
3) Quali sono i diversi tipi di shell comunemente utilizzate su un tipico sistema Linux?
csh,ksh,bash,Bourne . La shell più comunemente usata e avanzata utilizzata oggi è "Bash".
4) Qual è l'equivalente di un collegamento a un file che abbiamo in una finestra su un sistema Linux?
Le scorciatoie vengono create utilizzando i "collegamenti" su Linux. Esistono due tipi di collegamenti che possono essere utilizzati, vale a dire "soft link" e "hard link".
5) Qual è la differenza tra collegamenti soft e hard?
I soft link sono collegati al nome del file e possono risiedere anche su file system diversi; tuttavia gli hard link sono collegati all'inode del file e devono trovarsi sullo stesso file system di quello del file. L'eliminazione del file originale rende il collegamento software inattivo (collegamento interrotto) ma non influisce sul collegamento reale (il collegamento reale accederà comunque a una copia del file)
6) Come passerai e accederai agli argomenti a uno script in Linux?
Gli argomenti possono essere passati come:
scriptName “Arg1” “Arg2″….”Argn” ed è possibile accedervi all'interno dello script come $1 , $2 .. $n
7) Qual è la differenza tra $* e $@?
$@ tratta ogni argomento tra virgolette come argomento separato, ma $* considererà l'intero set di parametri posizionali come un'unica stringa.
8) Utilizzare il comando sed per sostituire il contenuto del file (emulare il comando tac)
Per esempio:
if cat fille ABCD EFGH
Allora dovrebbe essere O/p
EFGH
ABCD
sed '1! G; h;$!d' file1
Qui il comando G si aggiunge allo spazio del pattern,
Il comando h copia il buffer del pattern nel buffer di contenimento
e il comando d elimina lo spazio del pattern corrente.
9) Dato un file, sostituire tutte le occorrenze della parola “ABC” con “DEF” da 5th riga fino alla fine solo in quelle righe che contengono la parola "MNO"
sed –n '5,$p' file1|sed '/MNO/s/ABC/DEF/'
10) Dato un file, scrivere una sequenza di comandi per trovare il conteggio di ogni parola.
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"
"(barra rovesciata)011" è un equivalente ottale di "carattere di tabulazione" e
"(barra rovesciata)012" è un equivalente ottale del carattere di nuova riga.
11) Come troverai il 99th riga di un file usando solo il comando tail e head?
coda +99 file1|testa -1
12) Stampa il 10th linea senza utilizzare i comandi di coda e testa.
sed –n '10p' file1
13) Nella mia shell bash voglio che il mio prompt sia nel formato '$”Present working directory”:”hostname”> e carichi un file contenente un elenco di funzioni definite dall'utente non appena accedo, come automatizzerai questo? ?
Nella shell bash, possiamo creare un file “.profile” che viene automaticamente richiamato non appena effettuo l'accesso e in cui scrivo la seguente sintassi.
export PS1='$ `pwd`:`hostname`>' .File1
Qui File1 è il file contenente le funzioni definite dall'utente e "." richiama questo file nella shell corrente.
14) Spiegare il bit di autorizzazione "s" in un file?
Il bit “s” è chiamato bit “set user id” (SUID).
Il bit "s" su un file fa sì che il processo abbia i privilegi del proprietario del file durante l'istanza del programma.
Ad esempio, l'esecuzione del comando "passwd" per modificare la password corrente fa sì che l'utente scriva la nuova password nel file shadow anche se ha "root" come proprietario.
15) Voglio creare una directory in modo tale che chiunque nel gruppo possa creare un file e accedere al file di qualsiasi persona al suo interno, ma nessuno dovrebbe essere in grado di eliminare un file diverso da quello creato da lui stesso.
Possiamo creare la directory che dà accesso in lettura ed esecuzione a tutti nel gruppo e impostando il suo bit appiccicoso "t" su come segue:
mkdir direc1 chmod g+wx direc1 chmod +t direc1
16) Come si può sapere da quanto tempo è in funzione l'impianto?
Possiamo trovarlo utilizzando il comando “uptime”.
17) Come può un utente trovare tutte le informazioni su un utente specifico come la sua shell predefinita, il nome nella vita reale, la directory predefinita, quando e da quanto tempo utilizza il sistema?
finger “loginName” …dove loginName è il nome di accesso del
utente le cui informazioni sono attese.
18) Qual è la differenza tra $$ e $!?
$$ fornisce l'ID del processo attualmente in esecuzione mentre $! Mostra l'ID del processo recentemente passato in background.
19) Cosa sono i processi zombie?
Questi sono i processi che sono morti ma il cui stato di uscita non è ancora stato scelto dal processo genitore. Questi processi, anche se non funzionanti, hanno ancora la voce ID processo nella tabella dei processi.
20) Come copierai un file da una macchina all'altra?
Possiamo utilizzare utilità come “ftp”, “scp” o “rsync” per copiare un file da una macchina all’altra.
Ad esempio, utilizzando ftp:
Nome host FTP
>metti il file1
>ciao
Sopra le copie, file file1 dal sistema locale al sistema di destinazione il cui nome host è specificato.
Domande e risposte per l'intervista su Shell Scripting per esperti
21) Voglio monitorare un file di registro in continuo aggiornamento, quale comando può essere utilizzato per raggiungere questo obiettivo nel modo più efficiente?
Possiamo usare tail –f nomefile. Ciò farà sì che vengano visualizzate solo le ultime 10 righe predefinite su std o/p che mostra continuamente la parte di aggiornamento del file.
22) Voglio connettermi ad un server remoto ed eseguire alcuni comandi, come posso riuscirci?
Possiamo usare ssh per fare questo:
ssh nomeutente@IPserver -p sshport
Esempio
ssh root@122.52.251.171 -p 22
Una volta eseguito il comando precedente, ti verrà chiesto di inserire la password
23) Ho 2 file e voglio stampare i record comuni ad entrambi.
Possiamo usare il comando "comm" come segue:
comm -12 file1 file2 … 12 sopprimerà il contenuto che sono
unico per 1st e 2nd file rispettivamente.
24) Scrivere uno script per stampare i primi 10 elementi della serie di 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) Come ti collegherai a un server di database da Linux?
Possiamo utilizzare l'utilità isql fornita con il driver client aperto come segue:
isql –S nomeserver –U nome utente –P password
26) Quali sono i 3 flussi standard in Linux?
0 – Ingresso standard1 – Uscita standard2 – Errore standard
27) Voglio leggere tutto l'input del comando dal file1, indirizzare tutto l'output al file2 e gli errori al file 3, come posso ottenere questo risultato?
comando file1>file1
28) Cosa accadrà al mio processo attuale quando eseguo un comando utilizzando exec?
"exec" sovrappone il processo appena biforcato al processo corrente; quindi quando eseguo il comando utilizzando exec, il comando viene eseguito sulla shell corrente senza creare nuovi processi.
Ad esempio, l'esecuzione "exec ls"
al prompt dei comandi verrà eseguito ls e una volta terminato ls, il processo verrà arrestato
29) Come emulerai wc –l usando awk?
awk 'END {print NR} fileName'
30) Dato un file trovare il conteggio delle righe contenenti la parola “ABC”.
grep –c “ABC” file1
31) Qual è la differenza tra grep ed egrep?
egrep è un grep esteso che supporta funzionalità grep aggiunte come "+" (1 o più occorrenze di un carattere precedente),"?"(0 o 1 occorrenza di un carattere precedente) e "|" (corrispondenza alternativa)
32) Come impostare un array in Linux?
Sintassi in ksh:
Set –A arrayname= (element1 element2 ….. element) In bash A=(element1 element2 element3 …. elementn)
33) Annotare la sintassi del ciclo “for”.
Sintassi:
for iterator in (elements) do execute commands done
34) Come troverai lo spazio su disco totale utilizzato da un utente specifico?
du -s /home/utente1 ….dove utente1 è l'utente per il quale è necessario trovare lo spazio su disco totale.
35) Scrivere la sintassi per i condizionali “if” in Linux?
Sintassi
If condition is successful then execute commands else execute commands fi
36) Qual è il significato di $?
Il comando $? fornisce lo stato di uscita dell'ultimo comando eseguito.
37) Come eliminiamo tutte le righe vuote in un file?
sed '^ [(backslash)011(backslash)040]*$/d' file1
dove (barra rovesciata)011 è l'equivalente ottale dello spazio e
(barra rovesciata)040 è l'equivalente ottale della tabulazione
38) Come inserirò una riga “ABCDEF” ogni 100th riga di un file?
sed '100i\ABCDEF' file1
39) Scrivere una sequenza di comandi per trovare tutti i file modificati in meno di 2 giorni e stampare il conteggio dei record di ciascuno.
Trovare . –mtime -2 –exec wc –l {} \;
40) Come posso impostare l'autorizzazione rwx predefinita per tutti gli utenti su ogni file creato nella shell corrente?
Possiamo usare:
umask 777
Ciò imposterà l'autorizzazione rwx predefinita per ogni file creato per ogni utente.
41) Come possiamo trovare il nome del processo dal suo ID processo?
Possiamo usare "ps –p ProcessId"
42) Quali sono i quattro componenti fondamentali di ogni file system su Linux?
Bootblock, super block, inode block e Datablock si trovano componenti fondamentali di ogni file system su Linux.
43) Cos'è un blocco di avvio?
Questo blocco contiene un piccolo programma chiamato “Master Boot record” (MBR) che carica il kernel durante l'avvio del sistema.
44) Cos'è un superblocco?
Il super blocco contiene tutte le informazioni sul file system come la dimensione del file system, la dimensione del blocco utilizzata dal numero di blocchi di dati liberi e l'elenco di inode e blocchi di dati gratuiti.
45) Cos'è un blocco inode?
Questo blocco contiene l'inode per ogni file del file system insieme a tutti gli attributi del file tranne il nome.
46) Come posso inviare una mail con un file compresso come allegato?
zip file1.zip file1|mailx –s “oggetto” ID e-mail del destinatario
Contenuto dell'email
EOF
47) Come creiamo gli alias di comando in una shell?
alias Aliasname=”Comando di cui creare l'alias”.
48) Cosa sono i campi di autorizzazione “c” e “b” di un file?
“c” e “b” campi di autorizzazione sono generalmente associati a un file di dispositivo. Specifica se un file è un file di caratteri speciali o un file speciale di blocchi.
49) A cosa serve una linea shebang?
La riga Shebang nella parte superiore di ogni script determina la posizione del motore da utilizzare per eseguire lo script.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)