# MANUAL TÉCNICO - COMANDOS ESSENCIAIS DE DIAGNÓSTICO E NAVEGAÇÃO

**Código:** ITGSUP 0010/26 | **Classificação:** INTERNO
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}

## 1. HISTÓRICO DE REVISÃO

| Data | Versão | Descrição | Autor |
| :--- | :--- | :--- | :--- |
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |

## 2. OBJETIVO
Padronizar o uso de comandos básicos de terminal para navegação, edição de arquivos e diagnóstico inicial de servidores Linux, cobrindo as distribuições Debian/Ubuntu e RHEL (CentOS/AlmaLinux).

## 3. PRÉ-REQUISITOS
*   [ ] Acesso ao terminal do servidor (via SSH ou Console).
*   [ ] Usuário com permissão básica (ou `sudo` para comandos administrativos).

## 4. DISTRIBUIÇÕES SUPORTADAS
Este manual é validado para:
*   **Debian/Ubuntu:** Ubuntu 24.04, Debian 11/12.
*   **RHEL Family:** AlmaLinux, RockyLinux, CentOS.
*   **Alpine Linux:** Versão 3.15 ou superior.

---

## 5. PASSO A PASSO (EXECUÇÃO)

### Etapa 1: Navegação no Sistema de Arquivos

Use estes comandos para se mover pelos diretórios do servidor.

> ℹ️ **NOTA ALPINE:** No Alpine, o shell padrão é o `ash`, que é muito leve e compatível com a maioria dos comandos `bash`.

| Comando | Descrição | Exemplo |
| :--- | :--- | :--- |
| **`pwd`** | Mostra onde você está (caminho atual). | `pwd` |
| **`ls`** | Lista arquivos na pasta. | `ls -lah` (Lista detalhada e oculta) |
| **`cd`** | Muda de diretório. | `cd /var/log` |
| **`cd ..`** | Volta um nível (pasta anterior). | `cd ..` |
| **`cd ~`** | Vai para a pasta pessoal do usuário no `/home` (ou `/root`). | `cd ~` |

> 🚀 **DICA:** Use a tecla `TAB` para autocompletar nomes de pastas e arquivos.

### Etapa 2: Leitura e Edição de Arquivos

Como ler logs, configs e editar textos.

**Leitura Rápida:**
*   **`cat [arquivo]`**: Exibe o arquivo inteiro na tela.
    *   *Ex:* `cat /etc/os-release` (Mostra a versão do Linux).
*   **`head [arquivo]`**: Mostra as primeiras 10 linhas.
*   **`tail [arquivo]`**: Mostra as últimas 10 linhas.
    *   *Ex:* `tail -f /var/log/syslog` (Acompanha o log em tempo real).
    *   *Alpine:* `tail -f /var/log/messages` (Log padrão do Alpine).

**Editores de Texto:**
Existem basicamente três editores comuns. Escolha o que preferir.

> ⚠️ **ALPINE:** O `nano` não vem instalado por padrão. Use `vi` ou instale com `apk add nano`.

1.  **Nano (Mais fácil):**
    *   **Abrir:** `nano arquivo.txt`
    *   **Salvar:** `Ctrl + O`, depois `Enter`.
    *   **Sair:** `Ctrl + X`.

2.  **Vim / Vi (Padrão e Poderoso):**
    *   **Abrir:** `vim arquivo.txt`
    *   **Inserir Texto:** Aperte `i`.
    *   **Sair do Modo Inserção:** Aperte `Esc`.
    *   **Salvar e Sair:** Aperte `Esc`, digite `:wq` e `Enter`.
    *   **Sair sem Salvar:** Aperte `Esc`, digite `:q!` e `Enter`.

### Etapa 3: Diagnóstico de Recursos (CPU/RAM/Disco)

Verifique se o servidor está lento ou travado.

**1. Disco Cheio? (`df`)**
Use `df -h` para ver o espaço em disco legível (GB/MB).
```bash
df -h
```
> ⚠️ **ATENÇÃO:** Se a partição `/` (root) estiver 100%, o servidor pode parar.

**2. Memória Cheia? (`free`)**
Use `free -h` para ver a RAM usada.
```bash
free -h
```

**3. Processo Travado? (`top` ou `htop`)**
Mostra processos consumindo muita CPU.
*   **`top`**: Pressione `q` para sair.
*   Identifique o **PID** (número do processo) se precisar matá-lo.

**4. Tempo Ligado? (`uptime`)**
Mostra há quanto tempo o servidor está ligado e a carga média (load average).
```bash
uptime
```

### Etapa 4: Teste de Conectividade (`ping`)

Verifique se o servidor alcança a internet ou outro host.

```bash
ping 8.8.8.8 -c 4
```
*   `-c 4`: Envia apenas 4 pacotes (padrão no Windows, mas no Linux o ping é infinito sem isso).

## 6. DADOS TÉCNICOS
| Caminho Importante | Descrição |
| :--- | :--- |
| `/etc/` | Arquivos de configuração do sistema. |
| `/var/log/` | Logs do sistema (auth, syslog, messages). |
| `/home/` | Arquivos dos usuários. |
| `/root/` | Pasta pessoal do administrador (root). |

## 7. VALIDAÇÃO FINAL
- [ ] Consegue navegar entre pastas (`cd`, `ls`)?
- [ ] Consegue criar e editar um arquivo de teste (`nano teste.txt`)?
- [ ] O comando `df -h` mostra espaço livre em disco?
