s 50 principais perguntas e respostas da entrevista de script de shell

baixar PDF

1: O que é uma concha?

Shell é uma interface entre o usuário e o kernel. Mesmo que possa haver apenas um kernel; um sistema pode ter muitos shell em execução simultaneamente. Portanto, sempre que um usuário insere um comando por meio do teclado, o shell se comunica com o kernel para executá-lo e, em seguida, exibe a saída para o usuário.

2: Quais são os diferentes tipos de shells comumente usados ​​em um sistema Linux típico?

csh, ksh, bash, Bourne. O shell mais comumente usado e avançado usado hoje é 'Bash'.

3: Qual é o equivalente a um atalho de arquivo que temos uma janela em um sistema Linux?

Os atalhos são criados usando 'links' no Linux. Existem dois tipos de links que podem ser usados, ou seja, 'soft link' e 'hard link'.

4: Qual é a diferença entre soft links e hard links?

Os links simbólicos são vinculados ao nome do arquivo e também podem residir em diferentes sistemas de arquivos; entretanto, os links físicos são vinculados ao inode do arquivo e devem estar no mesmo sistema de arquivo do arquivo. Excluir o arquivo original torna o link simbólico inativo (link quebrado), mas não afeta o link físico (o link físico ainda acessará uma cópia do arquivo)

5: Como você passará e acessará argumentos para um script no Linux?

Os argumentos podem ser passados ​​como:

scriptName 'Arg1' 'Arg2'… .'Argn 'e pode ser acessado dentro do script como $ 1, $ 2 .. $ n

6: Qual é o significado de $ #?

$ # mostra a contagem dos argumentos passados ​​para o script.

7: Qual é a diferença entre $ * e $ @?

$ @ trata cada argumento entre aspas como argumentos separados, mas $ * irá considerar todo o conjunto de parâmetros posicionais como uma única string.

8: Use o comando sed para substituir o conteúdo do arquivo (emular o comando tac)

Por exemplo:

if cat fille ABCD EFGH

Então, O / p deve ser

EFGH
ABCD

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

Aqui o comando G anexa ao espaço do padrão,

O comando h copia o buffer de padrão para o buffer de retenção

e o comando d exclui o espaço do padrão atual.

9: Dado um arquivo, substitua todas as ocorrências da palavra 'ABC' por 'DEF' de 5ºlinha até o fim apenas nas linhas que contêm a palavra 'MNO'

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

10: Dado um arquivo, escreva uma sequência de comandos para encontrar a contagem de cada palavra.

tr –s '(backslash)040' 

'(barra invertida) 011' é um equivalente octal de 'caractere de tabulação' e

'(barra invertida) 012' é um equivalente octal do caractere de nova linha.

11: Como você encontrará o 99ºlinha de um arquivo usando apenas os comandos tail e head?

cauda +99 arquivo1 | cabeça -1

12: Imprima o 10ºlinha sem usar o comando tail e head.

sed –n '10p' file1

13: Em meu shell bash, quero que meu prompt tenha o formato '$' Diretório de trabalho atual ':' hostname '> e carregue um arquivo contendo uma lista de funções definidas pelo usuário assim que eu entrar, como você irá automatizar isso ?

No shell bash, podemos criar o arquivo '.profile' que é automaticamente invocado assim que eu efetuar login e escrever a seguinte sintaxe nele.

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

Aqui, Arquivo1 é o arquivo que contém as funções definidas pelo usuário e '.' invoca este arquivo no shell atual.

14: Explique sobre o bit de permissão de em um arquivo?

's' bit é denominado bit 'set user id' (SUID).

O bit 's' em um arquivo faz com que o processo tenha os privilégios do proprietário do arquivo durante a instância do programa.

Por exemplo, executar o comando 'passwd' para alterar a senha atual faz com que o usuário grave sua nova senha no arquivo shadow, embora tenha 'root' como seu proprietário.

15: Eu quero criar um diretório de forma que qualquer pessoa no grupo possa criar um arquivo e acessar o arquivo de qualquer pessoa nele, mas ninguém deve ser capaz de excluir um arquivo que não seja aquele criado por ele mesmo.

Podemos criar o diretório dando acesso de leitura e execução para todos no grupo e definindo seu sticky bit 't' como segue:

 mkdir direc1 chmod g+wx direc1 chmod +t direc1 

16: Como você pode descobrir há quanto tempo o sistema está funcionando?

Podemos encontrar isso usando o comando 'uptime'.

17: Como qualquer usuário pode descobrir todas as informações sobre um usuário específico, como seu shell padrão, nome na vida real, diretório padrão, quando e há quanto tempo ele está usando o sistema?

finger 'loginName' ... onde loginName é o nome de login do

usuário cujas informações são esperadas.

18: Qual é a diferença entre $$ e $ !?

$$ fornece a identificação do processo em execução no momento, enquanto $! Mostra a identificação do processo que recentemente entrou em segundo plano.

19: O que são processos zumbis?

Esses são os processos que morreram, mas cujo status de saída ainda não foi selecionado pelo processo pai. Esses processos, mesmo que não sejam funcionais, ainda têm sua entrada de id de processo na tabela de processos.

20: Como você copiará um arquivo de uma máquina para outra?

Podemos usar utilitários como 'ftp', 'scp' ou 'rsync' para copiar um arquivo de uma máquina para outra.

Por exemplo, usando ftp:

Nome de host FTP

> colocar arquivo1

> tchau

Acima copia, o arquivo file1 do sistema local para o sistema de destino cujo nome de host é especificado.

21: Desejo monitorar um arquivo de log continuamente atualizado, qual comando pode ser usado para conseguir isso de forma mais eficiente?

Podemos usar o nome do arquivo tail –f. Isso fará com que apenas as últimas 10 linhas padrão sejam exibidas no std o / p, que mostra continuamente a parte de atualização do arquivo.

22: Quero me conectar a um servidor remoto e executar alguns comandos, como posso fazer isso?

Podemos usar ssh para fazer isso:

ssh username @ serverIP -p sshport

Exemplo

sshEste endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.-p 22

Assim que o comando acima for executado, você será solicitado a inserir a senha

23: Tenho 2 arquivos e desejo imprimir os registros que são comuns a ambos.

Podemos usar o comando 'comm' da seguinte maneira:

comm -12 arquivo1 arquivo2 ... 12 irá suprimir o conteúdo que é

único para 1ste 2WLarquivo respectivamente.

24: Escreva um script para imprimir os primeiros 10 elementos da série Fibonacci.

 #!/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: Como você se conectará a um servidor de banco de dados do Linux?

Podemos usar o utilitário isql que vem com o driver de cliente aberto da seguinte maneira:

isql –S serverName –U username –P password

26: Quais são os 3 streams padrão no Linux?

0 - Entrada padrão 1 - Saída padrão 2 - Erro padrão

27: Eu quero ler todas as entradas para o comando do arquivo1, direcionar todas as saídas para o arquivo2 e o erro para o arquivo 3, como posso fazer isso?

comando arquivo2 2> arquivo3

28: O que acontecerá com meu processo atual quando eu executar um comando usando exec?

'exec' sobrepõe o processo recém-bifurcado no processo atual; portanto, quando executo o comando usando exec, o comando é executado no shell atual sem criar novos processos.

Por exemplo, em execução 'exec ls' no prompt de comando executará ls e assim que o ls sair, o processo será encerrado

29: Como você vai emular wc –l usando awk?

awk 'END {print NR} fileName'

30: Dado um arquivo, encontre a contagem de linhas contendo a palavra 'ABC'.

grep –c 'ABC' arquivo1

31: Qual é a diferença entre grep e egrep?

egrep é um grep estendido que suporta recursos de grep adicionados como '+' (1 ou mais ocorrências de um caractere anterior), '?' (0 ou 1 ocorrência de um caractere anterior) e '|' (correspondência alternativa)

32: Como você imprimirá os nomes de login de todos os usuários em um sistema?

O arquivo / etc / shadow tem todos os usuários listados.

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

33: Como definir um array no Linux?

Sintaxe em ksh:

Set –A arrayname= (element1 element2 ….. element) In bash A=(element1 element2 element3 …. elementn)

34: Escreva a sintaxe do loop 'for'

Sintaxe:

for iterator in (elements) do execute commands done

35: Como você encontrará o espaço total em disco usado por um usuário específico?

du -s / home / user1 .... onde user1 é o usuário para o qual o espaço total em disco precisa ser encontrado.

36: Escreva a sintaxe para condicionais 'if' no Linux?

Sintaxe

If condition is successful then execute commands else execute commands fi

37: Qual é o significado de $?

O comando $? fornece o status de saída do último comando executado.

38: Como excluímos todas as linhas em branco de um arquivo?

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

onde (barra invertida) 011 é um equivalente octal de espaço e

(barra invertida) 040 é um equivalente octal da guia

39: Como vou inserir uma linha 'ABCDEF' a cada 100ºlinha de um arquivo?

Mas arquivo '100IU ABCDEF' 1

40: Escreva uma sequência de comandos para encontrar todos os arquivos modificados em menos de 2 dias e imprima a contagem de registros de cada um.

achar . –Mtime -2 –exec wc –l {} ;

41: Como posso definir a permissão rwx padrão para todos os usuários em cada arquivo que é criado no shell atual?

Podemos usar:

umask 777

Isso definirá a permissão rwx padrão para cada arquivo criado para cada usuário.

42: Como podemos encontrar o nome do processo de seu id de processo?

Podemos usar 'ps –p ProcessId'

43: Quais são os quatro componentes fundamentais de cada sistema de arquivos no Linux?

Bootblock, super block, inode block e Datablock são componentes fundamentais de cada sistema de arquivos no Linux.

44: O que é um bloco de inicialização?

Este bloco contém um pequeno programa chamado 'Registro mestre de inicialização' (MBR) que carrega o kernel durante a inicialização do sistema.

45: O que é um superbloqueio?

Super block contém todas as informações sobre o sistema de arquivos, como o tamanho do sistema de arquivos, o tamanho do bloco usado por seu número de blocos de dados livres e a lista de inodes e blocos de dados livres.

46: O que é um bloco inode?

Este bloco contém o inode para cada arquivo do sistema de arquivos junto com todos os atributos do arquivo, exceto seu nome.

47: Como posso enviar um e-mail com um arquivo compactado como anexo?

zip arquivo1.zip arquivo1 | mailx –s 'subject' ID de e-mail do destinatário

Conteúdo de e-mail

EOF

48: Como podemos criar aliases de comando em um shell?

alias Aliasname = 'Comando cujo alias deve ser criado'.

49: O que são campos de permissão 'c' e 'b' de um arquivo?

Os campos de permissão 'c' e 'b' são geralmente associados a um arquivo de dispositivo. Ele especifica se um arquivo é um arquivo de caractere especial ou um arquivo especial de bloco.

50: Qual é a utilidade de uma linha shebang?

A linha Shebang no topo de cada script determina a localização do mecanismo que deve ser usado para executar o script.