> ## Documentation Index
> Fetch the complete documentation index at: https://docs.saninternet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comandos úteis SSH

> Confira uma lista de comandos úteis SSH, e seus respectivos atributos, para você utilizar no seu dia a dia em seu servidor.

Exibe as informações relacionadas ao disco do servidor:

```
df <atributos>
```

**-h** : exibe os dados para leitura humana, ou seja, utilizando KB, MB, GB.

***

Exibe as informações relacionadas ao tamanho de um arquivo/diretório:

```
du <atributos> <arquivo>
```

**-h** : exibe os dados para leitura humana, ou seja, utilizando KB, MB, GB.

**-s** : exibe apenas o total de cada argumento, ou seja, caso utilizado em uma pasta, exibe o somatório de todos os arquivos presentes.

***

Exibe os arquivos presentes no diretório desejado, caso não seja informado um, será relativo ao diretório atual:

```
ls <atributos> <diretório>
```

**-h** : exibe os dados para leitura humana, ou seja, utilizando KB, MB, GB.

**-l** : exibe os arquivos em forma de lista, ou seja, verticalmente.

**-a** : exibe os arquivos ocultos.

***

Remove o arquivo desejado:

```
rm <atributos> <arquivo>
```

**-r** : remove em recursividade, ou seja, utilizado para remover diretórios, pois possuem arquivos-filhos.

**-f** : força a remoção.

***

Cria um cópia do arquivo desejado:

```
cp <atributos> <origem> <destino>
```

**-a** : mantém as propriedades - permissão e usuário - do arquivo original.

***

Cria um único novo diretório:

```
mkdir <atributos> <nome>
```

**-p** : cria toda uma hierarquia de novos diretórios, se necessário.

***

Realiza uma busca e exibe em destaque as partes desejadas:

```
grep <arquivo/trecho>
```

**-i** : insensível a capitalização, ou seja, procura tanto por maiúsculas ou minúsculas.

**-r** : procura recursivamente, ou seja, procura em trechos de arquivos.

**-e** : ativa a procura utilizando expressão regular.

***

Compactação e Descompactação de arquivos:

```
tar <arquivo compactado> <diretório/arquivos para compactar>
```

**-z** : zip.

**-x** : extrair.

**-v** : visualizar execução, ou seja, serão exibidos na tela todos os arquivos que estiverem sendo compactados/descompactados.

**-c** : comprimir.

**-f** : força a execução da compactação/descompactação.

***

Utilizado para realizar o download com uma URL:

```
wget <atributos> <endereço>
```

**-4** : utilização do ipv4 para realizar a conexão.

***

Compacta arquivos:

```
zip <arquivo compactado> <diretório/arquivos para compactar>
```

***

Extrai arquivos compactados:

```
unzip <arquivo para descompactar>
```

***

Lista processos:

```
ps auxf
```

***

Verificar processos rodando:

```
htop
```

***

Exibe a história de comandos executados pelo usuário em questão:

```
history
```

***

Abre um arquivo em modo de edição de texto:

```
vi <arquivo>
```

***

Exibe o arquivo na tela:

```
cat <arquivo>
```

***

Cria um novo arquivo, caso o mesmo não exista:

```
touch <arquivo>
```

***

Comando utilizado para alterar o diretório ao qual encontra-se:

```
cd <destino>
```

***

Limpa a tela de comandos:

```
clear
```

***

Utilizado para localizar arquivos ou trechos de arquivos:

```
find
```

***

Move o arquivo desejado da origem para o destino:

```
mv <origem> <destino>
```

***

## Exemplos para esclarecer melhor a utilização dos comandos

Estou em um diretório e desejo saber como posso fazer para listar todos os arquivos e pastas existentes, para isso posso utilizar simplesmente o comando “**ls**”, porém, ao realizar o comando notei que meu arquivo “**.htaccess**” não estava lá, mas por quê?

Pelo fato do arquivo iniciar seu nome com um ponto(.) ele é considerado um arquivo oculto, ou seja, para visualizá-lo devo utilizar o comando “**ls -a**”.

Utilizei o comando “**df**” e notei que o meu disco está quase cheio, preciso liberar espaço urgentemente para que não ocorram falhas em meu servidor, mas como saber qual arquivo está consumindo mais espaço em disco, tentei utilizar o comando “**ls -lha**” porém ele não me informou a quantidade total das pastas, apenas o tamanho da pasta em si.

A melhor forma de encontrar qual arquivo/pasta está utilizando mais espaço em meu servidor é utilizar o comando “\*\*du -hs \*\*\*”, assim dentre todos os arquivos e pastas presentes terei um total de uso de disco utilizado pelos mesmos.

Precisa alterar algumas configurações em um arquivo de código, mas caso dê errado precisará retornar ao arquivo anterior e não sabe como?

Em casos assim o recomendado é que você esteja clonando o arquivo que está operando, pode usar o seguinte comando “**cp -a arquivoatual arquivoclone**”, ai caso ocorra qualquer problema e seja necessário voltar a versão anterior basta inverter o comando “**cp -a arquivoclone arquivoatual**”.

Cada situação é única e necessitará de uma ordenação e comandos específicos. Se você dominar esses comandos básicos você poderá ir muito mais além, cada vez entendendo-os melhor e dominando ainda mais seu ambiente.

## Dicas

A dica de ouro vai para utilização do comando “**help**”, tanto como atributo de um comando, por exemplo “**ls --help**”, onde serão exibidas as dicas sobre o comando “**ls**”, quanto utilizá-lo puramente, ou seja, “**help**”, o qual exibirá uma listagem de todos os comandos disponíveis para utilização.

Existe apenas uma maneira de realmente aprender os comandos, e explorá-los ao máximo, e é tentando e testando.

Por mais que um comando tenha dado errado, ou não tenha ocorrido exatamente como você esperava, você não deve desistir de tentar.

Testar coisas novas pode ser difícil, e talvez arriscado dependendo do ambiente que você está realizando os testes, por isso recomendo que tenha cautela, realize pesquisas antes de executar o comando, e acredito que as seções abaixo possam lhe dar mais segurança.

## Ferramentas para entender comandos

## ExplainShell

<img src="https://mintcdn.com/san-internet/eCvApd_bFdUKoVd5/wp-content/uploads/2022/02/comandos-uteis-ssh-1.png?fit=max&auto=format&n=eCvApd_bFdUKoVd5&q=85&s=abd4151f93de76d526729fb7b2c862c3" alt="Comandos úteis SSH - passo 1" width="971" height="588" data-path="wp-content/uploads/2022/02/comandos-uteis-ssh-1.png" />

Uma boa dica pra quem quer entender e aprender mais sobre comandos shell é estar utilizando a ferramenta online [explainshell.com](https://explainshell.com), que demonstra uma explicação completa do comando informado.

Para exemplificar como a ferramenta funciona, informei o comando “**ls -lha**”, e a ferramenta me descreveu cada parte, do comando à todos os atributos informados.

Uma questão é que essa ferramenta opera apenas em Inglês, então caso você não domine o idioma pode acabar por se confundir ainda mais.

## Cygwin

<img src="https://mintcdn.com/san-internet/eCvApd_bFdUKoVd5/wp-content/uploads/2022/02/comandos-uteis-ssh-2.png?fit=max&auto=format&n=eCvApd_bFdUKoVd5&q=85&s=9c969070ec5231c4084e1a045312eab5" alt="Comandos úteis SSH - passo 2" width="675" height="341" data-path="wp-content/uploads/2022/02/comandos-uteis-ssh-2.png" />

Para você que utiliza Windows e deseja aprender mais sobre comandos Linux, uma boa dica é estar utilizando o [Cygwin](https://www.cygwin.com/), este programa permite que você possua um terminal Linux em uma máquina que opera com o Sistema Operacional Windows, possibilitando que você execute testes e aprenda sem se preocupar em alterar algo do seu ambiente de produção.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.