Aprenda tudo sobre o Linux! Completo e atualizado v2021

Seção 1 - Introdução ao curso

Aula 3 - Breve História do Linux

The Linux Foundation Minix The Linux Kernel Archieve GNU Linux Graphical Timeline Distro Watch

Aula 4 - Escolhendo uma Distro Linux

Debian Kali Linux Ubuntu CentOS Linux Mint Elementary OS

Aula 6 - Conhecendo os fóruns de ajuda e suporte

Viva o Linux Ubuntu Forum Forum Debian FedoraBr GuiaFoca Ask Ubuntu StackExchange Unix & Linux StackExchange Tecnology StackExchange RaspberryPi StackExchange

Aula 7 - Conhecendo as interfaces gráficas

Gnome Mate KDE Plasma XFCE LXDE

Seção 2 - Preparação do ambiente

Aula 8 - Instalando o VirtualBox

VirtualBox VMWare Hyper-V

Aula 12 - Acessando o Linux pelo PuTTY no Windows

PuTTY

Seção 3 - Comandos GNU e Unix

Aula 13 - Sistema de arquivos do Linux

Diretórios
/bin e /sbin: Arquivos binários do sistema.
/boot: Arquivos do Kernel Linux.
/dev: Arquivos de dipositivos.
/etc: Arquivos de configuração.
/home: Arquivos de usuários.
/tmp: Arquivos de swap e temporários apagados automaticamente.
/usr: Arquivos comuns de ususários.
/var: Arquivos de variáveis de ambiente.
Comandos
mount: mostra os dispositivos montados no sistema (serve para montar novos dispositivos também).
df: mostra informações sobre o sistema de arquivos.
df -Th: mostra o tipo de sistema de arquivos e utiliza demonstração 'humana'.
findmnt: localiza um sistema de arquivos montado.

Aula 14 - Arquivos no Linux

du: mostra a o espaço utilizado do disco.
du -sh: mostra a o espaço utilizado do disco de forma sumarizada e 'humana'.
du -ah: mostra a o espaço utilizado do disco de arquivos ocultos e de forma 'humana'.

Aula 15 - Gerenciando arquivos

cd: change directory, pwd: mostra o caminho atual, touch: cria um arquivo vazio.
mkdir: cria um diretório, rmdir: remove um diretório vazio, rmdir --ignore-fail-on-non-empty: remove diretório mesmo que não esteja vazio.
ls: list, ls -la: lista arquivos ocultos em modo detalhado, ls -lR lista o conteúdo dos diretórios.
ln -s caminho_a_linkar nome_do_link: cria um link simbólico(-s) para arquivos ou diretórios.
tar -cvf arquivo.tar arquivos_a_armazenar: empacota os arquivos em um arquivo .tar.
tar -rvf arquivo.tar arquivos_a_armazenar: adiciona os arquivos em um arquivo .tar existente.
tar -lvf arquivo.tar: lista os arquivos contidos em um arquivo .tar
tar -xvf arquivo.tar : extrai os arquivos de um arquivo .tar.
gzip arquivo.tar: compacta um arquivo .tar

Aula 16 - Trabalhando com arquivos de texto

less: mostra o conteudo de arquivos. Quando estiver no texto: g início do arquivo, G fim do arquivo, h help do less (dentro do documento), /string procura a string no documento.
ps: mostra os processos daquele diretório.
ps aux | less: mostra todos os processos ativos (em pipe com o less).
tail: mostra as ultimas linhas de um arquivos. A opção -n X seleciona o número de linhas a apresentar.
head: faz o mesmo que o tail mas mostra as primeiras linhas.
cut -f 1 -d ' ' nome_arquivo: mostra apenas o 1 trecho antes do caractere separador ' '. Podemos selecionar qual parte queremos mostrar alterando o numero e o separador alterando o caractere (quando for espaço colocamos entre ' ' mas para outros caracteres não é necessário).
grep: localiza strings em arquivos.

Aula 17 - Gerenciamento de diretórios

mkdir, rmdir, rm -rf.
mv: move, utilizado para renomear arquivos. (move os arquivos paraa outro nome).

Aula 18 - Usando metacaracteres e operadores

*: curinga multiplo.
?: curinga de 1 caractere.
[...]: intervalo de caracteres.
>: redireciona a saida do comando para outro comando.
>>: redireciona a saida do comando para outro comando sem sobreescrever.
<: direciona o conteudo de um arquivo para um comando.
2>: direciona o erro padrão para o arquivo.
&>: direciona o conteudo e o erro padrão para o arquivo.
$(date): mostra a data atual.
{.,.,.} repete os caracteres entre ',' em todas as ocorrencias do comando utilizado (faz uma combinação como se fosse um array. Se passarmos dois conjuntos de dados se comportará como um array multidimensional).

Aula 19 - Localizando arquivos no Linux

locate: instalar com apt install mlocate. Na primeira instalação ele ciará um banco de dados (mlocate database) que pode ser um pouco demorado. Para atualizar o banco de dados utilizamos o comando updatedb.
Utilizamos o locate para localizar arquivos. Podemos também utilizar para verificar services com locate services.
find: localiza arquivos. Podemos utilizar a opção -name nome_a_procurar ou -iname nome_a_procurar(ignora o case). Podemos selecionar o filtro por tamanho dos arquivos com a opção -size +tamanho_em_bytes/K/M. Um exemplo de busca por tamnho:
$ find / -size +2G -size -5G -exec du -sh {} \;
Podemos fazer a busca por usuário com a opção -user nome_do_usuário ou por grupo com -group nome_do_grupo e podemos utilizar a opção -not para excluir um usuário ou grupo da pesquisa. Outra opção é ultilzar -ls para que os arquivos apareçam no formato de lista.
Podemos utilizar o find com pesquisas por permissão dos arquivos com a opção -perm -777(código da permissão) ou por data e hora de armazenamento com as opções -mmin -(tempo em minutos) (verifica alterações nos últimos x minutos), -ctime -(tempo_em_horas*24). Essas opções são formadas por -axxxx(acessada), -cxxxx(status alterado) e -mxxxx(modificada).
A opção -exec permite executar outro comando após as opções do find. No exemplo acima utilizamos o -exec du para mostrar a utilização em disco dos arquivos. Podemos também utilizar -exec echo para imprimir alguma mensagem na tela, por exemplo:
find /etc -iname passwd -exec echo "Eu encontrei {}" \;
grep: procura uma string em arquivos. Pode ser utilizado para pesquisar os serviços em /etc/services, ou pode ser executado em conjunto com outros comandos como o find.

Aula 20 - Trabalhando com o comando tar

tar: cria um arquivo único com os arquivos selecionados de modo compactado ou não.
A opção -cvf cria o arquivo de forma 'verbosa' sem compactação.
A opção -cvzf cria o arquivo de forma 'verbosa' com compactação gzip (extensão .tar.gz ou .tgz).
A opção -cvjf cria o arquivo de forma 'verbosa' com maior compactação bzip2 (extensão .tar.bz2).
A opção -xvf extrai os arquivos. Podemos utilizar também -xvzf ou -xvjf
Para extrair os arquivos em outro diretório utilizamos a opção -C.

Aula 21 - Trabalhando com o comando tar - Parte 2

Para visualizarmos o conteudo de uma arquivo tar utilizamos a opção -tvf.
Para extrair arquivos específicos podemos utilizar o comando -xvf especificando o arquivo desejado com seu path completo.
Podemos extrair arquivos também com a opção --extract --file=nome_do_arquivo.tar.
Para removermos arquivos com caracteres curinga utilizamos a opção --wildcards '*.extenção'.
Para adicionarmos arquivos a uma arquivo .tar existente utilizamos a opção -rvf (append file). Não é possível fazer essa operação com arquivos compactados.

Aula 22 - Trabalhando com o comando gzip e gunzip

gzip arquivo compacta os arquivos e substitui o arquivo de origem. gunzip arquivo descompacta os arquivos e exclui o arquivo .gz.
Para compactar ou descompactar os arquivos sem substituir o original utilizamos a opção -c e direcionamos com o '>' para outro arquivo. Podemos utilizar o '>' para encaminhar a saida do arquivo para outro diretório.

Conhecendo a Shell

Aula 23 / Aula 24 - Conhecendo uma Shell / Variantes de uma Shell

Shell são as interfaces de usuário entre o Kernel e as aplicações, sendo o bash o mais comum.
Podemos criar variáveis na Shell simplesmente declarando o nome da variável, o sinal de '='(atribuição) e o valor.
Para recuperarmos o valor da variável chamamos o nome da variável precedido por $.

Aula 25 - Variáveis locais e de ambiente

Podemos ter variáveis locais quando criamos a variável diretamente e globais quando declaramos a variável prececdida por export.
O comando set mostra todos os comandos do shell.
O comanddo env mostra as variáveis globais (inclusive as criadas com export). Já as variáveis locais podem ser localizadas com o set.
Para limparmos as variáveis locais podemos executar o comando bash.
As propriedades do shell estão no arquivo /etc/profile, e os caminhos de PATH estão em /etc/environment.
As configurações do bash ficam no arquivo .profile no diretório do usuário. Podemos criar arquivos .bash_profile ou .bash_login para especificar outra configurações.
Podemos adicionar variáveis como o editor padrão com o comando export EDITOR=vim ou export EDITOR=nano.
Podemos verificar nossa variável de PATH com echo $PATH.

Aula 26 / Aula 27 - Trabalhando com alias / Trabalhando com Banners de Login

O comando alias cria apelidos para sequencias de comandos. Podemos ver as configurações de alias digitando alias no prompt.
Para editar os alias para que eles fiquem salvos no perfil do usuário devemos editar o arquivo .bashrc.
Podemos ainda criar uma arquivo para alias em .bash_aliases.
Podemos editar o banner de login no arquivo /etc/issue (não funcionou) ou no /etc/motd (esse deu certo e apresentou o banner no final da mensagem inicial).

Aula 28 - Gerenciando os Jobs Shell

Podemos verificar os processos em execução com o comando ps aux mas de uma forma mais detalhada com o comando top.
jobs mostra os trabalhos em excecução. Podemos selecionar as tarefas pelo número.
Podemos parar os jobs com o comando fg.
Podemos encerrar processos com o comando kill PID. Essa aula não ficou muito clara.

Aula 22 - Trabalhando com o comando gzip e gunzip