sistemas de informação - brunotoledoifmg.combrunotoledoifmg.com/so/aulas/aula 11 - linux.pdf ·...
TRANSCRIPT
Sistemas de Informação
Sistemas Operacionais
LINUX
SUMÁRIO
9. LINUX
9.1 Unix;
9.2 Linux;
9.3 Sistema de Arquivos;
9.4 Contas;
9.5 Controle de Acesso;
9.6 Comandos Básicos;
9.7 Diretório;
9.8 Arquivos;
9.9 Processos.
Capítulo 9 - Linux
9.1 Unix
Unix é um sistema operacional originalmente criado por Ken Thompson,
Dennis Ritchie, Douglas McIlroy e Peter Weiner, que trabalhavam nos
Laboratórios Bell (Bell Labs) da AT&T.
A marca UNIX é uma propriedade do The Open Group, um consórcio
formado por empresas de informática. Unix é um sistema operacional de:
Propósito geral, ou seja, foi feito para várias finalidades;
Multiusuário, em que vários usuários podem usar o sistema ao mesmo
tempo;
Multitarefa, na qual vários programas podem rodar ao mesmo tempo;
Portável para várias plataformas de hardware.
Capítulo 9 - Linux
9.1 Unix
O uso de UNIX se baseia na noção de sessão de trabalho. Cada usuário é
designado por um nome de login, ou simplesmente login, com uma senha
secreta associada. Uma sessão de trabalho típica consiste das seguintes
etapas:
O usuário identifica-se, fornecendo seu nome de login e sua senha ao
sistema;
A sessão de trabalho inicia, com o lançamento do shell (modo texto) ou do
ambiente (modo gráfico);
Uso do sistema (lançamento de comandos e aplicações);
Fim da sessão (operação de logout ou logoff).
O UNIX pode gerenciar diversas sessões simultâneas de usuários distintos
na mesma máquina. Cada um terá uma visão independente e transparente
dos recursos disponíveis, sem conflitos ou interferências.
Capítulo 9 - Linux
9.1 Unix
Desenvolvido no fim da década de 60, início dos anos 70. Embora estas
características sejam comuns nos sistemas atuais, para a época era muito
avançadas.
Tanto que os sistemas da Microsoft, em particular a família Windows, e os
sistemas da Apple, Mac OS, só ganharam a multitarefa em meados dos anos
90.
Ou seja, os sistemas Unix tem, pelo menos, 20 anos a mais de tecnologia,
desenvolvimento e amadurecimento que seus sistemas concorrentes.
Capítulo 9 - Linux
9.1.1 Filosofia Unix
1. Escreva programas que realizam apenas uma tarefa e que o façam bem
feita;
2. Escreva programas que trabalhem juntos;
3. Escreva programas que trabalhem com texto pois está é uma interface
universal.
Capítulo 9 - Linux
9.1.2 Principais Características
Ambiente multiusuário por padrão;
Sistema baseado em processos;
Orientado a arquivos;
Árvore de arquivos padronizada;
Sensível a caixa.
Capítulo 9 - Linux
9.1.3 Os sistemas unix-like livres
Em 1983, um desenvolvedor de software, chamado Richard
Stallman, fundou a Free Software Foundation;
Anuncia o projeto GNU, que tinha a intenção de desenvolver e
compartilhar softwares;
Em 1992, Linus Torvalds lança o kernel Linux, que se juntando as
ferramentas GNU, formou o sistema operacional GNU/Linux.
Capítulo 9 - Linux
9.1.3 Os sistemas unix-like livres
Frequentemente abreviado para "rms" (Manhattan, 16 de março de
1953) Richard Stallman é um famoso hacker, fundador do movimento
free software, do projeto GNU, e da Free Software Foundation (FSF)
("Fundação para o Software Livre").
Capítulo 9 - Linux
9.1.3 Os sistemas unix-like livres
Um aclamado programador, seus maiores feitos incluem Emacs (e o GNU
Emacs, mais tarde), o GNU Compiler Collection e o GNU Debugger.
É também autor da GNU General Public License (GNU GPL ou GPL), a
licença livre mais usada no mundo, que consolidou o conceito de copyleft.
Desde a metade dos anos 1990, Stallman tem dedicado a maior parte de seu
tempo ao ativismo político, defendendo software livre e lutando contra a
patente de softwares e a expansão da lei de copyright.
Em 1971, ainda calouro na Universidade Harvard - onde se graduou em
Física, em 1974 - Stallman era programador do laboratório de IA do MIT e
tornou-se um líder na comunidade hacker.
Capítulo 9 - Linux
9.1.4 Projeto GNU
GNU General Public License (Licença Pública Geral), GNU GPL ou
simplesmente GPL, é a designação da licença para software livre
idealizada por Richard Stallman no final da década de 1980, no
âmbito do projeto GNU da Free Software Foundation (FSF).
Capítulo 9 - Linux
9.1.4 Projeto GNU
Em termos gerais, a GPL baseia-se em 4 liberdades:
A liberdade de executar o programa, para qualquer propósito (liberdade nº 0).
A liberdade de estudar como o programa funciona e adaptá-lo para as suas
necessidades (liberdade nº 1). O acesso ao código-fonte é um pré-requisito
para esta liberdade.
A liberdade de redistribuir cópias de modo que você possa ajudar ao seu
próximo (liberdade nº 2).
A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de
modo que toda a comunidade se beneficie deles (liberdade nº 3). O acesso ao
código-fonte é um pré-requisito para esta liberdade.
Capítulo 9 - Linux
9.1.4 Projeto GNU
A GPL além de garantir liberdades impõe obrigações a qualquer
pessoa que efetue mudanças no programa, que são:
O programa derivado deve ser distribuído junto com o código-fonte;
Deve existir um aviso, em destaque, em cada arquivo modificado,
de que os dados originais foram alterados;
Deve existir um aviso de que o trabalho distribuído deriva total ou
parcialmente do programa original;
O(s) autor(es) do programa deve(m) ser citado(s).
Capítulo 9 - Linux
9.2 Linux
O Linux é o núcleo do sistema operacional escrito pelo estudante de
ciência da computação o finlandês Linus Torvalds em 1991.
Foi originado do UNIX.
Daí a origem do nome: LINUX = LINUS + UNIX
Capítulo 9 - Linux
9.2 Linux
É um sistema operacional de código aberto distribuído de forma
gratuita, isto porque o código-fonte do sistema está sob a licença GPL
e dentro do aviso de copyright escrito por Linus.
Há informações detalhadas que garantem que nem o próprio Linus
tem poderes para fechar o sistema para uso exclusivamente
comercial.
Capítulo 9 - Linux
9.2.1 Requisitos para rodar o Linux
Uma característica muito importante do Linux, é que você não precisa
ter um computador poderoso para poder rodá-lo.
O requerimento mínimo para rodar o Linux Ubuntu é de:
Processador: Pentium 4 de 1.5 Ghz;
HD: Pelo menos 10 GB de espaço livre em disco;
Memória RAM: 1 GB.
Algumas versões do Linux utilizam processadores com menor
capacidade da citada, além de 128 MB de RAM e menos de 1 GB
espaço no HD. Mas neste caso, somente será possível utilizá-lo em
modo texto, ou seja, sem recursos gráficos. Para isso, ele exige a
mesma capacidade de hardware que o Windows ou o Mac.
17
Capítulo 9 - Linux
Capítulo 9 - Linux
19
Capítulo 9 - Linux
Capítulo 9 - Linux
21
Capítulo 9 - Linux
Capítulo 9 - Linux
9.3 Sistema de Arquivos
O Linux organiza o seu sistema de arquivos em uma árvore
hierarquizada, resultando em uma estrutura única que agrega todas
as informações relativas ao sistema de arquivos.
Cada nodo da árvore pode representar um arquivo, um dispositivo de
entrada e saída, ou ainda um diretório.
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.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
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 Unix
não influência em NADA nesta processo de identificação.
Capítulo 9 - Linux
Árvore de Arquivos:
Capítulo 9 - Linux
9.3 Sistema de Arquivos
Árvore de Arquivos:
/
O diretório raiz, que é específico para cada máquina. Geralmente
armazenado localmente, contém os arquivos para a carga do sistema
(boot), de forma a permitir a inclusão dos outros sistemas de arquivos
(outras hierarquias de diretórios) na árvore de diretórios.
/bin
Contém programas (executáveis) que são necessários durante o boot
do sistema mas que também podem ser usados pelos usuários.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/boot
É onde ficam os arquivos utilizados pelo sistema durante o boot, como
imagens do kernel e etc.
/dev
Os arquivos deste diretório são também conhecidos como “device drives”
que guardam informações de dispositivos físicos do sistema, como os discos
rígidos, por exemplo.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/etc
Este diretório é um dos mais importantes. Contém uma miscelânea de dados
de configuração, como por exemplo roteiros (scripts) de inicialização do
sistema em seus vários níveis e outros como a tabela de sistemas de
arquivo, configuração da inicialização do sistema para cada nível,
configurações de login para todos os usuários, configuração da fila de
impressão, e um número considerável de arquivos para configuração de rede
e outros aspectos do sistema, incluindo a interface gráfica.
/home
Contém os diretórios pessoais dos usuários comuns. Quando este diretório
se torna excessivamente grande, ele pode ser subdividido para facilitar sua
manutenção. Por exemplo: /home/professores, /home/estudantes.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/lib
Guarda bibliotecas compartilhadas necessárias por programas e pelo
sistema, bem como módulos do kernel. O nome lib vem de library, ou
biblioteca.
/media
É um ponto de montagem usado por dispositivos removíveis, como cd-rom,
pen drives, e etc. Sempre que você espeta um pen drive, ele é montado aqui.
/mnt
É também um ponto de montagem, porém destinado a uso do administrador
do sistema para montagens temporárias esporádicas.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/opt
Diretório reservado para todos os softwares que não fazem parte da
instalação padrão.
/proc
É um diretório cujos dados são armazenados na memória e não em disco.
Ele guarda informações úteis ao sistema, como parâmetros do kernel e
estatísticas do processador.
/root
Diretório pessoal do usuário root.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/sbin
Executáveis e ferramentas para a administração do sistema (para uso do
superusuário).
/sys
Contém arquivos do kernel, de firmware e outros relacionados ao sistema.
/tmp
É o diretório temporário do Linux. Tudo que está aqui é apagado quando o
sistema é desligado. Normalmente quando um programa está para ser
instalado, uma série de arquivos é copiada para este diretório para serem
usados durante a instalação.
Capítulo 9 - Linux
9.3 Sistema de Arquivos
/usr
É onde ficam algumas informações importantes que dizem respeito ao
sistema e os usuários. Temas do gerenciador de janelas, temas de ícones,
chamadas para os executáveis presentes no /bin e etc.
/var
É onde ficam guardados arquivos de log e bancos de dados dos programas
instalados.
Capítulo 9 - Linux
9.3.1 Nomenclatura
Exemplo: DISCO RÍGIDO IDE
Windows: C, D, …
Linux: hda1, hda2, ...
OBS: sd para dispositivos SCSI e SATA.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
/dev/fd0 - Primeira unidade de disquetes.
/dev/fd1 - Segunda unidade de disquetes.
/dev/sda - Primeiro disco rígido na primeira controladora SATA ou SCSI.
/dev/sda1 - Primeira partição do primeiro disco rígido SATA ou.
/dev/sdb - Segundo disco rígido na primeira controladora SATA ou SCSI.
/dev/sdb1 - Primeira partição do segundo disco rígido SATA ou SCSI.
/dev/sr0 - Primeiro CD-ROM SATA ou SCSI.
/dev/sr1 - Segundo CD-ROM SATA ou SCSI.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/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/xda - Primeiro disco rígido XT.
/dev/xdb - Segundo disco rígido XT.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
Pode ter até 4 partições.
Toma o lugar de uma
partição primária e não
recebe um sistema de
arquivo. Não pode ter
mais do que uma em
um disco.
São simples partições
alojadas dentro de uma
partição estendida. Pode
receber sistemas de
arquivos. Seu principal
motivo é permitir ter
mais do que 4 partições
em um disco rígido.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
Outro ponto tão importante quanto definir o esquema de
particionamento de disco, é a escolha do filesystem.
Nesse ponto temos algumas opções, como:
ext2: considerado como o filesystem original do Linux. Sistema de
arquivos utilizado na pré história do Linux. Usado como substituto para o
sistema de arquivos do Unix.
Tinha o problema de verificar todo o sistema de arquivos quando ocorria uma
queda de energia e se o disco fosse muito grande, demorava muito para
restaurar o sistema. Foi criticado, tendo bloqueio de seu uso nas grandes
corporações. Não possui Journaling, o que torna as checagens de disco
bem lentas.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
Journaling: dá ao sistema operacional permissão para realizar um log de
todas as mudanças no sistema de arquivo antes de realizar a escrita no
disco.
Normalmente este log é um log circular alocado em uma área especial do
sistema de arquivos.
Este tipo de sistema de arquivos tem a oferecer uma melhor probabilidade
de não sofrer corrupção de dados no caso de o sistema travar ou faltar
energia, e uma recuperação mais rápida, pois não necessita verificar todo
o disco, somente os arquivos que pertenciam a um log que não foi
fechado devidamente.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
ext3 - Esse sistema de arquivos implementou o uso de Journaling do
Linux. Ou seja, todos os dados que entram na fila de escrita são anotados
e escritos no Journaling antes da operação, e quando concluídos são
removidos do Journaling.
O Journaling armazena informações sobre a operação de escrita que está
para ocorrer. Caso ocorra uma queda de energia, ou outro fato que venha a
interromper o sistema operacional no meio de uma operação de escrita,
quando ele for iniciado, o sistema de arquivos verifica as informações que
ficaram no Journaling e somente as áreas afetadas por essas operações
marcadas que serão verificadas pelo utilitário FSCK (File System Check).
ext4 - Foi dado um upgrade no ext3. Usa também o Journaling. Foi
melhorado o processo de gravação e escrita.
Capítulo 9 - Linux
9.3.2 Identificação de discos rígidos no GNU/Linux
reiserfs: é um sistema de arquivos com uma performance muito boa e
que supera do ext2 e ext3 em termos de desempenho quando tratando
de pequenos arquivos (abaixo de 4 kb).
Muito rápido quando se trabalho com arquivos pequenos. Ele utiliza um
algoritmo interno para ordenar os nomes de arquivos pelo sistema. Também
conta com o Journaling, só que tem uma limitação (não permite o
gerenciamento de cotas em disco).
jfs: sistema de arquivos da IBM, que visa servidores, ou aplicações com
grande necessidade de espaço em disco rígido.
xfs: é um filesystem com Journaling. Mais avançado que o reiserfs e
jfs. Já é um sistema de arquivos de 64 bits. É o único que permite
redimensionamento em tempo de execução.
Capítulo 9 - Linux
9.3.3 Boot loader
Ao final do processo de instalação, o sistema irá solicitar qual
software controlará o sistema de inicialização. Esse software será
instalado na MBR.
A tarefa desse programa é determinar qual SO será carregado e
carregá-lo na memória RAM.
Os dois mais utilizados são:
LILO (Linux Loader);
GRUB (Grand Unified Bootloader).
O Ubuntu, por padrão, utiliza o GRUB.
Capítulo 9 - Linux
9.3.3 Boot loader
Capítulo 9 - Linux
9.4 Contas
id -u (Mostra a identificação do usuário). Se for 0 (zero) é o root.
Sistemas baseados no Red Hat a identificação do usuário comum é a
partir de 1000 e cada novo usuário criado incrementa 1 (um).
Exemplo: 1000, 1001, 1002, assim por diante.
Capítulo 9 - Linux
9.4 Contas
Conta de Administrador:
sudo passwd root
Em seguida aparecem as seguintes mensagens:
[sudo] password for [usuário]: (digite a senha criada na instalação)
Digite a nova senha Unix: (digite a senha que será do root)
Regidite a nova senha Unix: (repita a senha que será do root)
Capítulo 9 - Linux
9.4.1 Criando Contas
Usuário Comum:
useradd
(dependendo do seu sistema (distribuição do Linux), o comando
pode ser também adduser), que é aplicado da seguinte forma:
useradd [opções] usuário
EXEMPLO: useradd bruno
OBS: Não é obrigatório colocar as opções.
Capítulo 9 - Linux
9.4.1 Criando Contas
Após a criação dos usuários, você poderá utilizar mais de um
terminal. Para isso, use o ctrl alt f2 para abrir o segundo terminal.
O terminal tem o nome de TTY e é seguido de um número para a
identificação. TTY1 é o primeiro terminal, TTY2 é o segundo terminal,
assim por diante.
Para utilizar mais terminais use o ctrl alt f3, ctrl alt f4, etc.
Capítulo 9 - Linux
9.4.2 Alterando Contas
Se você pode criar e apagar contas de usuários, pode também
alterá-las. Isso é feito facilmente com o comando usermod, cujo
funcionamento é semelhante ao comando adduser.
usermod -l novo_nome usuário
altera o nome do login do usuário. No exemplo a seguir, o usuário
bruno teve seu nome alterado para toledo
usermod -l toledo bruno
Capítulo 9 - Linux
9.4.3 Excluindo Contas
Para apagar um usuário digite o comando userdel seguido do
nome do usuário. Por exemplo:
userdel bruno
Se além de eliminar esse usuário do sistema você quiser que sua
pasta "home" seja apagada (junto com todo o seu conteúdo), basta
digitar o comando userdel seguido do parâmetro -r e do nome do
usuário:
userdel -r bruno
Capítulo 9 - Linux
9.4.4 Grupo de Usuários
Possuem a finalidade de adicionar um novo grupo ao sistema. No
comando addgroup, uma mensagem informando o GID (Group
Identification) do grupo é retornada após a finalização do comando.
Sintaxe:
addgroup nomegrupo
groupadd nomegrupo
Capítulo 9 - Linux
9.4.5 Groupmod
Modifica parâmetros de um grupo existente.
Sintaxe:
groupmod [opções] nomegruponovo grupoantigo
Parâmetros:
-n nome altera o nome do grupo
-g altera a GID do grupo
-0 quando usado com –g, permite repetir o número de
GID
Capítulo 9 - Linux
9.4.6 Adicionando usuário em um grupo
O exemplo mostra o usuário windows adicionado no grupo
computador.
usermod -G computador windows
Capítulo 9 - Linux
9.4.7 groupdel e delgroup
Excluem grupos do sistema.
Sintaxe:
groupdel nomegrupo
delgroup nomegrupo
Obs.: O comando delgroup assim como o adduser leva o usuário
a um modo interativo.
Capítulo 9 - Linux
9.4.8 passwd
Altera ou define a senha de um usuário existente no sistema.
Sintaxe:
passwd [opções] usuario
Capítulo 9 - Linux
9.4.9 gpasswd
Altera ou define a senha para um grupo do sistema.
Sintaxe:
gpasswd [opções] nomegrupo
Capítulo 9 - Linux
9.5 Controle de Acesso
A segurança do sistema de arquivos é um requerimento fundamental para
qualquer sistema operacional multiusuários.
Os arquivos do sistema, tais como o Kernel, os arquivos de configuração e
os programas precisam ser protegidos contra acidentes e contra a
manipulação feita por pessoas não autorizadas.
Os arquivos dos usuários precisam ser protegidos contra modificações feitas
por outros usuários e, em alguns casos, precisam ser mantidos
completamente privados.
Em geral, é preciso implementar alguma forma de controle de acesso para
se permitir as operações seguras.
Capítulo 9 - Linux
9.5 Controle de Acesso
O controle de acesso ao sistema de arquivos nativo do Linux é implementado
usando-se um conjunto de propriedades, mantidas separadamente para
cada arquivo.
Essas propriedades são chamadas coletivamente de modo de acesso, ou
simplesmente, modo, de um arquivo.
O modo é uma parte do inode do arquivo. O modo de controla o acesso por
três classes de usuários: Usuários (user), Grupo (group) e Outros (other).
Capítulo 9 - Linux
9.5 Controle de Acesso
Inode: estrutura responsável por conter informações básicas sobre
seus arquivos e pastas, como permissões de acesso, identificação
dos donos dos arquivos, data e hora do último acesso e alterações,
tamanho e o mais importante, os famosos ponteiros para o arquivo
em si.
De modo geral, o INODE é a identidade de um arquivo ou diretório, é
uma identificação única para ele.
Capítulo 9 - Linux
9.5 Controle de Acesso
Usuário (User)
O usuário que é o proprietário do arquivo.
Grupo (Group)
O grupo que é o proprietário do arquivo.
Outros (Other)
Todos os outros usuários do sistema.
Capítulo 9 - Linux
9.5 Controle de Acesso
Quando um novo arquivo é criado, essas propriedades são
automaticamente setadas. Geralmente, o proprietário é o usuário
que criou o arquivo.
O grupo do arquivo normalmente é definido como o grupo 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 é o seu proprietário.
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.
Permissão Abreviatura Permissão de arquivo Permissão de diretório
Leitura
(read )
r Examinar o conteúdo
do arquivo
Listar o conteúdo do diretório
Escrita
(write)
w Escrever/ou modificar
o arquivo
Criar e remover arquivos no
diretório
Execução
(execute)
x Rodar o arquivo
como um programa
Acessar o diretório (comando
cd)
Essas três permissões se aplicam às três classes diferentes:
usuário, grupos e outros.
r w x r w x r w x
0 0 0 0 0 0 0 0 0
usuário grupo outros
Capítulo 9 - Linux
Capítulo 9 - Linux
9.5 Controle de Acesso
Todas as permissões são binárias (concedida ou negada). Quando
exibidas pelo comando ls, as permissões usam as abreviaturas (r,
w e x) para o estado verdadeiro e “ – “ para o estado falso.
Capítulo 9 - Linux
9.5 Controle de Acesso
As permissões de acesso podem ser representadas em uma
string de 12 bits.
É comum referir-se os bits em três conjuntos de três bits.
O primeiro conjunto refere-se às permissões de usuário;
O segunda conjunto, às permissões de grupo;
O terceiro conjunto, às permissões de outros.
Além desses três conjuntos, existe um outro conjunto formado por
SUID, SGID e Sticky.
Capítulo 9 - Linux
9.5.1 Representação
d rwx rwx rwx
A 1ª letra – Mostra se o arquivo é ou não um diretório;
2 a 4 letra – Permissões para o usuário dono do arquivo;
5 a 7 letra – Permissões para o grupo dono do arquivo;
8 a 10 letra – Permissões para outros usuários.
Capítulo 9 - Linux
9.5.2 Permissões - Valores
Permissão se dá através de dono, grupo e outros:
d rwx rwx rwx
Onde: r = 4 w =2 x = 1
Capítulo 9 - Linux
9.5.3 Modificando os bits de modo
Como visto, cada grupo de permissão é formado por três bits. Para
alterarmos as permissões de cada grupo, utilizamos um octal referente a
combinação de bits que queremos ativar para o grupo.
4 2 1 4 2 1 4 2 1
0 0 0 0 0 0 0 0 0
r w x r w x r w x
octal
Exemplo: Definir a permissão de leitura e escrita para o usuário, leitura
para o grupo e outros.
4 2 1 4 2 1 4 2 1
1 1 0 1 0 0 1 0 0
r w x r w x r w x
Valor octal
644
Capítulo 9 - Linux
9.5.3 Modificando os bits de modo
Permissão Valor octal Equivalente binário
- 0 0
--x 1 001
-w- 2 010
-wx 3 011
r-- 4 100
r-x 5 101
rw- 6 110
rwx 7 111
Capítulo 9 - Linux
9.5.4 Exemplos de Permissões
Veja abaixo uma lista com as permissões mais utilizadas:
--------- 000 Ninguém tem permissões;
r-------- 400 Dono Lê;
r--r--r-- 444 Todos Lêem;
rw------- 600 Dono lê e grava;
rw-r--r-- 644 Dono lê e grava e os outros lêem;
rw-rw-r-- 664 Dono e o grupo lêem e gravam e os outros lêem;
rwx------ 700 Somente o dono tem todas as permissões;
rwxr-x--- 750 Dono com todas as permissões, o grupo lê e executa;
rwxr-xr-x 755 Dono com todas as permissões, o outros lêem e executam;
rwxrwxrwx 777 Todos com permissões liberadas.
Capítulo 9 - Linux
9.5.5 Símbolos
u => usuáriog => grupoo => outrosa => todos
r => leituraw => gravaçãox => execução
Capítulo 9 - Linux
9.5.6 Comando “chmod”
Modifica o modo de acesso dos arquivos. Normalmente utilizamos
duas formas distintas para fazer isso:
modo simbólico
modo octal
Sintaxe:
chmod [opções] modo arquivo
Capítulo 9 - Linux
9.5.6 Comando “chmod”
Opções:
-C semelhante ao modo verbose, mas só relata as modificações.
-R usa o modo recursivo.
-v usa o comportamento verbose, relatando todas as mudanças.
Capítulo 9 - Linux
9.5.6 Comando “chmod”
Exemplo 01:
Definir o modo do arquivo aula.txt para rw-r--r-- usando octal
chmod 644 aula.txt
Exemplo 02:
Definir o modo do arquivo aula.txt para rw-r--r– usando octal com o
método verbose ativado
chmod –v 644 aula.txt
Capítulo 9 - Linux
9.5.7 Comando “chmod” - Adicionar e Remover Permissão
Para poder combinar os símbolos destas duas listas anteriores, usamos osoperadores:
+ (adição) => adicionar permissão
- (subtração) => remover permissão
= (igualdade) => definir permissão
Exemplo:
chmod u+w nome_do_arquivo.txt
Capítulo 9 - Linux
9.5.7 Comando “chmod” - Adicionar e Remover Permissão
chmod u+w nome_do_arquivo.txt
O “u” indica que a permissão será dada a um usuário;
O sinal de adição (+) indica que está sendo adicionada a
permissão;
O “w” indica que a permissão que está sendo adicionada é a de
gravação.
Capítulo 9 - Linux
9.5.7 Comando “chmod” - Adicionar e Remover Permissão
Caso você queira dar permissão de leitura e execução ao seu grupo, o
comando será:
Exemplo:
chmod g+rx nome_do_arquivo.txt
Capítulo 9 - Linux
9.5.7 Comando “chmod” - Adicionar e Remover Permissão
Caso você queira dar permissão de leitura, gravação e execução ao seu
grupo e ao dono do arquivo, o comando será:
Exemplo:
chmod ug+rwx nome_do_arquivo.txt
Capítulo 9 - Linux
9.5.7 Comando “chmod” - Adicionar e Remover Permissão
Você pode copiar permissões de uma categoria para outra;
Vamos copiar todas as permissões do “dono” do arquivo para a categoria
“outros”.
Exemplo:
chmod o=u nome_do_arquivo.txt
Capítulo 9 - Linux
9.5.8 Comando “chown”
O comando chown executado pelo root permite alterar o proprietário ou
grupo do arquivo ou diretório, alterando o dono do arquivo ou grupo.
Sintaxe:
chown [opções] usuário:grupo
Opções:
-C semelhante ao modo verbose, mas só relata as modificações
-R usa o modo recursivo
-v usa o comportamento verbose, relatando todas as mudanças
Capítulo 9 - Linux
9.5.8 Comando “chown”
Exemplo 01:
Por exemplo, vamos alterar o proprietário do arquivo curriculum para
um usuário chamado renata (já existente no sistema):
chown renata curriculum.txt
Exemplo 02:
Podemos também alterar o grupo do arquivo juntamente com o
usuário. Por exemplo, vamos alterar o usuário do arquivo curriculum
para ana e seu grupo para marketing ao mesmo tempo:
chown ana:marketing curriculum.txt
Capítulo 9 - Linux
9.5.9 Monitoramento de Acesso
w - mostra quem está 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.
who (Quem) - é semelhante ao comando w mostra quais usuários estão
logados no sistema, com informações básicas.
whoami (Quem sou eu?) - comando que mostra apenas os
usuários logados no sistema.
Capítulo 9 - Linux
9.6 Comandos Básicos
O comando mount é utilizado para montar um dispositivo na hierarquia do
sistema de arquivos do Linux.
Sintaxe:
mount [opções] [dispositivo] [ponto_de_montagem]
Capítulo 9 - Linux
9.6 Comandos Básicos
Opções:
-a Monta todos os dispositivos especificados no arquivo /etc/fstab que
não têm a opção noauto selecionada.
-r Monta o sistema de arquivos do dispositivo como somente leitura.
-w Monta o sistema de arquivos do dispositivo como leitura e
gravação.
-o Especifica as opções de montagem.
-t Especifica o tipo do sistema de arquivos do dispositivo.
Capítulo 9 - Linux
9.6 Comandos Básicos
Alguns tipos:
ext2 - Partições Linux.
ext3 - Partições Linux.
reiserfs - Para partições reiserfs.
vfat - Para partições Windows Fat.
ntfs - Para partições Windows NTFS.
iso9660 - Para montar unidades de cdrom.
OBS.: A montagem e desmontagem de dispositivos só pode ser
feita pelo usuário root ou por outros usuários que tenham
direitos administrativos no sistema.
Capítulo 9 - Linux
9.6 Comandos Básicos
Do ponto de vista de segurança, isso é uma característica excelente
pois evita acessos não-autorizados do sistema.
Mas no ponto de vista prático, pode ser um problema pois os
dispositivos que deveriam ser acessados por usuários comuns, como
CDs, disquetes, pendrives, são bloqueados para montagem por estes
últimos.
Capítulo 9 - Linux
9.6 Comandos Básicos
Para desmontar um dispositivo ou partição utilizamos o comando
umount, seguido do seu ponto de desmontagem no código digitado.
Desmonta uma unidade montada com o comando mount.
Sintaxe:
umount [ponto_de_montagem]
Capítulo 9 - Linux
9.6.1 Programas no Linux Ubuntu ou Debian
Exemplo para INSTALAR um programa
apt-get install firefox
aptitude install firefox
Exemplo para REMOVER um programa
apt-get remove firefox
aptitude remove firefox
Capítulo 9 - Linux
9.6.2 Programas no Linux Fedora ou Red-Rat
Exemplo para INSTALAR um programa
yum install firefox
Exemplo para REMOVER um programa
yum remove firefox
Capítulo 9 - Linux
9.7 Diretório
A primeira coisa com que você precisa se habituar é que no Linux os
discos e partições.
Enquanto no Windows temos as unidades A: , C: ou D: por exemplo,
no Linux temos os /dev/sda, /dev/sdb.
No Linux tudo faz parte de um único diretório, que chamamos de
diretório raiz ou simplesmente a representação "/“ em nosso HD.
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
cd Entra em um diretório
Exemplo: cd bruno (Entrou no diretório com nome bruno)
O comando cd pode ter os seguintes complementos:
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
mkdir Cria um diretório
rmdir Exclui um diretório
rm -rf Exclui um diretório e todo o seu conteúdo
Obs: Para criar um diretório com nome composto basta colocar entre
aspas “ ”
Exemplo: mkdir “Sistemas Operacionais”
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
mkdir -p docs/{img/{fotos,musicas,escola},textos/{artigos,
redacao},tmp}
A regra aqui é a seguinte:
Para cada pasta que conterá subpastas use "nome/{ }" dentro
das chaves coloque os nomes separados por vírgula e não
esqueça de usar o parâmetro '-p' no começo do comando!
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
pwd Exibe o local do diretório atual
ls Listar o conteúdo do diretório
ls -alh Mostra o conteúdo detalhado do diretório
Dica: Para executar mais de um comando ao mesmo tempo
basta separá-lo por ; Ex: pwd ; ls
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
cp Copia diretórios
cp -r Copia recursivamente, copia todos os arquivos e
subdiretórios do diretório especificado.
Copia arquivos.
cp [opções] [origem] [destino]
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
Crie um diretório com o nome X e um com nome Y em seguida,
copie o diretório X para dentro de Y.
Resposta:
mkdir X Y
cp -r X Y
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
mv Move ou renomeia diretórios
Move ou renomeia arquivos e diretórios.
mv [opções] [origem] [destino]
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
Exemplo 01:
mv teste1 teste2
Muda o nome do arquivo teste1 para teste2
OBS: mv teste1 teste2 -v
Muda o nome do arquivo teste1 para teste2, e mostra na tela
Exemplo 02:
mv teste /tmp
Move o arquivo teste para /tmp. Lembre-se que o arquivo de origem é
apagado após ser movido.
Capítulo 9 - Linux
9.7.1 Comandos de Manipulação
-i (interactive) Pergunta antes de substituir um arquivo existente.
-f (force) Não pergunta, substitui todos os arquivos caso já exista.
-r Copia arquivos dos diretórios e subdiretórios da origem para
o destino. É recomendável usar -R ao invés de -r.
-R (recursive) Copia arquivos e sub-diretórios (como a opção -r).
-v (verbose) Mostra os arquivos enquanto estão sendo copiados.
-b Cria um backup dos arquivos de destino, se eles forem
sobrescritos;
-u Só move os arquivos novos. Se o arquivo que está sendo
movido já estiver presente no diretório de destino, ele é
ignorado.
Capítulo 9 - Linux
9.8 Arquivos
A principal função de um sistema de arquivos é manter uma
estrutura organizada onde possamos armazenar os arquivos.
Estes arquivos podem ser de vários tipos e conteúdos como
documentos, programas, arquivos binários e texto puro.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
Criar um arquivo txt:
touch bruno.txt cria um arquivo bruno.txt vazio
> bruno.txt mais rápido que o touch para criar arquivos
Obs: O comando touch atualiza a data de acesso de um
arquivo existente, e caso não exista, é criado um arquivo vazio.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
cp -r Copia diretórios, ou cp para copiar arquivos
mv Move ou renomeia arquivos
Copia arquivos
cp [opções] [origem] [destino]
Move ou renomeia arquivos e diretórios
mv [opções] [origem] [destino]
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
rm Remoção de arquivos
Remove arquivos
rm [opções] [origem] [destino]
Exemplo:
Remover o arquivo bruno.txt
rm bruno.txt
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
cp teste.txt teste1.txt - Copia o arquivo teste.txt para teste1.txt
cp teste.txt /tmp - Copia o arquivo teste.txt para dentro do diretório
/tmp
cp * /tmp - Copia todos os arquivos do diretório atual para /tmp
cp /bin/* - Copia todos os arquivos do diretório /bin para o diretório
em que nos encontramos no momento.
cp -R /bin/* /tmp - Copia todos os arquivos do diretório /bin (exceto o
diretório /bin) e todos os arquivos/sub-diretórios existentes dentro dele
para /tmp.
cp -R /bin /tmp - Copia todos os arquivos e o diretório /bin para /tmp.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
Abrir um arquivo criado: Digitar o gedit arquivo.extensão
Exemplo:
gedit texto.txt
Obs: Em alguns casos terá que configurar o editor gedit do seu Linux
para que o comando funcione corretamente.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
wc
Conta o número de palavras, bytes e linhas em um arquivo ou
entrada padrão. Se as opções forem omitidas, o wc mostra a
quantidade de linhas, palavras, e bytes.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
Exemplos:
wc aula.txt
Mostra a quantidade de linhas, palavras e letras (bytes) no arquivo aula.txt.
wc -w aula.txt
Mostra a quantidade de palavras.
wc -l aula.txt
Mostra a quantidade de linhas.
wc -l -w aula.txt
Mostra a quantidade de linhas e palavras no arquivo criado.
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
cat arq para exibir o conteúdo do arquivo chamado “arq”.
Exemplo: cat aula.txt
Se desejar que as linhas do arquivo sejam enumeradas use a
opção “-n” junto ao comando, desta forma “cat -n arq”.
OBS: Para exibir o contéudo de maneira inversa, basta utilizar o
comando tac arq
Exemplo: tac aula.txt
Capítulo 9 - Linux
9.8.1 Manipulação de Arquivos
O “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.
Exemplo: cat aula1.txt aula2.txt aula3.txt > aula_final.txt
O “cat arq3 >> arq_final” para inserir o conteúdo do
arquivo “arq3” ao final do arquivo “arq_final”.
Exemplo: cat aula.txt >> aula_teste.txt
Capítulo 9 - Linux
9.8.2 Comando gzip
Compactar e Descompactar Arquivos
gzip arq compacta arq e renomeia-o para arq.gz
Exemplo: gzip aula.txt
gzip -d descompacta arq
Exemplo: gzip -d aula.txt.gz
Capítulo 9 - Linux
9.8.2 Comando gzip
Opções:
-c - extrai um arquivo para a saída padrão;
-d - descompacta um arquivo comprimido;
-l - lista o conteúdo de um arquivo compactado;
-v - exibe detalhes sobre o procedimento;
-r - compacta pastas;
-t - testa a integridade de um arquivo compactado.
Ainda no que se refere às opções de parâmetros, é possível utilizar
uma numeração de 1 a 9 para indicar o nível de compactação.
Quanto maior o número, maior será a compactação do arquivo.
Capítulo 9 - Linux
9.8.2 Comando gzip
Exemplos:
gzip -1 aula.txt
Este procedimento faz com que o arquivo aula.txt seja compactado
considerando o nível mais baixo de compreensão.
Capítulo 9 - Linux
9.9 Processos
O gerenciamento e o controle de processos é uma operação
essencial para o funcionamento do sistema.
Na maioria dos casos, os processos se ativarão, executarão e
terminarão sem qualquer intervenção do usuário, porque eles são
gerenciados automaticamente pelo kernel.
Entretanto, haverá situações em que um processo será terminado por
algum motivo desconhecido e precisará ser reiniciado, ou por outro
lado, um processo poderá “se rebelar” e consumir recursos do
sistema excessivamente, tornando necessário que ele seja terminado.
Capítulo 9 - Linux
9.9 Processos
Todo programa, seja um comando, aplicativo ou script, que esteja
executando no seu sistema é um processo.
O seu shell é um processo e todo comando que você executa a partir do
shell inicia um ou mais dos seus próprios processos (conhecidos como
processos-filhos). Os atributos e conceitos associados com esses
processos incluem:
Capítulo 9 - Linux
9.9 Processos
PID
Número inteiro único que identifica um processo. É atribuído no
momento de inicialização do processo.
UID e GID
Os processos precisam ter privilégios associados, e o UID e o GID de
um processo são associadas como o usuário que iniciou. Isso limita o
acesso que o processo terá aos objetos do sistema e arquivos.
Processo Pai
É o processo pai de um processo. Ao iniciarmos o Linux, o primeiro
processo a ser executado é o init, que recebe PID 1. Todos os demais
processos serão filhos desse processo.
Capítulo 9 - Linux
9.9 Processos
PID pai
É o PID do processo pai. Caso o pai de um processo seja terminado
(morto), o PID parente será o PID 1.
Ambiente
Cada processo armazena uma lista de variáveis e dos seus valores
associados. Coletivamente, essa lista é conhecida como o ambiente
do processo e as variáveis são chamadas de variáveis de ambiente.
Os sub-processos herdam as suas configurações de ambiente do
processo pai, a não ser que um ambiente alternativo seja
especificado durante o momento de inicialização do processo.
Diretório atual de trabalho
Local onde o processo lerá e escreverá em arquivos. Cada processo
possui um diretório padrão, mas esse diretório pode ser alterado
durante a inicialização do processo.
Capítulo 9 - Linux
9.9.1 Comando ps
Exibe a lista de processos em execução
ps [opções]
Opções mais frequentes:
-a: Mostra os processos que são de propriedade de outros usuários e
que estejam vinculados a um terminal.
-l: Formato longo, inclui a prioridade, o PID pai e outras
informações.
-u: Formato do usuário, o qual inclui nomes dos usuários e a hora de
início dos processos.
-x: Inclui processos que não tenham terminais (ttys) de controle. Essa
opção é utilizada para ver processos daemons e outros que não
tenham sido iniciados através de um terminal.
-U usuario: Exibe processos de um determinado usuário.
Capítulo 9 - Linux
9.9.1 Comando ps
USER - nome do usuário dono do processo;
UID - número de identificação do usuário dono do processo;
PID - número de identificação do processo;
PPID - número de identificação do processo pai;
%CPU - porcentagem do processamento usado;
%MEM - porcentagem da memória usada;
VSZ - indica o tamanho virtual do processo;
RSS - sigla de Resident Set Size, indica a quantidade de memória usada (em KB);
TTY - indica o identificador do terminal do processo;
START - hora em que o processo foi iniciado;
Capítulo 9 - Linux
9.9.1 Comando ps
TIME - tempo de processamento já consumido pelo processo;
COMMAND - nome do comando que executa aquele processo;
PRI - valor da prioridade do processo;
NI - valor preciso da prioridade (geralmente igual aos valores de PRI);
WCHAN - mostra a função do kernel onde o processo se encontra em modo suspenso;
STAT - indica o estado atual do processo, sendo representado por uma letra: R
(executável); D (em espera no disco); S (suspenso); T (interrompido); Z (Zumbi). Essas
letras podem ser combinadas e ainda acrescidas de: W (processo paginado em disco);
< (processo com prioridade maior que o convencional); N (processo com prioridade
menor que o convencional); L (processo com alguns recursos bloqueados no kernel).
Capítulo 9 - Linux
Capítulo 9 - Linux
Capítulo 9 - Linux
9.9.1 Comando ps
O comando top oferece uma saída semelhante ao ps, porém em uma
exibição continuamente atualizada.
Sintaxe:
top [opções]
Opções:
-b: executa em modo lote. Isso é útil para enviar a saída para
outros programas ou para um script.
-d tempo: específica o tempo de atualização da tela. O padrão é
cinco segundos.
-i: Ignora processos ociosos.
-n num: executa em número de ciclos pré-definido terminando
logo em seguida. Sem esse parâmetro, o top é
executado por tempo indeterminado.
Capítulo 9 - Linux
9.9.1 Comando ps
Opções interativas:
h: gera uma tela de ajuda.
k: termina um processo.
n: modifica o número de processos a serem exibidos.
q: sai do programa.
r: modifica a prioridade de um processo. Será pedido o
seu PID e o seu valor nice.
s: modifica o tempo de atualização da tela.
Capítulo 9 - Linux
9.9.2 Sinais Interativos
Cada processo sendo executado no seu sistema monitora sinais, que
são simples mensagens enviadas ao processo pelo kernel ou por um
usuário.
Cada sinal é representado por um número inteiro pré-definidos e
conhecidos pelos usuários.
Por exemplo, se um processo trava, podemos pressionar as teclas
ctrl+c ou q para abortá-lo. Essa ação é na verdade um sinal dizendo
a ele para interromper sua execução.
Capítulo 9 - Linux
9.9.2 Sinais Interativos
Existem mais de 32 sinais definidos, sendo os mais comuns listados na
tabela a seguir:
Nome do sinal
Número Significado e uso
HUP 1Hung up (desconectar). Este sinal é enviadoautomaticamente quando você faz logout.
INT 2 Interromper; pára a execução. CTRL+C
KILL 9Terminar; pára imediatamente o processo. Enviareste sinal é uma medida drástica, uma vez que elenão pode ser ignorado pelo processo.
TERM 15 Termina um processo de uma forma mais elegante
TSTP 20 Pára a execução, deixando o pronto para continuar
CONT 18 Continua a execução.
Capítulo 9 - Linux
9.9.3 Comando “kill”
Termina (mata) um processo em execução
Sintaxe:
kill sinal processo
Exemplo:
kill -9 2140
Capítulo 9 - Linux
9.9.4 Comando bg
Processo Background ou processo de segundo plano, é um termo oriundo
dos estudos referentes a Sistemas Operacionais, que designa os processos
que ocorrem em que não há interação com o usuário.
Este comando coloca um processo em background.
Podemos também colocar um processo em background utilizando o símbolo
“&” após o comando que inicia o processo.
Exemplo: nano &
Outra forma de enviarmos um processo em execução para background é
utilizando as teclas ctrl+z durante a execução do processo.
Capítulo 9 - Linux
9.9.5 Comando jobs
Serve para visualizar os processos que estão parados ou executando em
segundo plano (background).
Quando um processo está nessa condição, significa sua execução é feita
pelo kernel sem que esteja vinculada a um terminal. Em outras palavras, um
processo em segundo plano é aquele que é executado enquanto o usuário
faz outra coisa no sistema.
Uma dica para saber se o processo está em background é verificar a
existência do caractere & no final da linha. Se o processo estiver parado,
geralmente a palavra "stopped" aparece na linha, do contrário, a palavra
"running" é exibida.
Capítulo 9 - Linux
9.9.5 Comando jobs
Sintaxe:
jobs [opções]
Opções:
-l: lista os processos através do PID;
-r: lista apenas os processos em execução;
-s: lista apenas os processos parados.
Se na linha de um processo aparecer o sinal positivo (+), significa que este é o
processo mais recente a ser paralisado ou a estar em segundo plano. Se o sinal
for negativo (-), o processo foi o penúltimo. Note também que no início da linha
um número é mostrado entre colchetes. Muitos confundem esse valor com o PID
do processo, mas, na verdade, trata-se do número de ordem usado pelo jobs.
Capítulo 9 - Linux
9.9.5 Comando jobs
Retorna uma tarefa que está em background para foreground.
Sintaxe:
fg [jobspec]
Capítulo 9 - Linux
9.9.6 Estado dos Processos
Quando um processo é criado, isso não significa que ele será imediatamente
executado. Além disso, determinados processos podem ser
temporariamente paralisados para que o processador possa executar um
processo prioritário. Isso quer dizer que os processos, em certos momentos,
podem estar em situações de execução diferentes. O Linux trabalha,
essencialmente, com quatro tipos de situação, isto é, estados:
Executável: o processo pode ser executado imediatamente;
Dormente: o processo precisa aguardar algo para ser executado. Só depois
dessa "coisa" acontecer é que ele passa para o estado executável;
Zumbi: o processo é considerado "morto", mas, por alguma razão, ainda
existe;
Parado: o processo está "congelado", ou seja, não pode ser executado.
Capítulo 9 - Linux
9.9.7 Prioridades de execução dos processos
Uma das características do Linux é que o administrador tem a capacidade
de priorizar a execução dos processos.
Isso é útil quando um servidor com alta carga de trabalho necessita rodar
determinados processos especiais ou quando um processo começa a
apresentar problemas e você não deseja encerrá-lo para poder examiná-lo
melhor.
Normalmente o administrador não precisa se preocupar com a prioridade de
execução, porque o kernel lida com ela automaticamente.
O nível de prioridade de cada processo é constante e dinamicamente
aumentado ou diminuído pelo kernel de acordo com uma série de
parâmetros.
Capítulo 9 - Linux
9.9.7 Prioridades de execução dos processos
A prioridade de um processo pode ser visualizada utilizando o comando ps -l
ou top.
Quando visualizamos as prioridades com o comando ls, percebemos que a
maioria dos processos possuem valor igual a 80. Isso significa que sua
prioridade é 0. A coluna NI exibe o número real da prioridade de um
processo. Quanto mais baixo for esse número, maior é a prioridade do
processo.
Processos com alta prioridade recebem mais tempo da CPU enquanto os
com menores prioridades, menos tempo para sua execução.
Capítulo 9 - Linux
9.9.8 Comando “nice”
O comando nice é utilizado para atribuir um número de prioridade ao
processo.
Por padrão, os processos do usuário são criados com o número nice 0
(zero).
Os números nice variam de -20 a +19. Números positivos diminuem a
prioridade relativa a outros processos enquanto números negativos
aumentam essa prioridade.
Exemplo:
Se um utilitário com longo tempo de execução estiver em execução e
não quiser que isso implique em perda de desempenho na máquina,
um número nice positivo diminuirá a prioridade da tarefa e melhorará
o desempenho.
Capítulo 9 - Linux
9.9.8 Comando “nice”
Sintaxe:
nice [-n valor] [comando]
Obs.: somente o usuário administrador pode atribuir valores
negativos para processos.
Exemplo:
nice -n -10 vi /etc/passwd
Capítulo 9 - Linux
9.9.8 Comando “nice”
Modifica a prioridade de um processo em execução.
Sintaxe:
renice [+ | - ] valor [opções] [processo]
Opções:
-u especifica usuário que terá seus processos modificados
-p especifica o PID do processo
Exemplos:
renice 20 501
renice -10 -u paulo