50 Shelli skriptimise intervjuu küsimust ja vastust (2025)
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.
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)