50 Shell Scripting -haastattelun kysymystä ja vastausta (2025)

Tässä Shell Scriptingin haastattelukysymyksiä ja vastauksia tuoreemmille ja kokeneemmille hakijoille unelmatyönsä saamiseksi.

 

Linux Shell Scripting -haastattelun kysymyksiä ja vastauksia

1) Mikä on kuori?

Shell on käyttöliittymä käyttäjän ja ytimen välillä. Vaikka ydin voi olla vain yksi; järjestelmässä voi olla useita kuoria käynnissä samanaikaisesti. Joten aina kun käyttäjä antaa komennon näppäimistön kautta, komentotulkki kommunikoi ytimen kanssa suorittaakseen sen ja näyttääkseen tulosteen käyttäjälle.

👉 Ilmainen PDF-lataus: Shell Scripting -haastattelun kysymyksiä ja vastauksia


2) Mikä on Shell-komentosarja?

Shell-komentosarjat on avoimen lähdekoodin tietokoneohjelma, joka on suunniteltu käytettäväksi Unix/Linux-kuoren avulla. Shell Scripting on ohjelma, joka kirjoittaa sarjan komentoja komentotulkin suoritettavaksi. Se voi yhdistää pitkiä ja toistuvia komentosarjoja yhdeksi ja yksinkertaiseksi komentosarjaksi, joka voidaan tallentaa ja suorittaa milloin tahansa, mikä vähentää ohjelmointiponnisteluja.

Shell Scripting -haastattelukysymykset


3) Mitkä ovat erityyppiset yleisesti käytetyt kuoret tyypillisessä Linux-järjestelmässä?

csh,ksh,bash,Bourne. Nykyään yleisimmin käytetty ja kehittynein komentotulkki on "Bash".


4) Mikä vastaa tiedoston pikakuvaketta, joka sisältää ikkunan Linux-järjestelmässä?

Pikakuvakkeet luodaan "linkeillä" Linuxissa. On olemassa kahdenlaisia ​​linkkejä, joita voidaan käyttää, nimittäin "pehmeä linkki" ja "kova linkki".


5) Mitä eroa on pehmeillä ja kovilla linkeillä?

Pehmeät linkit ovat linkkejä tiedoston nimeen ja voivat sijaita myös eri tiedostojärjestelmissä; kovat linkit ovat kuitenkin linkkejä tiedoston inodeihin ja niiden on oltava samassa tiedostojärjestelmässä kuin tiedoston. Alkuperäisen tiedoston poistaminen tekee pehmeän linkin epäaktiiviseksi (vikainen linkki), mutta ei vaikuta kovaan linkkiin (Kova linkki käyttää silti tiedoston kopiota)


6) Kuinka välität ja käytät komentosarjan argumentteja Linuxissa?

Argumentit voidaan esittää seuraavasti:

scriptName “Arg1” “Arg2″….”Argn” ja sitä voidaan käyttää skriptin sisällä nimellä $1 , $2 .. $n


7) Mitä eroa on $* ja $@ välillä?

$@ käsittelee jokaista lainattua argumenttia erillisenä argumenttina, mutta $* pitää koko paikkaparametrijoukon yhtenä merkkijonona.


8) Käytä sed-komentoa korvataksesi tiedoston sisällön (emulate tac-komento)

Esim:

if cat fille
ABCD
EFGH

Silloin O/p:n pitäisi olla

EFGH
ABCD

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

Tässä G-komento liitetään kuviotilaan,

h-komento kopioi kuviopuskurin puskuriin

ja d-komento poistaa nykyisen kuviotilan.


9) Annettu tiedosto, korvaa kaikki sanan "ABC" esiintymät "DEF" alkaen 5th rivi loppuun vain niillä riveillä, jotka sisältävät sanan "MNO"

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

10) Anna tiedosto, kirjoita komentosarja löytääksesi kunkin sanan määrän.

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 oktaalivastine sanalle "sarkainmerkki" ja

"(backslash)012" on rivinvaihtomerkin oktaalivastine.


11) Kuinka löydät 99:nth tiedoston rivi käyttäen vain tail and head -komentoa?

häntä +99 file1|head -1


12) Tulosta 10th rivillä ilman häntä- ja head-komentoa.

sed –n '10p' file1

13) Bash shellissäni haluan kehotteeni olevan muotoa '$”Present working directory”:”hostname”> ja lataan tiedoston, joka sisältää luettelon käyttäjän määrittämistä funktioista heti kirjautuessani sisään. Kuinka automatisoit tämän ?

Bash shellissä voimme luoda ".profile"-tiedoston, joka käynnistyy automaattisesti heti, kun kirjaudun sisään ja kirjoitan siihen seuraavan syntaksin.

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

Tässä File1 on tiedosto, joka sisältää käyttäjän määrittämät funktiot ja "." kutsuu tämän tiedoston nykyisessä kuoressa.


14) Selitä "s" -oikeusbitti tiedostossa?

"s"-bittiä kutsutaan "set user id" (SUID) -bitiksi.

Tiedoston "s"-bitti saa prosessille tiedoston omistajan oikeudet ohjelman esiintymisen aikana.

Esimerkiksi "passwd"-komennon suorittaminen nykyisen salasanan vaihtamiseksi saa käyttäjän kirjoittamaan uuden salasanansa varjotiedostoon, vaikka sen omistajana on "root".


15) Haluan luoda hakemiston siten, että kuka tahansa ryhmässä voi luoda tiedoston ja päästä kenen tahansa siinä olevaan tiedostoon, mutta kenenkään ei pitäisi pystyä poistamaan muuta tiedostoa kuin itse luomaa.

Voimme luoda hakemiston, joka antaa luku- ja suoritusoikeudet kaikille ryhmän jäsenille ja asettaa sen tarrabitin "t" päälle seuraavasti:

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) Kuinka voit selvittää, kuinka kauan järjestelmä on ollut käynnissä?

Löydämme tämän komennolla "uptime".


17) Kuinka kuka tahansa käyttäjä voi saada selville kaikki tiedot tietystä käyttäjästä, kuten hänen oletuskuoren, tosielämän nimen, oletushakemiston, milloin ja kuinka kauan hän on käyttänyt järjestelmää?

sormi “loginName” …jossa loginName on kirjautumisnimi

käyttäjä, jonka tietoja odotetaan.


18) Mitä eroa on $$:lla ja $:lla!?

$$ antaa parhaillaan suoritettavan prosessin prosessitunnuksen, kun taas $! Näyttää äskettäin taustalle menneen prosessin prosessin tunnuksen.


19) Mitä ovat zombiprosessit?

Nämä ovat prosesseja, jotka ovat kuolleet, mutta joiden poistumistilaa ei edelleenkään ole valittu pääprosessissa. Näillä prosesseilla, vaikka ne eivät toimisi, on silti prosessitunnus prosessitaulukossa.


20) Kuinka kopioit tiedoston koneelta toiselle?

Voimme käyttää apuohjelmia, kuten "ftp", "scp" tai "rsync", kopioidaksesi tiedoston koneelta toiselle.

Esimerkiksi ftp:n käyttäminen:

FTP-isäntänimi

>laita tiedosto1

> heippa

Yllä kopioidaan tiedosto file1 paikallisesta järjestelmästä kohdejärjestelmään, jonka isäntänimi on määritetty.


Shell-komentosarjahaastattelun kysymyksiä ja vastauksia kokeneille

21) Haluan seurata jatkuvasti päivittyvää lokitiedostoa, millä komennolla tämä voidaan saavuttaa tehokkaimmin?

Voimme käyttää tail –f -tiedostonimeä. Tämä saa aikaan vain oletusarvoiset 10 viimeistä riviä std o/p:ssä, joka näyttää jatkuvasti tiedoston päivitettävän osan.


22) Haluan muodostaa yhteyden etäpalvelimeen ja suorittaa joitakin komentoja, miten voin saavuttaa tämän?

Voimme käyttää ssh:tä tähän:

ssh-käyttäjänimi@palvelinIP -p sshport

esimerkki

ssh root@122.52.251.171 -p 22

Kun yllä oleva komento on suoritettu, sinua pyydetään antamaan salasana


23) Minulla on 2 tiedostoa ja haluan tulostaa tietueet, jotka ovat yhteisiä molemmille.

Voimme käyttää "comm" -komentoa seuraavasti:

comm -12 tiedosto1 tiedosto2 … 12 estää sisällön, joka on

ainutlaatuinen 1st ja 2nd tiedostoa vastaavasti.


24) Kirjoita käsikirjoitus Fibonacci-sarjan ensimmäisten 10 elementin tulostamiseksi.

  
#!/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) Kuinka muodostat yhteyden tietokantapalvelimeen Linuxista?

Voimme käyttää avoimen asiakasohjaimen mukana tulevaa isql-apuohjelmaa seuraavasti:

isql –S-palvelimenNimi –U-käyttäjätunnus –P-salasana


26) Mitkä ovat 3 vakiovirtaa Linuxissa?

0 – Vakiotulo1 – Vakiolähtö2 – Vakiovirhe


27) Haluan lukea kaikki syötteet komennosta tiedosto1:stä ohjata kaikki tulosteet tiedostoon2 ja virhe tiedostoon 3, miten voin saavuttaa tämän?

komento tiedosto1 1> tiedosto2


28) Mitä tapahtuu nykyiselle prosessilleni, kun suoritan komennon käyttämällä execiä?

"exec" peittää äskettäin muodostetun prosessin nykyisen prosessin päälle; joten kun suoritan komennon käyttämällä execiä, komento suoritetaan nykyisessä kuoressa luomatta uusia prosesseja.

Esim Toteutus "exec ls" komentokehotteessa suorittaa ls:n ja kun ls poistuu, prosessi sammuu


29) Kuinka emuloi wc –l awk:lla?

awk 'END {print NR} fileName'


30) Etsi tiedostosta sana "ABC" sisältävien rivien lukumäärä.

grep –c "ABC"-tiedosto1


31) Mitä eroa on grepillä ja egrepillä?

egrep on laajennettu grep, joka tukee lisättyjä grep-ominaisuuksia, kuten "+" (1 tai useampi edellisen merkin esiintyminen),"?" (0 tai 1 edellisen merkin esiintyminen) ja "|" (vaihtoehtoinen haku)


32) Kuinka asettaa taulukko Linuxissa?

Syntaksi ksh:ssa:

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

33) Kirjoita muistiin "for " -silmukan syntaksi

Syntaksi:

for  iterator in (elements)
do
execute commands
done

34) Miten saat selville tietyn käyttäjän käyttämän levytilan kokonaismäärän?

du -s /home/user1 ….jossa käyttäjä1 on käyttäjä, jolle levytilan kokonaismäärä on löydettävä.


35) Kirjoita "jos"-ehtojen syntaksi Linuxissa?

Syntaksi

If  condition is successful
then
execute commands
else
execute commands
fi

36) Mikä on $:n merkitys?

Komento $? antaa viimeisen suoritetun komennon poistumistilan.


37) Kuinka poistamme kaikki tyhjät rivit tiedostosta?

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

missä (kenoviiva)011 on avaruuden ja oktaalivastine

(kenoviiva)040 on sarkaimen oktaalivastine


38) Kuinka lisään rivin "ABCDEF" joka 100th tiedoston rivi?

sed '100i\ABCDEF' file1


39) Kirjoita komentosarja löytääksesi kaikki tiedostot, joita on muokattu alle 2 päivässä, ja tulosta kunkin tietuemäärä.

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


40) Kuinka voin asettaa oletusarvoisen rwx-luvan kaikille käyttäjille jokaisessa nykyisessä kuoressa luodussa tiedostossa?

Voimme käyttää:

umask 777

Tämä asettaa oletusarvoisen rwx-oikeuden jokaiselle tiedostolle, joka luodaan jokaiselle käyttäjälle.


41) Kuinka löydämme prosessin nimen sen prosessitunnuksesta?

Voimme käyttää "ps –p ProcessId"


42) Mitkä ovat jokaisen Linuxin tiedostojärjestelmän neljä peruskomponenttia?

Bootblock, super block, inode block ja Datablock ovat jokaisen Linuxin tiedostojärjestelmän peruskomponentteja.


43) Mikä on käynnistyslohko?

Tämä lohko sisältää pienen ohjelman nimeltä "Master Boot record" (MBR), joka lataa ytimen järjestelmän käynnistyksen aikana.


44) Mikä on superlohko?

Super block sisältää kaikki tiedot tiedostojärjestelmästä, kuten tiedostojärjestelmän koon, sen vapaiden tietolohkojen lukumäärän käyttämän lohkokoon ja luettelon ilmaisista inodeista ja tietolohkoista.


45) Mikä on inodilohko?

Tämä lohko sisältää inodin jokaiselle tiedostojärjestelmän tiedostolle sekä kaikki tiedostoattribuutit paitsi sen nimi.


46) Kuinka voin lähettää sähköpostin, jonka liitteenä on pakattu tiedosto?

zip tiedosto1.zip tiedosto1|mailx –s “aihe” Vastaanottajan sähköpostitunnus

Sähköpostin sisältö

EOF


47) Kuinka luomme komentotulkkiin komentoaliaksia?

alias Aliasname=”Komento, jonka alias luodaan”.


48) Mitä ovat tiedoston "c" ja "b" lupakentät?

"c" ja "b" lupakentät liittyvät yleensä laitetiedostoon. Se määrittää, onko tiedosto erikoismerkkitiedosto vai lohko-erikoistiedosto.


49) Mitä hyötyä shebang-linjasta on?

Shebang-rivi kunkin skriptin yläosassa määrittää komentosarjan suorittamiseen käytettävän moottorin sijainnin.

Nämä haastattelukysymykset auttavat myös vivassasi (suullinen)