Linux Básico
Vá além do ls
Vá além do ls
Vá além do ls
Linux Básico
Vanilton Pinheiro

Quem sou eu?

Pinheiro
Vanilton

Quem são vocês?
O que trás vocês até aqui?
# O que vamos precisar
Ambiente
- Instalar Virtual Box (Link)
- Baixar OVA do Sistema Operacional Ubuntu (Link)
- Importar OVA (Link video)
- Dados para login
- usuarios
- root
- sysadmin (utilizar essa por padrão)
- vanilton
- senha
- linux123
- usuarios
1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho e Arquivos
5
Permissões
4
Acesso
Administrativo
6
Arquivos
# O que veremos
7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# O que veremos

# 1 INTRODUÇÃO
- História do Linux;
- Conceito de Software Livre;
- Conceito de Linux.
- Unix x Linux
- Distribuições Linux
- Por que aprender Linux?
- Quem pode usar? Quem usa?
- Por que usar?
- Como instalar?
Unix
# 1 INTRODUÇÃO
História do Linux
- Pra compreender melhor o Linux devemos conhecer o Unix que é um sistema operacional criado por Kenneth Thompson após um projeto de sistema operacional não ter dado certo.
- O Unix foi o primeiro sistema a introduzir conceitos muito importantes para SOs como suporte a multiusuários, multitarefas e portabilidade.
Unix
# 1 INTRODUÇÃO
História do Linux
Começo
Kenneth Thompson e Dennis Ritchie e outros desenvolvedores em Laboratórios Bell da American Telephone and Telegraph (AT&T) juntamente com Massachusets Institute of Technology (MIT) -> Multics (grandes pretenções) -> Deu Ruim
1960
1969
Caminho
Kenneth Thompson reescreve o sistema -> Unics (pretenções reduzidas) -> Deu Bom
Kenneth Thompson renomeia -> Unix -> Ficou Ótimo!
1973
Golpe Final
Kenneth Thompson e Dennis Ritchie empregam a liguagem C no sistema, algo apontado como um dos principais fatores de sucesso do sistema. -> Ficou Excelente!
Unix - Não apenas um SO mas uma filosofia
# 1 INTRODUÇÃO
História do Linux
A filosofia Unix, originada por Ken Thompson, é um conjunto de normas culturais e abordagens filosóficas para o desenvolvimento de software modular e minimalista.
Unix - Não apenas um SO mas uma filosofia
# 1 INTRODUÇÃO
História do Linux
1 - Faça cada programa fazer uma coisa bem. Para fazer um novo trabalho, crie de novo em vez de complicar programas antigos adicionando novos "recursos".
2 - Espere que a saída de cada programa se torne a entrada de outro programa ainda desconhecido. Não confunda a saída com informações irrelevantes. Evite formatos de entrada estritamente colunares ou binários. Não insista na entrada interativa.
3 - Projete e construa software, até mesmo sistemas operacionais, para serem testados antecipadamente, de preferência dentro de semanas. Não hesite em jogar fora as peças desajeitadas e reconstruí-las.
4 - Use ferramentas em vez de ajuda não qualificada para aliviar uma tarefa de programação, mesmo se você tiver que desviar para construir as ferramentas e esperar jogar algumas delas fora depois de terminar de usá-las.
Unix - Um problema gerado
# 1 INTRODUÇÃO
História do Linux
Na década de 1980, quase todo o software era privativo, o que significa que ele possuía donos que proibiam e evitavam a cooperação dos usuários.
Unix - Hoje
# 1 INTRODUÇÃO
História do Linux
UNIX é agora uma marca registrada e uma especificação, de propriedade de um consórcio da indústria chamado Open Group. Somente softwares certificados pelo Open Group podem se chamar UNIX.
- Objetivo do Projeto era a Cooperação
- Em setembro de 1983 Richard Stallman fez o Anúncio Inicial do Projeto GNU.
-
O sistema operacional GNU (mesmo nome do projeto) é um sistema de software livre completo, compatível com o Unix.
-
GNU significa “GNU's Not Unix” (GNU Não é Unix)
# 1 INTRODUÇÃO
História do Linux
Projeto GNU
- Nome = Linus + Unix 🐧
- Criador pelo Finlandês Linus Torvalds 🤓
- Baseado no Minix versão gratuita do Unix
- Quando?
- 1991

# 1 INTRODUÇÃO
História do Linux
Linux
# 1 INTRODUÇÃO
Conceito de Software Livre
-
Programa de computador 💻 que pode ser executado, copiado, modificado e redistribuído pelos usuários gratuitamente.
-
Respeito💚
-
Liberdade🗽 e não lucro 🚫 💰
-
Senso de comunidade 👭👬
Então software livre é...
# 1 INTRODUÇÃO
Conceito de Software Livre
A Free Software Foundation (FSF) é uma organização sem fins lucrativos com a missão global de promover a liberdade de usuários de computador.
E para cuidar desses princípios nasceu..
Nós defendemos os direitos dos usuários de software.”
# 1 INTRODUÇÃO
Conceito de Software Livre
1. A liberdade de executar o programa como você desejar, para qualquer propósito.
As quatro liberdades essenciais - Base para a Licença GPL (General Public License)
2. A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades. Para tanto, acesso ao código-fonte é um pré-requisito.
3. A liberdade de redistribuir cópias de modo que você possa ajudar outros.
4. A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos, de modo que toda a comunidade beneficie deles.




# 1 INTRODUÇÃO
Conceito de Software Livre
- “Software livre” não significa “não comercial”. Um programa livre deve estar disponível para uso comercial, desenvolvimento comercial e distribuição comercial.
- A palavra "free" ou "livre” em “software livre” se refere à liberdade, não ao preço. Você pode ou não pagar para obter software do projeto GNU.
🆓 ❗ 👐
# 1 INTRODUÇÃO
Conceito de Linux
- Um SO tem compiladores, editores, formatadores de texto, clientes de e-mail, interfaces gráficas, bibliotecas, jogos e muitas outras coisas.
Do que é feito um SO Linux

- Linux é o núcleo (kernel): o programa no sistema que aloca os recursos do sistema para outros programas que você utiliza.
- GNU + Linux = GNU/Linux
# 1 INTRODUÇÃO
Conceito de Linux
- Versão Kernel - uname -r
- Sistema Operacional - uname -o
- Todas informações - uname -a
Mas como eu sei meu SO e Kernel Linux

Fonte: https://www.kernel.org/
Vamos ver o comando uname (Unix Name)
Considerações
| Item | Linux | Unix |
|---|---|---|
| Aquisição | Pague se quiser | Pago |
| Estrutura | Kernel, Shell, Apps | Kernel, Shell, Apps |
| Popularidade | Tendência para a fragmentação no desenvolvimento Linux (grande número de distribuições Linux) | Número de usuários em declínio, sendo parcialmente substituído pelo Linux (especialmente no mercado de servidores) |
| Atualização | Drivers para novo hardware (computadores, placas gráficas) às vezes são lançados lentamente | Atualizações pouco frequentes e desenvolvimento lento |
| Código Fonte | Aberto | Fechado |
# 1 INTRODUÇÃO
Unix vs Linux
Considerações
# 1 INTRODUÇÃO
Unix vs Linux
- Kernel: é o núcleo do sistema, invisível ao usuário, responsável pelas funções internas do sistema
- Shell: é a interface 💻 entre sistema operacional o usuário (você) e o núcleo do sistema (Kernel). O primeiro processo, executado automaticamente ao entrar no sistema (login) é o seu shell.
- Apps: nessa classe se encaixam a maioria dos comandos do unix (ls, pwd, vim)
Hardware
Kernel
Shell
Aplicações
CPU
Memoria
Dispositivos
Usuários
# 1 INTRODUÇÃO
Distribuições Linux
Uma Distribuição Linux é composta por uma coleção de aplicativos mais o kernel (núcleo) do sistema operacional.
O Linux, na realidade, é apenas o nome do kernel do sistema operacional. Isto significa que todas as distribuições usam o mesmo kernel, mas podem acoplar diversos aplicativos de acordo com o objetivo do seu mantenedor.
- Comercial: o usuário paga pelo sistema e recebe suporte técnico.
- Não comercial: Não há qualquer cobrança pelo uso do sistema, basta o usuário fazer o download na Internet. O usuário deverá tentar resolver os problemas que ocorrerem através das listas de discussão da correspondente distribuição.
Uma distribuição Linux pode ser:
# 1 INTRODUÇÃO
Distribuições Linux

É uma distribuição não comercial voltada para os profissionais da área de segurança da informação.

Distribuição não comercial do Linux voltada para desktop e patrocinada pela Red Hat Enterprise Linux (dona da marca Fedora).

É um sistema operacional não comercial patrocinada pela Canonical e baseado na distribuição Debian. “humanidade para com os outros”

Distribuição não comercial e livre de Linux. O usuário tem liberdade para definir o que vai ser instalado no sistema e os pacotes (minimalista).

É uma distribuição não comercial de origem irlandesa e baseada nas distribuições Debian e Ubuntu.

Distribuição comercial do Linux voltada para clientes corporativos. Foi a primeira distribuição linux a usar um sistema de gerenciamento de pacotes.

Distribuição não comercial e livre que usa o kernel Linux ou kfreebsd (kernel do FreeBSD). Como o Debian se baseia no projeto GNU.
# 1 INTRODUÇÃO
Distribuições Linux

# 1 INTRODUÇÃO
Distribuições Linux
- Para obter informações sobre a distribuição usada, basta digitar um dos comandos abaixo.
Linux Standard Base (LSB) - O comando lsb_release -a está disponível em muitos sistemas para obter detalhes da versão LSB, ou pode ser disponibilizado pela instalação de um pacote apropriado, por exemplo o pacote redhat-lsb em distribuições derivadas do Red Hat, como o Fedora, ou o pacote lsb_release em distribuições derivadas do Debian.
lsb_release -a
cat /etc/lsb-release
cat /etc/os-release
cat /etc/issue.net
# 1 INTRODUÇÃO
Distribuições Linux
Ciclo de Vida de Produto
O ciclo tradicional de projetos open source é o release early, release often (lançar cedo, lançar frequentemente), ou seja, uma espécie de lançamento de software baseado em uma agenda predeterminada.


Alguns lançamentos do Linux são considerados com suporte de longo prazo (LTS) de 5 anos ou mais, enquanto outros são suportados apenas por dois anos ou menos.
Fonte: https://pt.wikipedia.org/wiki/Ubuntu#Lan.C3.A7amentos
- LTS - (long-term support) Suporte de longo prazo
- Versões corporativas 5-13 years
Por que usar?
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Usuários
3 ~ 3,5 Bi
2020
55,9% de todos os desenvolvedores profissionais usaram Linux.
2021 até maio
38,3% de todos os sites usam Linux
2021 até maio
94% da nuvem EC2 da Amazon é executada no Linux
2020
aproximadamente 96% dos 1 milhão de sites principais sejam executados em servidores baseados em Linux
Em 2021, 100% dos 500 supercomputadores mais poderosos do mundo operam em Linux.
~ 1,69% PCs domesticos usavam Linux em julho de 2020.
Linux Está em Todo Lugar!
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?




Linux Está em Todo Lugar!
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?

# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?

Para seu relatório, a Linux Foundation entrevistou 200 gerentes técnicos de contratação e 750 profissionais de código aberto. Para 97% dos empregadores, a contratação de talentos de código aberto é uma prioridade, enquanto mais de 50% disseram que aumentarão as contratações este ano.
A principal prioridade é no desenvolvimento de aplicativos nativos em nuvem e nas habilidades operacionais. Cloud Native ou ‘a nuvem nativa’ encabeça a lista de habilidades necessárias com mais de 46% dos empregadores procurando pessoas com conhecimento de Kubernetes.
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Quem pode usar?
- Todos!
Entender o Linux, especialmente a interface de linha de comando do Linux, ajudará você a entender melhor a computação enquanto lhe dá habilidades básicas de computação que você pode usar em uma carreira futura.
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Mas por que linha de comando? Tanta interface bonita..
Janelas e ícones são fáceis de usar, no entanto, a linha de comando é muitas vezes o herói quando se trata de administração do sistema e solução de problemas, uma vez que dá uma imagem clara do que o sistema está fazendo em qualquer momento.
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Quem usa?






# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Que profissionais usam?
Engenharia de rede

Cibersegurança
Desenvolvimento/Programação
Análise de Dados



# 1 INTRODUÇÃO
Como Instalar?
Instalação (Distro Ubuntu)
- Tenha uma máquina Virtual ou Física com:
- Aproximadamente 25GB de disco
- Processador 2 GHz Dual-Core
- 2 GB+ de Memória Ram
- Porta USB (para criar o disco bootável)
- Um PenDrive de 8 GB+
- Faça o download da sua distribuição
- Crie um disco bootável de acordo com sua distribuição (Link tutorial)
- Configure o boot de sua máquina para iniciar pelo Pen Drive
- Siga as instruções da distribuição escolhida.
- Para mais detalhes de instalação da distribuição Ubuntu (Link tutorial)
# 1 INTRODUÇÃO
Como Instalar?
Testar antes de instalar - Live CD

1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho e Arquivos
5
Permissões
4
Acesso
Administrativo
6
Arquivos
Interfaces de interação Linux
# 2 Sintaxe de Comando Básico
Por quê?
Interface Gráfica de usuário - GUI
Interface de Linha de Comando - CLI
GUI - Interface Gráfica de Usuário
# 2 Sintaxe de Comando Básico
Por quê?
Em uma GUI, os aplicativos se apresentam em janelas que podem ser redimensionadas e movidas

CLI - Command-line Interface (Interface de Linha de Comando)
# 2 Sintaxe de Comando Básico
O que é?
Um comando é um programa de software que, quando executado na CLI (interface de linha de comando), executa uma ação no computador.
CLI - Command-line Interface (Interface de Linha de Comando)
# 2 Sintaxe de Comando Básico
Como funciona?

CLI - Command-line Interface (Interface de Linha de Comando)
# 2 Sintaxe de Comando Básico
Como funciona?
Mas o que eu ganho aprendendo linha de comando?
Produtividade
Velocidade
Automatizar Tarefas
Scriptar
Vamos começar!
# 2 Sintaxe de Comando Básico
Primeiros comandos
O primeiro comando é o mais essencial de todos e uma lição para todos nós:
- NÃO SABE
- PEÇA AJUDA!
Vamos começar man!
# 2 Sintaxe de Comando Básico
Primeiros comandos
man ls
programa
abreviação de manual
Comandos
# 2 Sintaxe de Comando Básico
Primeiros comandos
- O nome do comando geralmente é baseado no que ele faz ou no que o desenvolvedor que criou o comando acha que descreve melhor a função do comando.
- Associar o nome do comando com algo mnemônico para o que ele faz pode ajudá-lo a lembrar os comandos mais facilmente.
Comandos
# 2 Sintaxe de Comando Básico
Primeiros comandos
- Por exemplo, o comando ls exibe uma lista de informações sobre arquivos.

Considere isto
# 2 Sintaxe de Comando Básico
Primeiros comandos
- Cada parte do comando é normalmente sensível a maiúsculas e minúsculas, então LS está incorreto e falhará, mas ls está correto e será executado.

Padrão
# 2 Sintaxe de Comando Básico
Primeiros comandos
- A maioria dos comandos segue um padrão simples de sintaxe:
comando [opções…] [argumentos…]
Comandos - Argumentos
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [argumentos…]

A saída resultante é uma lista de arquivos contidos no diretório Documents.
Comandos - Argumentos - Easter Eggs
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [argumentos…]
A saída é uma bela vaquinha mugindo
$ apt moo

Comandos - Opções
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [argumentos…]
Por padrão, o comando ls imprime os resultados em ordem alfabética, portanto, adicionar a opção -r irá imprimir os resultados em ordem alfabética inversa.

Comandos - Opções - Combinando
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [argumentos…]
As opções dos comandos podem ser combinadas como o exemplo -lr. Ao lado outros exemplos que o resultado seria o mesmo.

Separado: ls -l -r
Invertido: ls -rl
1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho
5
Permissões
4
Acesso
Administrativo
6
Arquivos
# 3 Diretório de Trabalho
mkdir [opções…] [diretório]
O comando mkdir (make directory) cria diretório no sistema operacional
Criando Diretório

Criaçao com "verbose" ou saída do comando
Criação de pasta com subdiretórios ou hierarquia
OBS: Para criar um novo diretório é preciso ter permissão de gravação no diretório pai.
# 3 Diretório de Trabalho
pwd [opções…]
O comando pwd imprime o diretório de trabalho, sua localização atual dentro do sistema de arquivos

Impressão do Diretório de Trabalho
# 3 Diretório de Trabalho
Nomeclaturas de Diretório de Trabalho

# 3 Diretório de Trabalho
~ Representa o diretório home do usuário
Impressão do Diretório de Trabalho



/ Representa uma nova localização
# 3 Diretório de Trabalho
Use o comando cd (change directory) para alterar diretórios
Navegar por pastas

cd [opções…] [caminho]

# 3 Diretório de Trabalho
Uma estrutura de diretórios Linux tem um nível superior. Não é chamado de “Meu Computador”, mas sim o diretório root (raiz) e é representado pelo caractere /
Navegar por pastas


# 3 Diretório de Trabalho
O argumento para o comando cd é mais do que apenas o nome de um diretório, na verdade é um caminho. Um caminho nada mais é que diretório separados por /
Navegar por pastas


Caminho Absoluto

Confirmando o caminho
# 3 Diretório de Trabalho
Um caminho relativo (a sua referência) começa a partir do diretório atual, no entanto você não o inclui no caminho.
Navegar por pastas
Caminho Relativo
Confirmando o caminho (pwd caminho absoluto)



# 3 Diretório de Trabalho
Navegar por pastas - Atalhos
Voltar Diretório
Diretório Atual
Diretório Home Usuário



# 3 Listando arquivos
Listando arquivos
-l refere-se a listagem longa (detalhe)

d = diretório
10 caracteres no primeiro campo por arquivo
1º caracter refere-se ao tipo do arquivo
- = arquivo regular
# 3 Listando arquivos
Listando arquivos
| Tipo de Arquivo | Símbolo | Descrição |
|---|---|---|
| Arquivo regular | - | Arquivo de texto, de imagem, vídeo, programa executável, etc. etc |
| Arquivo de Diretório | d | Contém um conjunto de arquivos de quaisquer tipos, inclusive doutros diretórios. |
| Arquivos de dispositivo - dispositivo orientado a bloco | b | Operações de entrada e saída são realizadas byte a byte de modo sequencial. |
| Arquivos de dispositivo - dispositivo orientado a caractere | c | as operações de entrada e saída são realizadas em blocos de modo aleatório. |
| Socket | s | Usado para a comunicação bidirecional entre dois processos. |
| Named pipe (ou FIFO) | p | Permite a comunicação entre dois processos executados no mesmo Sistema Operacional. |
| Link | l | Hard link: dois arquivos apontando para o mesmo inode. Symbolic link: ponteiro para um arquivo existente. |
Neste curso vamos abordar apenas os tipos d, - e l
# 3 Listando arquivos
Listando arquivos - Proprietário (usuário e grupo)

Toda vez que um arquivo é criado, a propriedade é automaticamente atribuída ao usuário que o criou
Indica qual grupo possui este arquivo.
# 3 Listando arquivos
Listando arquivos - Outras informações

Tamanho em bytes (Diretórios e arquivos maiores podem ser mostrados em kilobytes)
Isso indica a hora em que o conteúdo do arquivo foi modificado pela última vez.
Nome arquivo ou diretório
# 3 Listando arquivos
Listando arquivos - Outras informações
No caso de links simbólicos, um arquivo que aponta para outro arquivo, o nome do link será exibido junto com uma seta e o nome do caminho do arquivo original.

# 3 Listando arquivos
Listando arquivos - Outras informações
Alguns arquivos não são exibidos pelo comando ls por padrão, estes arquivos são ocultos iniciando por ".", para exibí-los usamos a opção -a

# 3 Listando arquivos
Listando arquivos - Organizando
Por padrão, a saída do comando ls é organizada, alfabeticamente pelo nome do arquivo. Ele pode classificar por outros métodos também.
-t = classificar os arquivos por registro de data/hora
-S = ordenará os arquivos por tamanho de arquivo
-r = reverterá a ordem de qualquer tipo de classificação.
-R = irá listar todos arquivos inclusos nos diretórios de modo recursivo
Experimente
Em um só comando Listar todos arquivos da pasta Documents (arquivos e diretórios) do usuário por nome dos arquivos em ordem decrescente incluindo arquivos ocultos.
1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho e Arquivos
5
Permissões
4
Acesso
Administrativo
6
Arquivos
# 4 Acesso Administrativo
Considere isto
Muitos comandos Linux lidam com informações confidenciais, como senhas, hardware do sistema, ou de outra forma operam sob outras circunstâncias excepcionais. Logo é importante impedir usuários comuns executarem esses comandos aumenta a proteção do sistema.

# 4 Acesso Administrativo
su [opções…] [nome_do_usuário]
- O comando su permite que você atue temporariamente como um usuário diferente.
- Ele faz isso criando um novo shell. O shell é simplesmente um console de entrada de texto que permite digitar comandos.
- Por padrão, se uma conta de usuário não for especificada, o comando su abrirá um novo shell como usuário root, que fornece privilégios administrativos.
- Esse recurso é útil quando, por exemplo, é necessário testar uma configuração feita para um usuário ou para um grupo.
Comando su (substitute user)
# 4 Acesso Administrativo
su [opções…] [nome_do_usuário]
A utilização da opção shell de login é recomendada, pois o shell de login configura totalmente o novo shell com as configurações do novo usuário.
Comando su - Shell de Login

Outras formas de fazer:
su -l
su --login
# 4 Acesso Administrativo
- Por padrão
- Não existe mais senha específica para o root
- Não podemos mais acessa-lo via su root
- Para habilitar a conta de root de forma tradicional, é só atribuir uma senha a ela com o comando passwd (veremos mais a frente)
Considere isto para su
# 4 Acesso Administrativo
- Por quê não foi possível executar o arquivo?
- Quem é o dono do arquivo?
- Em que grupo está o arquivo?
Vai locomotiva (sl)


- Qual o tipo de arquivo?
- Onde está o arquivo original referenciado pelo simbólico?
- Acesse com o usuário root e execute o comando sl
# 4 Acesso Administrativo
Comando sudo - super user do (fazer como super usuário)
sudo [opções…] [comando]
- O comando sudo permite que um usuário execute um comando como outro usuário sem criar um novo shell.
- O comando sudo assume por padrão que a conta de usuário root deve ser usada para executar comandos.
# 4 Acesso Administrativo
sudo [opções…] [comando]
- O comando sudo também pode ser usado para alternar para outras contas de usuário. Para especificar uma conta de usuário diferente, use a opção -u.
-
Agora experimento executar a locomotiva com permissão para o root com sudo.
Comando sudo - super user do (fazer como super usuário)

# 4 Acesso Administrativo
Tendo em vista que o usuário root não possui senha padrão, o processo normal seria acessar um usuário e este usuário ter permissões de virar o root com a sua mesma senha (sim, eu disse virar e não logar como root). Por exemplo, o usuário vanilton se executar o comando sudo su poderia se tornar o usuário root.
Considere isto sobre sudo
Desta forma, ele é muito mais seguro, pois nunca teremos uma senha padrão. Se um invasor quiser acesso de administrador, terá que passar pelo usuário normal primeiro, para depois, talvez, ter acesso ao super-usuário.
Reduz o risco de um usuário executar acidentalmente um comando como root.
# 4 Acesso Administrativo
Faça o shell login do usuário vanilton e execute a locomotiva como sudo
Considere isto sobre sudo

Vamos resolver esse problema mais a frente :)
1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho e Arquivos
5
Permissões
4
Acesso
Administrativo
6
Arquivos
# 5 Permissões
Considere isto
As permissões determinam as maneiras pelas quais diferentes usuários podem interagir com um arquivo ou diretório.


# 5 Permissões
- O primeiro conjunto é para o usuário que possui o arquivo.
- Caso a conta atual for o proprietário do arquivo, o primeiro conjunto das três permissões será aplicado e as outras permissões não terão efeito.
Permissões – Proprietário

- Vamos utilizar o arquivo ola.sh na pasta documentos do usuário sysadmin
# 5 Permissões
- O segundo conjunto é para o grupo que possui o arquivo
- Caso a conta atual não seja a proprietária do arquivo e você for um membro do grupo que possui o arquivo, então as permissões do grupo serão aplicadas e as outras permissões não terão efeito.
Permissões – Grupo

- Vamos utilizar o arquivo ola.sh na pasta documentos do usuário sysadmin
# 5 Permissões
- O terceiro conjunto de permissão para é para qualquer um que os dois primeiros conjuntos de permissões não se aplicam
Permissões – Outros

- Vamos utilizar o arquivo ola.sh na pasta documentos do usuário sysadmin
# 5 Permissões
Tipos de permissão
| Permissão | Efeitos no arquivo | Efeitos no diretório |
|---|---|---|
| ler/read (r) | Permite: ler ou copiar. | Sem permissão de execução no diretório, permite uma lista não detalhada de arquivos. Com permissão de execução, ls -l pode fornecer uma lista detalhada. |
| escrever/write (w) | Permite: modificar ou substituir, adicionar ou remover | Para que essa permissão funcione, o diretório também deve ter permissão de execução. |
| executar/execute(x) | Permite: executar como processo (script necessitam de leitura) | Permite que um usuário mude para o diretório se os diretórios pai também tiverem permissão de execução. |
# 5 Permissões
- Quem é o proprietário do arquivo?
- Como está as permissões para o dono do arquivo?
- Como está as permissões para o usuário sysadmin?
Exercitando o entendimento
- Por exemplo, considere o seguinte conjunto de permissões:

# 5 Permissões
- O comando chmod é usado para alterar as permissões de um arquivo ou diretório. Somente o usuário root ou o usuário que possui o arquivo é capaz de alterar as permissões de um arquivo
- Por que o comando é chamado chmod em vez de chperm? As permissões costumavam ser referidas como modos de acesso, então o comando chmod realmente significa alterar os mod os de acesso.
Alterando permissões de arquivo
chmod [opções…] [modo] [arquivo]
# 5 Permissões
- Existem duas técnicas para alterar permissões com o comando chmod:
Alterando permissões de arquivo
chmod [opções…] [modo] [arquivo]
Simbólico
Octal
O método simbólico é bom para alterar um conjunto de permissões de cada vez.
O método octal ou numérico altera (usuário, grupo, outros) de uma única vez
# 5 Permissões
Alterando permissões de arquivo
| Valor Octal | Valor Simbólico | ||
|---|---|---|---|
| rwx | Caracteres | Significado | |
| 0 | o-rwx |
−−− | nenhuma permissão de acesso |
| 1 | o=x | −−x | permissão de execução |
| 2 | o=w | -w- | permissão de gravação |
| 3 | o=wx | -wx | permissão de gravação e execução |
| 4 | o=r | r−− | permissão de leitura |
| 5 | o=rx | r-x | permissão de leitura e execução |
| 6 | o=rw | rw- | permissão de leitura e gravação |
| 7 | o=rwx | rwx | permissão de leitura, gravação e execução |
# 5 Permissões
Alterando permissões de arquivo - Simbólico
chmod [opções…] [modo] [arquivo]
chmod [opções…] [conjunto, ação e permissão] [arquivo]



- chmod u=rwx arquivo1
- chmod g-wx arquivo1
- chmod o+r arquivo1
-
chmod u=rwx, g=rw, o=r arquivo1
-
chmod -R u=rwx, g=rw, o=r nome_pasta
Exemplos
# 5 Permissões
- Acessar o usuário vanilton
- su -l vanilton
- Entrar na pasta /home/sysadmin/Templates
- Ver o conteúdo do arquivo test
- cat test
Alterando permissões de arquivo




# 5 Permissões
- Acessar o usuário sysadmin
- su -l sysadmin
- Ir para a pasta home do usuário
Alterando permissões de arquivo

O arquivo ola.sh é um script. Um script é um arquivo que pode ser executado, semelhante a um comando:

Incluir a permissão de execução para o arquivo e executar novamente
./ indica que o “comando” deve ser executado a partir do diretório atual.
# 5 Permissões
- O proprietário de um arquivo é o usuário que o cria.
-
O comando chown é usado para alterar a propriedade de arquivos e diretórios. Alterar o proprietário do usuário requer acesso administrativo.
-
Um usuário regular não pode usar esse comando para alterar o proprietário do usuário de um arquivo, mesmo para dar a propriedade de um de seus próprios arquivos a outro usuário.
-
O comando chown também permite alterar a propriedade do grupo, o que pode ser feito pela root ou o proprietário do arquivo.
- Chown é uma abreviação para change owner, que traduzido fica “mudar o dono”
Alterando propriedades do arquivo
# 5 Permissões
chown [opções…] [proprietário] [arquivo]
Alterando propriedades do arquivo



Vamos alterar o dono do arquivo ola.sh para root na pasta Documents do usuário sysadmin
# 5 Permissões
Alterando propriedades do arquivo - grupo

chown [opções…] [proprietário] [arquivo]
Vamos alterar o grupo do arquivo ola.sh para root na pasta Documents do usuário sysadmin
Para alterar o grupo e dono do arquivo ola.sh para root na pasta Documents do usuário sysadmin

# 5 Permissões
Alterando propriedades do arquivo - grupo
chown [opções…] [proprietário] [arquivo]
Também é possível alterar a propriedade de todo conteúdo de um diretório de modo recursivo, para tanto usar a opção
-R
- chown -R novo_usuario pasta
- chown -R :novo_grupo pasta
- chown -R novo_usuario:novo_grupo pasta
1
Introdução
2
Sintaxe de
Comando Básico
3
Diretórios de Trabalho e Arquivos
5
Permissões
4
Acesso
Administrativo
6
Arquivos
# 6 Arquivos
Considere isto
Existem alguns comandos Linux disponíveis para visualizar o conteúdo dos arquivos.

# 6 Arquivos
Comando cat
- O comando cat, que significa 'concatenate', é frequentemente usado para visualizar rapidamente o conteúdo de pequenos arquivos.

cat [opções…] [arquivo]
# 6 Arquivos
Comando cat
Outros exemplos
- Exibir número da linha
- cat -n arquivo
- Exibir final da linha
- cat -E arquivo
- Visualizar arquivo em ordem inversa
- tac arquivo
- Exibir "mostrar mais" para arquivos grandes
- cat arquivo | more
# 6 Arquivos
Comandos head e tail
- A opção -n com os comandos head e tail pode ser usada para especificar a quantidade de linhas a serem exibidas.
head [opções…] [arquivo]
tail [opções…] [arquivo]


Exibir o conteúdo do início do arquivo
Exibir o conteúdo do fim do arquivo
# 6 Arquivos
Comando tail
- Outros exemplos
- Acompanhar preenchimento de arquivo (follow)
- tail -f arquivo.log
- tail -f -n 10 arquivo.log
Experimente
- Criar um arquivo
- Realizar o tail com follow
- Alimentar o novo arquivo com uma nova linha
- Verificar o preenchimento do tail
# 6 Arquivos
Copiando arquivos - cp
-
Criar cópias de arquivos pode ser útil por vários motivos:
-
Se uma cópia de um arquivo for criada antes que as alterações sejam feitas, é possível voltar ao original.
-
Uma cópia de um arquivo pode ser usada para transferir um arquivo para dispositivos de mídia removíveis.
-
Uma cópia de um documento existente pode ser usada como modelo para um novo documento.
-
# 6 Arquivos
Copiando arquivos - cp
cp [opções…] [fonte] [destino]
O comando cp é usado para copiar arquivos. Semelhante ao comando mv, ele requer pelo menos dois argumentos: uma origem e um destino.


# 6 Arquivos
Considere isto - cp
- Importante saber ao executar cp
- Permissão de execução para acessar o diretório onde o arquivo está localizado
- Permissão de leitura para o arquivo que está sendo copiado
- Permissão de gravação e execução no diretório para o qual o arquivo está sendo copiado
Experimente
- Logar com o usuario vanilton
- Copiar o arquivo /usr/games/sl para a pasta home
# 6 Arquivos
Considere isto - cp
-
Dica:
-
Normalmente, há dois lugares onde você sempre deve ter permissão de gravação e execução no diretório: seu diretório home e o diretório /tmp.
-
# 6 Arquivos
Mover arquivos - mv
mv [fonte] [destino]
O comando mv é usado para mover um arquivo de um local no sistema de arquivos para outro.

# 6 Arquivos
Mover arquivos - mv
Mover vários arquivos

Experimente - Mova os arquivos:
- numeros.txt para a pasta Matematica
- letras.txt e alfabeto.txt para a pasta Artes
# 6 Arquivos
Renomear arquivos - mv
Renomear arquivos no mesmo diretório


# 6 Arquivos
Removendo arquivos
rm [opções..] [arquivo]
O comando rm é usado para excluir arquivos e diretórios.

# 6 Arquivos
Considere isto - rm
- Importante saber ao executar rm
- Para excluir um arquivo dentro de um diretório, um usuário deve ter permissão de gravação e execução em um diretório.
- Normalmente, os usuários regulares só têm esse tipo de permissão em seu diretório (home) pessoal e seus subdiretórios.
# 6 Arquivos
Checando o tamanho de arquivos
du [opções..] [arquivo]
O comando du (Disk Usage) é usado para exibir o tamanho utilizado pelos arquivos no disco.
Fornecedores de HD vendem 1000 bytes = 1 kilobyte
Sistemas operacionais dividem esse espaço para que 1024 bytes = 1 kilobyte. UM HD 1000 gigabytes rsume-se em 930 gigabytes de armazenamento utilizável.

-a -> espaço de arquivos
-m -> espaço de arquivos em megabytes
7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 7 Filtragem de Entrada
Considere isto
Existe em muitos casos a necessidade de filtrar resultados da leitura de arquivos para facilitar a localização da informação desejada.


# 7 Filtragem de Entrada
Comando grep
- O comando grep é um filtro de texto que irá procurar linhas de entrada e retorno que contenham uma correspondência para um determinado padrão.
grep [opções…] [padrão] [arquivo]


# 7 Filtragem de Entrada
Comando grep - com retorno de outro comando
- É possível capturar o retorno de um comando e aplicar a filtragem com o grep. Vamos utilizar o comando ifconfig.


Lembrando que podem haver saída de um programa para entrada de outro várias vezes. Ex: comando | comando 2 | comando 3
# 7 Filtragem de Entrada
Comando grep - Expressões Regulares
- Até então utilizamos um padrão simples de filtragem, entretanto podemos aumentar a capacidade de filtragem realizando expressões regulares.
| Caracteres Regex | Significado |
|---|---|
| . | Qualquer caractere único |
| [ ] | Qualquer caractere especificado |
| [ˆ ] | Não é o caractere especificado |
| * | Zero ou mais caracteres anteriores |
| ˆ | Se o primeiro caractere do padrão, o padrão deve estar no início da linha para corresponder, caso contrário, apenas um literal ^ |
| $ | Se o último caractere do padrão, o padrão deve estar no final da linha para corresponder, caso contrário, apenas um literal $ |
# 7 Filtragem de Entrada
Comando grep - Caracteres Âncora
- O primeiro caractere âncora ^ é usado para garantir que um padrão apareça no início da linha.

- Suponha que nosso objetivo é filtrar as linhas iniciadas por 'Eu' no arquivo perfil.txt

# 7 Filtragem de Entrada
Comando grep - Caracteres Âncora
- O segundo caractere âncora $ pode ser usado para garantir que um padrão apareça no final da linha
- Suponha que nosso objetivo é filtrar as linhas finalizadas por 'a' no arquivo alfabeto-lista-2.txt


# 7 Filtragem de Entrada
Comando grep - Combine um único caractere com .
- Uma das expressões mais úteis é o caractere de ponto .. Ele irá corresponder a qualquer caractere, exceto para o novo caractere de linha.
- Suponha que nosso objetivo é filtrar as linhas iniciadas por 'r' e terminadas por 'd' separadas por 2 caracateresno arquivo red.txt


E se quiser saber quais linhas tenham palavras com “ee” no seu conteúdo central?
# 7 Filtragem de Entrada
Comando grep - Combine um único caractere com .
- Suponha que nosso objetivo é filtrar as linhas contendo palavras com 4 caracteres ainda no arquivo red.txt

# 7 Filtragem de Entrada
Comando grep - Corresponder um único caractere com []
- Os colchetes [] correspondem a um único caractere da lista ou intervalo de caracteres possíveis contidos entre parênteses.

- Suponha que nosso objetivo é filtrar as linhas que possuem números no arquivo perfil.txt

grep [123456789] perfil.txt
# 7 Filtragem de Entrada
Comando grep - Corresponder um único caractere com []

- Suponha que nosso objetivo é filtrar as linhas que não possuam números no arquivo perfil.txt

# 7 Filtragem de Entrada
Comando grep - Corresponder um único caractere com []

- Suponha que nosso objetivo é filtrar as linhas que possuam letras maiúsculas e minusculas no arquivo perfil.txt

# 7 Filtragem de Entrada
Comando grep - Combine um personagem ou padrões repetidos com *
- O caractere de expressão regular * é usado para corresponder zero ou mais ocorrências de um caractere ou padrão que o precede.
- Suponha que nosso objetivo é saber qual o número das linhas que terminem com 'd' ou iniciem com 'r, re ou d', no arquivo red.txt


# 7 Filtragem de Entrada
Comando grep - Combine um personagem ou padrões repetidos com *
- Ainda no arquivo red.txt, quais linhas começam com “r” e sejam precedidas de “o” ou “e” ou nenhum desses caracteres e terminem com “d”?
- Quais linhas possuem o padrão de um ou dois “e” seguidos?


# 7 Filtragem de Entrada
Comando grep - Combine um personagem ou padrões repetidos com *
- Quais linhas iram retornar do comando grep 'z*' red.txt

- Tudo!
- * é o padrão!
# 7 Filtragem de Entrada
Comando grep - Entrada Padrão
- Se um nome de arquivo não for fornecido, o comando grep será lido a partir de entrada padrão do shell
- Experimente
- grep 'an' e tecle ENTER
- Digite uma palavra contendo 'an' e tecle ENTER
- Verifique o texto 'an' marcado
7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 8 Processo
Considere isto
Nos sistemas operacionais, um processo é a forma de representar um programa em execução. É o processo que utiliza os recursos do computador - processador, memória, etc.
# 8 Processo
Exibindo Processos
- O comando ps pode ser usado para listar processos
ps [opções…]
- PID (Process Identifier) : O identificador do processo, que é exclusivo para o processo. Esta informação é útil para controlar o processo pelo seu número de identificação.
- TTY (TeleTypewriter): O nome do terminal em que o processo está sendo executado. Esta informação é útil para distinguir entre diferentes processos que têm o mesmo nome.
- TIME: A quantidade total de tempo do processador usado pelo processo. Normalmente, essas informações não são usadas por usuários comuns.
- CMD: O comando que iniciou o processo.

# 8 Processo
Exibindo Processos
- O comando ps exibirá os processos que estão sendo executados no terminal atual por padrão.
A opção -e exibirá todos os processos além do terminal atual.

# 8 Processo
Exibindo Processos
- Um processo pode ter processos que são desencadeados a partir de sua execução (filhos) e assim sucessivamente. Para ver em formato de árvore os processos em execução utilize o comando pstree.

Experimente: pstree -p (exibe o PID dos processos)
# 8 Processo
Localizando um Processos
- Para localizar um processo precisamos listar todos e aplicar uma filtragem de entrada pelo nome do processo.


-f exibe o nome do usuário dono do processo (UID)
# 8 Processo
Finalizando um Processos
- Para finalizar um processo é necessário identificar o seu PID.

kill + PID – A aplicação tem o direito de encerrar sozinha
kill -9 + PID – A aplicação é forçada a fechar
9 representa o sinal kill e este não pode ser ignorado
- Vamos abrir 2 terminais do terminator
- Identifique o processo de cada um pelo comando ps
- Execute o comando kill + PID
Experimente
# 8 Processo
Consumo de processos
top

7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 9 Gerenciamento de Pacote
Considere isto
- O gerenciamento de pacotes é um sistema pelo qual o software pode ser instalado, atualizado, consultado ou removido de um sistema de arquivos
- No Linux, existem muitos sistemas diferentes de gerenciamento de pacotes de software diferentes, podemos citar conhecidos como o Debian (apt), Red Hat (yum) e Fedora (dnf). A máquina virtual para este curso utiliza o Ubuntu, um derivado do Debian, ou seja, comandos seram apt bla bla bla.
Gerenciamento de Pacotes
- Os arquivos de pacote são normalmente instalados baixando-os diretamente de repositórios localizados em servidores de Internet. Os repositórios Debian contêm mais de 59.000 pacotes diferentes de software.
- Antes de instalar um pacote, é uma boa prática usar a atualização da lista de pacotes disponíveis usando o comando:
-
sudo apt-get update
-
# 9 Gerenciamento de Pacote
Advanced Packaging Tool(APT)
Gerenciamento de Pacotes
- Vamos localizar um pacote antes da instalação para isso execute:
- apt-cache search [palavra chave]

# 9 Gerenciamento de Pacote
Instalando Pacotes
- Agora vamos instalar nosso primeiro pacote
- sudo apt-get install [nome pacote]

Toda instalação de pacote necessita ser realizada por um super user.
- Agora instale o pacote fortune
# 9 Gerenciamento de Pacote
Detalhes do Pacotes
- Agora vamos ver os detalhes do pacote
- apt show [nome pacote]
# 9 Gerenciamento de Pacote

Brincando com os novos pacotes
- Vamos brincar com os pacotes experimente executar:
-
cowsay "Olá, estou bombando no linux”
-
- Há não curte Vaca? Então pode trocar com -f
- cowsay -f stegosaurus "Mensagem"
- Afim de um game com mensagens aleatórias (e sarcásticas) experimente:
- fortune
- Vamos colocar essas mensagens no pinguin
- fortune | cowsay -f tux
# 9 Gerenciamento de Pacote
Atualizando Pacotes
-
O comando apt-get install também pode atualizar um pacote, se esse pacote estiver instalado e uma versão mais recente estiver disponível. Se o pacote ainda não estiver no sistema, ele será instalado; se estiver no sistema, ele será atualizado.
-
A atualização de todos os pacotes do sistema deve ser feita em duas etapas.
-
Atualize o cache de todos os pacotes disponíveis com o apt-get update.
-
Execute o comando apt-get upgrade e todos os pacotes e dependências serão atualizados.
-
# 9 Gerenciamento de Pacote
Removendo Pacotes
-
Um administrador pode executar o comando apt-get remove para remover um pacote ou o comando apt-get purge para limpar um pacote completamente do sistema.
-
O comando é capaz de remover ou limpar um pacote. A diferença entre os dois é que a limpeza apaga todos os arquivos de pacote, enquanto a remoção exclui todos os arquivos de configuração do pacote, exceto os arquivos de configuração.
# 9 Gerenciamento de Pacote
7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 10 Redirecionamento de Conteudo
Considere isto
-
Adicionar conteúdo a arquivos no Linux pode ser feito de várias maneiras. Linux tem alguns editores de texto que podem ser usados para adicionar conteúdo a um arquivo mas isso será abordado na próxima seção.
-
Quando se trata de entrada de comando e saída existem três caminhos, ou 'trilhas'. Esses caminhos são chamados de descritores de arquivo.
Redirecionamento
-
STDIN - Entrada padrão (standard input)
- O que é digitado pelo usuário
-
STDOUT - Saída padrão (standard output)
- O que é retornado pelos comandos
-
STDERR - Erro padrão (standard error)
- Qualquer erro retornado de um comando
# 9 Gerenciamento de Pacote



Redirecionamento
-
Salvando resultado STD* em arquivo
# 9 Gerenciamento de Pacote
[comando] > [arquivo]
[comando] >> [arquivo]




> substituirá qualquer conteúdo em um arquivo existente
>> anexar em vez de sobrescrever/substituir
Redirecionamento
-
Redirecionando conteúdo do STDERR
# 9 Gerenciamento de Pacote



2> Redirecionamento de erro para arquivo
Redirecionar o erro para o "buraco negro" ele é um arquivo, tipicamente utilizado para descartar o fluxo de saída de um processo cujo resultado não interessa por algum motivo.
Visualizando o erro
7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 11 Editores
Considere isto
-
O principal editor de texto para Linux e UNIX é um programa chamado vi.
-
Por quê?
-
O editor vi está disponível em todas as distribuições Linux do mundo. Isto não é verdade para qualquer outro editor.
-
O editor vi pode ser executado tanto em uma CLI (interface de linha de comando) quanto em uma GUI (interface gráfica do usuário).
-
Mantem-se com atualizações porém com compatibilidade mesmo para quem usa a décadas atrás.
-
-
Editor de texto - vi
- Vi ou Vim?
- vi - Visual Instrument
- vim - Vi IMproved (Compatível com vi)
# 11 Editores
Para começar a utilizar é simples o comando seguido do caminho do arquivo, tanto para edição quando para criação.

Editor de texto - vi
-
Inicialmente, o programa é iniciado no modo de comando. Os comandos disponíveis são:
-
Modo Movimento
-
Modo Inserção
-
Modo Ex (Comandos Básicos)
-
# 11 Editores
Movimento no Texto - vi
-
[contagem] movimento
# 11 Editores


Ações do modo de comando - vi
-
A convenção padrão para edição de conteúdo com processadores de texto é usar copiar, cortar e colar. O programa vi não tem nenhum destes. Em vez disso, vi usa os três comandos a seguir:
# 11 Editores

- ação [contagem] movimento
- [contagem] movimento ação
Ações do modo de comando - vi
-
Excluir remove o texto indicado da página e o guarda no buffer, sendo o buffer o equivalente à “área de transferência” usada no Windows ou Mac OSX. A tabela a seguir fornece alguns exemplos de uso comuns:
# 11 Editores

Substituição - vi
# 11 Editores

Arrancar (Yank) - vi
# 11 Editores
-
Yank coloca conteúdo no buffer sem excluí-lo. A tabela a seguir fornece alguns exemplos de uso comuns:

Colocar - vi
# 11 Editores
-
O colocar, posiciona o texto guardado no buffer antes ou depois da posição do cursor. Observe que estas são as duas únicas opções, o colocar não usa os movimentos como os comandos de ação anteriores.

Pesquisar - vi
# 11 Editores
-
Para pesquisar a partir da posição atual do cursor, use / para iniciar a pesquisa, digite um termo de pesquisa e pressione a tecla Enter para iniciar a pesquisa. O cursor se moverá para a primeira correspondência que for encontrada.

Comandos de inserção - vi
# 11 Editores

Modo Ex (Comandos Básicos)
# 11 Editores
-
Quando o modo ex do editor vi está sendo usado, é possível visualizar ou alterar configurações, bem como executar comandos relacionados a arquivos, como abrir, guardar ou interromper alterações em um arquivo. Para chegar ao modo ex, digite um caractere : no modo de comando.

Vamos Experimentar - vi
# 11 Editores
-
Ouviram do Hipiranga as Margens pracidas,
De Um Povo Heroico o brado Redumbante,
- Abrir o arquivo hino.txt na pasta documentos com vi
- Navegar até os pontos de erro do texto e realizar a correção;
- Salvar uma cópia do arquivo corrigido;
- Incluir o restante da primeira estrofe do hino ao arquivo.
Editor de texto - nano
# 11 Editores
-
sudo apt install nano
-
nano arquivo
-
Todos os comandos são prefixados com um ^ ou caractere M.
-
O símbolo de acento circunflexo (^) representa a Ctrl. Logo exemplo ˆX significa CTRL + X.
-
A letra M representa a tecla Alt
-
Você pode obter uma lista de todos os comandos digitando Ctrl+g

7
Filtragem de
entrada
8
Processos
9
Gerenciamento de
Pacotes
11
Editores de texto
10
Redirecionamento de conteúdo
12
Comandos extras
# 12 Extras
Desligando
-
shutdown now -> Desligar imediatamente
-
shutdown hh:mm -> Desligar após horas e minutos
-
shutdown +minutos -> Desligar após x minutos
-
shutdown +minutos “Tchau Mundão de Deus”
-
shutdown -r -> Reiniciar o sistema
-
shutdown -c -> Cancelar desligamento agendado
shutdown [opções] tempo [mensagem]


Experimente
- Abra 2 terminais
- Faça um shutdown para +2 minutos com mensagem
# 12 Extras
Configuração de rede
-
O comando ifconfig significa “configuração de interface” e é usado para exibir informações sobre a configuração de rede.
ifconfig [opções]

Dispositivo
Endereço IPv4
Estado do dispositivo
# 12 Extras
Configuração de rede
-
O comando ping é usado para verificar a conectividade entre dois computadores. Ele faz isso enviando pacotes para outra máquina em uma rede. Se o remetente receber uma resposta, deverá ser possível conectar-se a essa máquina.
ping [opções]


4 pings em domínio
pings infinitos no host
# 12 Extras
Criando usuário e grupo
-
adduser nome usuario
-
useradd -m -s /bin/bash testuser
-
groupadd nome_grupo
-
Apenas root ou usuários com privilégios sudo podem usar o comando useradd e groupadd para criar novas contas de usuário e grupos respectivamente.
adduser [usuário]
useradd [opções] [usuário]
groupadd [opções] [grupo]
Por padrão a pasta do usuário é criado em /home o -d define a pasta inicial do shell do usuário
Login shell para nova conta
Criar diretório home
# 12 Extras
Atualizando/criando senha de usuários
-
O comando passwd é usado para atualizar a senha de um usuário.
passwd [opções] [usuário]

# 12 Extras
Atualizando senhas de usuários
-
Se o usuário quiser exibir informações de status sobre sua senha, ele pode usar a opção -S:
passwd -S sysadmin

Os usuários só podem alterar suas próprias senhas, enquanto o usuário root pode atualizar a senha para qualquer usuário.

# 12 Extras
Atualizando senhas de usuários
-
O usuário root pode alterar a senha de qualquer usuário. Se o usuário root quiser alterar a senha para sysadmin, ele executaria o seguinte comando:

# 12 Extras
Atualizando usuários
-
Embora seja possível alterar os arquivos /etc/passwd (configurações do usuário), /etc/shadow (as senhas dos usuários) e /etc/group (configurações de grupo) com os privilégios de um root, a prática não é recomendada, pois qualquer falha na alteração destes arquivos pode comprometer o acesso dos usuários ao sistema.
-
Sendo assim, o comando usermod (de user modification ou modificação de usuário) e os parâmetros “-aG” são geralmente usados em conjunto e permitem adicionar o usuário em novos grupos sem, no entanto, retirá-lo dos grupos dos quais já faz parte.
- usermod -a -G nome_grupo usuario
- usermod -aG nome_grupo usuario
usermod pode ser utilizado apenas por usuário sudo
# 12 Extras
Atualizando usuários
-
Incluindo usuário criado ao grupo de sudoer
- usermod -aG sudo vanilton
Dica verificar: /etc/sudoers (%sudo)
Aqui resolvemos o problema do usuário vanilton não utilizar sudo
Experimente
- Acessar o shell do usuário vanilton
- Fazer um sudo apt-get update ou instalar qualquer pacote
# 12 Extras
Removendo usuários
-
Excluindo usuário do sistema
- userdel -r -f nome_usuario
Dica: Para deletar deve ser sudo
# 12 Extras
Verificando groups do usuário
- groups nome_usuario

-
Listando os grupos que o usuário faz parte
# 12 Extras
Status do usuário logado
-
Exibindo informações sobre os usuários atualmente na máquina e seus processos
-
w [opções] [usuário]

# 12 Extras
Adicionando usuário ao arquivo sudoers
-
Incluir o usuário no arquivo sudoers.
-
nano /etc/sudoers

Dica: Para alterar deve ser sudo
# 12 Extras
Compactação Arquivos zip
-
Compactando
- zip -r meu.zip diretório
- Descompactando
- unzip meu.zip -d diretorio
- unzip meu.zip (para o diretório atual)
- unzip -t meu.zip (testar o zip)
Experimente
- Criar 2 arquivos
- Compacte-os com o nome "meu.zip"
- Descompacte-os na pasta Downloads
# 12 Extras
(Des)empacotar e(des)comprimir arquivos
-
tar –czvf DESTINO(empacotamento) DESTINO(os arquivos que serão empacotados ou o local onde serão desempacotados).
-
tar -czvf meu.tar.gz * (compactando todos arquivos do diretório atual)
-
“-c” indica que o arquivo de pacote está sendo criado, enquanto “-z” aponta que desejo comprimir o arquivo de destino com gzip; “-v” é o sempre útil verbose, enquanto “-f”, desta vez, não é force, e, sim, qual o nome do arquivo que irei gerar, neste caso, meu.tar.gz.
Experimente
- Criar uma pasta com 2 arquivos
- Compacte a pasta com nome "pasta-compactada.tar.gz"
# 12 Extras
(Des)empacotar e(des)comprimir arquivos
-
tar –czvf DESTINO(empacotamento) DESTINO(os arquivos que serão empacotados ou o local onde serão desempacotados).
-
tar -czvf meu.tar.gz * (compactando todos arquivos do diretório atual)
-
Lembre-se que extensões são opcionais, mas não quer dizer que não devemos usá-las: o arquivo resultante poderia se chamar apenas "meu", mas seria complicado fazer o processo inverso sem saber a natureza do arquivo; a extensão .tar indica que o arquivo é um empacotamento do tipo tar, enquanto a segunda extensão do arquivo, .gz, aponta que este foi comprimido com gzip. É uma convenção útil, embora existam outros usuários que preferem a extensão .tgz.
O parâmetro “-j” no lugar do “-z” permitirá usar o compactador bzip2 no lugar do gzip e, neste caso, as extensões aceitáveis para arquivo final seriam .tar.bz2 ou .tbz.
# 12 Extras
Descomprimir
-
Como visto antes no processo de compressão de arquivos, para realizar o inverso basta substituir o parâmetro “-c” por “-x”
-
tar -xzvf meu.tar.gz (para o diretório atual)
-
tar -xzvf meu.tar.gz --directory=caminho
-
“-x” (do verbo inglês to extract ou extrair)
Experimente
- Descompacte o arquivo pasta-compactada.tar.gz na pasta Downloads
# 12 Extras
Baixando arquivos da internet
- Em alguns casos temos necessidade de realizar download de arquivos da internet, para isso podemos utilizar o pacote wget.
-r recursivo, -l nível de pasta
http://vanilton.net/download/zip.zip
wget url_do_aquivo
wget -r -l 1 http://vanilton.net/download
- E se quisermos baixar os arquivos da basta recursivamente?
# 12 Extras
Varredura de rede
- O nmap (“Network Mapper”) é uma ferramenta de código aberto para exploração de rede e auditoria de segurança. Ele foi projetado para verificar rapidamente redes grandes, embora funcione bem para verificar hosts únicos .
Por exemplo, 192.168.10.0/24 varreria os 256 hosts -> 192.168.10.0 até 192.168.10.255
- nmap vanilton.net
- nmap 192.168.0.0/24
sudo apt install nmap
nmap [Tipo de digitalização...] [opções] destino
nmap -O vanilton.net
- E se quisermos saber o Sistema Operacional?
Ping scan é a maneira mais fácil de detectar hosts em qualquer rede
# 12 Extras
Controlando adaptador de rede
-
Ativando ou desativando interface de rede
-
ifconfig [NOME_ADAPTADOR] down ou up
-
- Identificando a interface de rede
- ip a


-
Verificando o status da interface de rede
-
ip a show [INTERFACE_REDE]
-
# 12 Extras
Links Simbólicos
- Link simbólico atua como uma string criando caminhos para diferentes arquivos, pastas e diretórios no sistema do computador.
ln -s [arquivo alvo] [arquivo simbólico]



- Vamos criar um link simbolico para o arquivo ola.sh no path do sistema /usr/bin
# 12 Extras
Links Simbólicos
- Agora vamos criar um simbólico para a pasta matemática em ~/Documents/Escola
ln -s [arquivo alvo] [arquivo simbólico]

# 12 Extras
Find
- Localizando por nome
find [diretório de início] [opções] termo de busca
find . -name "arquivo"
find . -iname "ArquivO"
find . -not -name ou \! -name
- Localizando e removendo
find . -name "os" -delete
- Localizando por tipo
find ~/Documents -type d
find ~/Documents -type d -name "casa"
f – arquivo normal
d – diretório ou pasta
l – link simbólico
c – dispositivos de caracteres
b – dispositivos bloqueados# 12 Extras
Find
- Localizando por tempo
find /home -atime 1
find /home -mtime +2
find /home -mmin -2
- Localizando por tamanho
find . -size 50M
- Localizando por Propriedade
find /home/ -user vanilton
find /home -group root
Data de acesso (-atime)
Data de modificação (-mtime)
Data de alteração (-ctime)c – bytes
k – kilobytes
M – megabytes
G – gigabytes
B – blocos de 512-bytefind / -size +1GB
# 12 Extras
Find
- Localizando por permissão
find / -perm 644
find / -perm -644
- Outras formas
find / -empty
find / -readeable
find /home/sysadmin/Documents/ -name "*.txt" -exec du -sh {} \; > result.txt
# 12 Extras
Locate
- Outra forma de localizar arquivos é através do comando locate. Por padrão o Linux não vem com o comando locate pré instalado. Para instalar esse pacote, execute os seguintes comandos em seu terminal
- locate os.csv
- locate ~/*.txt
- locate -c ~/*.txt
sudo apt install mlocate
locate [opções...] padrão
# 12 Extras
Múltiplos comandos + echo
- Vamos fazer um arquivo de bate papo entre João e Maria

- Pode-se utilizar ; ou && para separar os comandos
- echo "texto" irá direcionar o texto para o arquivo
- > - Sobrescreve o arquivo
- >> - Realiza a inclusão do conteúdo ao final do arquivo
# 12 Extras
Diferença entre arquivos
- diff lista1 lista2
- diff -y lista1 lista2
diff [opções...] arquivo
- Letra "c" é de change ou trocar em português
- O símbolo menor que "<" indica que deve ser retirada a informação que lhe segue
- --- Separa da informação a ser substituída
- O símbolo maior que ">" indica que deve ser incluída a informação
- linhaXdInfo // continuando na linha X devemos deletar "d" a informação
- linhaXdInfo linha 7 devemos adicionar "a" a informação
# 12 Extras
Histórico de comandos
- O comando é simplesmente chamado de history, mas também pode ser acessado olhando seu .bash_history em sua pasta pessoal. Por padrão, o comando history mostrará os últimos quinhentos comandos que você digitou.
- history - últimos 500 comandos
- history 25 - últimos 25 comandos
- history | less - visualizar o histórico uma página de cada vez
- history | tail - últimos 10 comandos
- Pode-se utilizar o grep também para realizar a filtragem de algum resultado esperado
# 12 Extras
Localizar processo por porta
- lsof -i :port
# 12 Extras
Checando disponibilidade de porta
- nc -vz {host} {port}
nc -vz 192.168.0.1 80- telnet {host} {port}
telnet 192.168.0.1 80# 12 Extras
Acessando máquina por SSH
- ssh user@ip
- ssh sysadmin@10.13.0.166
# 12 Extras
Checando espaço no disco
- df -h

Diretório virtual para o diretório /dev. Isso faz parte do sistema operacional Linux.
Você pode ter vários desses. Eles são usados por /run e outros processos do Linux como sistemas de arquivos temporários para executar o sistema operacional. Por exemplo, o tmpfs /run/lock é usado para criar lockfiles. Esses são os arquivos que impedem que vários usuários alterem o mesmo arquivo ao mesmo tempo.
Este é o seu disco rígido físico. Ele pode estar listado como /sda1, /sda0, ou você pode até ter mais de um. /dev significa dispositivo.
# 12 Extras
Backup
- dd if=$entrada_dado of=$saida_dado [opções]
Em primeiro lugar, o nome vem de “duplicador de dados”
Criando imagem do disco
- dd if=/dev/sda of=~/imagem.img ou .iso
Restaurando imagem do disco
- dd if=~/imagem.img of=/dev/sda
# 12 Extras
Variável de Ambiente
As variáveis de ambientes existem em todos os sistemas operacionais e no Linux são espaços reservados para informações armazenadas dentro do sistema que repassa dados para programas iniciados nos shells.
- Exibindo as variáveis e valores
- printenv ou printenv [variable...]
- echo $VARIABLE
- Criando uma variável
-
export minha_variavel="felizao"
- Removendo uma variável
-
unset minha_variavel
# 12 Extras
Variável de Ambiente
Variáveis conhecidas
- SHELL: descreve o shell que irá interpretar todos os comandos que você digitar. Geralmente, isso será bash por padrão, mas outros valores podem ser definidos caso prefira outras opções.
- USER: o usuário que está atualmente conectado.
- PWD: o diretório de trabalho atual.
- OLDPWD: o diretório de trabalho anterior. Isso é mantido pelo shell para retornar ao seu diretório anterior executando cd -.
- PATH: uma lista de diretórios que o sistema irá verificar ao procurar por comandos. Quando um usuário digita um comando, o sistema irá verificar diretórios neste pedido para o executável.
- LANG: a configuração atual de idioma e localização, incluindo a codificação de caracteres.
- HOME: o diretório base do usuário atual.
- EDITOR: o editor de texto padrão
# 12 Extras
Variável de Ambiente
Fixando variáveis
Normalmente vamos querer que nossas configurações estejam disponíveis tanto em shells com login quanto sem login. Isso significa que o lugar para definir essas variáveis é no arquivo ~/.bashrc.
O arquivo .bashrc é um script de shell que é executado toda vez que um usuário abre um novo shell.
- nano ~/.bashrc
-
export VARIAVEL=VALOR
- Ex: Incluindo variável no PATH
- export PATH=$VARIAVEL:$PATH
- Ex: Incluindo variável no PATH
- source ~/.bashrc
Forçar a atualização das variáveis do shell atual
Se precisar definir variáveis em todo o sistema, pense em adicioná-las ao /etc/profile, /etc/bash.bashrc ou /etc/environment.
# 12 Extras
Variável de Ambiente
Criando apelido
Podemos customizar comandos criando apelidos.
- alias meu_apelido='echo to fazendo isso aqui'
- Para definir o apelido fixamente a cada shell inclua no ~/.bashrc
- nano ~/.bashrc
- source ~/.bashrc
# 12 Extras
Date e Calendário
-
Data
- date
-
Calendário
- cal
- cal mês ou ano
# 12 Extras
Dicas para usar as linhas de comandos
- Usar o comando clear para limpar o terminal se ele ficar cheio com muitos comandos
- Clicar em TAB para preencher o terminal. Por exemplo, você só precisa digitar “ cd Doc ” e então TAB e o terminal preenche o resto e torna-o “ cd Documentos”;
- Usar Ctrl + C para interromper qualquer comando no terminal com segurança. Se a ação não para, então Ctrl + Z pode ser usado para forçar a parada;
- Sair do terminal usando o comando exit;
- Desligar ou reinicializar o computador usando o comando sudo halt e sudo reboot .
vanilton18@gmail.com
Vanilton Pinheiro

Me encontre em...

Referências >>
Distribuições
https://guialinux.uniriotec.br/distribuicoes-linux/
https://www.gnu.org/distros/free-distros.html
GNU - https://www.gnu.org/gnu/gnu-history.html
Software Livre
https://www.gnu.org/philosophy/free-sw.pt-br.html
Outros
https://pt.wikipedia.org/wiki/Linux_Standard_Base
https://www.cyberciti.biz/faq/find-print-linux-unix-kernel-version/
https://sempreupdate.com.br/unix-vs-linux-as-diferencas-entre-eles-e-por-que-isso-importa/
https://www.tecmundo.com.br/macos/10556-unix-o-pai-de-todos-os-sistemas-operacionais.htm
Arquivos
https://www.portalgsti.com.br/2017/04/tipos-de-arquivos-em-linux.html
Acesso Administrativo
https://www.infowester.com/linroot.php
https://mateusmuller.me/2019/01/30/sudo-o-que-e-sudo-su-no-linux/
Arquivos
https://www.hostinger.com.br/tutoriais/comando-cat-linux
Filtragem de entrada
https://www.cyberciti.biz/faq/grep-regular-expressions/
Processos
Gerenciamento de Pacote
https://e-tinet.com/linux/7-gerenciadores-de-pacotes-linux/
https://sempreupdate.com.br/qual-a-diferenca-entre-comandos-apt-e-apt-get/
Redirecionamento
https://pt.wikipedia.org/wiki/Dispositivo_nulo
Editores
https://www.tecmint.com/best-open-source-linux-text-editors/
Extras
https://linuxize.com/post/how-to-create-users-in-linux-using-the-useradd-command/
https://www.hostinger.com.br/tutoriais/wget-o-que-e-como-instalar-comandos-wget
https://www.hostinger.com.br/tutoriais/como-criar-link-simbolico-linux
https://mediatemple.net/community/products/dv/204404624/using-the-history-command
https://www.hostinger.com.br/tutoriais/find-locate-comandos-linux
Linux Basico
By Vanilton Pinheiro
Linux Basico
- 425