Top 50 Întrebări pentru interviuri cu scripturi Shell & Răspunsuri

Anonim

Descărcați PDF

1: Ce este un obuz?

Shell este o interfață între utilizator și nucleu. Chiar dacă nu poate exista decât un singur nucleu; un sistem poate avea multe shell care rulează simultan. Deci, ori de câte ori un utilizator introduce o comandă prin tastatură, shell-ul comunică cu nucleul pentru al executa și apoi afișează ieșirea către utilizator.

2: Care sunt diferitele tipuri de shell-uri utilizate în mod obișnuit pe un sistem tipic Linux?

csh, ksh, bash, Bourne. Cel mai frecvent utilizat și avansat shell folosit astăzi este „Bash”.

3: Care este echivalentul unei scurtături de fișier pe care o avem o fereastră pe un sistem Linux?

Comenzile rapide sunt create folosind „link-uri” pe Linux. Există două tipuri de linkuri care pot fi utilizate și anume „soft link” și „hard link”.

4: Care este diferența dintre linkurile soft și hard?

Link-urile soft sunt link-uri către numele fișierului și pot locui și pe diferite fișiere; cu toate acestea, legăturile dure sunt link-uri către inodul fișierului și trebuie să se afle în același articol de fișier ca și cel al fișierului. Ștergerea fișierului original face ca legătura soft să fie inactivă (legătură întreruptă), dar nu afectează legătura hard (Legătura hard va accesa în continuare o copie a fișierului)

5: Cum veți trece și accesa argumente la un script în Linux?

Argumentele pot fi transmise ca:

scriptName "Arg1" "Arg2"

.... „Argn” și poate fi accesat în interiorul scriptului ca $ 1, $ 2 ... $ n

6: Care este semnificația lui $?

$ # arată numărul argumentelor transmise scriptului.

7: Care este diferența dintre $ * și $ @?

$ @ tratează fiecare argument citat ca argumente separate, dar $ * va considera întregul set de parametri de poziție ca un singur șir.

8: Utilizați comanda sed pentru a înlocui conținutul fișierului (comanda emulează tac)

De exemplu:

if cat filleABCDEFGH

Atunci O / p ar trebui să fie

EFGHABCD

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

Aici comanda G se adaugă spațiului modelului,

h comandă copiază tamponul modelului pentru a păstra bufferul

și comanda d șterge spațiul curent al modelului.

9: Având în vedere un fișier, înlocuiți toate apariția cuvântului „ABC“ cu „DEF“ de la 5 mii linie până la sfârșitul anului în numai acele linii care conține cuvântul „MNO“

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

10: Având în vedere un fișier, scrieți o secvență de comandă pentru a găsi numărul fiecărui cuvânt.

tr -s "(backslash)040" 

"(backslash) 011" este un echivalent octal al "caracterului tab" și

„(backslash) 012” este un echivalent octal al caracterului newline.

11: Cum veți găsi a 99- a linie a unui fișier utilizând numai comanda tail și head?

tail +99 file1 | head -1

12: Imprimați a 10- a linie fără a utiliza comanda coadă și cap.

sed -n '10p' file1

13: În shell-ul meu bash vreau ca solicitarea mea să aibă formatul '$ "Prezent director de lucru": "nume de gazdă"> și să încarc un fișier care conține o listă de funcții definite de utilizator imediat ce mă autentific, cum veți automatiza acest lucru ?

În bash shell, putem crea fișierul „.profile” care este invocat automat de îndată ce mă autentific și scriu următoarea sintaxă în el.

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

Aici File1 este fișierul care conține funcțiile definite de utilizator și „.” invocă acest fișier în shell-ul curent.

14: Explicați despre bitul de permisiune „s” dintr-un fișier?

bitul „s” se numește bitul „set user id” (SUID).

Bitul „s” dintr-un fișier face ca procesul să aibă privilegiile proprietarului fișierului în timpul instanței programului.

De exemplu, executarea comenzii „passwd” pentru a schimba parola curentă determină utilizatorul să scrie noua sa parolă în fișierul shadow, chiar dacă are „rădăcină” ca proprietar.

15: Vreau să creez un director astfel încât oricine din grup să poată crea un fișier și să acceseze fișierul oricărei persoane din acesta, dar niciunul nu ar trebui să poată șterge alt fișier decât cel creat de el însuși.

Putem crea directorul care oferă acces de citire și executare tuturor celor din grup și setarea bitului său lipicios „t” pe după cum urmează:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Cum puteți afla de cât timp funcționează sistemul?

Putem găsi acest lucru folosind comanda „uptime”.

17: Cum poate un utilizator să afle toate informațiile despre un anumit utilizator, cum ar fi shell-ul implicit, numele real, directorul implicit, când și cât timp folosește sistemul?

degetul "loginName"

… Unde loginName este numele de autentificare al

utilizator ale cărui informații sunt așteptate.

18: Care este diferența dintre $$ și $ !?

$$ dă ID-ul procesului procesului în curs de executare în timp ce $! Afișează ID-ul procesului care a trecut recent în fundal.

19: Ce sunt procesele zombie?

Acestea sunt procesele care au murit, dar a căror stare de ieșire nu este încă selectată de procesul părinte. Aceste procese, chiar dacă nu sunt funcționale, au totuși introducerea ID-ului procesului în tabelul de procese.

20: Cum veți copia un fișier de la o mașină la alta?

Putem folosi utilitare precum „ftp”, „scp” sau „rsync” pentru a copia un fișier de la o mașină la alta.

De exemplu, folosind ftp:

Numele gazdei FTP

> pune fișier1

> pa

Deasupra copiilor, fișierul file1 de la sistemul local la sistemul de destinație al cărui nume de gazdă este specificat.

21: Vreau să monitorizez un fișier jurnal actualizat continuu, ce comandă poate fi utilizată pentru a realiza cel mai eficient acest lucru?

Putem folosi numele de fișier tail -f. Acest lucru va face ca doar ultimele 10 linii implicite să fie afișate pe std o / p care arată continuu partea de actualizare a fișierului.

22: Vreau să mă conectez la un server la distanță și să execut câteva comenzi, cum pot realiza acest lucru?

Putem folosi ssh pentru a face acest lucru:

ssh nume de utilizator @ serverIP -p sshport

Exemplu

ssh Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. -p 22

Odată executată comanda de mai sus, vi se va cere să introduceți parola

23: Am 2 fișiere și vreau să tipăresc înregistrările care sunt comune ambelor.

Putem folosi comanda „comm” după cum urmează:

comm -12 fișier1 fișier2 ... 12 va suprima conținutul care este

unic pentru fișierul 1 și respectiv al 2 - lea .

24: Scrieți un script pentru a tipări primele 10 elemente din seria Fibonacci.

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

25: Cum vă veți conecta la un server de baze de date de pe Linux?

Putem folosi utilitarul isql care vine cu driverul client deschis după cum urmează:

isql -S serverName -U nume de utilizator -P parolă

26: Care sunt cele 3 fluxuri standard din Linux?

0 - Standard Input1 - Standard Output2 - Standard Error

27: Vreau să citesc toate intrările la comanda din fișierul 1 direcționează toate ieșirile în fișierul 2 și eroarea în fișierul 3, cum pot realiza acest lucru?

comanda file2 2> file3

28: Ce se va întâmpla cu procesul meu actual când execut o comandă folosind exec?

„exec” suprapune procesul nou bifurcat pe procesul curent; deci, atunci când execut comanda folosind exec, comanda se execută pe shell-ul curent fără a crea procese noi.

De exemplu, executarea "exec ls" la promptul de comandă va executa ls și odată ce ls va ieși, procesul se va închide

29: Cum vei emula wc -l folosind awk?

awk 'END {print NR} fileName'

30: Având în vedere un fișier, găsiți numărul de linii care conțin cuvântul "ABC".

grep -c fișierul "ABC" 1

31: Care este diferența dintre grep și egrep?

egrep este grep extins care acceptă funcții grep adăugate precum "+" (1 sau mai multe apariții ale unui caracter anterior), "?" (0 sau 1 apariție a unui caracter anterior) și "|" (potrivire alternativă)

32: Cum veți imprima numele de conectare ale tuturor utilizatorilor pe un sistem?

Fișierul / etc / shadow are toți utilizatorii enumerați.

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

33: Cum se setează o matrice în Linux?

Sintaxă în ksh:

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

34: Notați sintaxa buclei „pentru”

Sintaxă:

for iterator in (elements)doexecute commandsdone

35: Cum veți găsi spațiul total pe disc utilizat de un anumit utilizator?

du -s / home / user1 .... unde user1 este utilizatorul pentru care trebuie găsit spațiul total pe disc.

36: Scrieți sintaxa condiționalelor „if” în Linux?

Sintaxă

If condition is successfulthenexecute commandselseexecute commandsfi

37: Care este semnificația dolarului?

Comanda $? dă starea de ieșire a ultimei comenzi care a fost executată.

38: Cum ștergem toate liniile goale dintr-un fișier?

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

unde (backslash) 011 este un echivalent octal al spațiului și

(backslash) 040 este un echivalent octal al filei

39: Cum voi insera o linie „ABCDEF” la fiecare 100 a linie a unui fișier?

sed '100i \ ABCDEF' file1

40: Scrieți o secvență de comandă pentru a găsi toate fișierele modificate în mai puțin de 2 zile și imprimați numărul de înregistrări pentru fiecare.

găsi . -mtime -2 -exec wc -l {} \;

41: Cum pot seta permisiunea implicită rwx pentru toți utilizatorii din fiecare fișier creat în shell-ul curent?

Putem folosi:

umask 777

Aceasta va seta permisiunea implicită rwx pentru fiecare fișier creat pentru fiecare utilizator.

42: Cum putem găsi numele procesului din ID-ul procesului său?

Putem folosi „ps -p ProcessId”

43: Care sunt cele patru componente fundamentale ale fiecărui sistem de fișiere de pe Linux?

Bootblock, super block, inode block și Datablock sunt componente fundamentale ale fiecărui sistem de fișiere de pe Linux.

44: Ce este un bloc de încărcare?

Acest bloc conține un mic program numit „Master Boot record” (MBR) care încarcă nucleul în timpul pornirii sistemului.

45: Ce este un super bloc?

Super bloc conține toate informațiile despre sistemul de fișiere, cum ar fi dimensiunea sistemului de fișiere, dimensiunea blocului utilizată de numărul său de blocuri de date gratuite și lista de inode și blocuri de date gratuite.

46: Ce este un bloc inod?

Acest bloc conține inodul pentru fiecare fișier al sistemului de fișiere împreună cu toate atributele fișierului, cu excepția numelui său.

47: Cum pot trimite un e-mail cu un fișier comprimat ca atașament?

zip file1.zip file1 | mailx -s "subject" ID-ul e-mailului destinatarilor

Conținut prin e-mail

EOF

48: Cum creăm aliasuri de comandă într-un shell?

alias Aliasname = "Comanda al cărei alias urmează să fie creat".

49: Ce sunt câmpurile de permisiune „c” și „b” ale unui fișier?

Câmpurile de permisiune „c” și „b” sunt în general asociate cu un fișier de dispozitiv. Specifică dacă un fișier este un fișier de caractere speciale sau un fișier special de blocare.

50: La ce folosește o linie de shebang?

Linia Shebang din partea de sus a fiecărui script determină locația motorului care urmează să fie utilizat pentru a executa scriptul.