50 legfontosabb Shell Scripting interjúkérdések és amp; Válaszok

Anonim

PDF letöltése

1: Mi a héj?

A Shell egy interfész a felhasználó és a kernel között. Annak ellenére, hogy csak egy kern lehet; egy rendszernek sok héja futhat egyszerre. Tehát, amikor egy felhasználó megad egy parancsot a billentyűzeten keresztül, a shell kommunikál a kernellel annak végrehajtásához, majd megjeleníti a kimenetet a felhasználó számára.

2: Melyek a tipikusan használt héjak különböző típusai egy tipikus Linux rendszeren?

csh, ksh, bash, Bourne. A leggyakrabban használt és legfejlettebb shell a "Bash".

3: Mi az az egyenértékű fájlparancs, amelynek ablakunk van egy Linux rendszeren?

A parancsikonok a "linkek" segítségével jönnek létre a Linuxon. Kétféle link használható, nevezetesen a "soft link" és a "hard link".

4: Mi a különbség a soft és hard linkek között?

A soft linkek a fájlnévre mutatnak, és különböző fájlelemeken is megtalálhatók; A kemény hivatkozások azonban a fájl inode-jához kapcsolódnak, és ugyanazon fájlrendszeren kell lenniük, mint a fájlé. Az eredeti fájl törlése inaktívvá teszi a soft linket (hibás link), de a hard linket nem érinti (a hard link továbbra is hozzáfér a fájl másolatához)

5: Hogyan adhatja át és érheti el az argumentumokat egy szkriptnek Linux alatt?

Az érvek a következőképpen adhatók át:

scriptName "Arg1" "Arg2"

…. "Argn", és a szkript belsejében érhető el $ 1, $ 2 ... $ n néven

6. Mi a jelentősége a $ # -nak?

A $ # a szkriptnek továbbított argumentumok számát mutatja.

7: Mi a különbség $ * és $ @ között?

A $ @ minden idézett argumentumot külön argumentumként kezel, de a $ * a pozíciós paraméterek teljes készletét egyetlen karaktersorozatnak tekinti.

8: A sed paranccsal cserélje le a fájl tartalmát (tac parancs emulálása)

Például:

if cat filleABCDEFGH

Akkor O / p legyen

EFGHABCD

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

Itt a G parancs hozzáadódik a mintaterülethez,

h parancs mintapuffert másol a puffer megtartására

és d parancs törli az aktuális mintateret.

9: Adott egy fájl, cserélje ki az összes előfordulását szó „ABC” és a „DEF” 5 -én sor végéig csak azokat a sorokat, amely szó „MNO”

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

10: Adott egy fájlt írjon egy parancssorozatot, hogy megtalálja az egyes szavak számát.

tr -s "(backslash)040" 

A "(backslash) 011" a tabulátor karakterének és a nyolcas megfelelője

A "(backslash) 012" az új vonalas karakter oktális megfelelője.

11: Hogyan fogja találni a 99 th vonal egy fájlt csak a farok és a fej parancsot?

farok +99 fájl1 | fej -1

12: nyomtatása 10 th vonal használata nélkül farok és a fej parancsot.

sed -n '10p' file1

13: A bash shell-ben azt akarom, hogy a felszólításom '$ "Present working directory": "hostname"> formátumú legyen, és amint bejelentkezem, betöltsek egy fájlt, amely tartalmazza a felhasználó által definiált függvények listáját, hogyan fogja ezt automatizálni ?

A bash shellben létrehozhatunk egy ".profile" fájlt, amely automatikusan meghívásra kerül, amint bejelentkezem, és beírom a következő szintaxist.

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

Itt a File1 a felhasználó által definiált függvényeket és "" -t tartalmazó fájl. meghívja ezt a fájlt az aktuális shellben.

14: Megmagyarázza az "s" engedély bitet egy fájlban?

Az "s" bitet "set user id" (SUID) bitnek hívják.

A fájl "s" bitje miatt a folyamat a fájl tulajdonosának jogosultságokkal rendelkezik a program példánya alatt.

Például a "passwd" parancs végrehajtása az aktuális jelszó megváltoztatására készteti a felhasználót arra, hogy új jelszavát árnyékfájlba írja, annak ellenére, hogy a "root" a tulajdonosa.

15: Olyan könyvtárat szeretnék létrehozni, hogy bárki a csoportból létrehozhasson egy fájlt, és hozzáférhessen a benne lévő személyek fájljaihoz, de egyiknek sem szabadna törölnie a saját által létrehozott fájlt.

Létrehozhatjuk a könyvtárat, amely olvasási és futtatási hozzáférést biztosít a csoport minden tagjának, és a "t" ragacsos bitjét a következőképpen állíthatja be:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Hogyan lehet megtudni, hogy a rendszer mióta működik?

Megtalálhatjuk ezt az "uptime" paranccsal.

17: Hogyan tud minden felhasználó megismerni egy adott felhasználóval kapcsolatos összes információt, például az alapértelmezett shelljét, a valós nevét, az alapértelmezett könyvtárat, mikor és mennyi ideig használja a rendszert?

finger "loginName"

… Ahol a loginName a

az a felhasználó, akinek várható információi vannak.

18: Mi a különbség a $$ és a $ között !?

A $$ megadja a folyamatban lévő folyamat folyamatazonosítóját, míg a $! A nemrég háttérbe került folyamat folyamatazonosítóját mutatja.

19: Mik a zombi folyamatok?

Ezek azok a folyamatok, amelyek meghaltak, de amelyek kilépési állapotát még mindig nem választja meg a szülői folyamat. Ezeknek a folyamatoknak, még akkor is, ha nem működnek, a folyamatazonosítójuk megmarad a folyamattáblában.

20: Hogyan másol egy fájlt az egyik gépről a másikra?

Használhatunk olyan segédprogramokat, mint az "ftp", "scp" vagy "rsync", hogy fájlokat másolhassunk egyik gépről a másikra.

Pl. Az ftp használata:

FTP hosztnév

> fájl felhelyezése1

> viszlát

A másolatok felett fájlozza be az 1. fájlt a helyi rendszerből a célrendszerbe, amelynek gazdagépnevét megadja.

21: Egy folyamatosan frissülő naplófájlt akarok figyelni, milyen paranccsal lehet ezt a leghatékonyabban elérni?

Használhatjuk a tail -f fájlnevet. Ez csak az alapértelmezett utolsó 10 sort jeleníti meg a std o / p-n, amely folyamatosan mutatja a fájl frissítő részét.

22: Csatlakozni akarok egy távoli kiszolgálóhoz és végrehajtani néhány parancsot, hogyan érhetem el ezt?

Ehhez használhatjuk az ssh-t:

ssh felhasználónév @ serverIP -p sshport

Példa

ssh Ezt az e-mail címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát a megtekintéshez. -p 22

A fenti parancs végrehajtása után a rendszer megkéri a jelszó megadására

23: 2 fájlom van, és ki akarom nyomtatni a rekordokat, amelyek közösek mindkettőben.

A "comm" parancsot a következőképpen használhatjuk:

comm -12 file1 file2… 12 elnyomja a tartalmat

egyedi 1 -jén és 2 -án a fájl volt.

24: Írjon egy szkriptet a Fibonacci sorozat első 10 elemének kinyomtatásához.

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

25: Hogyan fog csatlakozni egy adatbázis-kiszolgálóhoz Linux alatt?

A nyílt kliens illesztőprogrammal kapott isql segédprogramot az alábbiak szerint használhatjuk:

isql -S kiszolgálóNév -U felhasználónév -P jelszó

26: Mi a 3 szabványos adatfolyam a Linuxban?

0 - Standard Input1 - Standard Output2 - Standard Error

27: Szeretném elolvasni a parancs összes bemenetét az 1. fájlból, az összes kimenetet a 2. fájlba, a hibákat a 3. fájlba.

parancs fájl2 2> fájl3

28: Mi lesz a jelenlegi folyamatommal, amikor végrehajtok egy parancsot az exec használatával?

Az "exec" átfedi az újonnan elágazó folyamatot az aktuális folyamatra; így amikor az exec segítségével hajtom végre a parancsot, a parancs az aktuális héjra kerül végrehajtásra anélkül, hogy új folyamatokat hozna létre.

Pl. Az "exec ls" végrehajtása a parancssorban végrehajtja az ls-t, és amint kilép, a folyamat leáll

29: Hogyan fogod utánozni a wc -l -t az awk használatával?

awk 'END {nyomtat NR} fájlnév'

30: Adott fájl esetén keresse meg az "ABC" szót tartalmazó sorok számát.

grep -c "ABC" fájl1

31: Mi a különbség a grep és az egrep között?

Az egrep kiterjesztett grep, amely támogatja a hozzáadott grep funkciókat, például a "+" (egy korábbi karakter 1 vagy több előfordulása), "?" (egy előző karakter 0 vagy 1 előfordulása) és a "|" (alternatív illesztés)

32: Hogyan nyomtatja ki az összes felhasználó bejelentkezési nevét egy rendszeren?

Az / etc / shadow fájl az összes felhasználót felsorolja.

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

33: Hogyan lehet tömböt beállítani Linux alatt?

Szintaxis ksh-ben:

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

34: Írja le a "for" ciklus szintaxisát

Szintaxis:

for iterator in (elements)doexecute commandsdone

35: Hogyan fogja megtalálni az adott felhasználó által használt teljes lemezterületet?

du -s / home / user1… ahol a user1 az a felhasználó, akinek a teljes lemezterületet meg kell találni.

36: Írja meg az "if" feltételekhez tartozó szintaxist Linux alatt?

Szintaxis

If condition is successfulthenexecute commandselseexecute commandsfi

37: Mi a $ jelentősége?

A $? megadja az utolsó végrehajtott parancs kilépési állapotát.

38: Hogyan törölhetjük az összes üres sort egy fájlban?

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

ahol (visszavonás) 011 a tér oktális megfelelője és

(visszavonás) A 040 a fül oktális megfelelője

39: Hogyan fogom beszúrni egy sort „ABCDEF” minden 100 th sort a fájl?

sed '100i \ ABCDEF' fájl1

40: Írjon egy parancssorozatot, hogy megtalálja az összes fájlt, amely kevesebb, mint 2 nap alatt módosult, és nyomtassa ki mindegyik rekordszámát.

megtalálja . -mtime -2 -exec wc -l {} \;

41: Hogyan állíthatom be az alapértelmezett rwx jogosultságot minden felhasználó számára minden fájlban, amely az aktuális héjban jön létre?

Tudjuk használni:

umask 777

Ez minden felhasználó számára létrehozott fájlhoz alapértelmezett rwx jogosultságot állít be.

42: Hogyan találhatjuk meg a folyamat nevét a folyamatazonosítóból?

Használhatjuk a "ps -p ProcessId" -t

43: Mi a Linux fájlrendszerének négy alapvető eleme?

A rendszerindító blokk, a szuper blokk, az inode blokk és a Datablock a Linux minden fájlrendszerének alapvető eleme.

44: Mi az a rendszerindító blokk?

Ez a blokk tartalmaz egy "Master Boot record" (MBR) nevű kis programot, amely a rendszer indításakor betölti a kernelt.

45: Mi az a szuper blokk?

A szuperblokk tartalmazza a fájlrendszerre vonatkozó összes információt, például a fájlrendszer méretét, a blokkméretet, amelyet az ingyenes adatblokkok száma használ, valamint az ingyenes inódok és adatblokkok listáját.

46: Mi az inode blokk?

Ez a blokk tartalmazza a fájlrendszer minden fájljának inode-ját, az összes fájlattribútummal együtt, kivéve a nevét.

47: Hogyan küldhetek mellékletként egy tömörített fájlt tartalmazó levelet?

zip file1.zip file1 | mailx -s "subject" Címzettek e-mail azonosítója

E-mail tartalma

EOF

48: Hogyan hozhatunk létre parancs álneveket egy shellben?

alias Aliasname = "Parancs, amelynek álnevét létre kell hozni".

49: Mi a fájl "c" és "b" engedély mezője?

A "c" és "b" engedélymezők általában egy eszközfájlhoz vannak társítva. Megadja, hogy egy fájl speciális karakterfájl vagy blokk speciális fájl.

50: Mi a haszna egy sejkang vonalnak?

Az egyes szkriptek tetején található Shebang sor meghatározza a motor helyét, amelyet a szkript futtatásához használni kell.