O documento apresenta um cronograma de um minicurso de Linux com os seguintes tópicos principais: origem do Linux, software livre e licença GNU, principais distribuições, sistemas de arquivos, editor de texto Vim, comandos, usuários e grupos, permissões de acesso.
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
Minicurso linux
1. XVIII Semana da Computação
Minicurso de Linux
Reginaldo de Matias
2. Cronograma
● A origem do Linux
● Software Livre e Licença GNU
● Principais distribuições (distros)
● Árvore de Diretórios
● Sistemas de Arquivos
● Editor de texto Vim
● Principais comandos
● Usuários e Grupos
● Permissões de acesso
● Redirecionamento de Entrada e Saída (E/S)
● Compactadores e Descompactadores
● Gerenciamento de Pacotes
● Gerenciamento de Janelas
● Certificações
3. A origem do Linux
O núcleo e kernel do Linux foi desenvolvido por Linus Torvalds do
Departamento de Ciência da Computação da Universidade de
Henlsink na Filândia.
Linus Torvalds iniciou o projeto em particular, inspirado no
sistema Minix, um pequeno sistema Unix desenvolvido pelo
Tannenbaum. Resumiu-se em suas palavras: “um Minix melhor
que o Minix”
4. Software Livre e Licença GNU
A GPL é licença com maior utilização por parte de projetos de software livre, em
grande parte devido à sua adoção para o projeto GNU e o Kernel Linux.
GNU/Linux
Em termos gerais um software livre, se baseia-se nas 4 liberdades:
- A liberdade de executar o programa para qualquer propósito (liberdade #0)
-A liberdade de estudar como o programa funciona e adaptá-lo as suas
necessidades (liberdade #1). O acesso ao código fonte é um pré-requisito para
essa finalidade.
-A liberdade de redistribuir, inclusive vender, cópias de modo que você possa
ajudar ao seu próximo. (liberdade #2).
-A liberdade de aperfeiçoar o programa, e liberar estas modificações, de modo
que toda a comunidade se beneficie. (liberdade #3). O acesso ao código fonte é
um pré-requisito para essa finalidade.
“Software livre não é cerveja gratis”. (Richard Stallman)
5. Principais distribuições (distros) [1/2]
Distribuição Linux é composta por uma coleção de pacotes
de aplicativos mais o kernel (núcleo) do sistema operacional.
Linux é apenas o nome do kernel do sistema operacional.
Isto significa que todas as distribuições utilizam o mesmo
kernel, mas podem incluir diversos pacotes de acordo com o
objetivo do mantenedor.
O Linux é um sistema operacional Unix-like, ou seja, seu
comportamento é similar ao sistema operacional UNIX
(multitarefa e multiusuário).
Distros: Slackware, Debian, RedHat, CentOS, SUSE,
openSUSE, Fedora, Ubuntu, Mint, Arch, Manjaro, Gentoo,
Funtoo.
7. Árvore de diretórios
/bin Diretório dos binários principais dos usuários
/boot Diretório com os arquivos do sistema de boot
/dev Diretório com os arquivos de dispositivos
/etc Diretório com os arquivos de configuração do sistema
/home Diretório dos usuários comuns do sistema
/lib Diretório com as bibliotecas essenciais do sistema e módulos do kernel
/media Diretório de montagem de dispositivos
/mnt Diretório de montagem de dispositivos (mesmo do /media)
/opt Diretório usado para instalar pacotes não oficiais da distro ou por conta do usuário
/sbin Diretório com os arquivos binários usados para administração do sistema
/srv Diretório para dados de serviços oferecidos pelo sistema
/tmp Diretório para arquivos temporários
/usr Diretório com aplicativos e arquivos utilizados pelo usuários comuns do sistema
/var Diretório com arquivos de dados variáveis (spool, logs, cache, e-mail, squid)
/root Diretório home do root
/proc Diretório com informações sobre os processos do sistema
8. Sistemas de Arquivos
Principais sistemas de arquivos
Um sistema de arquivos é um conjunto de estruturas lógicas que permite o
sistema operacional controlar o acesso a um dispositivo de armazenamento
como disco rígido, pendrive, cd-rom, etc. Diferentes sistemas operacionais pode
usar diferentes sistemas de arquivos.
O sistema de arquivos utilizado no Windows é NTFS e no GNU/Linux é ext4,
dentre outros que tem suporte.
Os sistemas de arquivos principais são: ext3, ext4, ReiserFS
ext3: O ext3 é a versão do ext2 com journing, que proporciona uma
recuperação muito mais rápida, fazendo com que o ext3 seja considerado
sistemas de arquivos bom e estável.
ext4: O ext4 é o sucessor do ext3, foi criado uma série de extensões
retrocompatíveis para remover os limites de armazenamento em 64 bits e
outras melhorias adicionadas de desempenho.
ReiserFS: O ReiserFS é o sistema de arquivos que supera o ext3 e ext4 em
perfomance de desempenho em 10-15 vezes. Recomendado para uso em
sistemas de arquivos grandes, com utilização de arquivos pequenos. Porém
tem uma desvantagem nesse sistema de arquivos, não possui quota de disco
para limitar o uso do espaço em disco.
9. Editor de texto Vim [1/2]
O editor de texto Vim possui trabalha com dois modos de operação: interativo e
inserção
O modo interativo ESC e os atalhos de comandos
O modo inserção i para começar a escrever
Atalho para copiar, recortar e copiar texto
ESC
Posicione o cursor no início do texto que deseja copiar ou recortar
Tecle v
Use as setas de direção, marque o texto
Tecle d
Posicione o cursor no ponto que deseja colar
Tecle p
Para copiar ao invés de recortar, utilize o y no lugar do d
Atalhos Descrição
0 Ir para o início da linha
$ Ir para o final da linha
g Ir para o início do arquivo
G Ir para o final do arquivo
:n Ir para linha enésima
:x Salva e sai do editor
11. Principais comandos GNU/Linux [1/15]
uname: comando que exibe as informações do sistema Linux
uname -a
echo: comando que exibe informações na saída padrão seguindo uma nova
linha
echo “Use Linux!”
file: comando que informa qual tipo informado no parâmetro.
cd: comando usado para acessar e mudar de diretório corrente. Utilizando para
navegar entre diretórios no terminal.
pwd: comando que retorna o diretório atual.
clear: comando para limpar dados do terminal
12. Principais comandos GNU/Linux [2/15]
Opções Descrição
-i Torna o comando interativo
-r Copia recursivamente arquivos dentro dos
subdiretórios da origem
-p Preserva atributos (dono, data, hora, permissões)
do arquivo de origem no arquivo de destino
-v Modo verbose
cp: comando para copiar arquivos
cp [opções] origem destino
13. Principais comandos GNU/Linux [3/15]
mv: comando que tem função de mover arquivo de origem para destino. Seu
uso é quase igual ao comando cp.
mv [opções] origem destino
Opções Descrição
-i Modo interativo
-f Força sobreescrever o arquivo de
destino
-v Modo verbose
14. Principais comandos GNU/Linux [4/15]
ls: comando para listar arquivos que estão dentro do diretório corrente.
ls argumentos
Opções Descrição
-a Não esconde arquivos começados por .
-l Usa o formato lista em detalhes
15. Principais comandos GNU/Linux [5/15]
mkdir: comando para criar um diretório.
mkdir [opções] nome-diretorio
Opções Descrições
-m Seta permissão equivalente ao chmod
-p Mantém integridade
-v Modo verbose
16. Principais comandos GNU/Linux [6/15]
diff: comando que compara dois arquivos
diff [opções] arquivo1 arquivo2
Opções Descrição
-a Trata os arquivos como texto e os compara linha a linha
-i Ignora as diferenças entre maiúsculas e minúsculas
-q Exibe apenas as diferenças entre arquivos
17. Principais comandos GNU/Linux [7/15]
du: comando que exibe informações sobre o espaço usado nos diretórios.
du [opções]
Opções Descrição
-k Exibe o espaço ocupado em Kbytes
-m Exibe o espaço ocupado em Mbytes
-h Exibe o equivalente das opções (-k, -m). Modo humano
18. Principais comandos GNU/Linux [8/15]
df: comando que exibe informações sobre o espaço livre utilizado pelas
partições do sistema.
df [opções]
Opções Descrição
-k Exibe o espaço ocupado em Kbytes
-m Exibe o espaço ocupado em Mbytes
-h Exibe o equivalente das opções (-k, -m). Modo humano
19. Principais comandos GNU/Linux [9/15]
head: comando que exibe as primeiras linhas do arquivo.
head [opções] arquivo
Opções Descrição
-c [num[bkm]] Exibe os primeiros (num) bytes, Kbytes, Mbytes do arquivo
-n [num] Exibe as (num) primeiras linhas do arquivo
-v Exibe informações do comando
20. Principais comandos GNU/Linux [10/15]
tail: comando que exibe as últimas linhas do arquivo.
tail [opções] arquivo
Opções Descrição
-c [num[bkm]] Exibe os primeiros (num) bytes, Kbytes, Mbytes do arquivo
-n [num] Exibe as (num) últimas linhas do arquivo
-f Continua indefinidamente ler caracteres ao final do arquivo
-v Exibe informações do comando
21. Principais comandos GNU/Linux [11/15]
wc: comando que conta linhas, palavras e caracteres do arquivo.
wc [opções] arquivo
Opções Descrição
-c Conta caracteres
-l Conta linhas
-w Conta palavras
22. Principais comandos GNU/Linux [12/15]
whereis: comando utilitário que lista a localização de programas binários,
fontes e documentações.
whereis [opções] pacote
Opções Descrição
-b Lista apenas arquivos binários
-m Lista apenas arquivos de documentação
-s Lista apenas os arquivos fontes
23. Principais comandos GNU/Linux [13/15]
whatis: comando utilitário que mostra um resumo sobre um ou mais
comandos.
whatis [opções] comando
Opções Descrição
-h Exibe informações de auto ajuda
24. Principais comandos GNU/Linux [14/15]
rm: comando que remove arquivos e diretórios. Pode usar o caracter *
(curinga).
rm [opções] arquivo
Opções Descrição
-f Força ignorando arquivos inexistente
-i Modo interativo
-r, -R ou --recursive Modo recursivo
* Caracter curinga utilizado em expressão regular que significa tudo
25. Principais comandos GNU/Linux [15/15]
cat: comando que exibe o que há dentro do arquivo. Concatena arquivo de
entrada e saída.
cat [opções] arquivo
Opções Descrição
-b Exibe número de linhas não vazias
-n Exibe número de linhas de saída
-s Não exibe mais de uma linha em branco
26. Hardlink (link simbólico)
ln: comando que cria um link simbólico de um diretório auxiliar para outro.
ln [opções] diretorio diretorio-aux
Opções Descrição
-s Cria um link simbólico
27. Usuário e Grupos [1/4]
Criação de usuários
No GNU/Linux existe dois tipos de usuários
root: Administrador do Sistema. Indicado como # no terminal
seu usuário: Esse usuário é o regular e tem restrições, ou seja, apenas tem
controle no seu /home/<seu-usuario>. Indicado como $ no terminal
Criar um usuário: # adduser nome-usuario
28. Usuário e Grupos [2/4]
Alterar senha do usuário
passwd: Altera a senha de um usuário. Apenas seu usuário pode alterar a
sua senha. Exceto o root que tem acesso total do sistema.
passwd [opções] usuario
Opção Descrição
-l Bloqueia conta de usuário
-u Desbloqueia conta de usuário
-d Elimina a senha do usuário
-n Define número mínimo de dias para expiração da conta
-x Define o número máximo de dias para expiração da conta
-w Define o número de dias com antecedência que o usuário será avisado da expiração
da senha
-i Define o número de dias que o usuário receberá o aviso de expiração de senha
-S Exibe uma informação resumida do estado da senha da conta do usuário
29. Usuário e Grupos [3/4]
Exclui uma conta de usuário
userdel: Exclui uma conta de usuário
userdel [opções] usuario
Opções Descrição
-f Força a remoção do usuário mesmo estando conectado no sistema
-r Remove o diretório /home/usuario
30. Usuário e Grupos [4/4]
Criação de Grupos
addgroup: Este comando adiciona um grupo ao sistema. O grupo é criado
sem usuários
Criar o grupo
addgroup nome-grupo
Adicionar usuário ao grupo criado
addgroup usuario grupo
31. Permissões de Acesso [1/3]
Permissões de acesso a arquivos e diretórios
Permissões de acesso protege o sistema de arquivos Linux do acesso
indevido de usuários não autorizados.
Usando seu usuário regular, tente apagar algum arquivo dentro da raiz /
O princípio de segurança no sistema GNU/Linux é definir os arquivos por
donos, grupos e outros usuários.
Dono: Usuário que mantém a integridade do arquivo e diretório criado.
Grupo: Grupo de usuários que podem acessar os arquivos, mesmo sendo
de outro dono.
Outros: Aqueles usuários que não são donos e não pertencem ao grupo de
arquivo e diretório.
32. Permissões de Acesso [2/3]
Tipo de permissão de acesso
Os tipos de permissões de acesso ao dono, grupo e outros usuários, é
aplicado 3 permissões básicas: leitura, escrita e execução.
Permissão Mnemônico Arquivo Diretório
Leitura r Acesso ao conteúdo do arquivo Lista o conteúdo do diretório
Escrita w Acesso alterar o conteúdo do
arquivo
Cria e remove arquivo no
diretório
Execução x Acesso de execução do arquivo Acessar usando o cd no
diretório
33. Permissões de Acesso [3/3]
Manipulação de arquivos e diretórios em número octal
Número Descrição
0 Nenhuma permissão de acesso
1 Permissão de execução (x)
2 Permissão de gravação (w)
3 Permissão de gravação e execução (rw)
4 Permissão de leitura (r)
5 Permissão de leitura e execução (rx)
6 Permissão de leitura e gravação (rw)
7 Permissão de leitura, gravação e execução (rwx)
34. Redirecionamento de Entrada e Saída
Operador Descrição
> Redireciona para saída
>> Redireciona para o fim do arquivo
< Redireciona para entrada
<< Redireciona para entrada e mantém aberta até que seja digitado algum
caracter de EOF (fim do arquivo). Exemplo: Ctrl+D
>& Redireciona a saída com erros
| Redireciona a saída de um comando para entrada de outro comando
tee Redireciona o resultado para saída padrão e para o fim do arquivo.
Precisa usar em conjunto o |
35. Compactadores e Descompactadores [1/2]
Compactando e descompactando no formato .tar.gz
tar [opções] arquivo-compactado.tar.gz diretorio-origem
Opções Descrição
-c Cria um arquivo tar
-v Lista arquivos em modo verbose
-f Usa o arquivo especificado para gravação
-x Descompacta o arquivo pelo tar
36. Compactadores e Descompactadores [2/2]
Compactando com ZIP
zip [opções] arquivo-compactado.zip diretorio-origem
Descompactando com UNZIP
unzip [opções] arquivo.zip OU unzip [opções] arquivo.zip -d diretorio-destino
Opções Descrição
-r Compacta arquivos e subdiretórios
-e Permite encriptar o conteúdo do arquivo .zip através de uma senha
-f Somente substitui um arquivo compactado existente dentro do
arquivo .zip somente se a versão mais nova é a atual
F Repara um arquivo .zip danificado
Opções Descrição
-c Descompacta os arquivos para saída padrão
-f Descompacta somente os arquivos que existem no disco e os mais
novos que os atuais
-l Lista arquivos existentes dentro do arquivo .zip
-P Permite descompactar arquivos .zip com senha
37. Gerenciador de Pacotes [1/3]
Instalando pacotes na distro Debian e derivados
No arquivo /etc/apt/sources.list estão as referências dos repositórios que será
consultado pelo APT
APT
DPKG
Comando Descrição
apt-get update Atualiza a lista de pacotes disponíveis no repositório
apt-get upgrade Atualiza os pacotes já instalados
apt-get install <pacote> Instala um pacote com as respectivas dependências
apt-get remove <pacote> Remove um pacote com as respectivas dependências
apt-get dist-upgrade Atualiza versão da distribuição
dpkg -i pacote.deb Instala um pacote.deb
dpkg -r pacote.deb Remove um pacote.deb
dpkg -c pacote.deb Consulta o conteúdo do pacote.deb
dpkg -l Lista os pacotes instalados
38. Gerenciador de Pacotes [2/3]
Instalando pacotes na distro RHEL/CentOS e derivados
No arquivo /etc/yum.conf estão as referências dos repositórios que será consultado
pelo YUM
YUM
RPM
Comando Descrição
yum check-update Verifica se há atualizações disponíveis
yum update Atualiza a lista de pacotes no repositório
yum install <pacote> Instala um pacote com as respectivas dependências
yum remove <pacote> Remove um pacote com as respectivas dependências
yum info <pacote> Exibe informações do pacote
rpm -i pacote.rpm Instala um pacote.rpm
rpm -r pacote.rpm Remove um pacote.rpm
rpm -U pacote.rpm Atualiza um pacote.rpm
rpm -ivh pacote.rpm Instala um pacote.rpm em modo verbose
39. Gerenciamento de Pacotes [3/3]
Modo tradicional em qualquer distro
Após o download do código fonte do pacote, geralmente no formato .tar.gz
$ tar -xzvf pacote.tar.gz
Checar as dependências do pacote
$ ./configure
Senão ocorrer nenhum erro de dependências, segue para próximo passo
Compilar o pacote
$ make
Por fim a instalação do pacote
# make install
40. Gerenciadores de Janelas (X11)
O gerenciador de janelas controla o posicionamento e aparência das
janelas dentro do servidor X em uma interface gráfica.
Atualmente existe centenas de gerenciadores de janelas para Linux, entre
as mais comuns são: Gnome, KDE, XFCE, LXDE, Mate (fork do Gnome2),
Unity, Fluxbox, OpenBox.
No Linux é possível ter mais de um gerenciador de janelas (ambiente
gráfico) instalados, marcando qual gerenciador de janelas que deseja usar
no gerenciador de login.
41. Certificações Linux [1/2]
LPI
A certificação LPI são divididos em 3 níveis
LPIC-1: Administrador Linux nível Júnior (exames 101 e 102)
LPIC-2: Administrador Linux nível Pleno (exames 201 e 202)
LPIC-3: Administrador Linux nível Sênior (Especialista) (exames 300, 303
ou 304)
Cada exame possui 60 questões, a pontuação é de 200 a 800, para
conseguir êxito nos exames da LPI, o candidato deve obter maior do que
500 em cada exame.
Provas são eletrônicas pela Prometric e Vue
Ementa de cada exame da LPI
https://www.lpi.org/certification/get-certified-lpi/
42. Certificações Linux [2/2]
Red Hat
Lista dos exames de certificação da Red Hat
https://www.redhat.com/pt-br/services/all-certifications-exams
Os exames são hand-ons, o que o torna os melhores indicadores de sua
proficiência.
Como é realizado o exame da Red hat ?
O exame é realizado em uma estação de teste individual desenvolvida pela
Red Hat.