Como verificar se um shell específico está em uso no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar qual shell está atualmente em uso em um ambiente Linux. Você explorará diferentes métodos para verificar o shell ativo, incluindo o uso do comando echo $SHELL para exibir o shell da sessão atual, examinando o arquivo /etc/passwd para verificar o shell de login padrão de um usuário e inspecionando os processos em execução com o comando ps para identificar o processo do shell.

Ao concluir estas etapas, você obterá habilidades práticas na identificação e compreensão do ambiente do shell, o que é fundamental para a interação eficaz com a linha de comando e a criação de scripts no Linux.

Verificar o shell atual com echo $SHELL

Nesta etapa, você aprenderá como identificar o shell que está usando atualmente no terminal. O shell é o interpretador de linha de comando que processa seus comandos. Diferentes shells têm diferentes recursos e sintaxe, embora muitos comandos básicos funcionem da mesma forma em todos eles.

O ambiente LabEx usa zsh como o shell padrão. Você pode verificar isso verificando o valor da variável de ambiente $SHELL. Variáveis de ambiente são valores dinâmicos que afetam o comportamento dos processos no computador. A variável $SHELL armazena especificamente o caminho para o shell padrão do usuário.

Para exibir o valor da variável $SHELL, use o comando echo seguido pelo nome da variável precedido por um sinal de dólar ($).

Digite o seguinte comando em seu terminal e pressione Enter:

echo $SHELL

Você deve ver uma saída semelhante a esta, indicando que seu shell atual é zsh:

/usr/bin/zsh

Isso confirma que o terminal está atualmente executando o shell zsh, que é a configuração padrão para o seu ambiente LabEx. Entender qual shell você está usando é importante à medida que você avança em sua jornada no Linux, pois alguns recursos ou scripts avançados podem ser específicos para um shell em particular.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar o shell do usuário em /etc/passwd

Na etapa anterior, você usou echo $SHELL para ver o shell que está usando atualmente. Este é o shell que foi iniciado para sua sessão de terminal atual. No entanto, o sistema também mantém um registro do shell de login padrão de cada usuário em um arquivo de configuração.

Este arquivo de configuração é /etc/passwd. Ele contém informações sobre todos os usuários do sistema. Cada linha em /etc/passwd representa uma conta de usuário e é dividida em campos separados por dois pontos (:). O último campo em cada linha especifica o shell de login padrão do usuário.

Para visualizar o conteúdo de /etc/passwd, você pode usar o comando cat. Como estamos interessados apenas na linha para o usuário labex, podemos combinar cat com o comando grep para filtrar a saída. grep é uma ferramenta poderosa para pesquisar padrões de texto em arquivos.

Digite o seguinte comando em seu terminal e pressione Enter:

cat /etc/passwd | grep labex

Vamos detalhar este comando:

  • cat /etc/passwd: Este comando lê o conteúdo do arquivo /etc/passwd e o imprime na saída padrão.
  • |: Este é um pipe. Ele pega a saída do comando à esquerda (cat /etc/passwd) e a envia como entrada para o comando à direita (grep labex).
  • grep labex: Este comando pesquisa a entrada que recebe por linhas contendo a string "labex" e imprime essas linhas.

Você deve ver uma única linha de saída semelhante a esta:

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Esta linha contém várias informações sobre o usuário labex, separadas por dois pontos. Os campos são (em ordem):

  1. Nome de usuário (labex)
  2. Senha (representada por x, o hash da senha real é armazenado em outro lugar por segurança)
  3. ID do usuário (UID) (5000)
  4. ID do grupo (GID) (5000)
  5. Informações do usuário (campo GECOS) (LabEx user,,,)
  6. Diretório home (/home/labex)
  7. Shell de login padrão (/usr/bin/zsh)

O último campo, /usr/bin/zsh, confirma que o shell de login padrão para o usuário labex é de fato zsh, correspondendo ao que você viu com echo $SHELL.

Clique em Continuar para prosseguir.

Inspecionar o processo do shell com ps

Nas etapas anteriores, você identificou seu shell atual usando echo $SHELL e verificou seu shell de login padrão em /etc/passwd. Agora, vamos analisar os processos em execução no sistema para ver o próprio processo do shell.

No Linux, cada programa em execução é um processo. O comando ps (abreviação de "process status" - estado do processo) é usado para visualizar informações sobre os processos em execução no momento.

Para ver os processos associados à sua sessão de terminal atual, você pode usar o comando ps com a opção -f, que fornece uma listagem em formato completo.

Digite o seguinte comando em seu terminal e pressione Enter:

ps -f

Você deve ver uma saída semelhante a esta:

UID          PID    PPID  C STIME TTY          TIME CMD
labex       XXXX    XXXX  0 HH:MM pts/0    00:00:00 zsh
labex       YYYY    XXXX  0 HH:MM pts/0    00:00:00 ps -f

Vamos analisar as colunas:

  • UID: O ID do usuário do proprietário do processo (labex).
  • PID: O ID do processo (Process ID), um número único para cada processo.
  • PPID: O ID do processo pai (Parent Process ID). Este é o PID do processo que iniciou este.
  • C: Utilização da CPU.
  • STIME: O horário em que o processo foi iniciado.
  • TTY: O terminal associado ao processo (pts/0 indica um pseudo-terminal, como o que você está usando).
  • TIME: O tempo cumulativo da CPU usado pelo processo.
  • CMD: O comando que iniciou o processo.

Na saída, você deve ver uma linha com CMD como zsh. Esta linha representa o processo do shell zsh que está executando sua sessão de terminal atual. Você também verá uma linha para o próprio comando ps -f, pois ele também é um processo em execução quando você o executa.

Esta etapa mostra como usar ps para inspecionar os processos em execução e confirmar que seu shell está realmente sendo executado como um processo no sistema.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar qual shell você está usando atualmente no Linux. Você primeiro usou o comando echo $SHELL para exibir o caminho do shell em execução na sua sessão de terminal atual. Isso mostrou que o ambiente LabEx usa zsh por padrão.

Em seguida, você explorou o arquivo /etc/passwd, que armazena informações sobre os usuários do sistema, incluindo seu shell de login padrão. Ao examinar o último campo da entrada do seu usuário neste arquivo, você pode verificar o shell atribuído à sua conta no login. Esses métodos fornecem diferentes maneiras de determinar o shell em uso, seja para a sessão atual ou como o padrão do usuário.