50 de întrebări și răspunsuri la interviu Shell Scripting (2025)

Iată întrebările și răspunsurile la interviu Shell Scripting pentru candidații mai proaspeți, precum și cu experiență, pentru a obține jobul visat.

 

Întrebări și răspunsuri la interviu pentru Linux Shell Scripting

1) Ce este o coajă?

Shell este o interfață între utilizator și nucleu. Chiar dacă poate exista un singur nucleu; un sistem poate avea mai multe shell rulând simultan. Deci, ori de câte ori un utilizator introduce o comandă prin tastatură, shell-ul comunică cu nucleul pentru a o executa și apoi afișează rezultatul utilizatorului.

👉 Descărcare PDF gratuită: Întrebări și răspunsuri la interviu Shell Scripting


2) Ce este un Shell Scripting?

shell a Scripting este un program de calculator open-source conceput pentru a fi rulat de shell-ul Unix/Linux. Shell Scripting este un program pentru a scrie o serie de comenzi pentru ca shell-ul să le execute. Poate combina secvențe lungi și repetitive de comenzi într-un singur script simplu, care poate fi stocat și executat oricând, ceea ce reduce eforturile de programare.

Întrebări pentru interviu Shell Scripting


3) Care sunt diferitele tipuri de shell-uri utilizate în mod obișnuit pe un sistem Linux tipic?

csh,ksh,bash,Bourne . Cel mai frecvent utilizat și avansat shell folosit astăzi este „Bash”.


4) Care este echivalentul unei comenzi rapide de fișiere pe care avem o fereastră pe un sistem Linux?

Comenzile rapide sunt create folosind „linkuri” pe Linux. Există două tipuri de link-uri care pot fi utilizate și anume „soft link” și „hard link”.


5) Care este diferența dintre link-urile soft și hard?

Legăturile soft sunt legate de numele fișierului și pot locui și pe diferite sisteme de fișiere; totuși, linkurile hard sunt legate de inodul fișierului și trebuie să fie pe același sistem de fișiere ca și cel al fișierului. Ștergerea fișierului original face ca linkul soft să fie inactiv (link întrerupt), dar nu afectează linkul hard (linkul hard va accesa în continuare o copie a fișierului)


6) Cum veți transmite și accesați argumente la un script în Linux?

Argumentele pot fi transmise ca:

scriptName „Arg1” „Arg2″….”Argn” și poate fi accesat în interiorul scriptului ca $1 , $2 .. $n


7) Care este diferența dintre $* și $@?

$@ tratează fiecare argument citat ca argumente separate, dar $* va considera întregul set de parametri poziționali ca un singur șir.


8) Folosiți comanda sed pentru a înlocui conținutul fișierului (emulați comanda tac)

De exemplu:

if cat fille
ABCD
EFGH

Atunci O/p ar trebui să fie

EFGH
ABCD

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

Aici comanda G se adaugă la spațiul modelului,

Comanda h copiază tiparul tampon pentru a păstra tamponul

iar comanda d șterge spațiul de model curent.


9) Având în vedere un fișier, înlocuiți toată apariția cuvântului „ABC” cu „DEF” de la 5th linie până la sfârșit doar în acele linii care conțin cuvântul „MNO”

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

10) Având în vedere un fișier, scrieți o secvență de comandă pentru a găsi numărul fiecărui cuvânt.

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” este un echivalent octal al „caracter tabulator” și

„(backslash)012” este un echivalent octal al caracterului newline.


11) Cum vei găsi 99th linia unui fișier folosind doar comanda coadă și cap?

coada +99 file1|cap -1


12) Imprimați numărul 10th linie fără a utiliza comanda coadă și cap.

sed –n '10p' file1

13) În shell-ul meu bash vreau ca promptul meu să fie de formatul „$”Present working directory”:”hostname”> și să încarc un fișier care conține o listă de funcții definite de utilizator de îndată ce mă conectez, cum veți automatiza acest lucru ?

În bash shell, putem crea fișierul „.profile” care este invocat automat de îndată ce mă conectez și scriu următoarea sintaxă în el.

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

Aici File1 este fișierul care conține funcțiile definite de utilizator și „.” invocă acest fișier în shell-ul curent.


14) Explicați despre bitul de permisiune „s” într-un fișier?

Bitul „s” se numește bit „set user id” (SUID).

Bitul „s” dintr-un fișier face ca procesul să aibă privilegiile proprietarului fișierului în timpul instanței programului.

De exemplu, executarea comenzii „passwd” pentru a schimba parola curentă determină utilizatorul să scrie noua sa parolă în fișierul umbră, chiar dacă are „root” ca proprietar.


15) Doresc să creez un director astfel încât oricine din grup să poată crea un fișier și să acceseze fișierul oricărei persoane din el, dar nimeni nu ar trebui să poată șterge un fișier altul decât cel creat de el însuși.

Putem crea directorul care să ofere acces de citire și execuție tuturor celor din grup și să setăm bitul lipicios „t” după cum urmează:

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) Cum puteți afla cât timp funcționează sistemul?

Putem găsi acest lucru folosind comanda „uptime”.


17) Cum poate orice utilizator să afle toate informațiile despre un anumit utilizator, cum ar fi shell-ul său implicit, numele real, directorul implicit, când și cât timp folosește sistemul?

degetul „loginName” …unde loginName este numele de conectare al

utilizator ale cărui informații sunt așteptate.


18) Care este diferența dintre $$ și $!?

$$ oferă id-ul procesului care se execută în prezent, în timp ce $! Afișează ID-ul procesului care a intrat recent în fundal.


19) Ce sunt procesele zombie?

Acestea sunt procesele care au murit, dar al căror statut de ieșire nu este încă ales de procesul părinte. Aceste procese, chiar dacă nu sunt funcționale, au încă intrarea sa de cod de proces în tabelul de procese.


20) Cum veți copia un fișier de la o mașină la alta?

Putem folosi utilitare precum „ftp”, „scp” sau „rsync” pentru a copia un fișier de pe o mașină pe alta.

De exemplu, folosind ftp:

Nume de gazdă FTP

> pune fișierul 1

> la revedere

Deasupra copiilor, fișierul fișier1 de la sistemul local la sistemul de destinație al cărui nume de gazdă este specificat.


Întrebări și răspunsuri la interviu Shell Scripting pentru cei cu experiență

21) Doresc să monitorizez un fișier jurnal care se actualizează continuu, ce comandă poate fi folosită pentru a realiza acest lucru în mod eficient?

Putem folosi tail –f filename. Acest lucru va face ca doar ultimele 10 linii implicite să fie afișate pe std o/p, care afișează continuu partea de actualizare a fișierului.


22) Vreau să mă conectez la un server la distanță și să execut niște comenzi, cum pot realiza acest lucru?

Putem folosi ssh pentru a face acest lucru:

ssh nume utilizator@serverIP -p sshport

Exemplu

ssh root@122.52.251.171 -p 22

Odată ce comanda de mai sus este executată, vi se va cere să introduceți parola


23) Am 2 fișiere și vreau să printez înregistrările care sunt comune ambelor.

Putem folosi comanda „comm” după cum urmează:

comm -12 fișier1 fișier2 … 12 va suprima conținutul care sunt

unic pentru 1st și 2nd dosar respectiv.


24) Scrieți un script pentru a tipări primele 10 elemente din seria 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) Cum vă veți conecta la un server de baze de date de pe Linux?

Putem folosi utilitarul isql care vine cu driverul client deschis, după cum urmează:

isql –S serverName –U username –P parola


26) Care sunt cele 3 fluxuri standard în Linux?

0 – Intrare standard1 – Ieșire standard2 – Eroare standard


27) Vreau să citesc toate intrările în comandă de la file1 direcționează toate ieșirile către fișierul 2 și eroarea către fișierul 3, cum pot realiza acest lucru?

comanda fisier1 1>fisier2


28) Ce se va întâmpla cu procesul meu curent când execut o comandă folosind exec?

„exec” suprapune procesul nou bifurcat pe procesul curent; deci, când execut comanda folosind exec, comanda este executată pe shell-ul curent fără a crea procese noi.

De exemplu, Executarea "exec ls" la promptul de comandă va executa ls și odată ce ls iese, procesul se va închide


29) Cum vei emula wc –l folosind awk?

awk 'END {print NR} fileName'


30) Dat un fișier, găsiți numărul de linii care conțin cuvântul „ABC”.

grep –c „ABC” fișier1


31) Care este diferența dintre grep și egrep?

egrep este grep extins care acceptă caracteristici grep adăugate, cum ar fi „+” (1 sau mai multe apariții ale unui caracter anterior),”?” (0 sau 1 apariție a unui caracter anterior) și „|” (potrivire alternativă)


32) Cum să setați o matrice în Linux?

Sintaxă în ksh:

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

33) Notați sintaxa buclei „for”.

Sintaxă:

for  iterator in (elements)
do
execute commands
done

34) Cum veți găsi spațiul total pe disc folosit de un anumit utilizator?

du -s /home/user1 ….unde user1 este utilizatorul pentru care trebuie găsit spațiul total pe disc.


35) Scrieți sintaxa pentru condiționalele „dacă” în Linux?

Sintaxă

If  condition is successful
then
execute commands
else
execute commands
fi

36) Care este semnificația lui $?

Comanda $? oferă starea de ieșire a ultimei comenzi care a fost executată.


37) Cum ștergem toate liniile goale dintr-un fișier?

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

unde (backslash)011 este un echivalent octal al spațiului și

(backslash) 040 este un echivalent octal al filei


38) Cum voi insera o linie „ABCDEF” la fiecare 100th linia unui fișier?

sed „100i\ABCDEF” fișier1


39) Scrieți o secvență de comandă pentru a găsi toate fișierele modificate în mai puțin de 2 zile și imprimați numărul de înregistrări ale fiecăruia.

găsi . –mtime -2 –exec wc –l {} \;


40) Cum pot seta permisiunea rwx implicită pentru toți utilizatorii pentru fiecare fișier care este creat în shell-ul curent?

Putem folosi:

umask 777

Aceasta va seta permisiunea rwx implicită pentru fiecare fișier care este creat pentru fiecare utilizator.


41) Cum putem găsi numele procesului din id-ul său de proces?

Putem folosi "ps –p ProcessId"


42) Care sunt cele patru componente fundamentale ale fiecărui sistem de fișiere pe Linux?

Bootblock, super block, inode block și Datablock sunt componente fundamentale ale fiecărui sistem de fișiere pe Linux.


43) Ce este un bloc de pornire?

Acest bloc conține un mic program numit „Master Boot record” (MBR) care încarcă nucleul în timpul pornirii sistemului.


44) Ce este un super bloc?

Super block conține toate informațiile despre sistemul de fișiere, cum ar fi dimensiunea sistemului de fișiere, dimensiunea blocului utilizat de numărul de blocuri de date gratuite și lista de inoduri și blocuri de date gratuite.


45) Ce este un bloc de inod?

Acest bloc conține inodul pentru fiecare fișier al sistemului de fișiere împreună cu toate atributele fișierului, cu excepția numelui său.


46) Cum pot trimite un e-mail cu un fișier comprimat ca atașament?

zip file1.zip file1|mailx –s „subiect” Id-ul e-mail al destinatarilor

Conținut prin e-mail

EOF


47) Cum creăm aliasuri de comandă într-un shell?

alias Aliasname=”Comandă al cărei alias urmează să fie creat”.


48) Ce sunt câmpurile de permisiuni „c” și „b” ale unui fișier?

„c” și „b” câmpuri de permisiuni sunt în general asociate cu un fișier de dispozitiv. Specifică dacă un fișier este un fișier cu caractere speciale sau un fișier special bloc.


49) La ce folosește o linie shebang?

Linia Shebang din partea de sus a fiecărui script determină locația motorului care urmează să fie folosit pentru a executa scriptul.

Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)