Acessar a Linha de Comando no Red Hat Enterprise Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você iniciará uma jornada fundamental pelo mundo das operações de linha de comando do Linux, especificamente em um ambiente Red Hat Enterprise Linux (RHEL). Você obterá experiência prática com comandos essenciais para identificar informações de usuários e do sistema, gerenciar senhas de usuários e inspecionar vários tipos de arquivos.

Por meio de exercícios práticos, você aprenderá a visualizar o conteúdo de arquivos usando cat, head e tail, contar estatísticas de arquivos e navegar eficientemente pelo seu histórico de comandos. Além disso, você dominará atalhos cruciais de edição da linha de comando, aprimorando sua produtividade e proficiência no gerenciamento de sistemas Linux.

Identificar o Usuário e o Horário do Sistema

Neste passo, você aprenderá a identificar o usuário atual conectado ao sistema e a exibir a data e a hora atuais do sistema usando comandos básicos do Linux. Compreender esses comandos fundamentais é crucial para navegar e gerenciar qualquer ambiente Linux.

Primeiro, vamos descobrir com qual usuário você está conectado no momento. O comando whoami é usado para essa finalidade. Ele exibe o nome de usuário efetivo do usuário atual.

Digite o seguinte comando no seu terminal:

whoami

Captura de tela da saída do comando whoami

Você deverá ver labex como saída, indicando que você está conectado como o usuário labex.

labex

Em seguida, exploraremos o comando date. Este comando é usado para exibir ou definir a data e a hora do sistema. Quando usado sem nenhuma opção, ele exibe a data e a hora atuais em um formato padrão.

Execute o comando date:

date

A saída mostrará o dia da semana atual, mês, dia do mês, hora (HH:MM:SS), fuso horário e ano. A saída exata varia dependendo de quando você executa o comando.

Mon Jul 22 10:30:45 AM UTC 2024

O comando date é muito flexível e permite formatar a saída de várias maneiras usando especificadores de formato. Por exemplo, para exibir apenas a hora atual no formato de 24 horas (HH:MM), você pode usar +%R.

Tente exibir apenas a hora:

date +%R

A saída será semelhante a:

10:30

Para exibir apenas a data atual no formato MM/DD/AAAA, você pode usar +%x.

Tente exibir apenas a data:

date +%x

A saída será semelhante a:

07/22/2024

Por fim, você pode executar vários comandos em uma única linha separando-os com um ponto e vírgula (;). Isso pode ser útil para executar rapidamente uma sequência de comandos.

Vamos tentar executar whoami e date na mesma linha:

whoami; date

Você verá a saída de ambos os comandos, um após o outro:

labex
Mon Jul 22 10:30:45 AM UTC 2024

Captura de tela da saída dos comandos whoami e date

Gerenciar Senhas de Usuário e Visualizar Tipos de Arquivo

Neste passo, você aprenderá como alterar a senha de um usuário e como determinar o tipo de um arquivo usando o comando file. Compreender os tipos de arquivo é essencial para trabalhar com vários formatos de dados e executáveis no Linux.

Primeiro, vamos observar como uma alteração de senha se inicia, sem alterar a senha padrão do laboratório. O comando passwd é usado para alterar senhas de usuários. Para o usuário labex, ele solicita a senha atual e, em seguida, uma nova senha. A senha atual é labex.

Digite o seguinte comando no seu terminal:

passwd

No prompt de senha atual, digite labex e pressione Enter. Quando o prompt de nova senha aparecer, pressione Ctrl+C para cancelar o comando e retornar ao shell. Não digite uma nova senha.

Changing password for user labex.
Current password:
New password: ^C

Nota: Quando você digita senhas no Linux, nada aparece na tela por motivos de segurança. Este é um comportamento normal e não significa que a máquina virtual (VM) não esteja respondendo. O sistema ainda está recebendo sua entrada, mesmo que você não consiga ver os caracteres sendo digitados.

Em seguida, exploraremos o comando file. Este comando determina o tipo de um arquivo. É muito útil para entender que tipo de dados um arquivo contém, especialmente quando a extensão do arquivo está faltando ou é enganosa.

Vamos examinar o tipo do arquivo /etc/passwd. Este arquivo contém informações sobre todas as contas de usuário no sistema.

file /etc/passwd

A saída indicará que /etc/passwd é um arquivo de texto ASCII.

/etc/passwd: ASCII text

Agora, vamos verificar o tipo de um arquivo executável, como /bin/bash, que é o programa de shell que você está usando no momento.

file /bin/bash

A saída mostrará que /bin/bash é um arquivo executável, junto com detalhes sobre sua arquitetura e outras propriedades.

/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=<omitted>, for GNU/Linux <omitted>, stripped

Por fim, vamos determinar o tipo de um diretório. Usaremos o diretório /home como exemplo.

file /home

A saída simplesmente informará que /home é um diretório.

/home: directory

Estes exemplos demonstram como o comando file pode ajudá-lo a identificar rapidamente a natureza de diferentes arquivos e diretórios no seu sistema Linux.

Inspecionar o Conteúdo de Arquivos com cat, head e tail

Neste passo, você aprenderá como inspecionar o conteúdo de arquivos de texto usando três comandos essenciais do Linux: cat, head e tail. Esses comandos são fundamentais para visualizar o conteúdo de arquivos, especialmente arquivos de configuração e arquivos de log.

Primeiro, vamos usar o comando cat. O comando cat (abreviação de concatenate / concatenar) é usado principalmente para exibir o conteúdo de arquivos. Ele também pode ser usado para combinar vários arquivos em um só.

Vamos visualizar todo o conteúdo do arquivo /etc/passwd. Este arquivo contém informações de contas de usuário.

cat /etc/passwd

Você verá o conteúdo completo do arquivo /etc/passwd impresso no seu terminal. A saída será extensa, mostrando todas as entradas de usuários.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...output omitted...

Agora, vamos criar dois arquivos de texto simples no seu diretório ~/project para demonstrar o uso do cat com vários arquivos.

Crie o arquivo file1.txt:

echo "Hello World!!" > ~/project/file1.txt

Crie o arquivo file2.txt:

echo "Introduction to Linux commands." > ~/project/file2.txt

Agora, use o cat para exibir o conteúdo de ambos os arquivos:

cat ~/project/file1.txt ~/project/file2.txt

A saída mostrará o conteúdo de file1.txt seguido por file2.txt.

Hello World!!
Introduction to Linux commands.

Em seguida, usaremos o comando head. O comando head exibe as primeiras linhas de um arquivo. Por padrão, ele mostra as primeiras 10 linhas.

Vamos visualizar as primeiras 10 linhas de /etc/passwd:

head /etc/passwd

Você verá as primeiras 10 linhas do arquivo /etc/passwd.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

Você pode especificar o número de linhas a serem exibidas usando a opção -n. Por exemplo, para visualizar as primeiras 3 linhas:

head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

Por fim, vamos usar o comando tail. O comando tail exibe as últimas linhas de um arquivo. Por padrão, ele também mostra as últimas 10 linhas.

Vamos visualizar as últimas 10 linhas de /etc/passwd:

tail /etc/passwd

Você verá as últimas 10 linhas do arquivo /etc/passwd.

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:998:996:systemd Resolver:/:/sbin/nologin
systemd-network:x:997:995:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System Message Bus:/:/sbin/nologin
polkitd:x:996:994:User for polkitd:/:/sbin/nologin
unbound:x:995:993:Unbound DNS resolver:/:/sbin/nologin
tss:x:59:59:TPM software stack:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

Assim como o head, você pode especificar o número de linhas a serem exibidas usando a opção -n. Por exemplo, para visualizar as últimas 3 linhas:

tail -n 3 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

Esses comandos são inestimáveis para examinar rapidamente o conteúdo de arquivos sem abri-los em um editor de texto, o que é especialmente útil para arquivos grandes ou quando você precisa apenas verificar partes específicas.

Contar Estatísticas de Arquivos e Usar o Histórico de Comandos

Neste passo, você aprenderá como usar o comando wc para contar linhas, palavras e caracteres em arquivos, e como usar efetivamente o recurso de histórico de comandos no seu terminal. Gerenciar o histórico de comandos é crucial para a eficiência e para relembrar comandos executados anteriormente.

Primeiro, vamos explorar o comando wc (word count / contagem de palavras). Este comando é usado para contar o número de linhas, palavras e caracteres em um arquivo.

Vamos contar as linhas, palavras e caracteres no arquivo /etc/passwd:

wc /etc/passwd

A saída mostrará três números seguidos pelo nome do arquivo: linhas, palavras e caracteres. Os números exatos podem variar ligeiramente dependendo da configuração do seu sistema.

41   98 2338 /etc/passwd

Você pode usar opções para exibir apenas contagens específicas:

  • -l para linhas (lines)
  • -w para palavras (words)
  • -c para caracteres (characters)

Vamos contar apenas as linhas em /etc/passwd e /etc/group (que contém informações sobre grupos de usuários). Podemos fazer isso em uma única linha usando um ponto e vírgula.

wc -l /etc/passwd
wc -l /etc/group

Você verá a contagem de linhas para cada arquivo:

41 /etc/passwd
63 /etc/group

Agora, vamos contar apenas os caracteres em /etc/group e /etc/hosts (que mapeia nomes de host para endereços IP).

wc -c /etc/group /etc/hosts

A saída mostrará a contagem de caracteres para cada arquivo e uma contagem total.

883 /etc/group
114 /etc/hosts
997 total

Em seguida, aprenderemos sobre o histórico de comandos. O seu shell mantém um registro de todos os comandos que você executou. Isso é incrivelmente útil para reexecutar comandos ou lembrar o que você fez anteriormente.

Para exibir o seu histórico de comandos, use o comando history:

history

Você verá uma lista numerada de todos os comandos que inseriu na sua sessão atual e em sessões anteriores. A saída varia muito dependendo da sua atividade.

...output omitted...
   23  clear
   24  whoami
   25  date
   26  file /etc/passwd
   27  cat /etc/passwd
   28  head /etc/passwd
   29  tail /etc/passwd
   30  wc /etc/passwd
   31  history

Você pode reexecutar um comando do seu histórico usando o ponto de exclamação (!) seguido pelo número do comando ou por uma string.

Por exemplo, para reexecutar o comando de número 26 (que era file /etc/passwd no exemplo acima, mas será diferente para você), localize o número dele na saída do seu history e use-o:

!26 ## Substitua 26 pelo número real de 'file /etc/passwd' no seu histórico

O shell exibirá primeiro o comando que está prestes a executar e, em seguida, a sua saída:

file /etc/passwd
/etc/passwd: ASCII text

Você também pode reexecutar o comando mais recente que começa com uma determinada string. Por exemplo, para executar novamente o último comando que começou com wc:

!wc

Isso executará o último comando wc que você rodou.

wc -c /etc/group /etc/hosts
883 /etc/group
114 /etc/hosts
997 total

Esses recursos de histórico podem acelerar significativamente o seu fluxo de trabalho, permitindo que você recupere e reexecute rapidamente comandos complexos sem precisar redigitá-los.

Praticar Atalhos de Edição da Linha de Comando

Neste passo, você aprenderá e praticará atalhos úteis de edição na linha de comando. Esses atalhos podem melhorar significativamente a sua eficiência ao digitar e modificar comandos no terminal, permitindo navegar e editar textos sem precisar recorrer constantemente ao mouse.

Primeiro, vamos entender como escrever um comando longo em várias linhas. Isso pode melhorar a legibilidade de comandos complexos. Você pode usar uma barra invertida (\) no final de uma linha para indicar que o comando continua na linha seguinte.

Vamos tentar exibir as primeiras 3 linhas de dois arquivos de dicionário usando um comando multilinha. Esses arquivos são normalmente encontrados em sistemas Linux e contêm listas de palavras.

head -n 3 \
  /home/labex/project/words \
  /home/labex/project/linux.words

Quando você pressiona Enter após a primeira linha, o seu terminal exibe um prompt > (ou similar) indicando que está aguardando o restante do comando. Digite as partes restantes e pressione Enter novamente.

==> /home/labex/project/words <==
1080
10-point
10th

==> /home/labex/project/linux.words <==
1080
10-point
10th

Agora, vamos praticar alguns atalhos de edição de linha de comando. Esses atalhos funcionam na maioria dos terminais Linux modernos (como Bash ou Zsh).

Digite um comando longo, mas não pressione Enter ainda:

echo "This is a very long command that we will edit using shortcuts."
  • Ctrl+A: Vai para o início da linha de comando.
    • Digite o comando acima e pressione Ctrl+A. O cursor irá para o início da linha.
  • Ctrl+E: Vai para o final da linha de comando.
    • Após pressionar Ctrl+A, pressione Ctrl+E. O cursor voltará para o final da linha.
  • Ctrl+U: Apaga do cursor até o início da linha de comando.
    • Digite o comando novamente. Posicione o cursor em algum lugar no meio da linha (por exemplo, após "very"). Pressione Ctrl+U. O texto do cursor até o início será excluído.
  • Ctrl+K: Apaga do cursor até o final da linha de comando.
    • Digite o comando novamente. Posicione o cursor em algum lugar no meio da linha (por exemplo, após "very"). Pressione Ctrl+K. O texto do cursor até o final será excluído.
  • Ctrl+SetaParaEsquerda (ou Alt+B): Vai para o início da palavra anterior na linha de comando.
    • Digite o comando novamente. Posicione o cursor no final da linha. Pressione Ctrl+SetaParaEsquerda repetidamente para mover palavra por palavra para a esquerda.
  • Ctrl+SetaParaDireita (ou Alt+F): Vai para o final da próxima palavra na linha de comando.
    • Posicione o cursor no início da linha. Pressione Ctrl+SetaParaDireita repetidamente para mover palavra por palavra para a direita.
  • Ctrl+R: Pesquisa no histórico de comandos por um padrão.
    • Pressione Ctrl+R. Um prompt (reverse-i-search) aparecerá. Comece a digitar parte de um comando executado anteriormente, por exemplo, date. O terminal mostrará o comando mais recente do seu histórico correspondente. Continue pressionando Ctrl+R para alternar entre correspondências mais antigas. Pressione Enter para executar o comando encontrado ou as setas Esquerda/Direita para editá-lo.

Esses atalhos acelerarão significativamente a sua interação com a linha de comando assim que você se habituar a eles. Pratique-os regularmente para criar memória muscular.

Resumo

Neste laboratório, você aprendeu comandos fundamentais do Linux para identificar informações de usuários e do sistema. Você praticou o uso de whoami para determinar o usuário conectado atual e date para exibir a data e a hora atuais do sistema, incluindo várias opções de formatação, como +%R para a hora e +%x para a data. Além disso, você descobriu como executar vários comandos em uma única linha usando um ponto e vírgula, aumentando a eficiência no ambiente de linha de comando.