Top 50 spørgsmål om Shell Scripting Interview & Svar

Anonim

Download PDF

1: Hvad er en skal?

Shell er en grænseflade mellem brugeren og kernen. Selvom der kun kan være en kerne; et system kan have mange skal køre samtidigt. Så når en bruger indtaster en kommando via tastaturet, kommunikerer skallen med kernen for at udføre den og derefter vise output til brugeren.

2: Hvad er de forskellige typer almindeligt anvendte skaller på et typisk Linux-system?

csh, ksh, bash, Bourne. Den mest anvendte og avancerede skal, der bruges i dag, er "Bash".

3: Hvad svarer til en filgenvej, som vi har et vindue på et Linux-system?

Genveje oprettes ved hjælp af "links" på Linux. Der er to typer links, der kan bruges, nemlig "soft link" og "hard link".

4: Hvad er forskellen mellem bløde og hårde links?

Softlinks er link til filnavnet og kan også findes på forskellige filtyper; dog er hårde links linket til filens inode og skal være på samme filtema som filens. Sletning af den originale fil gør softlinket inaktivt (brudt link), men påvirker ikke hardlinket (Hardlink får stadig adgang til en kopi af filen)

5: Hvordan vil du videregive og få adgang til argumenter til et script i Linux?

Argumenter kan sendes som:

scriptName "Arg1" "Arg2"

.... "Argn" og kan tilgås inde i scriptet som $ 1, $ 2 ... $ n

6: Hvad er betydningen af ​​$ #?

$ # viser antallet af argumenter, der er sendt til scriptet.

7: Hvad er forskellen mellem $ * og $ @?

$ @ behandler hvert citeret argument som separate argumenter, men $ * betragter hele sættet med positionsparametre som en enkelt streng.

8: Brug kommandoen sed til at erstatte indholdet af filen (emuler tac-kommandoen)

For eksempel:

if cat filleABCDEFGH

Så skal O / p være

EFGHABCD

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

Her føjes G-kommandoen til mønsterområdet,

h kommando kopierer mønsterbuffer for at holde buffer

og d-kommando sletter det aktuelle mønsterrum.

9: Givet en fil, erstatte alle forekomst af ordet "ABC" med "DEF" fra 5 th linje indtil slutningen på kun de linjer, der indeholder ordet "MNO"

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

10: Givet en fil, skriv en kommandosekvens for at finde antallet af hvert ord.

tr -s "(backslash)040" 

"(omvendt skråstreg) 011" er et oktalt ækvivalent med "tabulatortegn" og

"(backslash) 012" er en oktal ækvivalent med den nye linjetegn.

11: Hvordan finder du 99 th linje i en fil ved hjælp af kun hale og hoved kommando?

hale +99 fil1 | hoved -1

12: Udskriv 10 th linje uden hale og hoved kommando bruger.

sed -n '10p' file1

13: I min bash shell vil jeg have min prompt til at have formatet '$ "Present working directory": "hostname"> og indlæse en fil indeholdende en liste over brugerdefinerede funktioner, så snart jeg logger ind, hvordan vil du automatisere dette ?

I bash shell kan vi oprette ".profile" -fil, der automatisk påberåbes, så snart jeg logger ind og skriver følgende syntaks i den.

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

Her er File1 den fil, der indeholder de brugerdefinerede funktioner og "." påberåber denne fil i den aktuelle skal.

14: Forklar om "s" tilladelsesbit i en fil?

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

"s" -bit på en fil får processen til at have rettighederne til filens ejer under programforekomsten.

Eksempelvis udfører udførelsen af ​​"passwd" -kommandoen for at ændre den aktuelle adgangskode, at brugeren skriver sin nye adgangskode til skyggefil, selvom den har "root" som ejer.

15: Jeg vil oprette en mappe, så alle i gruppen kan oprette en fil og få adgang til en persons fil i den, men ingen skal være i stand til at slette en anden fil end den, han selv har oprettet.

Vi kan oprette biblioteket, der giver læsning og udførelse af adgang til alle i gruppen og indstiller dens klæbende bit "t" som følger:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Hvordan kan du finde ud af, hvor længe systemet har kørt?

Vi kan finde dette ved at bruge kommandoen "oppetid".

17: Hvordan kan enhver bruger finde ud af alle oplysninger om en bestemt bruger som hans standardskal, virkelige navn, standardkatalog, hvornår og hvor længe han har brugt systemet?

finger "loginnavn"

… Hvor loginName er login-navnet på

bruger, hvis information forventes.

18: Hvad er forskellen mellem $$ og $ !?

$$ giver proces-id for den aktuelt udførte proces, hvorimod $! Viser proces-id for den proces, der for nylig gik i baggrunden.

19: Hvad er zombieprocesser?

Dette er de processer, der er døde, men hvis exitstatus stadig ikke vælges af den overordnede proces. Disse processer, selvom de ikke er funktionelle, har stadig sin proces-id-indtastning i procestabel.

20: Hvordan kopierer du en fil fra en maskine til en anden?

Vi kan bruge hjælpeprogrammer som "ftp", "scp" eller "rsync" til at kopiere en fil fra en maskine til en anden.

Brug f.eks. Ftp:

FTP-værtsnavn

> sæt fil1

> farvel

Ovenfor kopier filfil 1 fra det lokale system til destinationssystem, hvis værtsnavn er angivet.

21: Jeg vil overvåge en løbende opdatering af logfil, hvilken kommando kan bruges til at opnå det mest effektivt?

Vi kan bruge tail -f filnavn. Dette får kun standard 10 sidste linjer til at blive vist på std o / p, som kontinuerligt viser opdateringsdelen af ​​filen.

22: Jeg vil oprette forbindelse til en ekstern server og udføre nogle kommandoer, hvordan kan jeg opnå dette?

Vi kan bruge ssh til at gøre dette:

ssh brugernavn @ serverIP -p sshport

Eksempel

ssh Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den. -p 22

Når ovenstående kommando er udført, bliver du bedt om at indtaste adgangskoden

23: Jeg har 2 filer, og jeg vil udskrive de poster, der er fælles for begge.

Vi kan bruge kommandoen "comm" som følger:

comm -12 file1 file2… 12 undertrykker det indhold, der er

unikt for en st og 2 nd fil hhv.

24: Skriv et script for at udskrive de første 10 elementer i Fibonacci-serien.

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

25: Hvordan opretter du forbindelse til en databaseserver fra Linux?

Vi kan bruge isql-værktøjet, der følger med en åben klientdriver som følger:

isql -S servernavn -U brugernavn -P adgangskode

26: Hvad er de 3 standardstrømme i Linux?

0 - Standardindgang1 - Standardudgang2 - Standardfejl

27: Jeg vil læse alt input til kommandoen fra file1 dirigere alt output til file2 og fejl til fil 3, hvordan kan jeg opnå dette?

kommando fil2 2> fil3

28: Hvad sker der med min nuværende proces, når jeg udfører en kommando ved hjælp af exec?

"exec" overlapper den nyforedlede proces på den aktuelle proces; så når jeg udfører kommandoen ved hjælp af exec, bliver kommandoen udført på den aktuelle shell uden at oprette nye processer.

Eks. At udføre "exec ls" på kommandoprompten vil udføre ls og når ls afslutter, lukkes processen

29: Hvordan vil du efterligne wc -l ved hjælp af awk?

awk 'END {print NR} fileName'

30: Givet en fil, find antallet af linjer, der indeholder ordet "ABC".

grep -c "ABC" fil1

31: Hvad er forskellen mellem grep og egrep?

egrep er udvidet grep, der understøtter tilføjede grep-funktioner som "+" (1 eller mere forekomst af et tidligere tegn), "?" (0 eller 1 forekomst af et tidligere tegn) og "|" (alternativ matchning)

32: Hvordan vil du udskrive login-navnene på alle brugere på et system?

/ etc / shadow-fil har alle de anførte brugere.

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

33: Hvordan indstilles et array i Linux?

Syntaks i ksh:

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

34: Skriv syntaksen for "for" -sløjfen ned

Syntaks:

for iterator in (elements)doexecute commandsdone

35: Hvordan finder du den samlede diskplads, der bruges af en bestemt bruger?

du -s / home / user1…. hvor user1 er den bruger, for hvem det samlede diskplads skal findes.

36: Skriv syntaksen for "if" -betingelser i Linux?

Syntaks

If condition is successfulthenexecute commandselseexecute commandsfi

37: Hvad er betydningen af ​​$?

Kommandoen $? giver exit status for den sidste kommando, der blev udført.

38: Hvordan sletter vi alle tomme linjer i en fil?

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

hvor (tilbageslag) 011 er en oktal ækvivalent med plads og

(tilbageslag) 040 er et oktalt ækvivalent med fanen

39: Hvordan vil jeg indsætte en linje "ABCDEF" på hver 100 th linje i en fil?

sed '100i \ ABCDEF' fil1

40: Skriv en kommandosekvens for at finde alle de filer, der er ændret på mindre end 2 dage, og udskriv optællingen af ​​hver.

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

41: Hvordan kan jeg indstille standard-rwx-tilladelsen til alle brugere på hver fil, der oprettes i den aktuelle shell?

Vi kan bruge:

umask 777

Dette indstiller standard rwx-tilladelse for hver fil, der oprettes til hver bruger.

42: Hvordan kan vi finde procesnavnet fra dets proces-id?

Vi kan bruge "ps -p ProcessId"

43: Hvad er de fire grundlæggende komponenter i hvert filsystem på Linux?

Bootblock, super block, inode block og Datablock findes grundlæggende komponenter i ethvert filsystem på Linux.

44: Hvad er en opstartsblok?

Denne blok indeholder et lille program kaldet "Master Boot record" (MBR), som indlæser kernen under systemstart.

45: Hvad er en superblok?

Superblok indeholder alle oplysninger om filsystemet som f.eks. Filsystemets størrelse, blokstørrelse brugt af antallet af gratis datablokke og en liste over gratis inoder og datablokke.

46: Hvad er en inode-blok?

Denne blok indeholder inoden for hver fil i filsystemet sammen med alle filattributter undtagen dens navn.

47: Hvordan kan jeg sende en mail med en komprimeret fil som en vedhæftet fil?

zip file1.zip file1 | mailx -s "emne" Modtagerens e-mail-id

E-mail-indhold

EOF

48: Hvordan opretter vi kommandealiaser i en shell?

alias Aliasname = "Kommando, hvis alias skal oprettes".

49: Hvad er "c" og "b" tilladelsesfelter i en fil?

Tilladelsesfelterne "c" og "b" er generelt knyttet til en enhedsfil. Det specificerer, om en fil er en speciel tegnfil eller en blokspecialfil.

50: Hvad er brugen af ​​en shebang-linje?

Shebang-linjen øverst i hvert script bestemmer placeringen af ​​motoren, der skal bruges til at udføre scriptet.