Uso Avançado da Linha de Comando — "No princípio, havia Shell"

O Sistema de Arquivos do Linux

Uma parte importante da compreensão do Linux é saber como navegar pelo sistema de arquivos.

O Linux é configurado usando arquivos armazenados em diretórios específicos (/etc), os binários dos programas estão localizados em diretórios (/usr/bin, etc.) e até mesmo o acesso a dispositivos como discos rígidos, adaptadores de rede, etc., é fornecido por objetos semelhantes a arquivos em um diretório (/dev). O Linux tem isso em comum com a maioria dos sistemas operacionais do tipo UNIX.

A lista a seguir fornece uma visão geral dos diretórios que você provavelmente usará:

  • /home: como o nome sugere, é aqui que seus arquivos e configurações de usuário residem. Os dados armazenados aqui ficam em um subdiretório que normalmente tem o mesmo nome do seu login, como /home/meuusuario.

  • Cada usuário tem seu próprio subdiretório em /home. As permissões desses diretórios home no Fedora são definidas de forma que nenhum usuário possa visualizar os dados de outro usuário (exceto usuários com direitos de administrador que têm acesso a todos os diretórios).

  • /etc: sua configuração global do sistema é armazenada aqui. Estamos falando sobre configuração de rede, como os discos rígidos são "montados" no sistema de arquivos, o nome do seu computador e muito mais.

Embora o Fedora KDE Plasma ajude você a configurar seu computador usando a interface gráfica do usuário das Configurações do Sistema, você pode optar por editar a configuração em /etc manualmente usando um editor de texto.

Para saber mais sobre o sistema de arquivos Linux, consulte o Filesystem Hierarchy Standard da The Linux Foundation. Ele lista os diretórios do sistema encontrados em seu computador e explica sua finalidade.

O Emulador de Terminal e o Shell

Paralelamente à interface gráfica dos ambientes de desktop, existe a linha de comando. Para exibir e usar corretamente a linha de comando em um ambiente de desktop, dois componentes são necessários:

  • Emulador de Terminal: um programa que permite interagir com o terminal…​

  • Shell: o processador de comandos para a linha de comando.

O emulador de terminal lida com a entrada de dados do teclado no shell e também com a saída gerada pelo shell, exibindo-a corretamente em uma janela do programa.

Ao usar o shell, você desbloqueia toda a gama e o poder dos comandos do Linux.

Os comandos do shell podem:

  • navegar pelo sistema de arquivos

  • copiar, mover e excluir arquivos

  • editar arquivos

  • configurar seu computador

  • exibir informações

  • instalar e remover software

  • conectar-se a outros computadores

Para usar o shell, abra o Iniciador de Aplicativos, navegue até "Sistema" e clique em "Konsole". O Konsole é o emulador de terminal padrão que acompanha o KDE Plasma.

O comando para aprender comandos é man. Ele permite exibir páginas de manual (man pages) da maioria dos comandos disponíveis. Para abrir a página de manual do comando ls, você deve executar:

$ man ls

Execute o comando e aprenda o que ls faz — ou pelo menos aprenda as opções que você pode usar com ls.

Você pode rolar a página de manual com a roda do mouse, as setas ou as teclas Page Up/Page Down. Para sair do visualizador de páginas de manual, pressione q.

O shell padrão no Fedora é Bash. No entanto, existem muitos outros shells também.

Aqui está uma lista de comandos que recomendamos que você explore para navegar pelo sistema de arquivos do seu computador:

  • ls

  • cd

  • cp

  • mv

  • rm (Cuidado!)

  • cat

  • less

Leia a página de manual de cada comando antes de usá-lo!

Existem dois editores principais que a maioria das pessoas usa:

As páginas iniciais de ambos os editores possuem seções de documentação e sugerimos que você se familiarize com um deles para poder editar arquivos no terminal.

O shell É poderoso. Você tem controle total sobre o seu sistema. Isso inclui o poder de excluir seus arquivos ou danificar o sistema.

Mas não tenha medo, apenas esteja ciente.

Entenda o que um comando faz antes de usá-lo. Não copie e cole instruções da internet ou de IAs sem saber o que elas farão. Ser capaz de trabalhar no terminal é essencial para lidar com fluxos de trabalho avançados.

Se você quiser testar comandos do shell, mas não se sentir seguro, pegue o pendrive que você usou para instalar o Fedora, inicialize o sistema live e explore, ou visite [webminal]. Você não danificará sua instalação, contanto que não monte (com mount) seu disco rígido. Execute man mount se quiser saber do que estamos falando.

O que é sudo?

sudo significa "substitute user and do" (em português, "substituir usuário e executar"). Anedoticamente, também significa "superuser do" (em português, "superusuário executar").

Executar qualquer comando com o prefixo sudo será executado como superusuário, também conhecido como conta 'root'. Somente administradores podem executar sudo. Isso impede que usuários comuns executem comandos que possam danificar o sistema.

Comandos que podem alterar o sistema permanentemente geralmente exigem sudo. Se você executar um comando e o shell informar "este comando deve ser executado como root", você precisa prefixá-lo com 'sudo' para usá-lo. Antes de fazer isso, pense no que está fazendo.

Tenha cuidado ao copiar e colar comandos da internet ou de inteligência artificial que começam com sudo. É possível adicionar código malicioso ao seu sistema Linux. Não cole código que você não entenda.

Consulte man sudo para saber mais.

Gerenciamento de pacotes pela linha de comando

Para mostrar como instalar novos softwares pela linha de comando, daremos as mesmas instruções que usamos para instalar os mesmos jogos na seção Jogos acima — mas desta vez, em vez de usar o Discover, usaremos a linha de comando do Konsole.

Como a instalação de pacotes é uma operação do sistema que só pode ser executada por administradores, você usará o sudo.

Introdução ao dnf

dnf significa "dandified yum" (em português, "yum sofisticado"). Não pergunte por quê. yum é o gerenciador de pacotes antigo de outra distribuição Linux, o Red Hat.

Um gerenciador de pacotes é um software que instala, gerencia, atualiza e remove outros softwares.

Os comandos essenciais do dnf são:

  • install

  • upgrade

  • remove

Se você quiser se aprofundar no dnf, Comandos DNF é bastante avançado.

Instalando software via linha de comando

$ sudo dnf install <nome_do_software>

Exemplo, para instalar:

$ sudo dnf install xeyes

e para remover, por exemplo:

$ sudo dnf remove xeyes

Instalando jogos com a linha de comando

Supertuxkart:

$ sudo dnf install supertuxkart

Oad:

$ sudo dnf install 0ad

Luanti:

$ sudo dnf install luanti

Xonotic:

$ sudo dnf install xonotic

Atualizando Fedora pela linha de comando

$ sudo dnf upgrade

Visualizando processos no shell

Cada programa ou script em execução no Linux é chamado de processo. Um processo possui diversas propriedades, entre elas:

  • um ID de processo, o PID

  • um proprietário

Quando o sistema é inicializado, o primeiro processo a ser executado é o "systemd". Portanto, ele tem o PID "1". Todos os processos são iniciados por um processo pai. Você perceberá mais adiante que a maioria dos processos do sistema que ajudam a manter seu computador funcionando tem "1" (systemd) como processo pai. Uma das funções do systemd é iniciar todos os processos necessários para o funcionamento do computador.

Para ver quais processos estão em execução, execute o comando ps no terminal após ler a página do manual (man page). Uma maneira muito comum de executar o ps é:

$ ps -elf

que exibirá informações detalhadas sobre os processos.

Outro comando útil para visualizar os processos com suas respectivas estatísticas é o top. Ele mostrará o uso de CPU e memória, bem como os PIDs, os nomes dos processos e seus proprietários. Uma versão mais moderna do top é o btop, que precisa ser instalado digitando:

$ sudo dnf install btop

Execute o btop no Konsole e explore as informações que ele fornece.

Como gerenciar processos

O Linux tem suas falhas, assim como os programas. Pode acontecer de programas travarem e precisarem ser encerrados. Você pode fazer isso:

  • encontrando o PID usando ps ou top

  • executando o comando kill

Apesar do nome, o kill não serve apenas para matar um processo. Ele envia um sinal para o processo. Digamos que o programa que não responde mais tenha o PID "123". Você primeiro tentaria enviar o sinal SIGHUP para encerrá-lo:

$ kill -1 123

Note que "-1" é sinônimo de "-SIGHUP". Verifique novamente usando ps — se o processo ainda estiver em execução, é hora de usar a solução drástica: SIGKILL:

$ kill -9 123