50 Shell Scripting Intervju Pitanja i odgovori (2024)
Pitanja i odgovori za intervju za skriptiranje Linux ljuske
1) Što je školjka?
Shell je sučelje između korisnika i kernela. Iako može postojati samo jedna jezgra; sustav može imati više ljuski koje rade istovremeno. Dakle, kad god korisnik unese naredbu putem tipkovnice, ljuska komunicira s jezgrom kako bi je izvršila i zatim prikazala izlaz korisniku.
👉 Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za Shell Scripting
2) Što je Shell skriptiranje?
Shell skriptiranje je računalni program otvorenog koda dizajniran da ga pokreće Unix/Linux ljuska. Shell Scripting je program za pisanje niza naredbi koje školjka izvršava. Može kombinirati duge i ponavljajuće sekvence naredbi u jednu i jednostavnu skriptu koja se može pohraniti i izvršiti u bilo kojem trenutku, što smanjuje programske napore.
3) Koje su različite vrste najčešće korištenih ljuski na tipičnom Linux sustavu?
csh,ksh,bash,Bourne. Najčešće korištena i napredna ljuska koja se danas koristi je "Bash".
4) Što je ekvivalent prečacu datoteke da imamo prozor na Linux sustavu?
Prečaci se stvaraju pomoću "veza" na Linuxu. Postoje dvije vrste veza koje se mogu koristiti, a to su "meka veza" i "tvrda veza".
5) Koja je razlika između mekih i tvrdih veza?
Meke veze su poveznice na naziv datoteke i mogu se također nalaziti na različitim datotečnim sustavima; međutim, tvrde veze povezuju na inode datoteke i moraju biti na istom datotečnom sustavu kao i datoteka. Brisanje izvorne datoteke čini meku vezu neaktivnom (neispravna veza), ali ne utječe na tvrdu vezu (tvrda veza će i dalje pristupati kopiji datoteke)
6) Kako ćete proslijediti i pristupiti argumentima skripti u Linuxu?
Argumenti se mogu proslijediti kao:
scriptName “Arg1” “Arg2″….”Argn” i može mu se pristupiti unutar skripte kao $1 , $2 .. $n
7) Koja je razlika između $* i $@?
$@ tretira svaki citirani argument kao zasebni argument, ali $* će cijeli skup pozicijskih parametara smatrati jednim nizom.
8) Koristite naredbu sed za zamjenu sadržaja datoteke (emulirajte naredbu tac)
npr:
if cat fille ABCD EFGH
Onda bi trebao biti O/p
EFGH
ABCD
sed '1! G; h;$!d' file1
Ovdje se G naredba dodaje prostoru uzorka,
h naredba kopira međuspremnik uzorka u međuspremnik za zadržavanje
i naredba d briše trenutni prostor uzorka.
9) S obzirom na datoteku, zamijenite sve riječi "ABC" s "DEF" iz 5th retka do kraja samo u onim recima koji sadrže riječ "MNO"
sed –n '5,$p' file1|sed '/MNO/s/ABC/DEF/'
10) Zadanu datoteku, napišite niz naredbi da biste pronašli broj svake riječi.
tr –s "(backslash)040" <file1|tr –s "(backslash)011"|tr "(backslash)040 (backslash)011" "(backslash)012" |uniq –c where "(backslash)040" is octal equivalent of "space"
“(kosa crta obrnuto)011” je oktalni ekvivalent “znaka tabulator” i
“(obrnuta kosa crta)012” oktalni je ekvivalent znaka novog retka.
11) Kako ćete pronaći 99th redak datoteke koristeći samo naredbu tail i head?
rep +99 turpija1|glava -1
12) Ispišite 10th linija bez korištenja naredbe rep i glava.
sed –n '10p' file1
13) U svojoj bash ljusci želim da moj upit bude u formatu '$”Present working directory”:”hostname”> i da učitava datoteku koja sadrži popis korisnički definiranih funkcija čim se prijavim, kako ćete to automatizirati ?
U bash ljusci možemo stvoriti datoteku ".profile" koja se automatski poziva čim se prijavim i upišem sljedeću sintaksu u nju.
export PS1='$ `pwd`:`hostname`>' .File1
Ovdje je File1 datoteka koja sadrži korisnički definirane funkcije i "." poziva ovu datoteku u trenutnoj ljusci.
14) Objasnite o “s” bitu dopuštenja u datoteci?
“s” bit se naziva “set user id” (SUID) bit.
Bit “s” na datoteci uzrokuje da proces ima privilegije vlasnika datoteke tijekom instance programa.
Na primjer, izvršavanje naredbe “passwd” za promjenu trenutne lozinke uzrokuje da korisnik zapisuje svoju novu lozinku u datoteku sjena iako ima “root” kao vlasnik.
15) Želim stvoriti direktorij tako da bilo tko u grupi može stvoriti datoteku i pristupiti datoteci bilo koje osobe u njoj, ali nitko ne bi trebao moći izbrisati datoteku osim one koju je sam stvorio.
Možemo stvoriti direktorij dajući pristup čitanju i izvršavanju svima u grupi i postavljajući njegov ljepljivi bit “t” na sljedeći način:
mkdir direc1 chmod g+wx direc1 chmod +t direc1
16) Kako možete saznati koliko dugo sustav radi?
To možemo pronaći pomoću naredbe "uptime".
17) Kako bilo koji korisnik može saznati sve informacije o određenom korisniku poput njegove zadane ljuske, stvarnog imena, zadanog direktorija, kada i koliko dugo koristi sustav?
finger “loginName” …gdje je loginName ime za prijavu
korisnik čije se informacije očekuju.
18) Koja je razlika između $$ i $!?
$$ daje ID procesa koji se trenutno izvodi dok $! Prikazuje ID procesa koji je nedavno otišao u pozadinu.
19) Što su zombi procesi?
To su procesi koji su umrli, ali čiji izlazni status još uvijek nije odabran od strane nadređenog procesa. Ovi procesi, čak i ako nisu funkcionalni, i dalje imaju svoj ID proces u tablici procesa.
20) Kako ćete kopirati datoteku s jednog stroja na drugi?
Možemo koristiti uslužne programe kao što su "ftp", "scp" ili "rsync" za kopiranje datoteke s jednog računala na drugo.
Npr. korištenje ftp-a:
FTP naziv hosta
>stavi file1
> bok
Iznad kopija, datoteka file1 s lokalnog sustava na odredišni sustav čiji je naziv glavnog računala naveden.
Pitanja i odgovori za intervju za Shell Scripting za iskusne
21) Želim pratiti datoteku dnevnika koja se stalno ažurira, koja se naredba može koristiti za najučinkovitije postizanje toga?
Možemo koristiti tail –f naziv datoteke. To će uzrokovati prikaz samo zadanih zadnjih 10 redaka na std o/p koji kontinuirano prikazuje dio datoteke koji se ažurira.
22) Želim se spojiti na udaljeni poslužitelj i izvršiti neke naredbe, kako to mogu postići?
Za ovo možemo koristiti ssh:
ssh korisničko ime@IP poslužitelja -p sshport
Primjer
ssh root@122.52.251.171 -p 22
Nakon što se gornja naredba izvrši, od vas će se tražiti da unesete lozinku
23) Imam 2 datoteke i želim ispisati zapise koji su zajednički za obje.
Naredbu “comm” možemo koristiti na sljedeći način:
comm -12 file1 file2 … 12 će potisnuti sadržaj koji su
jedinstveno za 1st i 2nd datoteka odnosno.
24) Napišite skriptu za ispis prvih 10 elemenata Fibonaccijevog niza.
#!/bin/sh a=1 b=1 echo $a echo $b for I in 1 2 3 4 5 6 7 8 do c=a b=$a b=$(($a+$c)) echo $b done
25) Kako ćete se povezati s poslužiteljem baze podataka iz Linuxa?
Možemo koristiti isql uslužni program koji dolazi s otvorenim upravljačkim programom klijenta na sljedeći način:
isql –S serverName –U korisničko ime –P lozinka
26) Koja su 3 standardna toka u Linuxu?
0 – Standardni ulaz1 – Standardni izlaz2 – Standardna pogreška
27) Želim pročitati sav ulaz u naredbu iz datoteke 1, usmjeriti sav izlaz u datoteku 2, a pogrešku u datoteku 3, kako to mogu postići?
naredba datoteka1 1>datoteka2
28) Što će se dogoditi s mojim trenutnim procesom kada izvršim naredbu koristeći exec?
“exec” prekriva novo račvasti proces na trenutnom procesu; pa kad izvršim naredbu koristeći exec, naredba se izvršava na trenutnoj ljusci bez stvaranja novih procesa.
Npr. Izvršavanje "exec ls"
na naredbenom retku će izvršiti ls i kada ls izađe, proces će se ugasiti
29) Kako ćete emulirati wc –l koristeći awk?
awk 'END {print NR} fileName'
30) U datoteci pronađite broj redaka koji sadrže riječ "ABC".
grep –c “ABC” datoteka1
31) Koja je razlika između grep i egrep?
egrep je prošireni grep koji podržava dodane grep značajke kao što su “+” (1 ili više pojavljivanja prethodnog znaka),”?” (0 ili 1 pojavljivanje prethodnog znaka) i “|” (alternativno podudaranje)
32) Kako postaviti niz u Linuxu?
Sintaksa u ksh:
Set –A arrayname= (element1 element2 ….. element) In bash A=(element1 element2 element3 …. elementn)
33) Zapišite sintaksu "for" petlje
Sintaksa:
for iterator in (elements) do execute commands done
34) Kako ćete pronaći ukupni prostor na disku koji koristi određeni korisnik?
du -s /home/user1 ….gdje je korisnik1 korisnik za kojeg treba pronaći ukupni prostor na disku.
35) Napišite sintaksu za "if" uvjete u Linuxu?
Sintaksa
If condition is successful then execute commands else execute commands fi
36) Koje je značenje $?
Naredba $? daje status izlaza posljednje izvršene naredbe.
37) Kako možemo izbrisati sve prazne retke u datoteci?
sed '^ [(backslash)011(backslash)040]*$/d' file1
gdje je (obrnuta kosa crta)011 oktalni ekvivalent razmaka i
(obrnuta kosa crta)040 je oktalni ekvivalent tabulatoru
38) Kako ću umetnuti redak “ABCDEF” na svakih 100th linija datoteke?
sed '100i\ABCDEF' datoteka1
39) Napišite niz naredbi za pronalaženje svih datoteka izmijenjenih u manje od 2 dana i ispis broja zapisa za svaku.
pronaći . –mtime -2 –exec wc –l {} \;
40) Kako mogu postaviti zadanu rwx dozvolu za sve korisnike na svakoj datoteci koja je stvorena u trenutnoj ljusci?
Možemo koristiti:
umask 777
Ovo će postaviti zadanu rwx dozvolu za svaku datoteku koja je stvorena za svakog korisnika.
41) Kako možemo pronaći naziv procesa iz ID-a njegovog procesa?
Možemo koristiti "ps –p ProcessId"
42) Koje su četiri temeljne komponente svakog datotečnog sustava na Linuxu?
Bootblock, super block, inode block i Datablock temeljne su komponente svakog datotečnog sustava na Linuxu.
43) Što je blok za pokretanje?
Ovaj blok sadrži mali program pod nazivom "Master Boot record" (MBR) koji učitava kernel tijekom pokretanja sustava.
44) Što je super blok?
Super blok sadrži sve informacije o datotečnom sustavu kao što je veličina datotečnog sustava, veličina bloka koja se koristi prema broju slobodnih blokova podataka i popis slobodnih inodeova i blokova podataka.
45) Što je blok inode?
Ovaj blok sadrži inode za svaku datoteku datotečnog sustava zajedno sa svim atributima datoteke osim njenog naziva.
46) Kako mogu poslati e-poštu s komprimiranom datotekom kao privitkom?
zip file1.zip file1|mailx –s “subject” ID e-pošte primatelja
Sadržaj e-pošte
EOF
47) Kako stvaramo pseudonime naredbi u ljusci?
alias Aliasname=”Naredba čiji alias treba kreirati”.
48) Što su "c" i "b" polja dopuštenja datoteke?
"c" i "b" polja dopuštenja općenito su povezani s datotekom uređaja. Određuje je li datoteka datoteka s posebnim znakovima ili datoteka s posebnim blokovima.
49) Čemu služi shebang linija?
Shebang linija na vrhu svake skripte određuje lokaciju stroja koji će se koristiti za izvršavanje skripte.
Ova pitanja za intervju također će vam pomoći u vašem životu