50 Shelli skriptimise intervjuu küsimust ja vastust (2025)

Siin on Shell Scriptingu intervjuu küsimused ja vastused nii värskematele kui ka kogenud kandidaatidele oma unistuste töökoha saamiseks.

 

Linux Shelli skriptimise intervjuu küsimused ja vastused

1) Mis on kest?

Shell on kasutaja ja kerneli vaheline liides. Kuigi seal saab olla ainult üks tuum; süsteemis võib korraga töötada mitu kesta. Seega, kui kasutaja sisestab klaviatuuri kaudu käsu, suhtleb kest selle käivitamiseks ja seejärel kasutajale väljundi kuvamiseks tuumaga.

👉 Tasuta PDF-i allalaadimine: Shelli skriptimise intervjuu küsimused ja vastused


2) Mis on Shelli skriptimine?

Shelli skriptimine on avatud lähtekoodiga arvutiprogramm, mis on loodud töötama Unixi/Linuxi kestaga. Shell Scripting on programm käskude seeria kirjutamiseks, mida shell täidab. See võib ühendada pikad ja korduvad käskude jadad üheks ja lihtsaks skriptiks, mida saab igal ajal salvestada ja käivitada, mis vähendab programmeerimispingutusi.

Shelli skriptimise intervjuu küsimused


3) Millised on tüüpilises Linuxi süsteemis tavaliselt kasutatavad kestade erinevad tüübid?

csh, ksh, bash, Bourne. Tänapäeval kõige sagedamini kasutatav ja täiustatud kest on "Bash".


4) Mis on samaväärne faili otseteega, et meil on Linuxi süsteemis aken?

Otseteed luuakse Linuxis linkide abil. Kasutada saab kahte tüüpi linke, nimelt "pehme link" ja "kõva link".


5) Mis vahe on pehmetel ja kõvadel linkidel?

Pehmed lingid on lingid failinimele ja võivad asuda ka erinevates failisüsteemides; kõvad lingid on aga lingid faili inode ja peavad asuma failiga samas failisüsteemis. Algse faili kustutamine muudab pehme lingi passiivseks (katkine link), kuid ei mõjuta kõva linki (kõva link pääseb siiski juurde faili koopiale)


6) Kuidas saate Linuxis skripti argumente edastada ja sellele juurde pääseda?

Argumente saab edastada järgmiselt:

skriptinimi “Arg1” “Arg2″….”Argn ja sellele pääseb skriptis ligi kui $1 , $2 .. $n


7) Mis vahe on $* ja $@ vahel?

$@ käsitleb iga tsiteeritud argumenti eraldi argumendina, kuid $* käsitleb kogu asukohaparameetrite komplekti ühe stringina.


8) Faili sisu asendamiseks kasutage käsku sed (käsk emuleeri tac)

Näiteks:

if cat fille
ABCD
EFGH

Siis peaks O/p olema

EFGH
ABCD

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

Siin lisandub mustriruumile käsk G,

h käsk kopeerib mustri puhvri puhvri hoidmiseks

ja d käsk kustutab praeguse mustriruumi.


9) Kui fail on antud, asendage sõna "ABC" sõnaga "DEF" alates 5th rida lõpuni ainult neil ridadel, mis sisaldavad sõna "MNO"

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

10) Kirjutage failile antud käsujada, et leida iga sõna arv.

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" on kaheksandkvivalents sõnadele "tab character" ja

"(backslash)012" on reavahetuse märgi kaheksandkvivalent.


11) Kuidas leiate 99th faili rida kasutades ainult käsku saba ja pea?

saba +99 fail1|pea -1


12) Printige 10th rida ilma saba ja pea käsku kasutamata.

sed –n '10p' file1

13) Ma tahan oma bash-shellis, et mu viip oleks vormingus '$”Praegune töökataloog”:”hostinimi”> ja laadiks kohe pärast sisselogimist faili, mis sisaldab kasutaja määratud funktsioonide loendit. Kuidas seda automatiseerida ?

Bash shellis saame luua ".profile" faili, mis käivitatakse automaatselt niipea, kui login sisse ja kirjutan sellesse järgmise süntaksi.

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

Siin on fail1 fail, mis sisaldab kasutaja määratud funktsioone ja "." käivitab selle faili praeguses shellis.


14) Selgitage faili "s" lubade bitti?

"s" bitti nimetatakse "set user id" (SUID) bitiks.

Faili "s" bitt põhjustab protsessil faili omaniku õigused programmi esinemise ajal.

Näiteks käsu "passwd" täitmine praeguse parooli muutmiseks paneb kasutaja kirjutama oma uue parooli varjufaili, kuigi selle omanik on "root".


15) Ma tahan luua kataloogi nii, et igaüks grupist saaks luua faili ja pääseda juurde mis tahes inimese failile, kuid keegi ei tohiks kustutada muid faile peale enda loodud faili.

Saame luua kataloogi, mis annab lugemis- ja käivitamisõiguse kõigile rühmaliikmetele ning seadistab selle kleepuva biti "t" järgmiselt:

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) Kuidas saate teada, kui kaua süsteem on töötanud?

Selle leiame käsu "uptime" abil.


17) Kuidas saab kasutaja teada kogu teavet konkreetse kasutaja kohta, nagu tema vaikekest, tegelik nimi, vaikekataloog, millal ja kui kaua ta on süsteemi kasutanud?

sõrm "loginName" …kus loginName on sisselogimisnimi

kasutaja, kelle teavet oodatakse.


18) Mis vahe on $$ ja $ vahel!?

$$ annab hetkel käivitatava protsessi protsessi ID, samas kui $! Näitab hiljuti taustale läinud protsessi protsessi ID-d.


19) Mis on zombiprotsessid?

Need on protsessid, mis on surnud, kuid mille väljumisolekut vanemprotsess ikka veel ei vali. Isegi kui need protsessid ei tööta, on protsessi tabelis siiski protsessi ID kirje.


20) Kuidas kopeerite faili ühest masinast teise?

Faili ühest masinast teise kopeerimiseks saame kasutada utiliite, nagu "ftp", "scp" või "rsync".

Näiteks ftp kasutamine:

FTP hostinimi

> pane fail1

> hüvasti

Eespool kopeeritakse fail file1 kohalikust süsteemist sihtsüsteemi, mille hostinimi on määratud.


Shelli skriptimise intervjuu küsimused ja vastused kogenud inimestele

21) Soovin jälgida pidevalt uuenevat logifaili, millist käsku saab selle kõige tõhusamaks saavutamiseks kasutada?

Võime kasutada tail –f failinime. Selle tulemusel kuvatakse std o/p-s ainult vaikimisi viimased 10 rida, mis näitab pidevalt faili värskendatavat osa.


22) Ma tahan luua ühenduse kaugserveriga ja täita mõningaid käske, kuidas seda saavutada?

Selleks saame kasutada ssh-d:

ssh kasutajanimi@serveri IP -p sshport

Näide

ssh root@122.52.251.171 -p 22

Kui ülaltoodud käsk on täidetud, palutakse teil sisestada parool


23) Mul on 2 faili ja ma tahan printida kirjed, mis on mõlema jaoks ühised.

Saame kasutada käsku "comm" järgmiselt:

comm -12 fail1 fail2 … 12 surub maha sisu, mis on

ainulaadne 1st ja 2nd faili vastavalt.


24) Kirjutage skript Fibonacci seeria esimese 10 elemendi printimiseks.

  
#!/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) Kuidas loote ühenduse andmebaasiserveriga Linuxist?

Saame kasutada avatud kliendidraiveriga kaasas olevat isql-i utiliiti järgmiselt:

isql –S serverinimi –U kasutajanimi –P parool


26) Millised on 3 standardset voogu Linuxis?

0 – Standardsisend1 – Standardväljund2 – Standardne viga


27) Ma tahan lugeda kogu käsu faili1 sisendit, suunata kogu väljundi faili2 ja viga faili 3, kuidas seda saavutada?

käsk fail1 1> fail2


28) Mis juhtub minu praeguse protsessiga, kui täidan käsu exec abil?

"exec" katab äsja ühendatud protsessi praeguse protsessiga; nii et kui käivitan käsu exec abil, käivitatakse käsk praeguses kestas ilma uusi protsesse loomata.

Nt Täitmine "exec ls" käsureal käivitab ls ja kui ls väljub, lülitub protsess välja


29) Kuidas emuleerida wc –l kasutades awk?

awk 'END {print NR} fileName'


30) Leidke failis sõna "ABC" sisaldavate ridade arv.

grep –c "ABC" fail1


31) Mis vahe on grepil ja egrepil?

egrep on laiendatud grep, mis toetab lisatud grep-funktsioone, nagu "+" (eelmise märgi 1 või enam esinemine),"?" (eelmise märgi 0 või 1 esinemine) ja "|" (alternatiivne sobitamine)


32) Kuidas määrata massiivi Linuxis?

Süntaks ksh-s:

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

33) Kirjutage üles tsükli "for" süntaks

süntaksit:

for  iterator in (elements)
do
execute commands
done

34) Kuidas leiate konkreetse kasutaja kasutatava kogu kettaruumi?

du -s /home/user1 ….kus kasutaja1 on kasutaja, kelle jaoks tuleb leida kogu kettaruum.


35) Kirjutage Linuxis "kui" tingimustingimuste süntaks?

Süntaks

If  condition is successful
then
execute commands
else
execute commands
fi

36) Mis on $ tähendus?

Käsk $? annab viimati täidetud käsu väljumisoleku.


37) Kuidas kustutada failist kõik tühjad read?

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

kus (kaldkriips)011 on ruumi ja kaheksandekvivalent

(kaldkriips)040 on tabeldusmärgi kaheksandkvivalent


38) Kuidas lisada rida "ABCDEF" iga 100 järel?th faili rida?

sed '100i\ABCDEF' fail1


39) Kirjutage käsujada, et leida kõik failid, mida on muudetud vähem kui 2 päeva jooksul, ja printige igaühe kirjete arv.

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


40) Kuidas määrata vaikimisi rwx-luba kõigile kasutajatele igas praeguses shellis loodud failis?

Saame kasutada:

umask 777

See määrab vaikimisi rwx-loa igale failile, mis luuakse iga kasutaja jaoks.


41) Kuidas leiame protsessi nime selle protsessi ID järgi?

Meil on võimalik kasutada "ps –p ProcessId"


42) Millised on Linuxi iga failisüsteemi neli põhikomponenti?

Bootblock, super block, inode block ja Datablock on Linuxis iga failisüsteemi põhikomponendid.


43) Mis on alglaadimisplokk?

See plokk sisaldab väikest programmi nimega “Master Boot Record” (MBR), mis laadib süsteemi alglaadimise ajal kerneli.


44) Mis on superplokk?

Superplokk sisaldab kogu teavet failisüsteemi kohta, nagu failisüsteemi suurus, ploki suurus, mida selle vabade andmeplokkide arv kasutab, ning tasuta inoodide ja andmeplokkide loend.


45) Mis on inoodi plokk?

See plokk sisaldab iga failisüsteemi faili inode koos kõigi failiatribuutidega, välja arvatud selle nimi.


46) Kuidas ma saan saata e-kirja, mille manusena on tihendatud fail?

zip fail1.zip fail1|mailx –s “subject” Saaja meili id

E-posti sisu

EOF


47) Kuidas luua shellis käskude varjunimesid?

alias Aliasname="Käsk, mille alias luuakse".


48) Mis on faili „c” ja „b” lubade väljad?

"c" ja "b" loa väljad on tavaliselt seotud seadme failiga. See määrab, kas fail on erimärgifail või ploki erifail.


49) Mis kasu on shebang-liinist?

Iga skripti ülaosas olev Shebangi rida määrab skripti täitmiseks kasutatava mootori asukoha.

Need intervjuu küsimused aitavad ka teie viva (suuline)