Le 50 migliori domande per l'intervista sullo scripting di Shell e amp; Risposte

Anonim

Scarica il pdf

1: che cos'è una shell?

Shell è un'interfaccia tra l'utente e il kernel. Anche se può esserci un solo kernel; un sistema può avere molte shell in esecuzione simultaneamente. Quindi, ogni volta che un utente immette un comando tramite la tastiera, la shell comunica con il kernel per eseguirlo e quindi visualizzare l'output all'utente.

2: Quali sono i diversi tipi di shell comunemente usati su un tipico sistema Linux?

csh, ksh, bash, Bourne. La shell più comunemente usata e avanzata usata oggi è "Bash".

3: Qual è l'equivalente di un collegamento a un file che abbiamo una finestra su un sistema Linux?

I collegamenti vengono creati utilizzando "collegamenti" su Linux. Ci sono due tipi di link che possono essere usati e cioè "soft link" e "hard link".

4: qual è la differenza tra soft e hard link?

I collegamenti software sono collegamenti al nome del file e possono risiedere anche su diversi file system; tuttavia gli hard link sono link all'inode del file e devono trovarsi sullo stesso filesystem di quello del file. L'eliminazione del file originale rende il collegamento software inattivo (collegamento interrotto) ma non influisce sul collegamento fisico (il collegamento fisico accederà comunque a una copia del file)

5: Come passerai e accederai agli argomenti a uno script in Linux?

Gli argomenti possono essere passati come:

scriptName "Arg1" "Arg2"

…. "Argn" ed è possibile accedervi all'interno dello script come $ 1, $ 2… $ n

6: Qual è il significato di $ #?

$ # mostra il conteggio degli argomenti passati allo script.

7: Qual è la differenza tra $ * e $ @?

$ @ tratta ogni argomento tra virgolette come argomenti separati, ma $ * considererà l'intero insieme di parametri posizionali come una singola stringa.

8: Usa il comando sed per sostituire il contenuto del file (emula il comando tac)

Per esempio:

if cat filleABCDEFGH

Allora O / p dovrebbe essere

EFGHABCD

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

Qui il comando G viene aggiunto allo spazio del modello,

Il comando h copia il pattern buffer per contenere il buffer

e il comando d cancella lo spazio del pattern corrente.

9: Dato un file, sostituisci tutte le occorrenze della parola "ABC" con "DEF" dalla quinta riga fino alla fine solo in quelle righe che contengono la parola "MNO"

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

10: Dato un file, scrivi una sequenza di comandi per trovare il conteggio di ogni parola.

tr -s "(backslash)040" 

"(barra rovesciata) 011" è un equivalente ottale di "carattere di tabulazione" e

"(barra rovesciata) 012" è un equivalente ottale del carattere di nuova riga.

11: Come troverai la 99esima riga di un file usando solo i comandi tail e head?

coda +99 file1 | testa -1

12: Stampa la decima riga senza usare i comandi coda e testa.

sed -n '10p' file1

13: Nella mia shell bash voglio che il mio prompt sia nel formato '$ "Present working directory": "hostname"> e carichi un file contenente un elenco di funzioni definite dall'utente non appena accedo, come lo automatizzerai ?

Nella shell bash, possiamo creare un file ".profile" che viene richiamato automaticamente non appena accedo e vi scrivo la seguente sintassi.

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

Qui File1 è il file contenente le funzioni definite dall'utente e "." invoca questo file nella shell corrente.

14: Spiega il bit di autorizzazione "s" in un file?

Il bit "s" è chiamato bit "set user id" (SUID).

Il bit "s" su un file fa sì che il processo abbia i privilegi del proprietario del file durante l'istanza del programma.

Ad esempio, l'esecuzione del comando "passwd" per modificare la password corrente fa sì che l'utente scriva la nuova password nel file shadow anche se ha "root" come proprietario.

15: Voglio creare una directory in modo che chiunque nel gruppo possa creare un file e accedere al file di qualsiasi persona al suo interno, ma nessuno dovrebbe essere in grado di eliminare un file diverso da quello creato da lui stesso.

Possiamo creare la directory dando accesso in lettura ed esecuzione a tutti i membri del gruppo e impostando il suo sticky bit "t" come segue:

mkdir direc1chmod g+wx direc1chmod +t direc1

16: Come puoi sapere da quanto tempo il sistema è in funzione?

Possiamo trovarlo usando il comando "uptime".

17: Come può un utente scoprire tutte le informazioni su un utente specifico come la sua shell predefinita, il nome reale, la directory predefinita, quando e da quanto tempo usa il sistema?

dito "loginName"

... dove loginName è il nome di accesso del file

utente di cui si aspettano le informazioni.

18: Qual è la differenza tra $$ e $ !?

$$ fornisce l'ID del processo attualmente in esecuzione mentre $! Mostra l'ID del processo che è passato di recente in background.

19: Cosa sono i processi zombie?

Questi sono i processi che sono morti ma il cui stato di uscita non è ancora stato selezionato dal processo genitore. Questi processi, anche se non funzionanti, hanno ancora la voce dell'ID di processo nella tabella dei processi.

20: Come copierai un file da una macchina all'altra?

Possiamo usare utilità come "ftp", "scp" o "rsync" per copiare un file da una macchina all'altra.

Ad esempio, utilizzando ftp:

Nome host FTP

> inserisci file1

> ciao

Sopra le copie, file file1 dal sistema locale al sistema di destinazione il cui hostname è specificato.

21: Voglio monitorare un file di registro in aggiornamento continuo, quale comando può essere utilizzato per ottenere questo risultato in modo più efficiente?

Possiamo usare tail -f nomefile. Ciò farà sì che vengano visualizzate solo le ultime 10 righe predefinite su std o / p che mostra continuamente la parte in aggiornamento del file.

22: Voglio connettermi a un server remoto ed eseguire alcuni comandi, come posso ottenerlo?

Possiamo usare ssh per fare questo:

ssh nomeutente @ serverIP -p sshport

Esempio

ssh Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo. -p 22

Una volta eseguito il comando precedente, ti verrà chiesto di inserire la password

23: ho 2 file e voglio stampare i record che sono comuni a entrambi.

Possiamo usare il comando "comm" come segue:

comm -12 file1 file2… 12 sopprimerà il contenuto che sono

unica di 1 ° e 2 ° di file, rispettivamente.

24: scrivi uno script per stampare i primi 10 elementi della serie di Fibonacci.

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

25: Come ti connetti a un server di database da Linux?

Possiamo usare l'utility isql fornita con il driver client aperto come segue:

isql -S serverName -U nomeutente -P password

26: Quali sono i 3 flussi standard in Linux?

0 - Standard Input1 - Standard Output2 - Standard Error

27: Voglio leggere tutti gli input al comando da file1, indirizzare tutti gli output a file2 e l'errore al file 3, come posso ottenere questo risultato?

comando file2 2> file3

28: Cosa accadrà al mio processo corrente quando eseguo un comando usando exec?

"exec" sovrappone il nuovo processo biforcuto al processo corrente; quindi quando eseguo il comando usando exec, il comando viene eseguito sulla shell corrente senza creare nuovi processi.

Ad esempio, l'esecuzione di "exec ls" sul prompt dei comandi eseguirà ls e una volta che ls esce, il processo si spegnerà

29: Come emulerai wc -l usando awk?

awk "END {print NR} fileName"

30: Dato un file trova il conteggio delle righe che contengono la parola "ABC".

grep -c "ABC" file 1

31: Qual è la differenza tra grep ed egrep?

egrep è grep esteso che supporta funzionalità grep aggiunte come "+" (1 o più occorrenze di un carattere precedente), "?" (0 o 1 occorrenza di un carattere precedente) e "|" (corrispondenza alternativa)

32: Come verranno stampati i nomi di accesso di tutti gli utenti su un sistema?

Il file / etc / shadow ha tutti gli utenti elencati.

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

33: come impostare un array in Linux?

Sintassi in ksh:

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

34: annota la sintassi del ciclo "for"

Sintassi:

for iterator in (elements)doexecute commandsdone

35: Come troverai lo spazio su disco totale utilizzato da un utente specifico?

du -s / home / user1… .dove user1 è l'utente per il quale è necessario trovare lo spazio su disco totale.

36: Scrivi la sintassi per i condizionali "if" in Linux?

Sintassi

If condition is successfulthenexecute commandselseexecute commandsfi

37: qual è il significato di $?

Il comando $? fornisce lo stato di uscita dell'ultimo comando eseguito.

38: Come cancelliamo tutte le righe vuote in un file?

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

dove (barra rovesciata) 011 è un equivalente ottale di spazio e

(barra rovesciata) 040 è un equivalente ottale della tabulazione

39: Come inserirò una riga "ABCDEF" ogni 100 ° riga di un file?

sed '100i \ ABCDEF' file 1

40: Scrivi una sequenza di comandi per trovare tutti i file modificati in meno di 2 giorni e stampa il conteggio dei record di ciascuno.

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

41: Come posso impostare il permesso rwx predefinito per tutti gli utenti su ogni file che viene creato nella shell corrente?

Possiamo usare:

umask 777

Questo imposterà l'autorizzazione rwx predefinita per ogni file creato per ogni utente.

42: Come possiamo trovare il nome del processo dal suo ID processo?

Possiamo usare "ps -p ProcessId"

43: Quali sono i quattro componenti fondamentali di ogni file system su Linux?

Bootblock, super block, inode block e Datablock si trovano componenti fondamentali di ogni file system su Linux.

44: Cos'è un blocco di avvio?

Questo blocco contiene un piccolo programma chiamato "Master Boot record" (MBR) che carica il kernel durante l'avvio del sistema.

45: Cos'è un super blocco?

Il super blocco contiene tutte le informazioni sul file system come la dimensione del file system, la dimensione del blocco utilizzata dal numero di blocchi di dati liberi e l'elenco di inode e blocchi di dati liberi.

46: Cos'è un blocco inode?

Questo blocco contiene l'inode per ogni file del file system insieme a tutti gli attributi del file tranne il suo nome.

47: come posso inviare una mail con un file compresso come allegato?

zip file1.zip file1 | mailx -s "oggetto" ID email destinatari

Contenuto dell'email

EOF

48: come creiamo alias di comando in una shell?

alias Aliasname = "Comando il cui alias deve essere creato".

49: Cosa sono i campi di autorizzazione "c" e "b" di un file?

I campi di autorizzazione "c" e "b" sono generalmente associati a un file di dispositivo. Specifica se un file è un file di caratteri speciali o un file speciale a blocchi.

50: Qual è l'uso di una linea shebang?

La riga Shebang all'inizio di ogni script determina la posizione del motore che deve essere utilizzato per eseguire lo script.