Buscar

sysadminlinux-volume1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

“Compreender o funcionamento do GNU/Linux,
passou de uma opção para uma necessidade para
todos aqueles que trabalham com TI”.
Página: 1
SYSADMIN
LINUX – 
volume I
Sobre o autor
Prof. Juliano Ramos de Oliveira é engenheiro da computação e possui
diversas certificações de Linux entre elas: Comptia Linux+, Red Hat
RHCSA, SUSE CLA, LPIC-2 e em segurança CEH – Hacker ético.
Juliano, também é conhecido na rede como grubelilo. Sua primeira
certificação linux foi da extinta Conectiva Linux em 2002, desde esta
época o Prof. Juliano Ramos vem atuando como consultor e coordenador
de projetos que envolvam o software open source.
Na prefeitura de São Paulo, atuou cinco anos, coordenando unidades do programa telecentros,
maior programa de inclusão digital da América Latina, implementado 100% em GNU/Linux.
Grubelilo, já atuou como consultor e instrutor nas principais escolas de cursos preparatórios de
Linux em São Paulo como 4 Bios Academy e Linux Force Brasil.
Atualmente, o professor possui um canal no youtube com vídeos diários sobre linux e três
programas ao-vivo semanalmente. 
Contato do autor:
profjulianoramos@gmail.com
http://www.youtube.com.br/profjulianoramos
http://facebook.com/julianotux
“E conhecereis a verdade e a verdade vos libertará.” - Jesus Cristo
Página: 2
mailto:profjulianoramos@gmail.com
http://facebook.com/julianotux
http://www.youtube.com.br/profjulianoramos
Licença de uso – Creative Commons
Você tem o direito de:
Compartilhar — copiar e redistribuir o material em qualquer suporte ou 
formato.
Adaptar — remixar, transformar, e criar a partir do material para qualquer 
fim, exceto comercial.
O licenciante não pode revogar estes direitos desde que você respeite os 
termos da licença
“Escrito deliciosamente com o Libreoffice 5.4”
Página: 3
Origem do Linux
O nome Linux, surgiu da mistura de Linus + Unix. Linus é o nome do criador do linux, Linus
Torvalds e Unix, é o nome de um sistema operacional de grande porte, no qual contaremos sua
história agora, para que você entenda melhor a do Linux: A origem do Unix tem ligação com o
sistema operacional Multics, projetado na década de 1960. Esse projeto era realizado pelo
Massachusets Institute of Technology (conhecido como MIT), pela General Eletric (GE) e pelos
laboratórios Bell (Bell Labs) e American Telephone Telegraph (AT&T). A intenção era de que o
Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos
de um único computador), sendo assim, o sistema mais arrojado da época. Em 1969, já existia uma
versão do Multics rodando num computador GE645. Ken Thompsom, era um pesquisador do
Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas
ele continuou seus estudos no sistema; desde então, sua ideia não era continuar no Multics original
e sim criar algo menor, mas que conservasse as ideias básicas do sistema. A partir daí, começou a
saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse
nome. Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, rescreveu todo o sistema Unix
numa linguagem de alto nível, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema
passou a ter grande aceitação por usuários externos à Bell Labs. Entre 1977 e 1981, a AT&T, alterou
o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma
série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje
esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é
comercializado por empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito
caro e é usado em computadores poderosos por diversas multinacionais. Mas, qual a relação entre o
Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds? Para responder essa pergunta, é
necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix,porém,
gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode
fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar
o Unix em casa. No entanto, vale citar que ele foi escrito do "zero" e apesar de ser uma versão do
Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente. A partir
daí, "entra em cena", Linus Torvalds. Ele era um estudante de Ciências da Computação da
Universidade de Helsinki, na Finlândia. E em 1991, por hobby, Linus decide desenvolver um
sistema mais poderoso que o Minix. No mesmo ano, ele disponibilizou a versão do kernel (núcleo
dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994, quando disponibilizou a
versão 1.0. Até o momento em que este artigo estava sendo escrito, a versão atual do kernel do linux
é o 2.6.26. O Linux é um sistema operacional livre, e é uma re-implementação das especificações
POSIX(padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com
extensões System V e BSD. Isso significa que o Linux, é bem parecido com Unix, mas não vem do
mesmo lugar e foi escrito de outra forma.
Página: 4
Sr. Linus Benedict Torvalds
Linus Benedict Torvalds, é o criador do kernel do sistema operacional GNU/Linux muitas vezes
chamado apenas de "linux". Linus nasceu em Helsinque capital da República da Finlândia no dia 28
de Dezembro de 1969; e no fim dos anos 80 já programava em linguagem C com maestria. Sua
relação com o Linux começou quando Linus desejou rodar em seu computador pessoal o sistema
operacional Minix; descontente com os recursos deste sistema, começou a desenvolver o seu
próprio Kernel. No ano de 1991 Torvalds lançou o seu projeto em uma famosa mensagem para a
Usenet, desde os primeiros dias ele recebeu ajuda de hackers do Minix, e hoje recebe contribuições
de milhares de programadores no mundo todo.
GNU, GPL e Software Livre
O projeto GNU que significa (GNU's Not Unix) "Gnu não é UNIX", foi
iniciado em 1984 por Richard Stallman, com o intuito de que seus utilizadores
possam gozar de mais liberdade, e não serem reféns de empresas que os
vendem. Da mesma forma, os programadores não devem ser limitados, mas sim
ter livre acesso a reutilizar o código fonte. O objetivo principal de Richard
Stallman era a construção de um sistema operacional chamado GNU completo
e livre, similar ao UNIX.No início da década de 90, o GNU estava quase pronto. Já possuía um
conjunto de bibliotecas denominado de GNU lib C, além de outras ferramentas como os comandos:
grep,cut,ls,mkdir,rmdir,ln e algumas ferramentas de compilação como: make,gcc,autoconf. Mas
para que o sistema operacional estivesse completo era necessário um kernel e este estava sendo
criado com o nome de HURD, infelizmente a um processo muito lento. Neste tempo Linus Torvalds
lançou o seu kernel e muitas pessoas começaram a juntar este kernel com os aplicativos GNU,
formalizando uma parceria perfeita. Daí a designação mais correta dos sistemas denominados
"Linux" é "GNU/Linux".
Richard Matthew Stallman
Nasceu em Nova Iorque no dia 16 de março de 1953; frequentemente abreviado para “RMS” ele é 
considerado um grande hacker, fundador do movimento free software e do projeto GNU. Desde a 
metade dos anos 90, Stallman tem dedicado a maior parte do seu tempo ao ativismo político, 
defendendo o software livre. Ele também é o criador da fundação do Software livre (FSF) que 
prateje de forma legal os softwares registrados sobre a lei GPL.
Página: 5
Distribuições GNU/Linux
Uma distribuição ou distro Linux é um sistema operacional Unix-Like que inclui o Kernel Linux e
outros softwares de aplicação, formando um conjunto. Como grande parte destes softwares são
aplicações que em primórdio foram criadas para o sistema operacional GNU é conveniente que
recebam o nome de distribuiçãoGNU/Linux. Algumas distros são mantidas por organizações
comerciais, como a Red Hat, Ubuntu, Suse e Mandriva, outras são mantidas pela comunidade como
o Debian e o Gentoo. São mais de trezentas distribuições de Gnu/Linux embora cerca de vinte
sejam conhecidas.
Mas, por que existem tantas distribuições? Justamente porque se você não se identifica com 
nenhuma delas, você é livre para fazer a sua própria. Por exemplo, em 1993, um rapaz chamado 
Patrick Volkerding, juntou o kernel e vários outros aplicativos em uma distribuição chamada 
Slackware, que foi a primeira a ser distribuída em CD. A partir desse ponto, foram surgindo 
diversas outras distribuições que de alguma forma diferiam da filosofia do Slackware: como Debian
ou RedHat. Atualmente existem centenas de distribuições, algumas mais famosas que outras. Em 
sua maioria, as distribuições GNU/Linux são mantidas por grandes comunidades de colaboradores, 
entretanto, há outras que são mantidas por empresas. Dessa forma, podemos dividir as “distros”, 
abreviação bastante utilizada na comunidade e que se refere às distribuições, em duas categorias 
básicas:
Desktop, Para uso doméstico:
Ubuntu, Mageia, Fedora, Debian
Corporativas, Para uso em empresas:
Red Hat, SUSE, Debian, CentOS, Oracle Linux
Atualmente existem centenas de distribuições, algumas mais famosas que outras. Em sua maioria, 
as distribuições GNU/Linux são mantidas por grandes comunidades de colaboradores, entretanto, 
há outras que são mantidas por empresas.
Página: 6
O Shell
O Shell é um interpretador de comandos que analisa o texto digitado na linha de comandos e os 
executa produzindo algum resultado.
Os principais shell são:
bash, sh, csh, tcsh, ksh e zsh, sendo o bash, o shell padrão na maioria das distribuições de Linux.
Prompt do Shell
O símbolo $ (dólar) identifica o prompt de comandos do shell. Algumas variações deste símbolo 
são permitidas, como o nome de usuário, do computador, diretório corrente entre outras opções.
Simbologia
O prompt do shell pode variar, dependendo do usuário que está utilizando o sistema no momento. O
sinal “$” significa que um usuário comum é que está usando a máquina.
O sinal “#” significa que o super-usuário está logado no sistema.
Root → Também conhecido como Super Usuário
O super-usuário é o administrador do sistema Linux. Ele tem poderes para fazer absolutamente tudo
no sistema. Ele é conhecido como usuário “root” ou “raíz” traduzindo do inglês.
Variáveis de ambiente
Durante a execução do bash algumas variáveis são carregadas, elas também, podem ser
configuradas manualmente.
Comandos para manipular variáveis de ambiente
echo – Exibe o valor de uma variável de ambiente, exemplo:
# echo $USER
Como o SHELL não é uma linguagem de programação tipada, você não precisa, declarar o tipo da 
variável. Digite no seu prompt:
# VALOR=10
# echo $VALOR
Página: 7
Variável Global
No exemplo anterior você definiu o valor da variável VALOR como 10. Porém, caso você abra
outro bash (digite bash <enter>) no prompt, perceberá que a variável não mais existe. Ou seja, ela
só estava disponível no shell anterior.
Para que a variável funcione em outros Shells que você abrir, é necessário, que ele seja uma
variável Global. Neste caso usamos o comando export, exemplo:
# export VALOR
Você também pode criar a sua variável já como global, usando:
# export VALOR=10
Para remover o conteúdo de uma variável, execute o comando: 
# unset VALOR
Algumas variáveis do ambiente BASH, que você pode verificar com o comando echo.
MANPATH → Exibe os diretórios onde o comando man encontra suas páginas de manual.
DISPLAY → Exibe o terminal do ambiente gráfico atualmente usado.
HOME → Exibe o diretório padrão de armazenamento de arquivos do usuário
TERM → Exibe o terminal atualmente utilizador 
USER → Exibe o nome do usuário 
LANG → Exibe o idioma do sistema
HISTSIZE → Define o valor máximo de comandos do History
Estas são apenas algumas das variáveis disponíveis no sistema. Pode ser que nem todas estejam 
disponíveis na sua distribuição de GNU/Linux.
Página: 8
Alterando o Shell padrão do usuário 
Primeiro, verifique o shell atualmente utilizado:
# echo $SHELL
Utilize o comando chsh para alter o shell padrão:
# chsh -s /bin/sh usuario
Adicionando caminhos para seus binários
Todos os caminhos de diretórios que possuem programas executáveis (binários) ficam armazenados 
na variável PATH. Caso você tenha um diretório com scripts por exemplo, você pode adicioná-lo a 
variável PATH para que eles fiquem acessíveis de modo global, sem que seja necessário digitar o 
caminho completo de onde eles se localizam.
# PATH=$PATH:/caminho-do-seu-diretório
Este exemplo somente é válido para o login atual, e não é permanente, para que as configurações 
fiquem permanentes, edite e acrescente os comandos acima no arquivo de configuração local do 
usuário /home/usuario/.bash_profile, ou globalmente para todos os usuários no arquivo 
/etc/profile. Simplesmente, adicione a linha acima no final de um dos arquivos citados.
O histórico de comandos do shell
O shell mantêm um histórico dos últimos comandos digitados pelo usuário, podendo ser visualizado
pelo caractere (!) ponto de exclamação, de 4 formas diferentes:
Comando Definição
!! Último comando Digitado
!n Onde “n” é o número do comando no histórico.
!string Comandos que iniciam com o “string” especificado.
!-n Onde “n” é o número do comando do histórico na ordem decrescente.
Página: 9
O comando history
O comando history exibe o histórico de comandos. Suas opções mais comuns são:
Opções Explicação
-r Usa como histórico o arquivo / home / usuario / .bash_history ao invés de usar o 
histórico de comandos.
-w Reescreve o arquivo: / home / usuario / .bash_history
-c Limpa o histórico de comandos
Apelidos de comandos
Usamos o comando alias para criar apelido ou atalho para um determinado comando. O seu arquivo
de configuração fica localizado no arquivo / home / usuario / .bashrc
Exemplo:
# alias cor=”ls –color”
# cor
Ao digitar no shell cor você estará executando o comando ls –color. Para remover um apelido de 
comando, use o comando unalias exemplo:
# unalias cor
Páginas de manual
O comando man permite a você visualizar a página de manual do comando. A sintaxe básica do 
comando é: 
# man nome_do_comando
Exemplo:
# man ls
Página: 10
Gerenciamento de arquivos no Unix/Linux
O Filesystem Hierarchy Standard (Padrão para sistemas de arquivos hierárquivos), ou FHS, define
os principais diretórios, e o seu conteúdo, em um sistema operacional Linux ou do tipo unix. A
versão atual é a 2.3, anunciada em 29 de janeiro de 2004. O FHS é mantido pelo Free Standards
Group, uma organização sem fins lucrativos formada por importantes empresas de hardware e
software, como HP, Red Hat, IBM e Dell. Ainda hoje, a grande maioria das distribuições de
GNU/Linux, incluindo membros da Free Standards Group, não adotam fielmente o padrão
proposto. Em particular, diretórios (paths) criados pela FHS, como o /srv/, não foram adotados em
grande escala. Alguns sistemas Unix e Linux rompem com o padrão FHS, como o GoboLinux. O
Mac OS x utiliza uma estrutura com nomes legíveis para humanos em conjunto com um sistema
baseado em FHS.
Diretório Descrição
/bin Comandos binários essenciais
/boot Arquivos do gerenciador de boot
/dev Dispositivos, exemplo: DVD, Discos e etc…
/etc Arquivos de configuração da máquina local
/home Diretório do usuário
/lib Diretório com as bibliotecas essenciais para arquivos binários contidos nos 
diretórios / bin e / sbin.
/mnt Sistema de arquivos “montados” temporariamente
/media Ponto para mídias removíveis, como pendrives e CD-ROM
/opt Armazenar arquivos de aplicativos. Normalmente eles criam sub-diretórios, 
exemplo: / proc / java ou /proc / libreoffice
/proc Sistema de arquivo virtual, que possui o estado do kernel e processos do sistema, a 
maioria dos arquivos estão em modo texto. 
/root Diretório homepara o super usuário (administrador)
/sbin Arquivos binários para propósito da administração do sistema
/tmp Arquivos temporários
/srv Dados especificos que são usados pelo sistema
/usr Hierárquia secundária para dados compartilhados de usuários, cujo acesso é restrito 
apenas para leitura.
/usr /bin Contém a maioria dos arquivos binários não – essenciais do seu sistema
/var Variáveis, como logs, base de dados, páginas WEB e arquivos de e-mails
/var / spool Spool para tarefas em espera de execução (Ex: filas de impressão e e-mails)
/ var / mail Caixas de e-mail dos usuários do sistema
/ var / tmp Arquivos temporários
Página: 11
Diretório Descrição
/var/run Contém informação sobre a execução do sistema desde a última inicialização
/ var/lock Arquivos de trava. Utilizados para manter o controle sobre recursos em uso.
/var / log Arquivos para log. Utilizado para log de dados em geral
Gerenciamento de arquivos
O comando cp copia arquivos e diretórios. Ele pode ser utilizado para copiar apenas um arquivo ou 
múltiplos arquivos.
As opções mais frequentes do comando cp são:
Opção Descrição
-d Preserva os links ao copiar os arquivos
-p Preserva todas as informações dos atributos do arquivo, como dono do arquivo, 
grupo, permissão e data.
-R Copia os arquivos recursivamente, ou seja, copia diretórios com conteúdo.
-a Faz o mesmo que as opções “-dpR” combinadas.
-f Força a cópia sobrescrevendo se necessário
-i Pergunta ao usuário antes de copiar cada arquivo por cima de um local de destino
-v Mostra o nome de cada arquivo copiado
Exemplo do comando:
# cp arquivo1 arquivo
# cp -R /etc /home/juliano/etc.backup
No primeiro exemplo é realizada uma cópia simples de arquivo. No segundo exemplo realizamos 
uma cópia de diretório.
Comando mv
O mv move ou renomeia arquivos e diretórios. Ele não altera os atributos dos arquivos ou diretórios
movidos se a transferência for o mesmo sistema de arquivos. Se o destino para onde os arquivos ou 
diretórios forem movidos não existir, o comando renomeia a origem, senão os dados serão gravados
por cima. No exemplo abaixo, renomeia-se o arquivo1 para arquivo2:
# mv arquivo1 arquivo2
Página: 12
No exemplo abaixo, move-se o arquivo1 para o diretório /tmp.
# mv arquivo1 /tmp
O comando rm
O comando rm é utilizado para remover arquivos. Você só pode remover arquivos que você tenha 
permissão de gravação. O super usuário (root) pode remover arquivos e diretórios dos outros 
usuários do sistema. 
Opções Descrição
-f Força a remoção dos arquivos sem perguntar ao usuário
-R Remove um diretório e todo seu conteúdo
Exemplos:
# rm texto.txt
Remove o arquivo “texto.txt”. Para remover um diretório com conteúdo:
# rm -R diretório
Você também pode forçar a remoção com o comando:
# rm -Rf diretório
Comando mkdir
O comando mkdir é utilizado para criar um diretório. Você precisa ter permissão de escrita no 
diretório para executar o mkdir. As opções mais frequentes são:
Opção Descrição
-p Cria o diretório especificado, mesmo que o diretório “pai” não exista. Neste caso, 
cria-se também o diretório pai.
-m Configura a permissão do diretório criado. As permissões possíveis são 
(RWXRWXRWX) leitura, escrita e execução para classes de dono, grupo e outros.
Página: 13
Exemplo:
# mkdir -p correios/sedex
Exemplo 2, especificando-se a permissão:
# mkdir -m 777 documentos/modelos
Comando rmdir
O comando rmdir, remove um ou mais diretórios do sistema. O diretório precisa estar vazio. 
Exemplo:
# rmdir /home/documentos
Remove o diretório documentos dentro do diretório home.
Comando touch
O comando touch muda a data e hora de acesso e/ou modificações dos arquivos.
As opções mais utilizadas são:
Opções Descrição
-a Muda somente a data e hora de modificação para atual
-m Muda somente a data e hora de modificação para a atual
-t Muda a data e hora para uma data e hora definida, exemplo: A representação de 13 
de janeiro de 2015 às 19:00 é: 201501131900
Exemplo:
# touch arquivo
“É necessário acreditar que o sonho é possível, que o céu é o limite e você é
imbatível.” - Racionais MC’s
Página: 14
Comando join
O comando join une as linhas de dois arquivos que possuam índice comum, exemplo:
Crie o arquivo fruta.txt e coloque o seguinte conteúdo:
1 maça
2 uva
3 melancia
Agora, crie o arquivo preco.txt e coloque o seguinte conteúdo:
1 R$ 2,00 Reais
2 R$ 4,00 Reais
3 R$ 5,00 Reais
Execute agora o comando join para concatenar os dois arquivos:
# join fruta.txt preco.txt
O resultado será:
1 maça R$ 2,00 Reais
2 uva R$ 4,00 Reais
3 melancia R$ 5,00 Reais
Comando od
Este comando é um dos mais antigos do UNIX, e está disponível em qualquer versão desse sistema 
operacional, inclusive no linux. O que ele faz, basicamente, é ler os bytes de um arquivo de entrada 
e imprimi-los em uma série de formatos, como octal, hexadecimal e decimal.
As opções mais comuns, são:
Opções Descrição
-o Mostra em octal
-d Mostra em decimal
-x Mostra em hexadecimal
Página: 15
Comando paste
Utilizamos o comando “paste” para concatenar as linhas de diversos arquivos em colunas verticais.
As opções frequentemente utilizadas são:
Opções Descrição
-d ‘@’ Separa as colunas com o símbolo @
-s Concatena todo o conteúdo de um arquivo com uma linha para cada arquivo
Exemplo:
# paste -d’@’ arquivo arquivo2
Exemplo:
# paste -d'@' arquivo1 arquivo2
Crie o arquivo1 com o seguinte conteúdo:
profjulianoramos
mateus
lucas
Crie o arquivo2 com o seguinte conteúdo:
gmail.com.br
hotmail.com
certificacoes.net.br
Execute o comando do exemplo.
“Sábio é aquele que conhece os limites da própria ignorância.”
 - Sócrates
Página: 16
Comando pr
Prepara um arquivo de texto para impressão. As opções frequentemente utilizadas são:
Opções Descrição
-d Especifica o espaçamento duplo
-l numero Especifica o número de caracteres de largura de página. O padrão é 66 caracteres.
-o numero Especifica o número de espaços de margem esquerda.
Exemplo:
# pr -l 70 -o 3 fruta.txt
O comando split
O comando split é utilizado para dividir arquivos de texto em arquivos menores. Seu padrão é 
dividir os arquivos a cada 1000 linhas. Os nomes dos arquivos de saída seguem o padrão.
Exemplo:
Crie um arquivo com 40 linhas e divida-o em 4 arquivos com 10 linhas:
#split -4 arquivo1.txt arquivosaida
O comando tac
O comando tac é o inverso do comando cat, ele mostra o conteúdo de um arquivo de texto de trás 
para frente. Exemplo:
#tac arquivo.txt
O comando tail
O comando tail visualiza as 10 últimas linhas de um arquivo. Funciona como o oposto do comando 
head. As duas opções mais utilizadas do comando tail são:
Opções Descrição
-n Especifica o número de linhas finais que o tail mostrará de um arquivo.
-f Mostra as últimas linhas de um arquivo continuamente, bom para log.
Página: 17
Exemplo:
#tail -n 50 /var/log/meulog
#tail -f /var/log/meulog
O comando tr
O comando tr faz a troca de uma variável especificada. Ele não trabalha diretamente com arquivos, 
mas você pode utilizá-lo usando a saída de outro comando.
Exemplo:
#cat arquivo1 | tr a-z A-Z
No exemplo acima o comando tr troca todas as letras de a à z para maiúsculas.
#cat arquivo | tr -d a
Neste exemplo o comando tr apaga a letra a.
#cat arquivo | tr -s 1
Neste exemplo o comando tr suprime as ocorrências repetidas do número 1.
O comando wc
O comando wc conta as linhas, palavras e caracteres de um arquivo.
Exemplo:
#wc teste.txt
“Quanto mais amor temos, tanto mais fácil fazemos a nossa passagem pelo
mundo.” 
- Immanuel Kant
Página: 18
O comando xargs
O comando xargs utiliza a saída padrão de um comando como argumento para outro comando, 
exemplo:
#cat texto.txt | xargs echo
Neste exemplo, cada linha do arquivo texto.txt é passada como argumento para o comando echo.
Editor de texto VIM
O editor VIM tanto no UNIX como no Linux serve para criar arquivos de texto e scripts shells, 
assim como editá-los. O editor VIM possui dois modos: Edição, quando você aperta a tecla (I) ou 
(insert). Eo modo de comando, quando você aperta a tecla (ESC). Iniciando o VIM:
#vim ou vim nome_de_arquivo 
Aperte i para escrever e esc para sair e executar os comandos:
Comando Explicação
:q Sair do arquivo sem salvar
:q! Sair sem salvar, forçando
:wq Salvar e sair
:wq! Salvar e sair forçando
:w Salvar o arquivo atual 
:e arquivo1 Abre o arquivo1
:d ou dd Desfaz a última ação
:yy Guarda a linha atual 
:p Copia a linha onde esta o cursor
:dd Cola o texto
Página: 19
Substituição de texto no VIM
Comando Explicação
:s/velho/novo Substitui a palavra velho por novo
% s/velho/novo/g Substitui em todo o arquivo
Opções:
Opções Explicação
:set aw Salva a cada alteração
:set nu Mostra as linhas
:set ff Converte o arquivo para DOS
:set et Troca tab por espaços
Opção do modo visual 
Comando Explicação
Selecione, u Converte p/ minúscula
Selecione, U Converte p/ maiúscula
Permissões de arquivos e diretórios
Neste capítulo estudaremos o sistema de permissões do linux. O sistema de permissões permite ao
administrador do sistema (root) definir o nível de acesso ao usuários, grupos e outros arquivos e
diretórios além de programas executáveis.
As permissões de acesso protege o sistema de algumas invasões e respectivos programas não
autorizados. Por exemplo, no linux, podemos impedir que algum programa malicioso se instale na
máquina, delete algum arquivo ou que seja transferido para outras pessoas via rede, de modo a
invadir o sistema.
3 níveis de permissão
O linux gerencia o sistema de privilégios em 3 tipos:
1. Privilégio do dono
2. Privilégio do Grupo
3. Privilégio de outros
Página: 20
Cada um destes tipos é dividido em 3 níveis de permissões de acesso:
1. Permissão de leitura (r)
2. Permissão de escrita (w)
3. Permissão de execução (x)
As definições de propriedade do usuário e do grupo fazem parte do inode e ambas são atribuídas
quando um arquivo é criado. Geralmente, o proprietário é o usuário que criou o arquivo. O grupo do
arquivo normalmente é definido como padrão do seu criador. A propriedade de grupo adiciona
flexibilidade em situações nas quais uma equipe compartilha arquivos. Os “outros” usuários são
aqueles que não são membros do grupo do arquivo e também não são os proprietários. Para cada
uma dessas três classes de usuários, o modo de acesso define três tipos de permissões, que se
aplicam diferentemente para arquivos e diretórios. As permissões encontram-se listadas na tabela
abaixo:
Abreviatura Permissão em número Tipo
 r 4 Leitura
 w 2 Escrever
 x 1 Execução
Essas três permissões se aplicam as três classes diferentes de usuários: usuários, grupo
e outros. Cada uma tem permissão de leitura, escrita e execução.
Visualizando as permissões no arquivo
Exemplo:
#ls -l /home/usuario
(Visualiza privilégios e permissões de arquivos)
#ls -ld /home/usuario
(Visualiza privilégios e permissões de diretórios)
Página: 21
Ao executar o comando ls -l você terá como retorno, algo semelhante a :
drwx------ ... 2 wester ........ 512 Jan ... 29 23:30 .. Arquivos/
-rw-rw-r-- ... 1 wester ....... 280232 Dec .. 16 22:41...notas.txt
O primeiro caractere das linhas acima indicam o tipo de arquivo, os mais comuns:
Caractere Descrição
d Diretório
b Arquivo de bloco
c Arquivo especial de caractere
- Arquivo normal
Repare agora que no restante da string ainda há 9 caracteres. Que são os 3 níveis depermissões 
(Dono, grupo e outros). usando o exemplo da segunda linha, arquivo (notas.txt):
rw- Permissões do proprietários
rw- Permissão do grupo
r-- Permissão para outros
Tabela de permissões comuns:
Permissão Descrição
--- Nenhuma permissão
r-- Permissão de leitura
r-x Leitura e execução
rw- Leitura e gravação
Rwx Leitura, gravação e execução
Página: 22
Alterando diversas permissões de uma só vez
Para diretório:
#find /oracle -type d | xargs chmod 775
Para arquivos:
#find /oracle -type f | xargs chmod 775
O comando df
Exibe informações gerais sobre a utilização do disco para sistemas de arquivos montados em 
arquivo. Em geral arquivo é um arquivo de dispositivo para uma partição, como /dev/hda1. O 
arquivo pode também ser o ponto de montagem de qualquer arquivo sob esse ponto de montagem. 
Se arquivo for omitido, são exibidas informações para sistemas de arquivos montados em todos os 
dispositivos de /etc/fstab
Opções frequentemente utilizadas:
-h
Exibe os resultados em um formato legível, incluindo sufixos como M (megabytes) e G (gigabytes).
-i
Exibe informações sobre os inodes restantes, em vez das informações padrões sobre o espaço em 
disco.
Exemplo:
juliano@certificacoesnetbr:~$ df -h
Página: 23
Comando du
Exibe informações de utilização de disco para diretórios. Se diretórios forem omitidos, a busca é 
feita no diretório de trabalho atual. Opções frequentemente usadas:
Opção Definição
 -a Mostra todos os arquivos e não apenas os diretórios
 -c Produz um total geral para todos os itens listados
 -h Exibe o resultado em um formato legivel, incluindo sufixos M (megabytes) e G
(gigabytes).
 -s Exibe um resumo para cada um dos diretórios especificados, em vez de totais 
para cada subdiretório encontrado recursivamente
Usuários e grupos
Todo sistema de gerência de usuário possui um id registrado no sistema. Com as informações de 
registro o Linux pode gerenciar o acesso aos usuários e as suas permissões de acesso. Os 
administradores de sistema podem gerenciar e controlar todo o acesso a grupos e usuários.
Grupo
Um grupo é conjunto de usuários do sistema. Cada grupo também possui informações que 
identificam o usuário no sistema, contendo um nome e um número.
Sobre um usuário.
O que compõem um usuário:
UID 
Redução de User IDentification. Ele identifica o usuário no sistema junto com o login
para permitir-lhe o seu acesso.
GID
Redução de Group IDentification. É o Número que identifica o grupo do usuário ao
qual ele esta inserido.
Página: 24
Comment
Descreve as características do usuário, geralmente o nome completo.
Home directory
Corresponde o diretório do usuário quando ele acessa o sistema, onde seus arquivos
são armazenados.
Shell
Corresponde ao shell padrão do usuário quando acessa o sistema. Geralmente o Bash.
Local das informações:
As informações do usuário e senhas são armazenados nos arquivos /etc/passwd e /etc/shadow, e as 
informações sobre os grupos em /etc/group e /etc/gshadow. Nesse arquivo é armazenado as 
informações separadas por (:) da seguinte forma:
Nome usuário:senha:id usuário:id
grupo:descrição:diretório:shell
Exemplo:
aluno1: x: 1000:1000:Descrição do aluno1 ,,,: /home/aluno1 :/bin/bash
Faça o comando:
#cat /etc/passwd
Para visualizar o arquivo com os usuários.
Gerenciando usuários e grupos.
O comando adduser adiciona um usuário ao sistema, exemplo:
# adduser juliano
Página: 25
Informações sobre grupos
As informações dos grupos são armazenados no arquivo
# cat /etc/group
Nesse arquivo é armazenado as informações separadas por (:) da seguinte forma:
Grupo:senha:id grupo:descrição:lista de usuários
Exemplo: 
Grupo:x:1000:usuário:1,usuário2
Mudando a senha do usuário:
passwd – Muda a senha do usuário 
Exemplo básico:
# passwd nome_do_usuario
gpasswd
gpasswd – Define senha para um grupo e realiza funções de administração de usuários e grupos.
#gpasswd -a juliano audio
Adiciona o usuário juliano no grupo audio
#gpass -d juliano audio
Exclui o usuário juliano do grupo áudio
Userdel
userdel – Remove usuários do sistema, exemplo:
#userdel juliano
Remove o usuário Juliano. Para remover o usuário e também seu diretório utilize:
#userdel -r juliano
Página: 26
Instalação de pacotes
Pacotes pelo código fonte
Normalmente os pacotes com o código fonte são empacotados e compactados nos formatos .tar.gz 
ou tar.bz2. Este tipo de pacote pode ser utilizado em qualquer distribuição de Gnu/Linux.
Basicamente fazemos 3 passos. 
Descompactar :
#tar -zxvf nomedopacote.tar.gz (Para pacotes .tar.gz)
#tar -jxvf nomedopacote.tar.bz2 (Para pacotes .tar.bz2)
Prepararpara a instalação:
Configure é um arquivo que prepara o “linux” para instalar o programa, verificando dependências 
entre outras coisas. Se encontrar problemas nesta etapa, verifique o arquivo INSTALL ou 
README, já que cada pacote, possui suas particularidades de instalação.
./configure
Preparar e instalar
Preparar e instalar:
make
make install
Pacotes deb
O dpkg é o comando básico para lidar com pacotes Debian no sistema. Se você tem pacotes .deb, é 
com o dpkg que você instala ou analisa seu conteúdo. Mas este programa tem apenas uma visão 
parcial do universo Debian: ele sabe o que está instalado no sistema, e o que for dado na linha de 
comando, mas não sabe nada dos outros pacotes disponíveis. Assim, ele vai falhar se uma 
dependência não for satisfeita. Ferramentas como o apt-get, ao contrário, criará uma lista de 
dependências para instalar tudo o mais automaticamente possível. 
Página: 27
Instalando pacotes
#dpkg -i nomedopacote.deb
Remoção de pacotes
#dpkg -r nomedopacote.deb
Arquivos de Log do dpkg
Dpkg mantém um log de todas as suas ações em /var/log/dpkg.log. Este log é extremamente 
detalhado, pois detalha todos os passos da manipulação de pacotes pelo dpkg.
Compactadores
Compressão e empacotamento
A compressão e empacotamento de arquivos e diretórios é muito importante em qualquer sistema 
computacional. Ambos os procedimentos são necessários desde o ponto de vista de distribuição de 
softwares, de economia de banda e de espaço de armazenamento, e de backup de sistema.
O empacotador tar
O que os compactadores como gzip e bzip2 não conseguem fazer, o tar (Tape Archives) faz. Ele é 
um aplicativo capaz de armazenar vários arquivos em um só. Porém ele não compacta os arquivos 
armazenados. Principais parâmetros do TAR:
Comando Descrição
-c Cria um novo arquivo tar
-p Mantém as permissões originais dos arquivos
-r Acrescenta aquivos a um tar
-t Exibe o conteúdo de um arquivo tar
-v Exibe detalhes da operação
-x Extrai arquivos de um arquivo tar
-z Comprime ou extrai arquivos tar
-j Comprime ou extrai arquivos tar com bzip2
-f Especifica o arquivo a ser usado
-C Troca o caminho da extração
Página: 28
Vamos empacotar o diretório /etc e /usr:
#tar -cvf /backup/etc.tar /etc
#tar -cvf /backup/usr.tar /usr
Verificar o tamanho do pacote “usr.tar”
#du -sh /backup/usr.tar
Empacotando e compactando com o gzip
#tar -zcvf /backup/usr.tar.gz /usr
Bzip2
Empacotando com bzip2:
#tar -jcvf /backup/usr.tar.bz2 /usr
O bzip2 faz a melhor compactação, mas em compensação leva um tempo maior que o gzip.
O comando dd
O comando “dd” tem a capacidade de copiar “bit a bit”. Segue um exemplo de seu uso:
#dd if=/dev/sda3 of=/dev/sda11
O comando acima efetuará uma clonagem da partição sda3 para a partição sda11.
Configuração básica de rede
A configuração básica de um host (computador ou equipamento conectado a rede) consiste em três 
etapas:
• Configuração do IP
• Configuração do Gateway
• Configuração dos servidores (DNS)
Página: 29
Configurando IP e máscara
Além da interface de “lo-loopback”, podemos configurar outras interfaces, basta que elas estejam 
presentes fisicamente e sejam suportadas pelo kernel. Na maioria dos casos, a interface mais 
comum é a “eth0” – número zero por ser a primeira.
Para visualizar as informações iniciais da rede, usamos o comando:
# ifconfig
Com este comando é possível descobrir todas as interfaces presentes no sistema, mas para ter 
certeza que você está vendo até mesmo as interfaces inativas, use o parâmetro –a
ifconfig –a
No Debian 9, o comando é:
# ip addr show
Configurando a interface
Para tornar uma configuração de rede válida após a reinicialização do computador, editamos o 
arquivo: /etc/network/interfaces, exemplo de configuração, altere pelos seus valores:
auto lo
iface lo inet loopback
auto etho
iface eth0 inet static
address 192.168.1.16
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
Reiniciando o serviço de rede:
invoke-rc.d networking stop
invoque-rc.d networking start
Página: 30
Configurando o hostname
Para definer um nome ao seu comptuador. Edite o arquivo /etc/hostname, basta escrever o nome do
computador, exemplo:
Servidor_debian
Configurando os hosts
Para configurar “Atalhos” para endereços locais da rede, editamos o arquivo:
/etc/hosts, deixando-o da seguinte forma:
192.168.1.25 notebook-keila
Agora, para executar por exemplo o comando “ping” no IP: 192.168.1.25 eu posso fazer:
ping notebook-keila
SYSTEMD
Systemd é um substituto para a daemon init do Linux (System V ou estilo BSD). Seu objetivo é
fornecer um framework melhor para expressar dependências de serviços, permitir que mais trabalho
seja feito concorrentemente (possivelmente em paralelo) na inicialização do sistema e reduzir a
sobrecarga do shell. O nome vem da convenção de sufixos do Unix para os nomes de daemons do
sistema (processos que executam em plano de fundo), em inglês system daemons.
Uso básico do Systemctl
O principal comando usado para controle do systemd é systemctl seu uso é para o gerenciamento de
sistemas e serviços. Antes de qualquer coisa, podemos consultar a página de manual do systemd:
man 1 systemctl
Analisando o estado do sistema
systemctl ou systemctl list-units
As units podem ser, por exemplo, serviços (.service), pontos de montagem (.mount), dispositivos 
(.devices) ou sockets (.socket).
Página: 31
Listar as units que falharam
systemctl –failed
Os arquivos units disponíveis podem ser vistos em /usr/lib/systemd/system e /etc/systemd/system/ 
(este último tem precedência). Você pode ver uma lista dos arquivos units com o comando:
systemctl list-unit-files
Usando units
Quando você usa systemctl, você geralmente tem que especificar o nome completo do arquivo
unit,incluindo o sufixo, por exemplo ssh.socket. No entanto, existem algumas formas curtas de
especificar a unit nos seguintes comandos systemctl.
Se você não especificar o sufixo, systemctl assumirá .service. Por exemplo, netcfg e netcfg.service
são equivalentes. Os pontos de montagem serão automaticamente convertidos para a unit .mount
adequada. Por exemplo, especificando /home equivale a home.mount Similar aos pontos de
montagem, dispositivos são automaticamente convertidos para a unit .device adequada, portanto,
especificando /dev/sda2 equivale a dev-sda2.service
Consulte:
man systemd.unit
Para maiores detalhes.
Ativar uma unit imediatamente
systemctl start unit
Desativar uma unit imediatamente
systemctl stop unit
Reiniciar uma unit
systemctl restart unit
Página: 32
Recarregar a configuração da unit
systemctl reload unit
Mostrar o estado de uma unit
systemctl status unit
Verificar se a unit está habilitada
systemctl is-enabled unit
Habilitar unit na inicialização
systemctl enable unit
Desabilitar unit da inicialização
systemctl disable unit
Formação completa em Administração de Sistema Linux
Que tal realizar mais de 9 cursos de formação linux, incluindo servidores 
como apache, samba, squid e firewall, pagando apenas R$ 169,90 e ainda 
recebendo em sua casa o livro: Treinamento prático para iniciantes de 
servidores LINUX? - Pois bem. Acesse o link abaixo e aproveite a promoção 
que é só este mês!
http://certificacoes.net.br/ltc/certificate-academy/
Página: 33
http://certificacoes.net.br/ltc/certificate-academy/

Continue navegando