# Conceitos Básicos GNU/Linux
Os comandos Linux são usados para enviar pedidos ao terminal Linux, também conhecido como Shell. O objetivo do terminal é receber esses comandos, de forma semelhante ao Prompt de comando ou Powershell do Windows e ao Terminal do MacOS, e repassá-los ao sistema operacional, executando as ações solicitadas. Por meio do terminal, é possível realizar modificações no sistema de forma semelhante ao que fazemos utilizando a interface gráfica, porém com mais agilidade e poderes. Contudo, vale lembrar que você deve tomar cuidado ao executar comandos no terminal, já que ele pode realizar modificações drásticas no sistema.
# Caminho absoluto e relativo
Um caminho absoluto é baseado na raiz da árvore e começa com /, por exemplo: /home/usuario/<pasta>/<arquivo>. Ele permanece válido em qualquer contexto (desde que ainda esteja no mesmo sistema da mesma máquina).
Um caminho relativo é a priori relativo ao diretório atual onde o usuário está localizado. Um caminho que começa com algo diferente de / ou ~ é um caminho relativo. Esta noção de posicionamento depende do contexto, mas no Linux você geralmente é encontrado por padrão em seu diretório pessoal, que é /home/<nome do usuário>. Em um terminal, você pode navegar de um diretório para outro com o comando cd.
# SSH
SSH (Secure Socket Shell) é um protocolo de rede que permite aos usuários acessar e gerenciar servidores pela internet.
## 1. Comando pwd
Use o comando **pwd** para visualizar o caminho do diretório atual (da pasta) em que você está. O comando vai retornar um caminho completo (cheio), que é basicamente um caminho que começa com uma barra inclinada (/). Um exemplo de um caminho completo é /home/username.
```
pwd
```
## 2. Comando cd
Para navegar pelo filesystem do Linux, use o comando **cd**. Ele requer ou um caminho completo ou o nome de um diretório, dependendo do diretório atual em que você estiver.
Vamos dizer que você esteja em /home/username/Documents e quer ir para Photos, um subdiretório de Documents. Para fazer isso, simplesmente digite cd Photos.
Outro cenário em que você quer mudar completamente de diretório, digamos, para /home/username/Movies. Nesse caso, você tem que digitar cd seguido pelo caminho absoluto do diretório.
```
Navegar pelos diretórios:
cd "home/documentos1/documentos2"
Voltar para diretório anterior:
cd ..
cd "home/diretorio1"
```
## 3. Comando ls
O comando ls é usado para visualizar conteúdos em um diretório. Por padrão, esse comando vai mostrar os conteúdos apenas do diretório atual em que você estiver.
```
Visualizar conteúdos no diretório documentos2:
ls
```
## 4. Comando mkdir
Use o comando mkdir para criar um novo diretório
```
mkdir "nome_diretorio"
```
## 5. Comando rmdir
Se você precisa apagar (deletar) um diretório, use o comando rmdir. Porém, o rdmir só permite que você apague diretórios vazios (sem conteúdos).
```
rmdir "nomeDiretorio"
```
## 6. Comando RM
O comando rmdir é ótimo para remover diretórios não usados e vazios de forma segura. Se você quer remover arquivos ou diretórios que contém arquivos, você deve usar o comando rm.
Nota: Tenha muito cuidado com este comando e sempre verifique duas vezes em qual diretório você está. Isso irá deletar tudo e não há opção para desfazer.
```
rm article.txt
rm -rf Dir1
```
## 7. Comando touch
O comando touch permite criar novos arquivos em branco através de uma linha de comando.
```
touch "arquivo1"
```
## Comando ping
Use o comando ping para verificar o status da conexão do seu servidor. O comando vai checar se você está ou não conectado e também medir o tempo de resposta.
```
ping www.globo.com
```
## Comando history
Quando você já estiver familiarizado com o Linux, vai perceber que você pode executar centenas de comandos todos os dias. Por exemplo, o comando history (histórico) é particularmente útil se você quer rever quais comandos já usou antes.
```
history
```
## Comando cat
O cat (abreviação para concatenar) é um dos comandos Linux mais usados. Ele é usado para visualizar o conteúdo de um arquivo na saída.
```
cat "nome_arquivo
```
## Comando cp
Use o comando cp para copiar arquivo do diretório atual em que você estiver.
```
cp "arquivo1 /home/diretorio1"
```
## Comando mv
O usuário habitual do comando mv é mover arquivos, ainda que ele possa também ser usado para renomear arquivos.
```
mv "arquivo1 /home/diretorio1"
```
Já para renomear arquivos.
```
mv "arquivo1 arquivo2"
```
## Comando uname
O comando uname, que significa Unix Name, vai mostrar informações detalhadas sobre seu sistema Linux. Isso inclui o nome da máquina, do sistema operacional, do kernel e assim por diante.
```
uname
```
## Comando top
Equivalente ao gerenciador de Tarefas do Windows, o comando top vai mostrar uma lista de processos que estão em execução e o quanto de CPU cada processo usa. É muito útil para monitorar o uso de espaço no sistema, especialmente para saber qual processo deve ser encerrado porque ele consome muitos recursos.
```
top
```
## Comando wget
Baixar arquivos da internet com a ajuda do comando wget. Para fazer isso, simplesmente digite wget seguido pelo link de download do arquivo.
```
wget "link_arquivo"
```
## Comando ps
comando ps em Linux nos permite obter informações sobre o estado dos processos que estão sendo executados no momento. Estas informações são visualizadas na saída padrão do sistema. É uma ferramenta poderosa para o administrador do sistema, que com ele pode obter muitas informações valiosas para compreender o que está ocorrendo com a máquina em um dado instante.
```
ps -axu
```
## Comando echo
echo é um dos comandos embutidos mais comumente usados para Linux bash e shells C, que normalmente são usados em linguagem de script e arquivos em lote para exibir uma linha de texto / string na saída padrão ou em um arquivo.
```
echo
```
## Comando sleep
Podemos forçar a espera de um certo período de tempo entre a execução de comandos no Linux usando o comando sleep. Este é um comando muito útil em scripts do shell, por exemplo, nos quais podem haver diversas tarefas que devam ser executadas após um certo período de tempo especificado.
```
sleep "10"
```
## Criar usuários no linux
```
sudo adduser nome
```
## Excluir usuário
```
sudo userdel nome
```
## Adicionar grupo
```
sudo addgroup rh
```
## Deletar Grupo
```
sudo delgroup rh
```
## 8. Pesquisa sobre Estrutura De Diretórios Do Linux
```
1.Pesquise sobre estruturas de diretórios no linux.
2.Inicializar a máquina Centos.
3.Dentro de cada diretório criar um arquivo de texto explicando sobre o diretório.
Exemplo: Dentro do diretório /etc, criar um arquivo com nome “pesquisa-etc”.
Dentro do arquivo deve ter uma explicação com suas palavras referentes aos
diretórios que foram pesquisados.
Observação: É necessário um arquivo para cada diretório.
```
## Configurar placa de rede
Endereço do arquivo de configuração:
* /etc/sysconfig/network-scripts
* Editar arquivo "ifcfg-enp0s3"
* /etc/resolv.conf
* /etc/init.d/network restart
```
## Autocompletando nomes de arquivos e pastas
O console pode autocompletar o nome de um arquivo ou pasta para que você economize o teclado.
## Tipos de usuários
Separação de privilégios é algo fundamental para a segurança de qualquer sistema operacional seja ele um servidor ou um computador pessoal. O Linux faz este papel muito bem não permitindo que nenhum usuário padrão execute tarefas que podem afetar a segurança do sistema como um todo (com exceção do superusuário – root).