Vá além do ls
Vá além do ls
Vá além do ls
Vanilton Pinheiro
Pinheiro
O que trás vocês até aqui?
# O que vamos precisar
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho e Arquivos
Permissões
Acesso
Administrativo
Arquivos
# O que veremos
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# O que veremos
# 1 INTRODUÇÃO
# 1 INTRODUÇÃO
História do Linux
# 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
Caminho
Kenneth Thompson reescreve o sistema -> Unics (pretenções reduzidas) -> Deu Bom
Kenneth Thompson renomeia -> Unix -> Ficou Ótimo!
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!
# 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.
# 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.
# 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.
# 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.
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
# 1 INTRODUÇÃO
História do 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 👭👬
# 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.
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.
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
🆓 ❗ 👐
# 1 INTRODUÇÃO
Conceito de Linux
# 1 INTRODUÇÃO
Conceito de Linux
Fonte: https://www.kernel.org/
Vamos ver o comando uname (Unix Name)
| 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
# 1 INTRODUÇÃO
Unix vs Linux
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.
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
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
# 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.
# 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?
# 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?
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?
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?
# 1 INTRODUÇÃO
Por que usar? Por quê aprender Linux? Quem pode usar? Quem usa?
Engenharia de rede
Cibersegurança
Desenvolvimento/Programação
Análise de Dados
# 1 INTRODUÇÃO
Como Instalar?
# 1 INTRODUÇÃO
Como Instalar?
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho e Arquivos
Permissões
Acesso
Administrativo
Arquivos
# 2 Sintaxe de Comando Básico
Por quê?
Interface Gráfica de usuário - GUI
Interface de Linha de Comando - CLI
# 2 Sintaxe de Comando Básico
Por quê?
Em uma GUI, os aplicativos se apresentam em janelas que podem ser redimensionadas e movidas
# 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.
# 2 Sintaxe de Comando Básico
Como funciona?
# 2 Sintaxe de Comando Básico
Como funciona?
Mas o que eu ganho aprendendo linha de comando?
Produtividade
Velocidade
Automatizar Tarefas
Scriptar
# 2 Sintaxe de Comando Básico
Primeiros comandos
O primeiro comando é o mais essencial de todos e uma lição para todos nós:
# 2 Sintaxe de Comando Básico
Primeiros comandos
man ls
programa
abreviação de manual
# 2 Sintaxe de Comando Básico
Primeiros comandos
# 2 Sintaxe de Comando Básico
Primeiros comandos
# 2 Sintaxe de Comando Básico
Primeiros comandos
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [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.
# 2 Sintaxe de Comando Básico
Primeiros comandos
comando [opções…] [argumentos…]
A saída é uma bela vaquinha mugindo
$ apt moo
# 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.
# 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
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho
Permissões
Acesso
Administrativo
Arquivos
# 3 Diretório de Trabalho
mkdir [opções…] [diretório]
O comando mkdir (make directory) cria diretório no sistema operacional
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
# 3 Diretório de Trabalho
# 3 Diretório de Trabalho
~ Representa o diretório home do usuário
/ Representa uma nova localização
# 3 Diretório de Trabalho
Use o comando cd (change directory) para alterar diretórios
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 /
# 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 /
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.
Caminho Relativo
Confirmando o caminho (pwd caminho absoluto)
# 3 Diretório de Trabalho
Voltar Diretório
Diretório Atual
Diretório Home Usuário
# 3 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
| 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
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
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
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
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
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.
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho e Arquivos
Permissões
Acesso
Administrativo
Arquivos
# 4 Acesso Administrativo
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]
# 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.
Outras formas de fazer:
su -l
su --login
# 4 Acesso Administrativo
# 4 Acesso Administrativo
# 4 Acesso Administrativo
sudo [opções…] [comando]
# 4 Acesso Administrativo
sudo [opções…] [comando]
Agora experimento executar a locomotiva com permissão para o root com sudo.
# 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.
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
Vamos resolver esse problema mais a frente :)
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho e Arquivos
Permissões
Acesso
Administrativo
Arquivos
# 5 Permissões
As permissões determinam as maneiras pelas quais diferentes usuários podem interagir com um arquivo ou diretório.
# 5 Permissões
# 5 Permissões
# 5 Permissões
# 5 Permissões
| 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
# 5 Permissões
chmod [opções…] [modo] [arquivo]
# 5 Permissões
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
| 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
chmod [opções…] [modo] [arquivo]
chmod [opções…] [conjunto, ação e permissão] [arquivo]
chmod u=rwx, g=rw, o=r arquivo1
chmod -R u=rwx, g=rw, o=r nome_pasta
Exemplos
# 5 Permissões
# 5 Permissões
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 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.
# 5 Permissões
chown [opções…] [proprietário] [arquivo]
Vamos alterar o dono do arquivo ola.sh para root na pasta Documents do usuário sysadmin
# 5 Permissões
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
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
Introdução
Sintaxe de
Comando Básico
Diretórios de Trabalho e Arquivos
Permissões
Acesso
Administrativo
Arquivos
# 6 Arquivos
Existem alguns comandos Linux disponíveis para visualizar o conteúdo dos arquivos.
# 6 Arquivos
cat [opções…] [arquivo]
# 6 Arquivos
Outros exemplos
# 6 Arquivos
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
Experimente
# 6 Arquivos
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
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
Experimente
# 6 Arquivos
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
mv [fonte] [destino]
O comando mv é usado para mover um arquivo de um local no sistema de arquivos para outro.
# 6 Arquivos
Mover vários arquivos
Experimente - Mova os arquivos:
# 6 Arquivos
Renomear arquivos no mesmo diretório
# 6 Arquivos
rm [opções..] [arquivo]
O comando rm é usado para excluir arquivos e diretórios.
# 6 Arquivos
# 6 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
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 7 Filtragem de Entrada
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
grep [opções…] [padrão] [arquivo]
# 7 Filtragem de Entrada
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
| 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
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
E se quiser saber quais linhas tenham palavras com “ee” no seu conteúdo central?
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
grep [123456789] perfil.txt
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
# 7 Filtragem de Entrada
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 8 Processo
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
ps [opções…]
# 8 Processo
A opção -e exibirá todos os processos além do terminal atual.
# 8 Processo
Experimente: pstree -p (exibe o PID dos processos)
# 8 Processo
-f exibe o nome do usuário dono do processo (UID)
# 8 Processo
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
Experimente
# 8 Processo
top
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 9 Gerenciamento de Pacote
sudo apt-get update
# 9 Gerenciamento de Pacote
Advanced Packaging Tool(APT)
# 9 Gerenciamento de Pacote
Toda instalação de pacote necessita ser realizada por um super user.
# 9 Gerenciamento de Pacote
# 9 Gerenciamento de Pacote
cowsay "Olá, estou bombando no linux”
# 9 Gerenciamento de Pacote
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
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
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 10 Redirecionamento de Conteudo
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.
# 9 Gerenciamento de Pacote
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
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
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 11 Editores
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.
# 11 Editores
Para começar a utilizar é simples o comando seguido do caminho do arquivo, tanto para edição quando para criação.
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
[contagem] movimento
# 11 Editores
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
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
# 11 Editores
# 11 Editores
Yank coloca conteúdo no buffer sem excluí-lo. A tabela a seguir fornece alguns exemplos de uso comuns:
# 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.
# 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.
# 11 Editores
# 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.
# 11 Editores
Ouviram do Hipiranga as Margens pracidas,
De Um Povo Heroico o brado Redumbante,
# 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
Filtragem de
entrada
Processos
Gerenciamento de
Pacotes
Editores de texto
Redirecionamento de conteúdo
Comandos extras
# 12 Extras
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
# 12 Extras
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
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
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
O comando passwd é usado para atualizar a senha de um usuário.
passwd [opções] [usuário]
# 12 Extras
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
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
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 pode ser utilizado apenas por usuário sudo
# 12 Extras
Incluindo usuário criado ao grupo de sudoer
Dica verificar: /etc/sudoers (%sudo)
Aqui resolvemos o problema do usuário vanilton não utilizar sudo
Experimente
# 12 Extras
Excluindo usuário do sistema
Dica: Para deletar deve ser sudo
# 12 Extras
Listando os grupos que o usuário faz parte
# 12 Extras
Exibindo informações sobre os usuários atualmente na máquina e seus processos
w [opções] [usuário]
# 12 Extras
Incluir o usuário no arquivo sudoers.
nano /etc/sudoers
Dica: Para alterar deve ser sudo
# 12 Extras
Compactando
Experimente
# 12 Extras
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
# 12 Extras
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
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
# 12 Extras
-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
# 12 Extras
Por exemplo, 192.168.10.0/24 varreria os 256 hosts -> 192.168.10.0 até 192.168.10.255
sudo apt install nmap
nmap [Tipo de digitalização...] [opções] destino
nmap -O vanilton.net
Ping scan é a maneira mais fácil de detectar hosts em qualquer rede
# 12 Extras
Ativando ou desativando interface de rede
ifconfig [NOME_ADAPTADOR] down ou up
Verificando o status da interface de rede
ip a show [INTERFACE_REDE]
# 12 Extras
ln -s [arquivo alvo] [arquivo simbólico]
# 12 Extras
ln -s [arquivo alvo] [arquivo simbólico]
# 12 Extras
find [diretório de início] [opções] termo de busca
find . -name "arquivo"
find . -iname "ArquivO"
find . -not -name ou \! -name
find . -name "os" -delete
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 /home -atime 1
find /home -mtime +2
find /home -mmin -2
find . -size 50M
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 / -perm 644
find / -perm -644
find / -empty
find / -readeable
find /home/sysadmin/Documents/ -name "*.txt" -exec du -sh {} \; > result.txt
# 12 Extras
sudo apt install mlocate
locate [opções...] padrão
# 12 Extras
# 12 Extras
diff [opções...] arquivo
# 12 Extras
# 12 Extras
# 12 Extras
nc -vz 192.168.0.1 80telnet 192.168.0.1 80# 12 Extras
# 12 Extras
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
Em primeiro lugar, o nome vem de “duplicador de dados”
Criando imagem do disco
Restaurando imagem do disco
# 12 Extras
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.
export minha_variavel="felizao"
unset minha_variavel
# 12 Extras
Variáveis conhecidas
# 12 Extras
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.
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
Criando apelido
Podemos customizar comandos criando apelidos.
# 12 Extras
# 12 Extras
vanilton18@gmail.com
Me encontre em...
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