50 de întrebări și răspunsuri la interviu Shell Scripting (2025)
Î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.
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)