APOSTILA
LINUX USUÁRIO
PARTE 1 - LINUX
1
Sumário
1. Linux........................................................................................................................................03
1.2 – Características..........................................................................................................03
1.3 – GPL..........................................................................................................................04
1.4 – Distribuições............................................................................................................04
1.5 – Diferenças entre o Windows e o Linux....................................................................06
2 – Sistema de Arquivos no Linux..............................................................................................08
2.1 – Arquivos....................................................................................................................08
2.2 – Sistema de Arquivos..................................................................................................08
2.3 – Estrutura básica de diretórios do Sistema Linux.......................................................09
2.4 – Conta.........................................................................................................................10
2.5 – Tipos de arquivos......................................................................................................10
2.6 – Acesso a arquivos......................................................................................................10
3 – Identificação de discos e partições em sistemas Linux......................................................11
4 – Permissões de acesso a arquivos e diretórios.......................................................................12
4.1 – Donos, grupos e outros usuários................................................................................12
4.2 - Tipos de Permissões de acesso...................................................................................12
4.3 - Etapas para acesso a um arquivo/diretório.................................................................13
4.4 – chmod........................................................................................................................13
4.4.1 - Exemplos de permissões de acesso:............................................................14
4.5 – chgrp..........................................................................................................................14
4.6 – chown........................................................................................................................15
4.7 - Modo de permissão octal...........................................................................................15
4.8 – umask........................................................................................................................16
5 – Comandos básicos do Sistema...............................................................................................17
5.1 – Ajuda e Documentação..............................................................................................17
5.2 – Instalação de pacotes via APT...................................................................................17
5.3 – Usuários e Grupos.....................................................................................................18
5.4 – Data e Hora................................................................................................................19
5.5 – Informações do Sistema.............................................................................................19
5.6 – Arquivos e Diretórios.................................................................................................20
5.7 – Sistema de Arquivos...................................................................................................23
5.8 Utilitários de Texto........................................................................................................23
5.9 Monitoramento de Acesso.............................................................................................24
5.10 – Administração de Usuários.......................................................................................25
2
1 – O Linux
O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de
Helsinki na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela
Internet. Seu código fonte é liberado como Free Software (software livre), sob licença GPL, o aviso
de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele não pode fechar o
sistema para que seja usado apenas comercialmente.
Isto quer dizer que você não precisa pagar nada para usar o Linux, e não é crime fazer cópias
para instalar em outros computadores, nós inclusive incentivamos você a fazer isto. Ser um sistema
de código aberto pode explicar a performance, estabilidade e velocidade em que novos recursos são
adicionados ao sistema.
O código fonte aberto permite que qualquer pessoa veja como o sistema funciona (útil para
aprendizado), corrija alguma problema ou faça alguma sugestão sobre sua melhoria, esse é um dos
motivos de seu rápido crescimento, do aumento da compatibilidade de periféricos (como novas
placas sendo suportadas logo após seu lançamento) e de sua estabilidade.
Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos
de dispositivos de última geração e mais antigos (a maioria deles já ultrapassados e sendo
completamente suportados pelo sistema operacional). Este é um ponto forte para empresas que
desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com
as máquinas que possui.
1.2 – Características
–
–
–
–
–
–
–
–
–
–
–
–
–
É livre e desenvolvido voluntariamente por programadores experientes, hackers, e
contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a
melhoria e crescimento deste sistema operacional.
Convivem sem nenhum tipo de conflito com outros sistemas operacionais instalados no mesmo
computador.
Multiusuário .
Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha,
PowerPc, ARM, Unix, Windows, DOS.
Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM.
Proteção entre processos executados na memória RAM
Suporte a mais de 63 terminais virtuais (consoles)
Modularização - O Linux somente carrega para a memória o que é usado durante o
processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado .
Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer
periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma
instalação interna de um novo periférico, falha em algum hardware (queima do processador,
placa mãe, etc.
Não precisa de um processador potente para funcionar. O sistema roda bem em computadores
386Sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado
32MB de RAM). Já pensou no seu desempenho em um Pentium, Xeon, ou Athlon?
Suporte nativo a dispositivos SATA, PATA, Fiber Channel
Suporte nativo a virtualização, onde o Linux se destaca como plataforma preferida para
execução de outros sistemas operacionais.
Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada.
3
1.3 – GPL
GPL, sigla de General Public License (Licença Pública Geral), é uma licença de
software livre publicada pelo Projeto GNU com a intenção de permitir que software possa ser
distribuído de maneira livre, utilizando a filosofia de deixar copiar tudo o que é software livre.
As licenças do Projeto GNU têm o respaldo legal da constituição dos EUA, por terem sido
publicadas pela Free Software Foundation, e são válidas em todos os países que
aceitam o acordo internacional de respeito a patentes e direitos autorais.
A GPL permite que programas sejam distribuídos e reaproveitados, mantendo, porém, os
direitos do autor, e sem permitir que essa informação seja usada de maneira indevida. A licença não
permite, por exemplo, que o código seja apoderado por outra pessoa, ou que sejam impostos sobre
ele restrições que impeçam que ele seja distribuído da mesma maneira.
Em termos gerais, a GPL baseia-se nas 4 liberdades:
1. A liberdade de executar o programa, para qualquer propósito (liberdade no. 0)
2. A liberdade de estudar como o programa funciona, e adaptá-lo para as suas
necessidades (liberdade numero 1). Acesso ao código-fonte é um pré-requisito para esta liberdade.
3. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade
numero 2).
4. A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a
comunidade se beneficie (liberdade numero 3).
1.4 – Distribuições
Conectiva
É a distribuição brasileira de maior destaque e com certeza a distribuição brasilira mais
usada. Não é difícil encontrar o pacote Conectiva Desktop ou Servidor em uma loja de software.
Até mesmo em outros países da América Latina essa distribuição tem seu destaque. Existem escolas
que são credenciadas a darem cursos e certificados reconhecidos pela Conectiva SA, o que ajuda
muito na hora de procurar um emprego. Toda sua documentação está em Português.
Red Hat
É a distribuição mais famosa de todas, o que fez com que várias distribuições pelo mundo se
baseassem nela, inclusive a principal distribuição brasileira, a Conectiva, que em seu início era
apenas uma recompilação do Red Hat.
A Red Hat criou o o sistema de empacotamento rpm, que é mais ou menos como o setup do
Windows e tem a denominação Red Hat Package Manager. Sendo assim, se você observar o CD da
sua distribuição e ele for composto por ícones denominados RPMs, significa que você está usando
uma distribuição baseada no Red Hat.
Essa distribuição também foi responsável por criar ferramentas que o auxiliam na detecção
de placas de som, como o sndconfig, configuração de placas de vídeo, como Xconfigurator e
configuração geral, com o Setup incluindo configuração de vídeo, som, mouse, teclado, timer,
impressoras, tudo em uma única ferramenta.
4
Também possui um ótimo gerenciador do sistema chamado linuxconf, seria mais ou menos
como o painel de controle do Windows, você cria usuários, administra sua estação, seu servidor
web, e muito mais.
Mandrake
É a distribuição preferida e a mais indicada para quem está iniciando em Linux. A empresa
Francesa MandrakeSoft aposta num sistema com muitas ferramentas que vão auxiliar quem está
iniciando em Linux. Esta distribuição é baseada no Red Hat e tem um grande número de adeptos.
Se diferencia das outras distribuições por ter suas próprias ferramentas de configuração,
como Harddrake, para configuração de dispositivos, DrakX, para configuração de
vídeo e DrakFont, para buscar fontes do Windows.
Slackware
É uma distribuição muito usada por quem já adquiriu uma certa experiência com o Linux.
Os profissionais adoram esse Linux, por ele ser praticamente todo configurado em modo texto, o
que faz com o que as pessoas conheçam a fundo o seu sistema. Se destaca também por ser um ou se
não o mais estável dos Linux atuais.
Debian
É uma das únicas distribuições que não é mantida por uma empresa. O Debian é
todo desenvolvido por voluntários e estudantes de uma universidade. Foi inovador
criando uma ferramenta chamada apt-get, que atualiza o sistema resolvendo todas as dependências
de pacotes. Esta ferramenta inclusive está presente na distribuição brasileira Conectiva.
Kurumin
É uma distribuição linux baseada no Knoppix e que mantém o mesmo sistema de detecção
de hardware desta distribuição. Todavia, o Kurumin foi projetado para que fosse bem
mais compacto, cabendo, assim, em suas versões iniciais, em um miniCD de 80 mm.
Inicialmente o seu desenvolvedor, Carlos E. Morimoto, deu início ao projeto apenas para
fins de uso pessoal; porém, ao anunciar a sua criação no seu site, muita gente demonstrou interesse
pelo projeto, o que incentivou Morimoto a levar o projeto adiante. Segundo o sítio DistroWatch,
Kurumin é a distribuição Linux mais popular no Brasil.
O nome kurumin vêm da Língua tupiguarani, onde "curumim" significa
“menino”, “criança”, em uma alusão a uma distribuição Linux mais leve e simples, para iniciantes
no sistema. A letra k no início da palavra é uma referência ao Knoppix. O logotipo do Kurumin é
um pingüim com aspecto infantil: pequeno, simpático e mais magro do que o Tux, o pingüim que
representa o Linux em si. Outras características notáveis são o cocar e suas cores, que representam a
Bandeira do Brasil.
Ubuntu
O Ubuntu é uma distribuição Linux baseada em Debian, com edições regulares (a cada seis
meses), com uma grande atenção nos utilizadores e na facilidade de uso e um comprometimento
com suporte e actualizações de segurança durante 18 meses para cada edição. O Ubuntu usa as
versões mais recentes do Gnome e uma selecção de software (para desktop e servidores) num
simples CD (ou DVD) de instalação. Estão também disponíveis outros ambientes de trabalho, em
5
geral suportados pela comunidade como é o caso do KDE. Existem também CD/DVD de instalação
focados para um ou outro segmento de utilizadores, como é o caso do Edubuntu.
Com uma instalação base Ubuntu pode facilmente converter entre diferentes
ambientes de trabalho ou aplicações instaladas por omissão.
1.5 – Diferenças entre o Windows e o Linux
Acesso completo versus Sem acesso
Provavelmente, a maior diferença entre o Windows e o Linux, é que no Linux você tem acesso
completo ao código fonte. Isso ocorre porque o Linux está sob a GNU Public License (GPL), e
todos os usuários, de todos os tipos, podem acessar (e alterar) o código do kernel do sistema. Você
quer fazer o mesmo com o Windows? Boa sorte. A menos que você faça parte de um seleto grupo
de pessoas, você nunca irá botar os olhos no código do Windows.
Liberdade de licença versus Restrições de licença
Com um sistema Linux, licenciado sob a GPL, você é livre para modificar, lançar novamente e até
vender os aplicativos que você usa (desde que mantenha o código fonte disponível). Além disso,
com a GPL, você pode baixar uma simples cópia de uma distribuição Linux e instalar em quantas
máquinas você queira. Com a licença Microsoft, você não pode fazer nenhum dos dois. Você é
obrigado a usar apenas o número de licenças compradas. Se comprou 10 licenças do Windows para
sua empresa, por exemplo, só pode instalar o Windows legalmente, em 10 máquinas.
Linha de comando versus Sem linha de comando
Não importa onde a evolução do Linux chegue, ou quão fantástico o ambiente desktop possa se
tornar, a linha de comando será sempre uma ferramenta imprescindível para propósitos
administrativos. É difícil imaginar uma máquina com Linux sem a linha de comando. Entretanto,
para o usuário final, já é algo bastante próximo da realidade. Você pode usar o Linux por anos sem
jamais tocar na linha de comando, assim como você faz no Windows. E embora você possa utilizar
a linha de comando no Windows, ela não será tão poderosa quanto é no Linux. A Microsoft tende a
esconder o prompt de comando do usuário. A menos que você acesse o “executar” e entre com
“cmd”, o usuário provavelmente nem saberá que a linha de comando existe no Windows. E mesmo
que ele consiga acessá-la, qual é a sua real utilidade?
Instalação centralizada de aplicativos vs. Instalação descentralizada
Com qualquer distribuição Linux atual, você tem um local onde é possível procurar, adicionar ou
remover softwares. São os gerenciadores de pacotes, como o Synaptic. Com ele, você pode abrir
uma única ferramenta, procurar por uma aplicação (ou um grupo de aplicações) e instalar sem fazer
qualquer busca na internet. O Windows não tem nada parecido com isso. No Windows, você precisa
saber onde encontrar o software que você pretende instalar, baixar o software (ou colocar o CD no
drive), e executar setup.exe ou install.exe. Por muitos anos pensamos que instalar aplicativos no
Windows era mais fácil que no Linux, e por muitos anos estavamos certos. Não agora. Instalar
aplicativos no Linux é simples, indolor e centralizado.
6
Flexibilidade versus Rigidez
É comum compararmos Linux e Windows a outros hábitos do cotidiano. Carros e motos, casas e
apartamentos… mas vamos tentar nos ater ao desktop em si. A não ser que você pretenda pagar para
instalar um aplicativo de terceiros, para alterar a aparência, por exemplo, no Windows você terá que
se contentar com o que a Microsoft decidiu que é bom pra você. No Linux, você pode
confortavelmente fazer seu desktop ter o “look and feel” que é a sua cara. Você pode ter exatamente
o que você quer. Desde um ambiente gráfico simples, como o Fluxbox, até uma experiência 3D
completa com o Compiz.
Custo por software
No linux a maioria distribuições estão disponíveis gratuitamente, já no Windows entre R$ 300,00 e
R$ 700,00, de acordo com a versão desejada. Muitos dos softwares, utilitários e jogos disponíveis
no Linux são freeware e/ou código-fonte aberto. Mesmo programas complexos como o Gimp,
OpenOffice, StarOffice, e o Wine estão disponíveis gratuitamente ou a baixo custo. Embora o
Windows tenha softwares, utilitários e jogos de graça, a maioria dos programas custam entre US$
20,00 e US$ 200,00+ por cópia.
Segurança
Linux é e sempre foi um sistema operacional muito seguro. Embora ele ainda possa ser atacado,
quando comparado ao Windows é muito mais seguro. Embora a Microsoft tenha feito grandes
melhorias ao longo dos anos com a segurança em seu sistema operacional, o Windows continua a
ser mais vulnerável a vírus e outros ataques.
7
2 – Sistema de Arquivos no Linux
2.1 – Arquivos
Conceitualmente, arquivos são mecanismos de abstração que fornece uma forma de
armazenar e recuperar informações em disco. A característica mais importante de qualquer
mecanismo abstração é a forma de identificar os objetos como os quais o mecanismo trata.
Quando um processo cria um arquivo, é preciso que tal arquivo receba um
nome, normalmente dado pelo processo. Quando tal processo termina sua execução, o arquivo
continua a existir, podendo ser acessado por outros processos, usando para tanto o nome atribuído
ao arquivo.
O Linux faz distinção entre nome maiúsculos e minúsculos. Normalmente um nome de
arquivo é composto de nome e uma extensão, separada por ponto no Linux, o tamanho da extensão,
se houver, fica a critério do usuário, e uma arquivo pode até ter duas ou mais extensões, exemplo:
prog.c.Z.
Não há limite de números de caracteres utilizados para dar nome a arquivos. O Sistema
Operacional Linux, olha o arquivo como uma sequência de byte, sem nenhuma estrutura, isto dá
uma flexibilidade espantosa ao sistema de arquivo. Os programas de usuários, podem colocar o que
desejarem nos arquivos e identificá-los da forma que lhe for mais conveniente, o
Linux não influência em nada nesta processo de identificação.
2.2 – Sistemas de Arquivos
- ext2 : é um sistema de arquivos muito rápido pelo fato de não possuir um journal, sendo assim os
dados são gravados diretamente. Quando ocorre algum crash, o fsck é acionado para averificação do
sistema, sendo às vezes um processo lento e nem sempre com boas expectativas ocasionado quase
sempre perda de dados.
- ext3 : foi desenvolvido pelo doutor Stephen Tweedie e colaboradores na Red Hat, ele seria um
ext2 com recurso de journaling e passou a ser suportado na versão 2.4 do Linux. No ext3 o journal
usa uma camada chamada JDB (Journaling Block Device), que utiliza um método diferente na
recuperação de dados, ao invés de armazenar bytes que devem ser gravados, ele armazena blocos
modificados do sistema de arquivos na memória para poder rastrear as operações que ficaram
pendentes, a vantagem é que ele não precisa lidar com a complexidade de gravar bytes no journal e
a desvantagem é que o journal acaba ficando maior.
- ReiserFS : criado por Hans Reiser especialmente para o Linux, atualmente ela é patrocinada pela
SuSe e mantida pela empresa NameSys (sendo o filesystem padrão das distribuições GNU/Linux da
SuSe), o ReiserFS não utiliza blocos de tamanho fixo, mas ajusta o tamanho de acordo com o
arquivo, ele e muito rápido ao ler arquivos menores. O ReiserFS possui suporte a arquivos maiores
que 2GB, o acesso a árvore de diretórios é mais rápido que o ext3, utiliza uma eficiente estrutura de
dados chamada "balanced tree" ou árvore equilibrada pois, trata toda a partição como se fosse uma
única tabela de banco de dados contendo diretórios, arquivos e arquivos de metadata, isso aumenta
o desempenho de aplicativos que trabalham com arquivos pequenos (são lidos em apenas um I/O do
HD), em um sistema de arquivo como ext2 o espaço no disco e alocado em blocos que variam de
512 a 4096 bytes ou até maior, se o arquivo exceder um múltiplo exato do tamanho do bloco
ocorrerá desperdício de espaço no disco o ReiserFS não aloca em espaços fixos ou blocos ele aloca
o tamanho exato que o arquivo precisa. O ReiserFS infelizmente não trabalha perfeitamente com o sistema
de arquivos de rede NFS (Network File System), existem alguns patches para resolver o problema, mas eles
8
não o resolvem completamente.
- JFS (Journaling File System) : criado pela IBM para uso em servidores corporativos, teve seu
código liberado. O sistema de arquivos JFS também usa a estrutura Inode para armazenar a
localização dos blocos de cada arquivo nas estruturas físicas do disco, a versão JFS2 armazena esses
Inodes em uma árvore binária para acelerar o acesso a essas informações, esses blocos podem variar
de 512 a 4096 bytes, a alocação dos Inodes é feita conforme vai sendo necessário.
- XFS: desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código
fonte, o XFS possui vários patches e alguns bugs, mas é um sistema de arquivos muito rápido na
gravação, possui um desfragmentador para arquivos.
2.3 – Estrutura básica de diretórios do Sistema Linux
O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo
o FHS (Filesystem Hierarchy Standard):
/bin Contém arquivos programas do sistema que são usados com freqüência pelos usuários.
/boot Contém arquivos necessários para a inicialização do sistema.
/cdrom Ponto de montagem da unidade de CD-ROM.
/media Ponto de montagem de dispositivos diversos do sistema (rede, pen-drives, CD-ROM em
distribuições mais novas).
/dev Contém arquivos usados para acessar dispositivos (periféricos) existentes no computa dor.
/etc Arquivos de configuração de seu computador local.
/floppy Ponto de montagem de unidade de disquetes
/home Diretórios contendo os arquivos dos usuários.
/lib Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel.
/lost+found Local para a gravação de arquivos/diretórios recuperados pelo utilitário fsck.ext2. Cada
partição possui seu próprio diretório lost+found.
/mnt Ponto de montagem temporário.
/proc Sistema de arquivos do kernel. Este diretório não existe em seu disco rígido, ele é colocado lá
pelo kernel e usado por diversos programas que fazem sua leitura, verificam configurações do
sistema ou modificar o funcionamento de dispositivos do sistema através da alteração em seus
arquivos.
/root Diretório do usuário root.
/sbin Diretório de programas usados pelo superusuário (root) para administração e controle do
9
funcionamento do sistema.
/tmp Diretório para armazenamento de arquivos temporários criados por programas.
/usr Contém maior parte de seus programas. Normalmente acessível somente como leitura.
/var Contém maior parte dos arquivos que são gravados com freqüência pelos programas do
sistema, e-mails, spool de impressora, cache, etc.
2.4 – Conta
É uma senha que é aberta pelo administrador do sistema (denominado de root)
onde o usuário identificasse para o computador, que então dá acesso ao seu diretório de entrada,
onde você
pode executar os comandos permitidos a sua senha. No S.O padrão Unix, a conta é obrigatória para
todos.
2.5 - Tipos de arquivos
O Linux suporta arquivos regulares, arquivos de diretório, arquivos especiais de caracteres e
arquivos especiais blocados.
Os arquivos regulares são aqueles que contém informações de usuários. Arquivos diretórios
são arquivos usado na manutenção do sistema de arquivo. Arquivos especiais de caracteres estão
diretamente ligado à entrada/saída e são usados para dispositivos seriais de entrada/saída, tais como
terminais, impressoras e rede. Os arquivos especiais blocados são usado modelar dispositivos.
2.6 – Acesso a arquivos
O Sistema Operacional Linux, bem como os demais SO, trata o acesso a arquivos de forma
radômica, ou seja, seus byte ou registros podem ser lidos em qualquer ordem.
10
3 – Identificação de discos e partições em sistemas Linux
No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, usb,
portas de impressora, modem, etc) são identificados por um arquivo referente a este dispositivo no
diretório /dev.
A identificação de discos rígidos no GNU/Linux é feita da seguinte forma:
/dev/hd a 1
|
| | |
|
| | |_Número que identifica o número da partição no disco rígido.
|
| |
|
| |_Letra que identifica o disco rígido (a=primeiro, b=segundo, etc...).
|
|
|
|_Sigla que identifica o tipo do disco rígido (hd=ide, sd=SCSI, xt=XT).
|
|_Diretório onde são armazenados os dispositivos existentes no sistema.
Abaixo algumas identificações de discos e partições em sistemas Linux:
• /dev/hda - Primeiro disco rígido na primeira controladora IDE do micro (primary master).
• /dev/hda1 - Primeira partição do primeiro disco rígido IDE.
• /dev/hdb
- Segundo disco rígido na primeira controladora IDE do micro (primary slave).
• /dev/hdb1 - Primeira partição do segundo disco rígido IDE.
• /dev/sda - Primeiro disco rígido na primeira controladora SCSI ou SATA.
• /dev/sda1 - Primeira partição do primeiro disco rígido SCSI ou SATA.
• /dev/sdb - Segundo disco rígido na primeira controladora SCSI ou SATA.
• /dev/sdb1 - Primeira partição do segundo disco rígido SCSI ou SATA.
• /dev/sr0 - Primeiro CD-ROM SCSI.
• /dev/sr1 - Segundo CD-ROM SCSI.
11
4 – Permissões de acesso a arquivos e diretórios
A permissão de acesso protege o sistema de arquivos Linux do acesso indevido de pessoas
ou programas não autorizados.
A permissão de acesso do GNU/Linux também impede que um programa mal intencionado,
por exemplo, apague um arquivo que não deve, envie arquivos para outra pessoa ou forneça acesso
da rede para que outros usuários invadam o sistema. O sistema GNU/Linux é muito seguro e como
qualquer outro sistema seguro e confiável impede que usuários iniciantes (ou mal intencionados)
instalem programas enviados por terceiros sem saber para que eles realmente servem e causem
danos irreversíveis em seus arquivos, seu micro ou sua empresa.
4.1 – Donos, grupos e outros usuários
dono - É a pessoa que criou o arquivo ou o diretório. O nome do dono do arquivo/diretório é o
mesmo do usuário usado para entrar no sistema GNU/Linux. Somente o dono pode modificar as
permissões de acesso do arquivo. As permissões de acesso do dono de um arquivo somente se
aplicam ao dono do arquivo/diretório. A identificação do dono também é chamada de user id (UID).
A identificação de usuário e o nome do grupo que pertence são armazenadas respectivamente nos
arquivos /etc/passwd e /etc/group. Estes são arquivos textos comuns e podem ser editados em
qualquer editor de texto, mas tenha cuidado para não modificar o campo que contém a senha do
usuário encriptada (que pode estar armazenada neste arquivo caso não estiver usando senhas
ocultas).
grupo - Para permitir que vários usuários diferentes tivessem acesso a um mesmo arquivo (já que
somente o dono poderia ter acesso ao arquivo), este recurso foi criado. Cada usuário pode fazer
parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu
(mesmo que estes arquivos tenham outro dono). Por padrão, quando um novo usuário é criado, o
grupo ele pertencerá será o mesmo de seu grupo primário. A identificação do grupo é chamada de
gid (group id).
Outros - É a categoria de usuários que não são donos ou não pertencem ao grupo do arquivo. Cada
um dos tipos acima possuem três tipos básicos de permissões de acesso que serão vistas na próxima
seção.
4.2 - Tipos de Permissões de acesso
Quanto aos tipos de permissões que se aplicam ao dono, grupo e outros usuários, temos 3
permissões básicas:
r - Permissão de leitura para arquivos. Caso for um diretório, permite listar seu conteúdo
(através do comando ls, por exemplo).
w - Permissão de gravação para arquivos. Caso for um diretório, permite a gravação de
arquivos ou outros diretórios dentro dele. Para que um arquivo/diretório possa ser apagado, é
necessário o acesso a gravação.
x - Permite executar um arquivo (caso seja um programa executável). Caso seja um
diretório, permite que seja acessado através do comando cd.
As permissões de acesso a um arquivo/diretório podem ser visualizadas com o uso do
comando ls -la. As 3 letras (rwx) são agrupadas da seguinte forma:
12
-rwxrwxrwx jose users teste
Virou uma bagunça não? Vou explicar cada parte para entender o que quer dizer as 10 letras
acima (da esquerda para a direita):
- A primeira letra diz qual é o tipo do arquivo. Caso tiver um “d” é um diretório, um “l” um link a
um arquivo no sistema, um “-” quer dizer que é um arquivo comum, etc.
- Da segunda a quarta letra (rwx) dizem qual é a permissão de acesso ao dono do arquivo. Neste
caso “jose” ele tem a permissão de ler (r - read), gravar (w - write) e executar (x - execute) o
arquivo teste.
- Da quinta a sétima letra (rwx) diz qual é a permissão de acesso ao grupo do arquivo. Neste caso
todos os usuários que pertencem ao grupo users tem a permissão de ler (r), gravar (w), e também
executar (x) o arquivo teste.
- Da oitava a décima letra (rwx) diz qual é a permissão de acesso para os outros usuários. Neste
caso todos os usuários que não são donos do arquivo teste tem a permissão para ler, gravar e
executar o programa.
4.3 - Etapas para acesso a um arquivo/diretório
O acesso a um arquivo/diretório é feito verificando primeiro se o usuário que acessará o
arquivo é o seu dono, caso seja, as permissões de dono do arquivo são aplicadas. Caso não seja o
dono do arquivo/diretório, é verificado se ele pertence ao grupo correspondente, caso pertença, as
permissões do grupo são aplicadas. Caso não pertença ao grupo, são verificadas as permissões de
acesso para os outros usuários que não são donos e não pertencem ao grupo correspondente ao
arquivo/diretório.
Após verificar aonde o usuário se encaixa nas permissões de acesso do arquivo (se ele é o
dono, pertence ao grupo, ou outros usuários), é verificado se ele terá permissão acesso para o que
deseja fazer (ler, gravar ou executar o arquivo), caso não tenha, o acesso é negado, mostrando uma
mensagem do tipo: “Permission denied” (permissão negada).
As permissões de acesso (leitura, gravação, execução) para donos, grupos e outros usuários
são independentes, permitindo assim um nível de acesso diferenciado.
4.4 - chmod
Muda a permissão de acesso a um arquivo ou diretório. Com este comando você pode
escolher se usuário ou grupo terá permissões para ler, gravar, executar um arquivo ou arquivos.
Sempre que um arquivo é criado, seu dono é o usuário que o criou e seu grupo é o grupo do usuário
(exceto para diretórios configurados com a permissão de grupo “s”, será visto adiante).
chmod [opções] [permissões] [diretório/arquivo]
Onde:
diretório/arquivo Diretório ou arquivo que terá sua permissão mudada.
Opções:
-v, –verbose Mostra todos os arquivos que estão sendo processados.
13
-f, –silent Não mostra a maior parte das mensagens de erro.
-c, –change Semelhante a opção -v, mas só mostra os arquivos que tiveram as permissões alteradas.
-R, –recursive Muda permissões de acesso do diretório/arquivo no diretório atual e subdiretórios.
ugoa - Controla que nível de acesso será mudado. Especificam, em orugoa+-=rwxXst
dem, usuário (u), grupo (g), outros (o), todos (a).
• +-= - + coloca a permissão, - retira a permissão do arquivo e = define a permissão
exatamente como especificado.
• rwx - r permissão de leitura do arquivo. w permissão de gravação. x permissão de
execução (ou acesso a diretórios).
Observações: chmod não muda permissões de links simbólicos, as permissões devem ser mudadas
no arquivo alvo do link. Também podem ser usados códigos numéricos octais para a mudança das
permissões de acesso a arquivos/diretórios.
4.4.1 - Exemplos de permissões de acesso:
chmod g+r * Permite que todos os usuários que pertençam ao grupo dos arquivos (g) tenham (+)
permissões de leitura (r) em todos os arquivos do diretório atual.
chmod o-r teste.txt Retira (-) a permissão de leitura (r) do arquivo teste.txt para os outros usuários
(usuários que não são donos e não pertencem ao grupo do arquivo teste.txt).
chmod uo+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono e outros
usuários do arquivo.
chmod a+x teste.txt Inclui (+) a permissão de execução do arquivo teste.txt para o dono, grupo e
outros usuários.
chmod a=rw teste.txt Define a permissão de todos os usuários exatamente (=) para leitura e
gravação do arquivo teste.txt.
4.5 - chgrp
Muda o grupo de um arquivo/diretório.
chgrp [opções] [grupo] [arquivo/diretório]
Onde:
grupo - Novo grupo do arquivo/diretório.
arquivo/diretório - Arquivo/diretório que terá o grupo alterado.
Opções:
-c, –changes Somente mostra os arquivos/grupos que forem alterados.
-f, –silent Não mostra mensagens de erro para arquivos/diretórios que não puderam ser alterados.
-v, –verbose Mostra todas as mensagens e arquivos sendo modificados.
14
-R, –recursive Altera os grupos de arquivos/sub-diretórios do diretório atual.
4.6 - chown
Muda dono de um arquivo/diretório. Opcionalmente pode também ser usado para mudar o
grupo.
chown [opções] [dono.grupo] [diretório/arquivo]
Onde:
dono.grupo Nome do dono.grupo que será atribuído ao diretório/arquivo. O grupo é opcional.
diretório/arquivo Diretório/arquivo que o dono.grupo será modificado.
Opções:
-v, –verbose Mostra os arquivos enquanto são alterados.
-f, –supress Não mostra mensagens de erro durante a execução do programa.
-c, –changes Mostra somente arquivos que forem alterados.
-R, –recursive Altera dono e grupo de arquivos no diretório atual e sub-diretórios.
O dono.grupo pode ser especificado usando o nome de grupo ou o código numérico correspondente ao grupo (GID).
Você deve ter permissões de gravação no diretório/arquivo para alterar seu dono/grupo.
chown joao teste.txt - Muda o dono do arquivo teste.txt para joao.
chown joao.users teste.txt - Muda o dono do arquivo teste.txt para joao e seu grupo para
users.
chown -R joao.users * - Muda o dono/grupo dos arquivos do diretório atual e sub- diretórios
para joao/users (desde que você tenha permissões de gravação no diretórios e sub-diretórios).
4.7 - Modo de permissão octal
Ao invés de utilizar os modos de permissão +r, -r, etc, pode ser usado o modo octal para se
alterar a permissão de acesso a um arquivo. O modo octal é um conjunto de oito números onde cada
número define um tipo de acesso diferente.
É mais flexível gerenciar permissões de acesso usando o modo octal ao invés do comum,
pois você especifica diretamente a permissão do dono, grupo, outros ao invés de gerenciar as
permissões de cada um separadamente. Abaixo a lista de permissões de acesso octal:
• 0 - Nenhuma permissão de acesso. Equivalente a -rwx.
• 1 - Permissão de execução (x).
• 2 - Permissão de gravação (w).
• 3 - Permissão de gravação e execução (wx).
• 4 - Permissão de leitura (r).
• 5 - Permissão de leitura e execução (rx).
• 6 - Permissão de leitura e gravação (rw).
• 7 - Permissão de leitura, gravação e execução. Equivalente a +rwx.
O uso de um deste números define a permissão de acesso do dono, grupo ou outros usuários. Um
modo fácil de entender como as permissões de acesso octais funcionam, é através da seguinte
15
tabela:
1 = Executar
2 = Gravar
4 = Ler
* Para Dono e Grupo, multiplique as permissões acima por x100 e x10.
Basta agora fazer o seguinte:
• Somente permissão de execução, use 1.
• Somente a permissão de leitura, use 4.
• Somente permissão de gravação, use 2.
• Permissão de leitura/gravação, use 6 (equivale a 2+4 / Gravar+Ler).
• Permissão de leitura/execução, use 5 (equivale a 1+4 / Executar+Ler).
• Permissão de execução/gravação, use 3 (equivale a 1+2 / Executar+Gravar).
• Permissão de leitura/gravação/execução, use 7 (equivale a 1+2+4 / Executar+Gravar+Ler).
Vamos a prática com alguns exemplos:
"chmod 764 teste"
Os números são interpretados da direita para a esquerda como permissão de acesso aos outros
usuários (4), grupo (6), e dono (7). O exemplo acima faz os outros usuários (4) terem acesso
somente leitura (r) ao arquivo teste, o grupo (6) ter a permissão de leitura e gravação (w), e o dono
(7) ter permissão de leitura, gravação e execução (rwx) ao arquivo teste.
"chmod 40 teste"
O exemplo acima define a permissão de acesso dos outros usuários (0) como nenhuma, e define a
permissão de acesso do grupo (4) como somente leitura (r). Note usei somente dois números e então
a permissão de acesso do dono do arquivo não é modificada (leia as permissões de acesso da direita
para a esquerda!). Para detalhes veja a lista de permissões de acesso em modo octal no inicio desta
seção.
"chmod 751 teste"
O exemplo acima define a permissão de acesso dos outros usuários (1) para somente execução (x),
o acesso do grupo (5) como leitura e execução (rx) e o acesso do dono (7) como leitura, gravação e
execução (rwx).
4.8 - umask
A umask (user mask) são 3 números que definem as permissões iniciais do dono, grupo e
outros usuários que o arquivo/diretório receberá quando for criado ou copiado. Digite umask sem
parâmetros para retornar o valor de sua umask atual.
A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binário (um
programa executável) ou texto (‘Arquivo texto e binário’) . Veja a tabela a seguir para ver qual é a
mais adequada a sua situação:
16
5 – Comandos básicos do Sistema
Um comando do Linux é uma palavra especial que representa uma ou mais ações. Um
interpretador de comandos também é conhecido como terminal, shell ou modo texto.
Ele é o programa responsável por interpretar essas instruções enviadas pelo usuário e seus
programas para o kernel.
Para abrir o modo texto: Vá ao menu Aplicativos > Acessórios > Terminal ou pressione
simultaneamente as teclas Alt+F2, e na caixa de texto digite “gnome-terminal” e tecle Enter.
5.1 – Ajuda e Documentação
man: Exibe uma página do manual interno do Unix, para um dado comando ou ou recurso
(isto é, qualquer utilitário do sistema que não seja comando, por exemplo, uma
função de biblioteca). É como um "help" interno ao sistema.
Sintaxe: man <comando>
Onde "comando" é o nome do comando ou recurso que se deseja obter a ajuda.
Para sair é só apertar “q”.
help: Exibe informações sobre comandos internos do Bash.
Sintaxe: help <comando>
Onde "comando" é o nome do comando ou recurso que se deseja obter a ajuda.
5.2 – Instalação de pacotes via APT
apt-get update - Atualizar o banco de dados local do apt-get. Deve-se executar este
comando frequentemente (eu executo diariamente) para que o apt-get busque sempre a lista de
pacotes DEB mais recente.
apt-get upgrade - Atualiza todos os pacotes que estão instalados no sistema.
apt-get upgrade <nome_do_pacote> - Atualiza apenas o pacote especificado.
apt-get check - Checa a integridade dos pacotes do sistema, ou seja, verifica se não há
dependências quebradas.
apt-get install <pacote> - Instala um novo pacote solucionando automaticamente os
pacotes dos quais o aplicativo a ser instalado depende. Caso o pacote algum-pacote já esteja
instalado, o apt-get tentará atualizá-lo.
apt-get install --reinstall <nome_do_pacote> - Para reinstalar um pacote.
apt-cache stats - Saber status do cache, como versões distintas, dependências.
apt-cache search <nome_do_pacote> - Para procurar um pacote.
apt-cache show <nome-do-pacote> - Faz uma busca pelo pacote e exibe alguns dados
relacionados com o pacote.
17
apt-get dist-upgrade - Instala os pacotes básicos e tenta atualizar todo o sistema.
apt-get remove <nome-do-pacote> - Remove o pacote e todas as suas dependências
criadas.
apt-get remove --purge <nome-do-pacote> - Remove o pacote e todas as suas
dependencias criadas incluindo arquivos de configuração.
apt-get -s upgrade - Visualiza os pacotes que voce poderá atualizar.
apt-get -f install - Verifica as dependências automaticamente.
apt-get install --reinstall <nome_do_pacote> - Para reinstalar um pacote.
apt-get clean apt-get autoclean - Para remover arquivos de pacotes baixados pelo apt-get
ou aptitude (que serão armazenados no diretório /var/cache/apt/archives/).
5.3 – Usuários e Grupos
adduser: Cria um novo usuário.
Sintaxe: adduser <nome do usuário>
userdel: Usado para remover uma conta de usuário do sistema, deletando todas entradas
deste usuário nos arquivos.
Sintaxe: userdel <nome do usuário>
finger: Exibe informações dos usuários do sistema. Se um usuário não for
passado ao comando o mesmo apresentará informações de todos usuários atualmente logados.
Sintaxe: finger <nome do usuário>
passwd: Altera a senha de um usuário exibindo um prompt para que a nova senha seja
fornecida, e logo depois repetida para confirmação. O usuário logado pode alterar a própria senha
digitando apenas “passwd”.
passwd fulano” para alterar a senha do usuário “fulano”.
passwd -l fulano” para bloquear a conta do usuário “fulano”.
passwd -u fulano” para desbloquear a conta do usuário “fulano”.
passwd -d fulano” para desativar a senha do usuário “fulano” deixando-o sem uma
senha de acesso.
groupadd: Cria um novo grupo no sistema.
groupadd “novogrupo” para criar um novo grupo no sistema chamado novogrupo.
groupadd -g 200 “novogrupo” para atribuir ao grupo “novogrupo” o GID 200.
groupdel: Exclui um grupo no sistema.
groupdel novogrupo para excluir o grupo chamado “novogrupo”.
groupmod: Altera as informações de um grupo do sistema.
groupmod -n velho_grupo novo_grupo” para alterar o nome do grupo
velho_grupo para novo_grupo.
18
id: Exibe os identificadores (Ids) reais e efetivos de usuário e de grupo de um usuário. Se
não for especificado ao comando será exibido as informações do usuário atual.
id “fulano” para exibir os Ids de usuário e grupo do usuário fulano.
5.4 – Data e Hora
date: Exibe e edita a data e a hora atuais do sistema, segue o formato mês, dia, hora e ano.
date - para exibir a data e hora atual.
date 032914502007 - para alterar a data e hora para 14:50 h de 29/03/2007.
cal: Exibe um simples calendário.
hwclock: Consulta ou define o relógio do hardware (Hardware Clock).
hwclock – exibe a data e hora da do hardware (BIOS).
hwclock -s" para atribuir ao sistema a data e hora do hardware (BIOS).
hwclock --set –date=032914502007 – para definir a data e hora do hardware como
14:50 h de 29/03/2007.
5.5 – Informações do Sistema
df: Mostra o espaço em disco do sistema de arquivos usado por todas as partições.
df -h - é provavelmente o mais útil, usa megabytes (M) e gigabytes (G), em vez de
blocos para relatar o tamanhos, significa "human-readable.
du: Exibe o tamanho de arquivos e/ou diretórios. Se nenhum
diretório for passado como argumento, será assumido o diretório atual.
arquivo
ou
du <arquivo ou diretório>
du -h - O
uso
da
opção du -h tornará a apresentação mais simples de ser
interpretada.
free: Este comando exibe a quantidade de memória livre e usada no sistema.
free -m - fornece a informação usando megabytes
lspci: Exibe informações sobre os barramentos PCI do computador e sobre os dispositivos a
ele conectados.
lsusb: Lista informações sobre os barramentos USB do computador e sobre os dispositivos a
eles conectados.
uname: Este comando exibe várias informações sobre o sistema, incluindo o
nome da maquina, nome e versão do Kernel e alguns outros detalhes. É muito útil para verificar
qual é o Kernel usado por você.
19
uname
uname -a para exibir todas as informações.
uname -m para exibir a arquitetura da maquina. (Equivale ao ”arch”).
uname -r para exibir o release do sistema operacional.
top: Este comando exibe em tempo real informações sobre seu sistema Linux, processos em
andamento e recursos do sistema, incluídos CPU, memória RAM e uso do swap, além do número
total de tarefas sendo executadas.
ps: Apresenta um quadro atual, porém estático dos processos que estão sendo executados no
sistema.
ps
ps aux – para apresentar todos processos que estão sendo executados, de todos
usuários, incluído o nome do usuário a qual o processo pertence.
kill: Finaliza, ou no popular, “mata” processos sendo executados pelo seu PID,
lhes enviando um sinal.
kill
kill -9 1345” para finalizar o processo de PID número 1345. Para saber qual PID de
determinado processo que esta sendo executado pode ser utilizado o comando ps.
killall: Finaliza processos pelo nome ao invés do PID como faz o comando kill. Também
assim como o comando kill, o killall envia um sinal para o processo.
killall mozilla-firefox para finalizar o processo mozilla-firefox, fechando com isso o
navegador web Mozilla Firefox. O nome dos processos ativos pode ser observado com uso do
comando ps.
Halt, reboot, shutdown - Respectivamente encerra, reinicializa e encerra ou reinicializa o
sistema.
halt - para encerrar o sistema.
sudo reboot - para reiniciar imediatamente o sistema. Este comando equivale aos
comandos ”sudo init 6” e ”sudo shutdown -r now”.
sudo shutdown -h now - para encerra o sistema imediatamente.
sudo shutdown -h +15 - para encerrar o sistema daqui a 15 minutos.
sudo shutdown -r 20:30 - ''O sistema será reiniciado as 20:30 horas!'' para
reiniciar o sistema as 20:30 horas enviando a mensagem "O sistema será reiniciado as 20:30 horas!"
a todos usuários logados.
NOTA: O comando ”sudo init 0” também pode ser usado para encerramento do
sistema. O comando shutdown é a forma mais segura de reiniciar e finalizar o sistema, advertindo
os usuários logados e bloqueando novos logons.
5.6 Arquivos e Diretórios
pwd: O comando pwd lhe permite saber em qual diretório você está no momento, onde pwd
significa "print working directory".
20
cd: Este comando nos permite se deslocar entre a árvore de diretórios do sistema. Quando
abrimos um terminal ou seção shell, você entra direto no seu diretório pessoal.
cd / - para ir ao diretório raiz.
cd - para ir ao seu diretório pessoal.
cd .. - para acessar um diretório de nível acima do atual.
cd- - para voltar ao diretório que se encontrava antes de mudar.
Para navegar através múltiplos níveis de diretórios em só comando, use por exemplo,
"cd /var/www", que o levará diretamente ao sub-diretório /www do diretório /var.
cp: Copia arquivos e diretórios.
cp file teste - para fazer uma cópia exata do arquivo "file" dando-lhe o nome de
“teste”.
cp /etc/X11/xorg.conf /etc/X11/xorg.conf-bkp - para gerar uma cópia de segurança
exata do arquivo "/etc/X11/xorg.conf" dando-lhe o nome de "/etc/X11/xorg.conf-bkp".
cat: Mostra o conteúdo de um arquivo binário ou texto.
cat [opções] [diretório/arquivo]
diretório/arquivo Localização do arquivo que deseja visualizar o conteúdo.
Opções:
-n, –number Mostra o número das linhas enquanto o conteúdo do arquivo é mostrado.
-s, –squeeze-blank Não mostra mais que uma linha em branco entre um parágrafo e outro.
mv: Este comando move arquivos e diretórios, sendo muito usado também para renomear
um determinado arquivo.
mv arquivo1 arquivo2” para renomear o arquivo “arquivo1” localizado no
diretório pessoal do usuário para “arquivo2” no mesmo local.
mv teste ~/Desktop moverá o arquivo "teste" para seu diretório Desktop sem alterar
seu nome. Você deve especificar um novo nome se quiser renomear um arquivo.
ls: Comando utilizado para listar o conteúdo de um diretório. Usado com certas opções, é
possível ver o tamanho dos arquivos, quando foram criados, e as permissões de cada um.
ls - para mostrar os arquivos que estão em seu diretório pessoal.
ls -hal ~” para mostrar os arquivos que estão em seu diretório pessoal, inclusive os
ocultos (-a) em forma de uma listagem (-l) e com as informações de tamanho mais amigável a nós
seres humanos (-h).
rm: Utilize este comando para remover (deletar) arquivos e opcionalmente diretórios. Por
padrão o comando rm exibe um prompt onde o usuário deve confirmar a exclusão de cada arquivo,
digitando a letra “y” seguido de “Enter”.
rm arquivo1 - para remover o arquivo chamado “arquivo1” do diretório corrente
após confirmação no prompt.
rm teste.txt - Apaga o arquivo teste.txt no diretório atual.
rm *.txt - Apaga todos os arquivos do diretório atual que terminam com .txt.
rm *.txt teste.novo - Apaga todos os arquivos do diretório atual que terminam
com .txt e também o arquivo teste.novo.
rm -rf /tmp/teste/* - Apaga todos os arquivos e sub-diretórios do diretório /tmp
21
/teste mas mantém o sub-diretório /tmp/teste.
rm -rf /tmp/teste - Apaga todos os arquivos e sub-diretórios do diretório /tmp
/teste, inclusive /tmp/teste.
rm -f -- --arquivo-- - Remove o arquivo de nome -arquivo-.
mkdir: Comando cuja finalidade é permitir a criação de um ou mais diretórios.
mkdir musicas - para criar um diretório chamado “musicas” dentro do diretório
corrente.
diff: Usado para comparar o conteúdo de dois arquivos, exibindo a diferença entre eles.
diff file foo - para ver a diferença entre o conteúdo do arquivo “file” e o arquivo
“foo”.
find: Comando utilizado para procurar por arquivos na arvore de diretórios. Se um caminho
não for passado ao comando find a busca será feita no diretório corrente.
find /home/teste.txt - para procurar pela ocorrência de um arquivo chamado “teste”
no sub-diretório /temp do diretório pessoal do usuário.
tar: Usado para armazenar ou extrair arquivos TAR (Tape ARchive). Estes arquivos TAR
são os chamados “tarfile” ou “tarball”.
tar cvf teste.tar *.ogg - para criar um arquivo TAR chamado teste.tar
contendo todos os arquivos de extensão “.ogg” do diretório corrente. Notar que a extensão “.tar”
não é obrigatória, mais aconselhável para facilitar a identificação do arquivo.
tar tvf teste.tar - para exibir todo o conteúdo do arquivo TAR chamado teste.tar.
tar xvf teste.tar - para extrair todo conteúdo do arquivo “teste.tar” no diretório
corrente.
tar xvf teste.tar musica1.ogg - para extrair apenas o arquivo chamado
“musica1.ogg” do tarball “teste.tar” no diretório corrente.
gzip - Compacta e opcionalmente descompacta arquivos regulares. Os arquivos
compactados com o comando são substituídos por outro de menor tamanho com a
extensão .gz porém preservando o dono, as permissões e datas de acesso e modificação.
gzip arq1 arq2 - para compactar os arquivos “arq1” e “arq2” gerando os arquivos
“arq1.gz” e “arq2.gz” em substituição aos originais.
gzip -d arq1 - para descompactar o arquivo “arq1.gz” trazendo de volta o arquivo
original “arq1”. A presença da opção -d equivale ao uso do comando gunzip.
bzip2 - Compacta e opcionalmente descompacta arquivos regulares. Assim como o gzip, os
arquivos compactados com este comando são substituídos por outro de menor tamanho com a
extensão .bz2 porém preservando o dono, as permissões e datas de acesso e
modificação. O algoritmo empregado por este comando permite uma maior compressão e também
segurança dos arquivos gerados, porém o processo se torna um tanto quanto mais demorado.
bzip2 arq1 - para compactar o arquivo “arq1” gerando em substituição o arquivo
“arq1.bz2”.
bzip2 -9
arq2 - para compactar o arquivo “arq2” pelo processo de máxima
compressão gerando em substituição o arquivo “arq2.bz2”.
bzip2 -d arquivo.bz2 - para descompactar o arquivo “arquivo.bz2” trazendo de
volta o(s) arquivo(s) original(is) que tinham sido previamente compactados.
22
5.7 – Sistema de Arquivos
mount – Monta um sistema de arquivos tornando-o disponível para as operações de E/S
(Entrada/Saída) em arquivos, ou exibe uma lista dos sistemas de arquivos atualmente montados.
mount - para listar os sistemas de arquivos atualmente montados.
mount -t ext3 /dev/hda3 /media/hda3 - para montar a terceira partição primária do
disco hda (IDE1) formatado em EXT3 no diretório /media/hda3. É necessário que o
diretório /media/hda3 tenha sido previamente criado para que o comando tenha sucesso.
umount – Desmonta um sistema de arquivos previamente montado que não esteja em uso.
umount /dev/hda3” para desmontar o dispositivo /dev/hda3. Para que o comando seja
executado com sucesso é importante que o dispositivo não esteja em uso, como por exemplo com
arquivos abertos ou mesmo estando dentro do diretório onde o mesmo se encontra montado.
fdisk – Gerencia por meio de uma simples interface de texto orientada por menus as partições
de um disco. Ao executar o comando fdisk dispositivo basta pressionar a tecla “m” no prompt para
ter acesso ao menu de opções que é bastante auto-explicativo, devendo se usar as setas de direção
para movimentar-se pelo mesmo.
fdisk -l - para listar as tabelas de partições para todos dispositivos.
mkfs – Formata um dispositivo (geralmente uma partição de disco) criando um
novo sistema de arquivos.
mkfs -t ext3 /dev/hda3 - para formatar o dispositivo /dev/hda3 em um sistema de
arquivos EXT3. O dispositivo deve obrigatoriamente estar desmontado para execução desta
operação.
badblocks – Procura por blocos ruins em um dispositivo, geralmente uma partição de disco.
badblocks /dev/hda3” - para verificar se o dispositivo /dev/hda3 se encontra com
blocos ruins. Normalmente, dependendo do tipo e tamanho do dispositivo este procedimento é um
tanto demorado, sendo que se nenhuma informação for retornada é porque blocos ruins não foram
encontrados.
badblocks -o /tmp/file -n /dev/hda3 - onde o parâmetro -n forçaria um teste de
leitura e escrita não-destrutivo e o “-o /tmp/file” geraria o arquivo /tmp/file com todas mensagens
de saída do comando.
5.8 Utilitários de Texto
cat – Utilizado para concatenar arquivos exibindo o resultado na tela, sendo
também utilizado para exibir o conteúdo de arquivos.
cat arq - para exibir o conteúdo do arquivo chamado “arq”.
cat -n arq -para exibir o conteúdo do arquivo chamado “arq” numerando as linhas.
cat /etc/passwd /etc/group – para exibir na tela o conteúdo dos arquivos
“/etc/passwd” e “/etc/group”.
cat file1 file2 |less - para exibir na tela o conteúdo dos arquivos “file1” e “file2”
porém fazendo a paginação das telas. Neste caso a opção “|less”, onde “|” é o chamado pipe, pode
ser substituída também por “|more”, sendo que ambos comandos serão vistos posteriormente.
cat arq arq1 arq2 > arq_final - para concatenar os arquivos “arq”, “arq1” e “arq2”
e colocar o resultado em outro arquivo chamado “arq_final”. Notar que neste comando é feito uso
do caractere “>” chamado de redirecionador de saída.
cat arq3 >> arq_final – para inserir o conteúdo do arquivo “arq3” ao final do
23
arquivo “arq_final”.
NOTA: O comando cat também pode ser usado para criar arquivos quando usado em conjunto com
o “>” redirecionador de saída. Para criar um arquivo execute o comando ”cat > novo_arq” e digite o
conteúdo desejado, usando a tecla “Enter” como separador de linhas e “Ctrl+D” para finalizar.
less – Faz a paginação de saídas muito extensas exibindo uma tela por vez.
less
arq - para exibir o conteúdo do arquivo “arq” de forma paginada. Para
navegação e gerenciamento do comando use as teclas abaixo:
- Para sair do aplicativo digite q (quit);
- Use as teclas Page-Down, Ctrl+F ou Space para avançar nas páginas;
- Use as teclas Page-Up ou Ctrl+B para voltar as páginas;
- Use Enter para avançar apenas uma linha por vez;
- Digite h para ver a lista das teclas disponíveis para navegação no comando.
NOTA: Para redirecionar a saída de outro comando para o less efetuar a paginação, use o “|” (pipe)
conforme exemplo ”ls-hl |less”.
more – Semelhante ao comando less também faz a paginação de uma saída muito grande na
tela. A sintaxe deste comando é semelhante ao do less, inclusive as teclas de navegação e o
redirecionamento com uso do “|” (pipe).
grep – Usado para procurar por linhas em um arquivo que contenham expressões que
satisfaçam um determinado padrão de busca.
grep termo arq - para procurar por entradas no arquivo “arq” que correspondam a
expressão “termo”.
grep 'termo1' termo2' arq” - para procurar por entradas no arquivo “arq” que
correspondam as expressões “termo1” e “termo2”. Notar que quando a expressão é composta de
mais de uma palavra deve ser usado aspas simples.
NOTA: Este comando comumente é utilizado em conjunto com outros comandos canalizados com
o “|” () conforme abaixo exemplificado.
cat /etc/passwd |grep fulano - para procurar por uma entrada que corresponda a
expressão “fulano” no arquivo “/etc/passwd”.
tail – Exibe as últimas linhas da saída de um arquivo. Por padrão se nenhum parâmetro
diferente for passado ao comando será exibido as últimas 10 linhas do arquivo.
tail -50 arq - para exibir as últimas 50 linhas do arquivo chamado “arq”.
tail -f /var/log/messages - para continuar exibindo indefinidamente as últimas 10
linhas (padrão) do arquivo “/var/log/messages ”. Conforme o exemplo, esta opção “-f” é muito
usada para verificar arquivos de log do sistema que estão sendo constantemente atualizados.
NOTA: Assim como o tail que exibe as últimas linhas de um arquivo, existe o comando head que
faz exibir as primeiras linhas de saída de um arquivo.
5.9 Monitoramento de Acesso
w – Mostra quem esta logado no sistema e o que esta fazendo. Se não for especificado um
usuário ao comando, será exibido informações de todos usuários logados.
w - para exibir todos usuários logados e o que estão executando neste momento.
24
w fulano - para mostrar informações do usuário “fulano” se o mesmo estiver logado
no sistema.
who – Semelhante ao comando w mostra quais usuários estão logados no sistema.
who -m - para mostrar o nome do usuário logado no sistema.
who -q - para mostrar a quantidade total e nomes dos usuário conectados
ao sistema.
last – Mostra todas informações referente as entradas (login) e saídas (logout) de usuários
do sistema.
last -a - para exibir estas informações mostrando o nome da maquina de onde foi
efetuado os logins.
last -d - para exibir estas informações mostrando o endereço IP da maquina de onde
foi efetuado os logins.
last reboot - para exibir um registro de todas as reinicializações efetuadas no sistema.
lastlog – Exibe informações referente ao último login de cada usuário cadastrado no
sistema. Caso nenhum argumento seja passado, o comando lastlog exibe todas as informações
armazenadas no arquivo “/var/log/lastlog” de todos os usuários do sistema.
lastlog -u fulano - para exibir informações referentes apenas ao último login do
usuário “fulano”.
lastlog -t 5 - para exibir a lista dos usuários que logaram no sistema nos últimos 5
dias informando o dia e a hora do último acesso de cada um desses usuários.
5.10 – Administração de Usuários
login - Permite a um usuário efetuar o logon (estabelecer uma conexão) no sistema, bem
como ser utilizado para efetuar o logon com um usuário diferente do atual.
login fulano - para efetuar o login do usuário “fulano”.
login -p fulano - para efetuar o login do usuário “fulano” sem destruir o ambiente do
atual usuário.
logout - Finaliza um login shell no console ou terminal. No modo gráfico, este comando
encerra a sessão do usuário podendo fechar a janela do terminal, e em modo texto encerra a sessão
do usuário levando-o de volta ao prompt de login do sistema.
su - Permite alternar entre os usuários cadastrados do sistema, alterando o ID de usuário e
grupo do atual usuário para outro usuário especificado.
su fulano - permite alternar para o usuário “fulano” após senha de login correta.
su fulano -c 'vim /home/fulano/arq1' - permite executar o comando vim abrindo o
arquivo “/home/fulano/arq1” como sendo o usuário “fulano”. O uso desta opção -c não começa um
novo shell, apenas executa um comando como sendo o outro usuário especificado.
sudo - Permite a um usuário autorizado conforme configurado no arquivo “/etc/sudoers”, a
executar comandos como se fosse o super-usuário (root) ou outro usuário qualquer.
uname - Exibe várias informações sobre o sistema. Caso nenhuma opção seja fornecida
junto ao comando, apenas o nome do sistema operacional será exibido, equivalente a opção -s.
uname -a - para exibir todas informações sobre o sistema.
25
Download

APOSTILA LINUX USUÁRIO PARTE 1