Top 50 Shell Scripting Interview Vragen & Antwoorden

Anonim

Download PDF

1: Wat is een schaal?

Shell is een interface tussen de gebruiker en de kernel. Ook al kan er maar één kernel zijn; een systeem kan meerdere shell tegelijk laten draaien. Dus wanneer een gebruiker een commando invoert via het toetsenbord, communiceert de shell met de kernel om het uit te voeren en geeft de uitvoer vervolgens aan de gebruiker weer.

2: Wat zijn de verschillende soorten veelgebruikte shells op een typisch Linux-systeem?

csh, ksh, bash, Bourne. De meest gebruikte en geavanceerde shell die tegenwoordig wordt gebruikt, is "Bash".

3: Wat is het equivalent van een bestandssnelkoppeling dat we een venster hebben op een Linux-systeem?

Snelkoppelingen worden gemaakt met behulp van "links" op Linux. Er zijn twee soorten links die kunnen worden gebruikt, namelijk "zachte link" en "harde link".

4: Wat is het verschil tussen zachte en harde links?

Softlinks zijn een link naar de bestandsnaam en kunnen ook op verschillende bestandssoorten staan; harde koppelingen zijn echter een link naar de inode van het bestand en moeten op hetzelfde bestandssysteem staan ​​als dat van het bestand. Het verwijderen van het originele bestand maakt de zachte link inactief (verbroken link) maar heeft geen invloed op de harde link (harde link heeft nog steeds toegang tot een kopie van het bestand)

5: Hoe ga je argumenten doorgeven aan en toegang krijgen tot een script in Linux?

Argumenten kunnen worden doorgegeven als:

scriptnaam "Arg1" "Arg2"

…. "Argn" en kan binnen het script worden benaderd als $ 1, $ 2… $ n

6: Wat is de betekenis van $ #?

$ # toont het aantal argumenten dat aan het script is doorgegeven.

7: Wat is het verschil tussen $ * en $ @?

$ @ behandelt elk geciteerde argumenten als afzonderlijke argumenten, maar $ * beschouwt de volledige set positionele parameters als een enkele string.

8: Gebruik sed commando om de inhoud van het bestand te vervangen (emuleer tac commando)

Bijv .:

if cat filleABCDEFGH

Dan zou O / p moeten zijn

EFGHABCD

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

Hier wordt het G-commando toegevoegd aan de patroonruimte,

h commando kopieert patroonbuffer om buffer vast te houden

en d commando verwijdert de huidige patroonruimte.

9: Gegeven een bestand, vervang alle optreden van woord "ABC" met "DEF" van 5 th lijn tot eind in alleen die lijnen die woord bevat "MNO"

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

10: Gegeven een bestand, schrijf een opdrachtreeks om het aantal woorden te vinden.

tr -s "(backslash)040" 

"(backslash) 011" is een octaal equivalent van "tab-teken" en

"(backslash) 012" is een octaal equivalent van het newline-teken.

11: Hoe vind je de 99 ste regel van een bestand met alleen het tail en head commando?

tail +99 file1 | head -1

12: Druk de 10 e lijn zonder gebruik te maken staart en kop commando.

sed -n '10p' file1

13: In mijn bash-shell wil ik dat mijn prompt de indeling '$ "Present working directory": "hostnaam"> heeft en een bestand laadt met een lijst met door de gebruiker gedefinieerde functies zodra ik inlog, hoe ga je dit automatiseren? ?

In de bash-shell kunnen we een ".profile" -bestand maken dat automatisch wordt opgeroepen zodra ik me aanmeld en de volgende syntaxis erin schrijf.

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

Hier is File1 het bestand met de door de gebruiker gedefinieerde functies en "." roept dit bestand op in de huidige shell.

14: Uitleg over de toestemmingsbit "s" in een bestand?

"s" bit heet "set user id" (SUID) bit.

"s" bit in een bestand zorgt ervoor dat het proces de privileges heeft van de eigenaar van het bestand tijdens de instance van het programma.

Als u bijvoorbeeld de opdracht "passwd" uitvoert om het huidige wachtwoord te wijzigen, schrijft de gebruiker zijn nieuwe wachtwoord naar het schaduwbestand, ook al heeft het "root" als eigenaar.

15: Ik wil een map maken zodat iedereen in de groep een bestand kan maken en toegang kan krijgen tot het bestand van een persoon erin, maar niemand zou in staat moeten zijn om een ​​ander bestand te verwijderen dan degene die hij zelf heeft gemaakt.

We kunnen de map maken die lees- en uitvoertoegang geeft aan iedereen in de groep en de sticky bit "t" als volgt instellen:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Hoe kom je erachter hoe lang het systeem draait?

We kunnen dit vinden door het commando "uptime" te gebruiken.

17: Hoe kan een gebruiker alle informatie over een specifieke gebruiker te weten komen, zoals zijn standaardshell, echte naam, standaarddirectory, wanneer en hoe lang hij het systeem al gebruikt?

vinger "loginName"

… Waarbij loginName de inlognaam is van het

gebruiker wiens informatie wordt verwacht.

18: Wat is het verschil tussen $$ en $ !?

$$ geeft de proces-id van het momenteel uitgevoerde proces terwijl $! Toont de proces-id van het proces dat onlangs naar de achtergrond is gegaan.

19: Wat zijn zombieprocessen?

Dit zijn de processen die zijn gestorven, maar waarvan de exitstatus nog steeds niet wordt gekozen door het ouderproces. Deze processen, zelfs als ze niet functioneel zijn, hebben nog steeds hun proces-ID-invoer in de procestabel.

20: Hoe kopieer je een bestand van de ene machine naar de andere?

We kunnen hulpprogramma's zoals "ftp", "scp" of "rsync" gebruiken om een ​​bestand van de ene machine naar de andere te kopiëren.

Bijv. Ftp gebruiken:

FTP-hostnaam

> zet bestand1

> tot ziens

Hierboven wordt bestand file1 van het lokale systeem naar het doelsysteem gekopieerd waarvan de hostnaam is opgegeven.

21: Ik wil een logboekbestand dat voortdurend wordt bijgewerkt controleren, welk commando kan worden gebruikt om dit het meest efficiënt te bereiken?

We kunnen de bestandsnaam tail -f gebruiken. Dit zorgt ervoor dat alleen de standaard laatste 10 regels worden weergegeven op std o / p, die continu het updategedeelte van het bestand laat zien.

22: Ik wil verbinding maken met een externe server en enkele opdrachten uitvoeren, hoe kan ik dit bereiken?

We kunnen ssh gebruiken om dit te doen:

ssh gebruikersnaam @ serverIP -p sshport

Voorbeeld

ssh Dit e-mailadres wordt beveiligd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken. -p 22

Zodra bovenstaande opdracht is uitgevoerd, wordt u gevraagd het wachtwoord in te voeren

23: Ik heb 2 bestanden en ik wil de records afdrukken die voor beide gemeenschappelijk zijn.

We kunnen de opdracht "comm" als volgt gebruiken:

comm -12 file1 file2… 12 zal de inhoud onderdrukken die

uniek voor respectievelijk 1 e en 2 e bestand.

24: Schrijf een script om de eerste 10 elementen van de Fibonacci-reeks af te drukken.

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

25: Hoe maakt u verbinding met een databaseserver vanuit Linux?

We kunnen het isql-hulpprogramma gebruiken dat wordt geleverd met het open clientstuurprogramma als volgt:

isql -S servernaam -U gebruikersnaam -P wachtwoord

26: Wat zijn de 3 standaard streams in Linux?

0 - Standaardinvoer1 - Standaarduitvoer2 - Standaardfout

27: Ik wil alle invoer van het commando van file1 lezen, alle output naar file2 sturen en fout naar file 3, hoe kan ik dit bereiken?

commando file2 2> file3

28: Wat gebeurt er met mijn huidige proces als ik een commando uitvoer met exec?

"exec" legt het nieuwe gevorkte proces over het huidige proces; dus wanneer ik de opdracht uitvoer met exec, wordt de opdracht uitgevoerd op de huidige shell zonder nieuwe processen te maken.

Als u bijvoorbeeld "exec ls" uitvoert op de opdrachtprompt, wordt ls uitgevoerd en zodra ls wordt afgesloten, wordt het proces afgesloten

29: Hoe ga je wc -l emuleren met awk?

awk 'END {print NR} bestandsnaam'

30: Gegeven een bestand, zoek het aantal regels met het woord "ABC".

grep -c "ABC" -bestand1

31: Wat is het verschil tussen grep en egrep?

egrep is een uitgebreide grep die toegevoegde grep-functies ondersteunt zoals "+" (1 of meer keer voorkomen van een vorig teken), "?" (0 of 1 keer voorkomen van een vorig teken) en "|" (alternatieve matching)

32: Hoe gaat u de inlognamen van alle gebruikers op een systeem afdrukken?

In / etc / shadow-bestand staan ​​alle gebruikers vermeld.

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

33: Hoe stel ik een array in onder Linux?

Syntaxis in ksh:

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

34: Schrijf de syntaxis van de "for" -lus op

Syntaxis:

for iterator in (elements)doexecute commandsdone

35: Hoe vindt u de totale schijfruimte die door een specifieke gebruiker wordt gebruikt?

du -s / home / user1… .waar user1 de gebruiker is voor wie de totale schijfruimte moet worden gevonden.

36: Schrijf de syntaxis voor "if" conditionals in Linux?

Syntaxis

If condition is successfulthenexecute commandselseexecute commandsfi

37: Wat is de betekenis van $?

Het commando $? geeft de exit-status van het laatste commando dat werd uitgevoerd.

38: Hoe verwijderen we alle lege regels in een bestand?

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

waarbij (backslash) 011 een octaal equivalent is van spatie en

(backslash) 040 is een octaal equivalent van de tab

39: Hoe voeg ik een regel "ABCDEF" in op elke 100ste regel van een bestand?

sed '100i \ ABCDEF'-bestand1

40: Schrijf een opdrachtenreeks om alle bestanden te vinden die in minder dan 2 dagen zijn gewijzigd en druk het aantal records van elk af.

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

41: Hoe kan ik de standaard rwx-toestemming instellen voor alle gebruikers voor elk bestand dat in de huidige shell wordt gemaakt?

We kunnen gebruiken:

umask 777

Dit zal de standaard rwx-toestemming instellen voor elk bestand dat voor elke gebruiker wordt gemaakt.

42: Hoe kunnen we de procesnaam vinden aan de hand van de proces-ID?

We kunnen "ps -p ProcessId" gebruiken

43: Wat zijn de vier fundamentele componenten van elk bestandssysteem op Linux?

Bootblock, super block, inode block en Datablock zijn fundamentele componenten van elk bestandssysteem op Linux.

44: Wat is een opstartblok?

Dit blok bevat een klein programma genaamd "Master Boot Record" (MBR) dat de kernel laadt tijdens het opstarten van het systeem.

45: Wat is een superblok?

Superblok bevat alle informatie over het bestandssysteem, zoals de grootte van het bestandssysteem, de blokgrootte die wordt gebruikt door het aantal vrije datablokken en een lijst met vrije inodes en datablokken.

46: Wat is een inodeblok?

Dit blok bevat de inode voor elk bestand van het bestandssysteem samen met alle bestandskenmerken behalve de naam.

47: Hoe kan ik een e-mail verzenden met een gecomprimeerd bestand als bijlage?

zip bestand1.zip bestand1 | mailx -s "onderwerp" E-mail-ID van de ontvanger

E-mail inhoud

EOF

48: Hoe maken we commando-aliassen in een shell?

alias Aliasname = "Commando waarvan de alias moet worden aangemaakt".

49: Wat zijn "c" en "b" toestemmingsvelden van een bestand?

De toestemmingsvelden "c" en "b" worden doorgaans geassocieerd met een apparaatbestand. Het specificeert of een bestand een speciaal tekenbestand is of een speciaal blokbestand.

50: Wat is het nut van een shebang-lijn?

De Shebang-regel bovenaan elk script bepaalt de locatie van de engine die moet worden gebruikt om het script uit te voeren.