Sistemas de Informação. Sistemas Operacionais

Documentos relacionados
Administração de sistemas Linux. Manipulação do sistemas de arquivos

SISTEMAS OPERACIONAIS

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux Semana III

Informática. Linux. Professor Márcio Hunecke.

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

O Linux Possui varias características que diferenciam dos outros sistemas operacionais e que aproximam do UNIX, sendo um dos motivos da sua escolha

LINUX. Uma visão geral

Comandos básicos. Sistemas Operacionais II

Administração de Sistemas Operacionais Prof.: Marlon Marcon

Introdução à Informática

Administração de Sistemas Operacionais

Linux. Linux é um núcleo (kernel) para sistemas operacionais baseados no conceito de software livre.

Instalador e Operador de Sistemas de Telefonia e Comunicação de Dados

Programação Aplicada a Redes de Computadores Shell Script

Administração de sistemas operacionais. Comandos de manipulação de arquivos/diretórios.

Administração de Redes em Software Livre Aula 02 Instalando o GNU/Linux (CENTOS Minimal)

SISTEMAS DE ARQUIVOS E DIRETÓRIOS DO LINUX. Prof. Gleison Batista de Sousa

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

Sistemas Operacionais. Prof. André Y. Kusumoto

1º Ano - Técnico em Informática Integrado. Sistemas Operacionais

Instalação e Configuração de Servidores Linux Server Partições e Sist. de Arquivos. Prof. Alex Furtunato

Comandos. Sistema Operacional GNU/Linux. Para Manipulação de Contas

Hierarquia de Diretórios da Família Linux. Sistemas Operacionais 1

IFSC - SJ CURSO DE TELECOMUNICAÇÕES DISCIPLINA: ICO

b. Causa parada do processo c. Reinicia um processo parado d. O processo é enviado para primeiro plano e. O processo é enviado para segundo plano 5)

S.O.R. Sistemas de arquivos no Linux

Tecnologias e Sistemas de Informação. Software Livre. SL: Gerenciamento e Configurações 2 Semestre de Prof. Marcelo Z.

SISTEMAS OPERACIONAIS LIVRES (LINUX) Professor Carlos Muniz

S.O.R. A Interface de comando

Sistemas Operacionais Abertos

pedrofilho.eti.br Linux Essentials 2.3 Acessando diretórios e arquivos 2.4 Criando, movendo e excluindo arquivos Prof. Pedro Filho

PROJETO INTERDISCIPLINAR I

CPU. Memória. Periféricos, dispositivos de entrada, saída 07/04/2017

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Informações de usuários armazenadas no sistema

Comandos TOP, PS e PSTREE

Comandos de arquivos

IFSC - SJ CURSO TÉCNICO DE TELECOMUNICAÇÕES DISCIPLINA: MAN / SOP

Sistemas Operacionais II. Linux - Introdução

Comandos de Verificação. Alberto Felipe Friderichs Barros

Introdução à Informática

Histórico e conceitos básicos. GSO I Gestão de Sistemas Operacionais

Introdução ao Linux. Thiago Yukio Kikuchi Oliveira

MÓDULO 01 INTRODUÇÃO AO LINUX

Tipos de usuários do Linux Root Usuário Comum: #

SHELL. Alberto Felipe Friderichs Barros

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

AULA 7. Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki. PET Computação UFRGS

Administração de sistemas Linux. Administração de processos.

Minicurso Básico de Linux

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra?

CÓDIGO FONTE CÓDIGO FONTE DO BOLO DE CHOCOLATE MOLHADINHO

Administração de sistemas Linux. Estrutura de diretórios Linux

Aula 06. Montagem de Dispositivos. Prof. Roitier Campos

Entendendo e usando permissões no Linux. Orientador de Curso: Rodrigo Caetano Filgueira

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

Sistemas Operacionais. Usuários e Grupos

Descrição. Termos e utilitários. Áreas em foco. Processos. Processos. Comandos GNU e Linux

Minicurso Básico de Linux

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Prática 01: Conceitos Iniciais

Administração de Sistemas Operacionais

1.1-Digitar o comando abaixo para entrar no manual on-line do sistema para buscar informações sobre o comando pwd. man pwd

Sistema Operacional GNU/Linux Discos

UFRJ IM - DCC. Departamento de Ciência da Computação. Sistemas Operacionais II. 25/10/2016 Profª Valeria Menezes Bastos 1

Usando o terminal -- Linux -- Flávia Maristela

Sistema Operacional GNU/Linux. Comandos. Para Permissão de Acesso a Arquivos e Diretórios

Linux Introdução. Walter Fetter Lages

Linux Diretórios. /opt. Aplicativos adicionais (opcionais). Não oficiais da distribuição.

Programação para Servidores. Cassio Diego

Gerenciamento de Arquivos


Introdução a Sistemas Abertos. Manipulação de Usuários e Permissões

Programação para Servidores. Cassio Diego

Redes de Computadores

ADMINISTRAÇÃO DE SISTEMAS UNIX Aula Prática 01 Sistemas Operacionais Gil Eduardo de Andrade

Introdução ao uso do Linux (parte 2)

Comandos. Sistema Operacional GNU/Linux. Explicações Básicas

Instalando o Ubuntu Maverick Meerkat

Capacitação Sistema Operacional Linux Semana V

Sistemas Operacionais II. Prof. Gleison Batista de Sousa Aula 01

PROCESSOS COMPONENTES DE UM PROCESSO. A execução de um processo possui vários componentes. PID e PPID

10. mkdir [pasta1] [pasta2] (cria pasta1 e pasta dois ao mesmo tempo) Exemplo: $ mkdir teste1 teste2

SO Conceitos Básicos. Gerência. Objetivos do SO 07/05/2011. Qual sistema operacional escolher? Qual sistema operacional escolher?

Comandos Diversos relacionados a Sistemas de Arquivos

LINUX. Prof. Camila. Pedro de Assis Sobreira Jr.

Linux - comando essenciais

Moisés Souto docente.ifrn.edu.br/moisessouto

Abortar a execução dum programa

Introdução a Sistemas Abertos. Ambiente shell

Sistemas Operacionais

Linux Básico. Prof. Odilson Tadeu Valle, M. Eng.

ICO60801 Introdução à Computação. Aula 18. Usuários e Grupos. Professores: Maria Claudia Castro / Bruno Fontana Semestre letivo:

Permissões de acesso no Linux

Informática Sistemas Operacionais Aula 5. Cleverton Hentz

LÉO MATOS

Ficha de Revisão do Módulo 4 - Sistema Operativo Open Source

Transcrição:

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.

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.

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.

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.

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.

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.

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.

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").

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.

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).

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.

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).

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

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.

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

19

21

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.

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.

Á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.

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.

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.

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.

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.

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.

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.

9.3.1 Nomenclatura Exemplo: DISCO RÍGIDO IDE Windows: C, D, Linux: hda1, hda2,... OBS: sd para dispositivos SCSI e SATA.

9.3.2 Identificação de discos rígidos no GNU/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.

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.

9.3.2 Identificação de discos rígidos no GNU/Linux Pode ter até 4 partições. 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. 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.

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.

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.

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.

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.

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.

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.

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)

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.

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.

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

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

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 groupadd nomegrupo nomegrupo

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

9.4.6 Adicionando usuário em um grupo O exemplo mostra o usuário windows adicionado no grupo computador. usermod -G computador windows

9.4.7 groupdel e delgroup Excluem grupos do sistema. Sintaxe: groupdel delgroup nomegrupo nomegrupo Obs.: O comando delgroup assim como o adduser leva o usuário a um modo interativo.

9.4.8 passwd Altera ou define a senha de um usuário existente no sistema. Sintaxe: passwd [opções] usuario

9.4.9 gpasswd Altera ou define a senha para um grupo do sistema. Sintaxe: gpasswd [opções] nomegrupo

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.

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).

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.

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.

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

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.

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.

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.

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

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. octal 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 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

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

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.

9.5.5 Símbolos u => usuário g => grupo o => outros a => todos r => leitura w => gravação x => execução

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

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.

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

9.5.7 Comando chmod - Adicionar e Remover Permissão Para poder combinar os símbolos destas duas listas anteriores, usamos os operadores: + (adição) => adicionar permissão - (subtração) => remover permissão = (igualdade) => definir permissão Exemplo: chmod u+w nome_do_arquivo.txt

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.

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

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

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

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

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

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.

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]

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.

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.

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.

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]

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

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

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.

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:

9.7.1 Comandos de Manipulação mkdir Cria um diretório Obs: Para criar um diretório com nome composto basta colocar entre aspas Exemplo: mkdir Sistemas Operacionais rmdir Exclui um diretório rm -rf Exclui um diretório e todo o seu conteúdo

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!

9.7.1 Comandos de Manipulação pwd ls ls -alh Exibe o local do diretório atual Listar o conteúdo do diretório 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

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]

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

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]

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.

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.

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.

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.

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]

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

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.

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.

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.

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.

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

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

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

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.

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.

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.

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:

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.

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.

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.

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;

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).

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.

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.

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.

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 HUP 1 Significado e uso Hung up (desconectar). Este sinal é enviado automaticamente quando você faz logout. INT 2 Interromper; pára a execução. CTRL+C KILL 9 Terminar; pára imediatamente o processo. Enviar este sinal é uma medida drástica, uma vez que ele nã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.

9.9.3 Comando kill Termina (mata) um processo em execução Sintaxe: kill sinal processo Exemplo: kill -9 2140

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.

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.

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.

9.9.5 Comando jobs Retorna uma tarefa que está em background para foreground. Sintaxe: fg [jobspec]

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.

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.

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.

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.

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

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