50 geriausių „Shell Scripting“ interviu klausimų ir Atsakymai

Turinys

Atsisiųsti PDF

1: Kas yra apvalkalas?

„Shell“ yra vartotojo ir branduolio sąsaja. Nors branduolys gali būti tik vienas; sistema gali turėti daug apvalkalų, veikiančių vienu metu. Taigi, kai tik vartotojas įveda komandą naudodamas klaviatūrą, apvalkalas bendrauja su branduoliu, kad jį įvykdytų, o tada parodys išvestį vartotojui.

2: Kokie yra įprasto „Linux“ sistemos dažniausiai naudojamų kriauklių tipai?

csh, ksh, bash, Bourne'as. Šiandien dažniausiai naudojamas ir pažangiausias apvalkalas yra „Bash“.

3: koks yra failų nuorodų, kurias turime langą „Linux“ sistemoje, atitikmuo?

Spartieji klavišai kuriami naudojant „Linux“ nuorodas. Galima naudoti dviejų tipų nuorodas, ty „minkštoji nuoroda“ ir „kietoji nuoroda“.

4: Kuo skiriasi „soft“ ir „hard“ nuorodos?

Programinės nuorodos yra nuoroda į failo pavadinimą ir gali būti skirtingose ​​failų programose; tačiau kietosios nuorodos yra nuorodos į failo inodą ir turi būti tame pačiame failų modelyje kaip ir failo failai. Ištrynus originalų failą, minkštoji nuoroda tampa neaktyvi (sugadinta nuoroda), bet neturi įtakos kietajai nuorodai (kietoji nuoroda vis tiek pasieks failo kopiją)

5: Kaip perduosite argumentus ir pasieksite scenarijus sistemoje „Linux“?

Argumentus galima perduoti taip:

scenarijaus pavadinimas "Arg1" "Arg2"

…. „Argn“ ir scenarijuje galima pasiekti kaip $ 1, $ 2 ... $ n

6: Kokia yra $ # reikšmė?

$ # rodo scenarijui perduotų argumentų skaičių.

7: Koks skirtumas tarp $ * ir $ @?

$ @ kiekvieną nurodytą argumentą laiko atskirais argumentais, tačiau $ * visą pozicinių parametrų rinkinį laikys viena eilute.

8: naudokite komandą „Sed“, kad pakeistumėte failo turinį (imituokite „tac“ komandą)

Pvz .:

if cat filleABCDEFGH

Tada O / p turėtų būti

EFGHABCD

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

Čia G komanda pridedama prie šablono erdvės,

h komanda nukopijuoja šablono buferį, kad būtų laikomas buferis

ir d komanda ištrina dabartinę šablono erdvę.

9: Pateikus failą, pakeiskite visus žodžio „ABC“ atvejus „DEF“ nuo 5 -osios eilutės iki pabaigos tik tose eilutėse, kuriose yra žodis „MNO“

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

10: Pateikus failą, parašykite komandų seką, kad surastumėte kiekvieno žodžio skaičių.

tr -s "(backslash)040" 

"(atgalinis pasvirasis brūkšnys) 011" yra aštuntainis "skirtuko simbolio" ir

„(atgalinis pasvirasis brūkšnys) 012“ yra aštuonkojis naujos eilutės simbolio atitikmuo.

11: Kaip rasite 99 -ąją failo eilutę naudodami komandą tik uodega ir galva?

uodega +99 failas1 | galva -1

12: Atspausdinkite 10 -ąją eilutę nenaudodami uodegos ir galvos komandos.

sed -n '10p' file1

13: Aš noriu, kad mano „bash“ apvalkalas būtų „$" Present working directory ": hostname "> formato ir, kai tik prisijungsiu, įkeliu failą su vartotojo nustatytų funkcijų sąrašu, kaip jūs tai automatizuosite ?

„Bash shell“ galime sukurti „.profile“ failą, kuris automatiškai bus iškviečiamas, kai tik prisijungsiu ir parašysiu šią sintaksę.

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

Čia File1 yra failas, kuriame yra vartotojo nustatytos funkcijos ir "." iškviečia šį failą dabartiniame apvalkale.

14: Paaiškinkite apie „s“ leidimo bitą faile?

„s“ bitai vadinami „set user id“ (SUID) bitais.

Failo „s“ bitas suteikia procesui programos failo savininko privilegijas.

Pavyzdžiui, vykdant komandą „passwd“ pakeisti dabartinį slaptažodį, vartotojas rašo naują slaptažodį šešėliniame faile, net jei jo savininkas yra „root“.

15: Aš noriu sukurti katalogą, kad kiekvienas grupės narys galėtų sukurti failą ir pasiekti jame esančio asmens failą, tačiau nė vienas neturėtų galėti ištrinti kito failo, išskyrus jo paties sukurtą.

Mes galime sukurti katalogą, suteikiantį skaitymo ir vykdymo prieigą visiems grupės nariams ir nustatant jo lipnųjį bitą „t“ taip:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Kaip sužinoti, kiek laiko veikia sistema?

Tai galime rasti naudodami komandą „uptime“.

17: Kaip bet kuris vartotojas gali sužinoti visą informaciją apie konkretų vartotoją, pvz., Jo numatytąjį apvalkalą, realaus gyvenimo vardą, numatytąjį katalogą, kada ir kiek laiko jis naudojasi sistema?

pirštas „loginName“

… Kur loginName yra prisijungimo vardas

vartotojas, kurio informacijos tikimasi.

18: Koks skirtumas tarp $$ ir $ !?

$$ pateikia šiuo metu vykdomo proceso ID, o $! Parodo proceso, kuris neseniai pateko į antrą planą, proceso ID.

19: Kas yra zombių procesai?

Tai yra procesai, kurie mirė, bet kurių išėjimo būsenos vis dar nepasirenka pirminis procesas. Šie procesai, net jei neveikia, vis tiek turi proceso ID įrašą procesų lentelėje.

20: Kaip nukopijuosite failą iš vienos mašinos į kitą?

Norėdami kopijuoti failą iš vienos mašinos į kitą, galime naudoti tokias paslaugas kaip „ftp“, „scp“ ar „rsync“.

Pvz., Naudojant ftp:

FTP pagrindinio kompiuterio vardas

> įdėti failą

> iki pasimatymo

Virš kopijų, failas failas1 iš vietinės sistemos į paskirties sistemą, kurios pagrindinio kompiuterio vardas nurodytas.

21: Noriu stebėti nuolat atnaujinamą žurnalo failą. Kokia komanda gali būti naudojama efektyviausiai šiam tikslui pasiekti?

Galime naudoti tail -f failo pavadinimą. Tai reikš, kad standartinės paskutinės 10 eilučių bus rodomos „std o / p“, kuri nuolat rodo atnaujinamą failo dalį.

22: Noriu prisijungti prie nuotolinio serverio ir vykdyti kai kurias komandas, kaip tai pasiekti?

Norėdami tai padaryti, galime naudoti ssh:

vartotojo vardas @ serverIP -p sshport

Pavyzdys

ssh Šis el. pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. -p 22

Vykdžius aukščiau nurodytą komandą, jūsų bus paprašyta įvesti slaptažodį

23: Aš turiu 2 failus ir noriu atspausdinti abiems bendrus įrašus.

Komandą „comm“ galime naudoti taip:

comm -12 file1 file2 ... 12 užgniaužia turinį, kuris yra

unikalus atitinkamai 1 -ajam ir 2 -ajam failui.

24: Parašykite scenarijų, kad išspausdintumėte pirmuosius 10 „Fibonacci“ serijos elementų.

#!/bin/sha=1b=1echo $aecho $bfor I in 1 2 3 4 5 6 7 8doc=ab=$ab=$(($a+$c))echo $bdone

25: Kaip prisijungsite prie duomenų bazės serverio iš „Linux“?

Mes galime naudoti „isql“ įrankį, pateiktą su atviro kliento tvarkykle, taip:

isql -S serverName -U vartotojo vardas -P slaptažodis

26: Kokie yra 3 standartiniai „Linux“ srautai?

0 - standartinė įvestis1 - standartinė išvestis2 - standartinė klaida

27: Aš noriu perskaityti visus komandos įvestis iš failo1 nukreipti visą išvestį į failą2 ir klaidą į failą 3, kaip tai pasiekti?

komanda failas2 2> failas3

28: Kas nutiks mano dabartiniam procesui, kai vykdysiu komandą naudodamas „exec“?

"exec" uždengia naujai įtvirtintą procesą dabartiniame procese; Taigi, kai vykdau komandą naudodamas „exec“, komanda vykdoma dabartiniame apvalkale nesukuriant jokių naujų procesų.

Pvz., „Exec ls“ vykdymas komandų eilutėje vykdys ls, o kai ls išeis, procesas bus išjungtas

29: Kaip imituosite wc -l naudodami awk?

awk 'END {print NR} fileName'

30: Pateikus failą suraskite eilučių, kuriose yra žodis „ABC“, skaičių.

grep -c „ABC“ failas1

31: Kuo skiriasi „grep“ ir „egrep“?

egrep yra išplėstinis grep, palaikantis papildomas grep funkcijas, tokias kaip „+“ (1 ar daugiau ankstesnio simbolio), „?“ (0 arba 1 ankstesnio simbolio atvejis) ir „|" (pakaitinis atitikimas)

32: Kaip atspausdinsite visų vartotojų prisijungimo vardus sistemoje?

/ etc / shadow faile yra visi vartotojai.

awk -F ':' '{print $1}' /etc/shadow|uniq -u

33: Kaip nustatyti masyvą „Linux“?

Sintaksė ksh:

Set -A arrayname= (element1 element2… element)In bashA=(element1 element2 element3… . elementn)

34: Užrašykite kilpos „už“ sintaksę

Sintaksė:

for iterator in (elements)doexecute commandsdone

35: Kaip rasite bendrą konkretaus vartotojo naudojamą disko vietą?

du -s / home / user1…. kur user1 yra tas vartotojas, kuriam reikia rasti visą disko vietą.

36: Parašykite „if“ sąlyginių „Linux“ sintaksę?

Sintaksė

If condition is successfulthenexecute commandselseexecute commandsfi

37: Kokia yra $ reikšmė?

Komanda $? pateikia paskutinės įvykdytos komandos išėjimo būseną.

38: Kaip ištrinti visas tuščias failo eilutes?

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

kur (atgalinis pasvirasis brūkšnys) 011 yra aštuntasis kosmoso atitikmuo ir

(atgalinis pasvirasis brūkšnys) 040 yra aštuntasis skirtuko atitikmuo

39: Kaip aš įterpiu „ABCDEF“ eilutę kas 100 -oje failo eilutėje?

susieti „100i \ ABCDEF“ failą

40: Parašykite komandų seką, kad surastumėte visus failus, modifikuotus per mažiau nei 2 dienas, ir atspausdinkite kiekvieno įrašų skaičių.

rasti. -mtime -2 -exec wc -l {} \;

41: Kaip galiu nustatyti numatytąjį „rwx“ leidimą visiems vartotojams kiekviename faile, kuris sukurtas dabartiniame apvalkale?

Mes galime naudoti:

umask 777

Tai nustatys numatytąjį „rwx“ leidimą kiekvienam failui, kuris sukurtas kiekvienam vartotojui.

42: Kaip mes galime rasti proceso pavadinimą iš jo proceso ID?

Galime naudoti „ps -p ProcessId“

43: Kokie yra keturi pagrindiniai kiekvienos „Linux“ failų sistemos komponentai?

Bootblock, super block, inode block ir Datablock yra pagrindiniai kiekvienos „Linux“ failų sistemos komponentai.

44: Kas yra įkrovos blokas?

Šiame bloke yra nedidelė programa, vadinama „Pagrindinis įkrovos įrašas“ (MBR), kuri įkelia branduolį sistemos paleidimo metu.

45: Kas yra super blokas?

„Super“ bloke yra visa informacija apie failų sistemą, pvz., Failų sistemos dydis, bloko dydis, kurį naudoja nemokamų duomenų blokų skaičius, ir nemokamų inodų ir duomenų blokų sąrašas.

46: Kas yra inodo blokas?

Šiame bloke yra kiekvieno failų sistemos failo inodas kartu su visais failo atributais, išskyrus jo pavadinimą.

47: Kaip aš galiu siųsti laišką su suglaudintu failu kaip priedą?

zip file1.zip file1 | mailx -s "tema" Gavėjų el. pašto adresas

El. Pašto turinys

EOF

48: Kaip mes sukuriame komandų slapyvardžius apvalkale?

alias Aliasname = "Komanda, kurios slapyvardis turi būti sukurtas".

49: Kas yra „c“ ir „b“ failo leidimo laukai?

„c“ ir „b“ leidimų laukai paprastai susiejami su įrenginio failu. Jame nurodoma, ar failas yra specialiųjų simbolių failas, ar bloko specialus failas.

50: Kuo naudota šebango linija?

Kiekvieno scenarijaus viršuje esanti „Shebang“ eilutė nustato variklio, kuris bus naudojamas scenarijui vykdyti, vietą.

Įdomios straipsniai...