Perguntas da entrevista do Linux 2021 Daquan

 

 

 

Visão geral do Linux

o que é linux

Linux é um conjunto de sistemas operacionais do tipo Unix, de uso livre e disseminados livremente, é um sistema operacional multiusuário, multitarefa, multithread e multi-CPU baseado em POSIX e Unix. Ele pode executar os principais utilitários, aplicativos e protocolos de rede do Unix. Ele suporta hardware de 32 bits e 64 bits. O Linux herda a ideia de design centrado em rede do Unix e é um sistema operacional de rede multiusuário com desempenho estável.

Qual é a diferença entre Unix e Linux?

Ambos Linux e Unix são sistemas operacionais poderosos, e ambos são sistemas operacionais de servidor amplamente utilizados. Existem muitas semelhanças. Algumas pessoas até acreditam erroneamente que os sistemas operacionais Unix e Linux são os mesmos. No entanto, este não é o caso, a seguinte é a diferença entre os dois.

  1. Linux de código
    aberto é um sistema operacional de código aberto que pode ser usado sem pagamento; Unix é um software comercial tradicional que implementa proteção de propriedade intelectual para código-fonte e requer pagamento e autorização para usá-lo.

  2. O sistema operacional Linux multiplataforma
    tem bom desempenho multiplataforma e pode ser executado em uma variedade de plataformas de hardware; O sistema operacional Unix tem desempenho multiplataforma fraco e a maioria deles precisa ser usado com hardware.

  3. Além das operações de linha de comando, o Linux também possui um sistema de gerenciamento de janelas
    ; o Unix é apenas um sistema de linha de comando.

  4. Ambiente de hardware
    O sistema operacional Linux tem requisitos mais baixos de hardware e o método de instalação é mais fácil de dominar; Unix tem requisitos de hardware mais rígidos e é mais difícil de seguir.

  5. Grupo de usuários
    Linux tem um amplo grupo de usuários, que pode ser usado por indivíduos e empresas; o grupo de usuários Unix é relativamente estreito, usado principalmente por grandes empresas com altos requisitos de segurança, como bancos, departamentos de telecomunicações, etc., ou usado por hardware Unix fabricantes, como Sun, etc.
    Comparado com o sistema operacional Unix, o sistema operacional Linux é mais popular entre os entusiastas de computadores. A principal razão é que o sistema operacional Linux possui todas as funções do sistema operacional Unix e pode implementar todos os recursos Unix em computadores PC comuns. os recursos são de código aberto e gratuitos. , mais fácil de popularizar e usar!

O que é o kernel Linux?

O coração de um sistema Linux é o kernel. O kernel controla todo o hardware e software em um sistema de computador, alocando hardware quando necessário e executando software conforme necessário.

  1. Gerenciamento de memória do sistema
  2. gerenciamento de aplicativos
  3. gerenciamento de dispositivos de hardware
  4. gerenciamento de sistema de arquivos

Quais são os componentes básicos do Linux?

Kernel, shell e GUI

Nível de execução padrão do sistema Linux?

  • Desligar.
  • Modo de usuário autônomo.
  • Modo multiusuário para interface de caracteres (sem suporte de rede).
  • Interface de caracteres para o modo multiusuário.
  • Não alocado para uso.
  • Interface gráfica para o modo multiusuário.
  • reinício.

O que é CLI?

A interface de linha de comando (inglês **: interface de linha de comando**, abreviação] : CLI ) é a interface de usuário mais usada antes da popularidade da interface gráfica de usuário. Geralmente não suporta o mouse. O usuário insere comandos por meio de o teclado, e o computador recebe o Após o comando ser executado, ele será executado. Também conhecido como Interface de Usuário de Caracteres (CUI).

Geralmente, considera-se que uma interface de linha de comando (CLI) não é tão amigável quanto uma interface gráfica de usuário (GUI). Pois, o software da interface de linha de comando geralmente exige que o usuário memorize os comandos operacionais, porém, devido às suas próprias características, a interface de linha de comando economiza os recursos do sistema computacional em comparação com a interface gráfica do usuário. Com a premissa de memorizar os comandos, usar a interface de linha de comando geralmente é mais rápido do que usar a interface gráfica do usuário. Portanto, no sistema operacional com interface gráfica do usuário, a interface de linha de comando opcional é mantida.

O que é GUI?

Interface Gráfica de Usuário (GUI, também conhecida como Interface Gráfica de Usuário) refere-se a uma interface de usuário operacional de computador exibida de maneira gráfica.

Uma interface gráfica de usuário é um formato de exibição de interface para comunicação humano-computador que permite aos usuários usar dispositivos de entrada, como um mouse, para manipular ícones na tela ou opções de menu para selecionar comandos, invocar arquivos, iniciar programas ou executar algumas outras tarefas diárias. . As interfaces gráficas do usuário têm muitas vantagens sobre as interfaces de caracteres, nas quais as tarefas de rotina são realizadas digitando comandos de texto ou caracteres por meio do teclado.

Sistema de arquivos Linux simples?

Tudo é um arquivo**

tipo de arquivo

 

O que são links físicos e links flexíveis?

1) Links físicos

Como o arquivo no Linux é identificado pelo nó de índice (inode), o hard link pode ser considerado como um ponteiro, que aponta para o nó de índice do arquivo, e o sistema não realoca o inode para ele. Cada vez que um link físico é adicionado, o número de links para o arquivo é incrementado em 1.

  • Desvantagens: 1) Não é possível estabelecer links entre arquivos em sistemas de arquivos diferentes; 2) Somente superusuários podem criar links físicos para diretórios.

2) Ligação suave

Os links suaves superam as deficiências dos links físicos, sem nenhuma restrição do sistema de arquivos, qualquer usuário pode criar um link simbólico para um diretório. Como resultado, agora é mais usado, tem mais flexibilidade e pode até vincular arquivos em diferentes máquinas e redes diferentes.

  • Desvantagem: Como o arquivo de link contém as informações de caminho do arquivo original, quando o arquivo original é movido de um diretório para outro diretório e o arquivo vinculado é acessado novamente, o sistema não consegue encontrá-lo e o link físico não possui essa Como você deseja movê-lo, exatamente como mover e requer que o sistema aloque espaço adicional para criar um novo inode e salvar o caminho do arquivo original.

Em cenários reais, os links virtuais são basicamente usados . A diferença é resumida da seguinte forma:

  • Links físicos não podem cruzar partições, mas cadeias de software podem cruzar partições.
  • Um hard link aponta para um nó inode, enquanto um soft link cria um novo nó inode.
  • A exclusão de um arquivo de link físico não excluirá o arquivo original e a exclusão de um arquivo de link físico excluirá o arquivo original.

Que trabalho de segurança precisa ser feito depois que um sistema Linux inicializa o ambiente?

  • 1. Adicione o login de usuário comum, proíba o login do usuário root e altere o número da porta SSH.

    Modificar a porta SSH não é necessariamente absoluto. Obviamente, se você deseja expô-lo à rede externa, é recomendável alterá-lo. eu

  • 2. O servidor usa uma chave para efetuar login e o login com senha é proibido.

  • 3. Abra o firewall, feche o SElinux e defina as regras de firewall correspondentes de acordo com os requisitos do negócio.

  • 4. Instale o fail2ban, um software que previne ataques de força bruta SSH.

  • 5. Permitir que apenas o IP de saída da rede do escritório da empresa faça login no servidor (consulte as necessidades reais da empresa)

    Você também pode instalar software como VPN, que permite apenas conexões VPN ao servidor.

  • 6. O número de registros de comando do histórico de modificações é 10.

  • 7. Apenas os servidores necessários têm permissão para acessar a rede externa, e todos os outros são proibidos.

  • 8. Faça um bom trabalho na proteção em nível de software.

    • 8.1 Defina o módulo nginx_waf para evitar injeção de SQL.
    • 8.2 Inicie o serviço da web com o usuário www e altere o proprietário e o grupo do diretório do site para www.

O que é um ataque CC? O que é um ataque DDOS?

  • O ataque CC é usado principalmente para atacar a página, simulando vários usuários para visitar sua página continuamente, esgotando assim os recursos do sistema.

  • Ataque DDOS, o nome chinês é ataque de negação de serviço distribuído, refere-se ao uso de tecnologia de servidor para combinar vários computadores como uma plataforma de ataque para lançar ataques DDOS em um ou mais alvos.

    O ataque consiste em ocupar uma grande quantidade de recursos da rede por meio de um grande número de solicitações legítimas, a fim de atingir o objetivo de paralisar a rede.

Como prevenir ataques CC e ataques DDOS?

Para evitar ataques CC e DDOS, eles só podem ser usados ​​para limpeza de tráfego com firewalls de hardware para introduzir tráfego de ataque em buracos negros.

Para limpeza de tráfego, você pode comprar principalmente o serviço anti-ataque do provedor de serviços ISP. Geralmente, há tráfego livre na sala de informática. Normalmente compramos o serviço. Afinal, o ataque não durará muito tempo.

O que é injeção de banco de dados de sites?

  • Devido ao nível e experiência desiguais dos programadores, a maioria dos programadores não julga a legitimidade dos dados de entrada do usuário ao escrever o código.
  • O aplicativo tem riscos de segurança. O usuário pode enviar um trecho do código de consulta do banco de dados e obter alguns dados que deseja conhecer de acordo com o resultado retornado pelo programa, que é chamado de injeção de SQL.
  • A injeção de SQL é acessada a partir de uma porta WWW normal e, aparentemente, não é diferente do acesso comum a páginas da Web. Se o administrador não tiver o hábito de verificar os logs, ele pode não estar ciente da invasão por um longo tempo.

Como filtrar e prevenir?

Para injeção na página da Web do banco de dados, considere usar nginx_waf para filtragem e prevenção.

O que você faz quando os usuários relatam acesso lento ao site?

Quais são os fatores que causam lentidão no acesso ao site?

  • 1. A largura de banda de exportação do servidor não é suficiente

    • A largura de banda de saída adquirida pelo próprio servidor é relativamente pequena. Quando a simultaneidade for grande, a largura de banda de saída alocada para cada usuário será pequena e a velocidade de acesso será naturalmente lenta.
    • Redes entre operadoras resultam em largura de banda reduzida. Por exemplo, se o site da empresa for colocado na rede de telecomunicações, o cliente estará conectado à Great Wall Broadband ou China Unicom, o que também pode levar a uma redução na largura de banda.
  • 2. A carga do servidor é muito grande, resultando em falta de resposta

    Pode ser analisado a partir de dois aspectos:

    • Para analisar a carga do sistema, use o comando w ou o comando uptime para visualizar a carga do sistema. Se a carga for muito alta, use o comando top para ver a ocupação da CPU, MEM, etc., ou a CPU está ocupada ou a memória não é suficiente.
    • Se ambos estiverem normais, use o comando sar para analisar o tráfego da placa de rede e analisar se ela foi atacada. Uma vez analisada a causa do problema, tome as medidas correspondentes para resolvê-lo, como decidir se deve matar alguns processos ou proibir algum acesso.
  • 3. Gargalo do banco de dados

    • Se houver muitas consultas lentas. Em seguida, o desenvolvedor ou DBA deve auxiliar na otimização da instrução SQL.
    • Se a resposta do banco de dados for lenta, considere adicionar um cache de banco de dados, como Redis. Então, você também pode configurar o MySQL master e slave, um servidor MySQL é responsável pela escrita e vários outros bancos de dados slave são responsáveis ​​pela leitura.
  • 4. O código de desenvolvimento do site não está otimizado

    • Por exemplo, a instrução SQL não é otimizada, resultando em uma leitura e gravação demoradas do banco de dados.

Como solucionar problemas de acesso lento ao site?

  • 1. Antes de mais nada, é necessário determinar se o problema é do lado do usuário ou do lado do servidor. Quando você recebe feedback dos usuários de que o acesso é lento, você pode visitar o site imediatamente. Se o seu acesso for rápido aqui, é basicamente determinado que é um problema do lado do usuário. Você precisa explicar pacientemente ao cliente e ajudar o cliente resolver o problema.

    Não suba para ver o problema do servidor. Certifique-se de começar na fonte e vá descendo.

  • 2. Se o acesso também estiver lento, você pode usar a função de depuração do navegador para ver quais dados estão demorando muito para carregar, seja o carregamento lento de fotos ou alguns dados.

  • 3, para a carga do servidor. Visualize o consumo de hardware do servidor (rede, CPU, memória). Se você comprou um host em nuvem, como o Alibaba Cloud, pode fazer login na plataforma Alibaba Cloud para monitorar vários aspectos, como o uso de CPU, memória e largura de banda.

  • 4. Se for constatado que o consumo de recursos de hardware não é alto, então você precisa verificar o log, por exemplo, verifique o log da consulta lenta do MySQL para ver se uma determinada instrução SQL é lenta para consultar, causando lentidão no acesso ao site.

Como resolvê-lo?

  • 1. Se for um problema de largura de banda de exportação, solicite um aumento na largura de banda de exportação por um longo período.
  • 2. Se houver muitas consultas lentas, o desenvolvedor ou DBA deverá auxiliar na otimização da instrução SQL.
  • 3. Se a resposta do banco de dados for lenta, considere adicionar um cache de banco de dados, como Redis, etc. Então você também pode construir um MySQL mestre-escravo, um servidor MySQL é responsável pela escrita e vários outros bancos de dados escravos são responsáveis ​​pela leitura.
  • 4. Inscreva-se para adquirir o serviço CDN e carregue o acesso do usuário.
  • 5. Se o acesso ainda for relativamente lento, ele precisa ser otimizado a partir da arquitetura geral. Para serem dedicados a funções especiais, vários servidores fornecem o mesmo serviço.

Quais são os métodos para ajuste de desempenho do Linux?

  • 1. Desabilitando daemons (daemons próximos).
  • 2, Desligando a GUI.
  • 3. Alterando os parâmetros do kernel.
  • 4. Parâmetros do kernel.
  • 5. Ajustando o subsistema do processador (ajuste do subsistema do processador).
  • 6. Ajustando o subsistema de memória (ajuste do subsistema de memória).
  • 7. Ajustando o sistema de arquivos (ajuste do subsistema do sistema de arquivos).
  • 8. Ajustando o subsistema de rede (ajuste do subsistema de rede).

Como escolher uma versão do sistema operacional Linux?

De um modo geral, os usuários de desktop preferem o Ubuntu; os servidores preferem o RHEL ou o CentOS, e o CentOS é o preferido entre os dois.

De acordo com requisitos específicos:

  • Para requisitos de segurança mais altos, escolha Debian ou FreeBSD.

  • Os usuários que precisam de serviços avançados de banco de dados e aplicativos da Web de e-mail podem escolher o SUSE.

  • Se você deseja novas tecnologias e novos recursos, pode escolher o Feddora, que é uma versão beta e de pré-lançamento para RHEL e CentOS.

  • [Pontos-chave] De acordo com a situação atual, a grande maioria das empresas de Internet escolhe o CentOS. Agora a mais utilizada é a série 6, que já ocupa cerca de metade do mercado. Outra razão é que o CentOS se concentra mais no campo do servidor e não possui restrições de direitos autorais .

    A série CentOS 7 será gradualmente usada cada vez mais.

O que são scripts de shell?

Um script de shell é um arquivo de texto que contém um ou mais comandos. Como administradores de sistema, muitas vezes precisamos usar vários comandos para concluir uma tarefa, podemos adicionar todos esses comandos em um arquivo de texto (Shell script) para concluir essas tarefas diárias.

  • variável definida pelo sistema

    As variáveis ​​do sistema são criadas pelo próprio sistema do sistema. Essas variáveis ​​geralmente consistem em letras maiúsculas e podem ser  set visualizadas com comandos.

  • variável definida pelo usuário

    As variáveis ​​de usuário são criadas e definidas pelo usuário do sistema, e o valor da variável pode ser visualizado por meio de comandos  "echo $<变量名>" .

if Como aninhar a sintaxe no script de shell  ?

if [ 条件 ]
then
命令1
命令2
…..
else
if [ 条件 ]
then
命令1
命令2
….
else
命令1
命令2
…..
fi
fi

case Qual é a sintaxe das instruções em shell script  ?

A sintaxe básica é a seguinte:

case 变量 in
值1)
命令1
命令2
…..
最后命令
!!
值2)
命令1
命令2
……
最后命令
;;
esac

for Sintaxe de loop no script de shell  ?

A sintaxe básica é a seguinte:

for 变量 in 循环列表
do
命令1
命令2
….
最后命令
done

while Sintaxe de loop no script de shell  ?

Como  for um loop, while um loop repete seu bloco de comandos enquanto a condição for válida.
Ao contrário  forde um loop, while um loop itera até que sua condição não seja verdadeira.

Sintaxe básica:

while [ 条件 ]
do
命令…
done

Como tornar o script executável?

Use o comando chmod para tornar o script executável. Os exemplos são os seguintes: chmod a+x myscript.sh .

?O que  #!/bin/bash faz?

#!/bin/bash é a primeira linha de um script de shell, chamada de linha shebang.

  • # símbolo aqui é chamado de hash em vez  ! de bang.
  • Isso significa que o comando é executado através do  /bin/bash .

•  Como depurar scripts de shell?

  • Use  -x' números ( sh -x myscript.sh) para depurar scripts de shell.
  • Outra maneira é usar  -nv parâmetros ( sh -nv myscript.sh).

•  Como redirecionar a saída padrão e a saída de erro para o mesmo local?

  • Método 1: 2>&1 (如# ls /usr/share/doc > out.txt 2>&1 ) .
  • Método dois: &> (如# ls /usr/share/doc &> out.txt ) .

Como verificar o processo atual? Como realizar a saída? Como verificar o caminho atual?


Resposta:
Visualize o processo atual: ps
execute exit: exit
Visualize o caminho atual: pwd

Quais são os estados de um processo no Linux? Que símbolos são usados ​​nas informações exibidas por ps?


Resposta:
(1) Estado ininterrupto: O processo está em estado de sono, mas o processo é ininterrupto neste momento. Ininterrupto significa que o processo não responde a sinais assíncronos.
(2) Estado suspenso/estado de rastreamento: Envie um sinal SIGSTOP para o processo, e ele entrará no estado TASK_STOPPED em resposta ao sinal; quando o processo está sendo rastreado, ele está no estado especial de TASK_TRACED.
"ser rastreado" significa que o processo está suspenso, aguardando que o processo que o rastreia atue sobre ele.

(3), estado pronto: o estado na fila run_queue

(4) Estado em execução: o estado na fila run_queue
(5), estado de suspensão interrompível: o processo neste estado está suspenso porque está aguardando um determinado evento (como aguardando uma conexão de soquete, aguardando um semáforo)
( 6), estado zumbi (zombie): o pai liberará o cadáver (task_struct) do processo filho pelo caminho sem passar pela série de espera de chamadas do sistema
(7), status de saída

 

 

comandos básicos

diretório de mudança de cd

cd .. volte um nível

pwd mostra o caminho de trabalho 

ls para visualizar arquivos em um diretório 

tree Mostra a estrutura em árvore de arquivos e diretórios começando no diretório raiz

mkdir cria um diretório (-p cria uma árvore de diretórios)

toque criar arquivo

cat file1 Visualiza o conteúdo do arquivo a partir do primeiro byte 

menos Como mais, navegue pelos arquivos. Mas você pode se mover à vontade

vi/vim editar arquivos

O comando tail pode ser usado para visualizar o conteúdo de um arquivo

ls lista todos os arquivos em um diretório

rm excluir arquivos

rmdir excluir diretório

rm -rf força a remoção de diretórios não vazios

mv mover arquivo

cp copiar arquivos (-a copiar diretórios)

ln criar link suave

find / -name * começa a partir de '/' e entra no sistema de arquivos raiz para procurar arquivos e diretórios 

comando de pesquisa de texto grep

localize \*.ps encontre os arquivos que terminam em '.ps' - execute o comando 'updatedb' primeiro 
whereis halt mostra a localização de um binário, fonte ou man 
que halt mostra o caminho completo para um binário ou executável 

montar montar

desmontar desmontar

df -h exibe uma lista de partições montadas 

groupadd group_name cria um novo grupo de usuários 

groupdel group_name excluir um grupo de usuários 

useradd user1 cria um novo usuário 

userdel -r user1 exclui um usuário ('-r' exclui o diretório inicial) 

ls -lh direitos de exibição

chmod ugo+rwx directory1 Defina o proprietário (u), grupo (g) e outros (o) do diretório para ler (r /4), escrever (w/2) e executar (x/1) permissões 

chown user1 file1 altera o atributo do proprietário de um arquivo 

chown user1 file1 altera o atributo do proprietário de um arquivo 

 

backup 
dump -0aj -f /tmp/home0.bak /home faça um backup completo do diretório '/home' 

rsync -rogpav --delete /home /tmp sincroniza diretórios em ambos os lados 

 

Empacotar e compactar arquivos

gzip file1 compacta um arquivo chamado 'file1' 

tar -cvf archive.tar file1 cria um tarball descompactado 

tar -xvf archive.tar libera um pacote (tar -xvf archive.tar -C /tmp libera o pacote compactado no diretório /tmp)

zip file1.zip file1 cria um arquivo zip 

unzip file1.zip Descompacte um arquivo em formato zip 

rpm -ivh package.rpm instala um pacote rpm 

yum install package_name baixe e instale um pacote rpm 

yum update package_name atualizar um pacote rpm 

yum list lista todos os pacotes instalados no sistema atual 

apt-get install package_name instalar/atualizar um pacote deb 

 

 

 

cat /proc/meminfo verifica o uso da memória 

cat /proc/swaps mostra quais swaps são usados 

cat /proc/version mostra a versão do kernel 

shutdown -h agora desliga o sistema

shutdown -r agora reinicie

 

inicializar um sistema de arquivos 

mkfs /dev/hda1 cria um sistema de arquivos na partição hda1 

fdformat -n /dev/fd0 formata um disquete 

Sistema de arquivos SWAP 
mkswap /dev/hda3 Cria um sistema de arquivos de troca 
swapon /dev/hda3 Habilita um novo sistema de arquivos de troca 
swapon /dev/hda2 /dev/hdb3 Habilita duas partições de troca 

 

Rede - (Ethernet e WIFI sem fio

ifconfig é usado para visualizar e configurar as interfaces de rede de um sistema Linux.
ifconfig eth0 mostra a configuração de uma placa ethernet 

ifconfig eth0 192.168.1.1 máscara de rede 255.255.255.0 endereço IP de controle 

O comando netstat é usado para exibir o status da rede. (netstat -lnp para ver quais portas são abertas pelo sistema)

O comando telnet é usado para login remoto.

 

 

 

referir-se:

https://thinkwon.blog.csdn.net/article/details/104588679

https://www.cnblogs.com/yjd_hycf_space/p/7730690.html

https://thinkwon.blog.csdn.net/article/details/104588679?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2- 3.edu_weight

 

 

 

 

 

 

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/hard_days/article/details/109602228
Recomendado
Clasificación