A maioria dos usuários do Linux geralmente não tem conhecimento do funcionamento interno do sistema operacional. Você pode estar executando comandos do Linux no shell por um longo tempo, mas você já se perguntou o que está acontecendo nos bastidores quando você pressiona Digitar?

No final, você terá uma breve compreensão de como o shell processa o comando digitado no Linux.

Processando o Comando

Quando você insere um comando, a primeira coisa que o shell faz é quebrar o comando inteiro em "tokens". O shell irá então procurar por um nome de programa pertencente ao primeiro token na linha de comando.

Se não o encontrar em nenhum dos diretórios do caminho de pesquisa definido em a variável de ambiente $ PATH ou no diretório local com o .\ operador, ou não é um alias de shell ou função shell, o shell apresentará um erro. Se encontrar um comando válido, o shell irá então passar por cada um dos outros tokens e decidir se é uma variável, um parâmetro do shell ou um argumento para o comando.

instagram viewer

Se o shell determinar que é uma variável ou um parâmetro como o ~ operador para o diretório inicial, o shell irá expandi-los ou substituí-los por seus valores originais no comando.

Quando o shell tiver expandido quaisquer parâmetros ou variáveis, ele passará a string de comando para o comando, executando o programa com seus argumentos. O shell não determina se algum argumento é válido. Esse é o trabalho do comando.

Executando o Comando

Quando o shell inicia outro comando, como ele volta para o mesmo prompt que você estava usando antes? A casca faz uma cópia de si mesma, um processo chamado bifurcação. Esta cópia do shell se substitui pelo comando, com todos os argumentos que foram processados ​​anteriormente. Isso é conhecido como "exec" e o processo combinado é conhecido como "fork-and-exec".

Por exemplo, quando você executa o comando ls, o processo shell se bifurcará usando o garfo() método e criar outra instância de shell. Dos dois processos de shell em execução no sistema, o shell adicional executará ls usando o exec () função, transformando-se em uma instância do comando ls.

Enquanto isso, o shell original aguarda a conclusão do comando. É por isso que você pode usar o controle de tarefas para suspender tarefas e executá-las em segundo plano no shell.

Relacionado: O que é um processo no Linux?

Relatando o status de saída

Os comandos do Linux relatam se foram executados com êxito ou não por meio de seu status de saída. Como o nome sugere, os programas relatam seu status de saída quando terminam de ser executados. Eles fazem isso por meio do $? variável de ambiente, que contém o status de saída do último comando de execução.

Por convenção, um status de saída 0 indica uma execução bem-sucedida, enquanto qualquer coisa diferente de 0 geralmente significa um erro. Seu shell também pode indicar um status de saída diferente de zero na linha de comando, dependendo de como seu prompt está configurado.

A captura de tela acima é um exemplo que mostra um prompt Zsh personalizado que mostra um status de saída de erro de 127 devido a um comando que não existe.

Agora você sabe como funcionam os comandos do Linux

Agora que você está ciente de como o shell do Linux processa um comando, bifurca e executa a si mesmo, e como os programas relatam seu status de saída, você pode usar a linha de comando com mais eficácia.

Vários shells do Linux estão disponíveis para os usuários gratuitamente. Embora cada um desempenhe mais ou menos o mesmo trabalho, eles são diferentes em muitos aspectos. Você pode tentar instalar alguns dos shells em seu sistema e decidir por si mesmo qual deles é mais adequado para você.

CompartilhadoTweetO email
Qual shell Linux é o melhor? 5 cascas comuns comparadas

Procurando por uma alternativa ao shell bash do Linux? Aqui está um resumo de qual shell Linux é melhor: tsch, fish, KornShell e Z Shell.

Leia a seguir

Tópicos relacionados
  • Linux
  • Comandos Linux
  • Linux Bash Shell
Sobre o autor
David Delony (57 artigos publicados)

David é um escritor freelance que mora no noroeste do Pacífico, mas originalmente nasceu na área da baía. Ele é um entusiasta da tecnologia desde a infância. Os interesses de David incluem ler, assistir filmes e programas de TV de qualidade, jogos retro e colecionar discos.

Mais de David Delony

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever