ADMINISTRAÇÃO DE SISTEMAS UNIX Introdução Definições

Propaganda
ADMINISTRAÇÃO DE SISTEMAS UNIX
Aula Prática 01 – Sistemas Operacionais
Gil Eduardo de Andrade
Introdução
Os sistemas UNIX/Linux são caracterizados por serem:
Interativo – usuário requisita os comandos e obtém os resultados de sua execução através do
terminal.
Multitarefa – um mesmo usuário pode efetuar vários comandos em paralelo no seu terminal,
ficando a cargo do sistema operacional efetuar o controle destas execuções simultâneas.
Multiusuário – vários usuários podem utilizar terminais diferentes, é tarefa do sistema
operacional controlar as requisições de comandos de cada um deles e distribuir de forma correta
os recursos de hardware necessários a cada usuário.
Definições
Abaixo são apresentados alguns termos comuns no mundo UNIX, utilizados com
frequência:
Shell – utilizado para definir o interpretador de comandos. É um rograma que recebe os
comandos do usuário e ativa o sistema operacional. Existem vários tipos, dentre eles podemos
citar: bash, sh, rsh, csh e ksh.
Kernel – ou núcleo do sistema UNIX/Linux, efetua o gerenciamento direto dos dispositivos de
E/S, gerenciamento de memória e gerenciamento do processador.
Comando – é um arquivo (programa executável) armazenado em um determinado diretório do
sistema. Ao executar um comando, executa-se um programa assim como todos os outros no
sistema.
Processo – conceito básico do sistema operacional, utilizado como ferramenta de gerenciamento,
quando um comando/programa é executado um novo processo é gerado no sistema. Os
processos, de uma forma geral, são comandos/programas em execução. Cada processo é
identificado por um número único, chamdo de PID do processo.
Usuários
Em sistemas UNIX/Linux temos dois tipos de usuários: normal e super-usuário, onde o
usuário normal não possui privilégios, ou seja, tem acesso limitado somente a seus dados e
arquivos. O super-usuário ou usuário root possui privilégios sobre toda a máquina, tendo acesso
a qualquer arquivo que nela se encontra.
O sistema de permissões e segurançaa do UNIX/Linux não se aplica ao super-usuário.
Existem tambám um conjunto de comandos que só podem ser executados quando o usuário tem
privilégios de root.
Comandos
Sintaxe mais comum: comando [opções] [argumentos]
Comando – Comando ou programa a ser executado.
Opções – Modificadores do comando (opcional).
Argumentos - Define o objeto a ser afetado pelo comando (opcional).
A grande parte dos comandos UNIX/Linux contém formato compatível com a sintaxe
acima, onde primeiramente tem-se o nome do comando, seguido de opções e argumentos. As
opções, quando colocadas, devem sempre preceder os argumentos. Importante salientar que os
caracteres que separam os campos da linha de comando são o espaço em branco, além disso o
UNIX/Linux é case sensitive, ou seja, distingue os caracteres maiúsculos dos minúsculos.
Portanto, para o UNIX/Linux, Ls é diferente de ls.
Interpretador de Comandos
É chamdado de shell. Tem como função interpretar as instruções enviadas pelo usuário e
seus programas ao sistema operacional (o kernel). Entre os diversos interpretadores de comandos
existentes o mais usado é o bash (no Linux). O interpretador de comandos do DOS, por exemplo,
é o command.com. Os comandos podem ser enviados de duas maneiras para o interpretador:
interativa e não-interativa.
Interativa → comandos são digitados e passados ao interpretador um a um. Desta maneira, o
sistema fica dependente do usuário para executar uma tarefa, ou o próximo comando.
Não-interativa → arquivos criados pelo usuário (scripts), conjunto de comandos executados
pelo sistema na ordem encontrada no arquivo. Neste modo, o computador executa os comandos
do arquivo um por um, é útil quando temos que digitar várias vezes seguidas um mesmo
comando.
O shell bash possui também uma característica útil: o auto-complete dos nomes através
da tecla <TAB>. Exemplos:
ech (pressione <TAB>)
ls /vm (pressione <TAB>)
Comandos Básicos
A seguir é apresentados um conjunto de comandos básicos:
→ Comando Help – Páginas do Manual
A utilização da página de manual é simples, digite:
# man [opções] [seção] [título]
Onde seção indica a seção do manual que será aberta, se omitido, mostra a primeira seção
encontrada sobre o comando (em ordem crescente) e título é o nome do comando que se está
buscando. Exemplo:
# man ls
→ Comando passwd
Utilizado para efetuar a troca de senha, inicialmente o comando pede que seja digitada a
senha atual da conta. Em seguida pede que seja digitada a nova senha. Por fim pede que seja
digitada novamente a nova senha para verificação.
Algumas regras para criação de senhas:
→ A senha deve ter no mínimo 6 caracteres.
→ A senha deve ter no mínimo duas letras mai#usculas e/ou duas letras min#usculas e pelo
menos um dígito ou caractere especial.
→ São aceitos somente os caracteres ASCII padrão de códigos 0 a 127.
→ A senha deve diferenciar do nome da conta.
→ A nova senha deve diferenciar da senha velha em pelo menos três caracteres.
Exemplo:
# passwd
→ Comando expr
O expr é utilizado via terminal para efetuar cálculos simples. Ele apresenta restrições,
sendo necessária a utilização de uma barra invertida antes de algumas operações ou parênteses
(exceto + e -) para que o shell não interprete estes caracteres. Exemplo:
# expr 14 + \( 10 \* 4 \)
→ Caminho de arquivos
Sempre que precisamos localizar um arquivo o sistema operacional deve conhecer em
que ponto do sistema de arquivos ele se encontra. Isto é feito pela especificação de um caminho
antes do nome do arquivo. Este caminho, chamado de path, pode ser indicado de duas maneiras:
Absoluto → O caminho absoluto sempre começa com uma barra (“/”). Este caminho dá a
localização do arquivo desde o diretório raiz do sistema.
Relativo → A procura de um arquivo atravás de um caminho relativo começaa no práprio
diretório atual.
→ Operações básicas com arquivos
– ls: listar o conteúdo do diretório corrente (ou de um diretório dado). Exemplo:
# ls -l
# ls -l /etc
– rm: serve para deletar um arquivo do sistema. Ele só fará a remoção de diretórios se for
especicada a opção -r.
– mv: permite a movimentação de um arquivo ou diretório de um local no sistema para outro.
Possui três formas básicas: permite que se mude o nome do arquivo origem para o nome do
arquivo destino (mesmo diretório); faz a movimentação de todos os arquivos especificados para
o diretório informado como destino e como a primeira, mas em vez de arquivo é utilizado
diretórios.
– cp: permite a cópia de arquivos e diretórios. Existem três formas básicas do comando: cópia
de arquivos para arquivos, cópia de arquivos para diretórios e cópia de diretórios.
– cat: apresentar o conteúdo de arquivos.
– more: visualizar o conteúdo de arquivos (paginado).
– head: mostra na tela as primeiras linhas ou caracteres dos arquivos especicados.
– tail: mostra a última parte de um arquivo, contado em blocos, caracteres ou linha. Quando
não se coloca opção, o comando assume que se está pedindo em linhas.
– wc: O comando wc faz a contagem das linhas, palavras e caracteres de todos os arquivos
fornecidos como parâmetros.
→ Navegação pelos Diretórios
– pwd : indica qual o diretório corrente do shell.
– cd dir: muda para o diretório dir.
– cd ..: muda para o diretório pai imediatamente superior.
– cd -: volta para o último diretório visitado.
– cd : volta ao diretório HOME.
– mkdir dir: criação do diretório dir.
– rmdir dir: remoção do diretório dir.
Comandos Avançados
A seguir é apresentados um conjunto de comandos avançado:
→ grep: permite procurar strings dentro de arquivos de texto. Exemplos:
–
–
Procurar todas as linhas contendo 'tcsh' em /etc/passwd: # grep tcsh /etc/passwd
Procurar todas as linhas que não contenham tcsh em /etc/passwd: # grep -v tcsh /etc/passwd
→ find: permite encontrar arquivos que satisfaçam certas características. Exemplos:
–
Procurar todas as entradas *txt dentro do diretório /usr:
# find /usr -name '*txt' -print
–
Procurar todas as entradas *ab* ou *cd* (maiúsculas e minúsculas) presentes em /opt:
# find /opt -iname '*ab*' -or -iname '*cd*'
–
Procurar todas as entradas acessadas a mais de 3 dias em /etc:
# find /etc -atime +3
– Procurar todas as entradas modicadas a menos de 2 dias em /etc que tenham mais de 5
Kbytes de tamanho:
# find /etc -mtime -2 -and -size +5k
–
Procurar todos os diretórios dentro de /opt cujo grupo tenha acesso de escrita:
# find /opt -type d -perm +g+w
→ touch: atualizar a data de um arquivo
→ diff: comparar dois arquivos, mostrando as diferenças entre eles.
→ Informações de Arquivos
Vários comandos permitem obter maiores informações sobre arquivos e sistemas de
arquivos. Eis os principais:
–
stat: detalhes sobre um arquivo ou diretório.
# stat /bin/ls
–
file: identicar o conteúdo de um arquivo, analisando-o.
# file /etc/*
–
du: indica o espaço usado em disco pelos arquivos ou diretórios dados.
# du -h /root
–
df: informação sobre os sistemas de arquivos disponíveis na máquina e sua ocupação.
# df -h
–
tree: apresenta na tela uma estrutura de diretórios, com ou sem os arquivos.
# tree -d -L 1 /etc
ATIVIDADES SUGERIDAS
1. Qual a função do comando wc? Quais são suas opções e o que representa cada uma delas?
2. Qual a função da opção -u do comando date?
3. Qual é o resultado de ( 30 - 5 ) * 789 ?
4. Qual é o resultado de ( 20 / 4 ) * 15 + 4 ?
5. Se posicione no diretório /tmp.
6. O que acontece se for digitado neste diretório o comando ls -l? Explique.
7. Quais as 2 possíveis formas de se posicionar no diretório /etc a partir do diretório /tmp ?
8. Crie dentro do seu diretótio “home” uma pasta “teste”.
9. Agora dentro da pasta “teste” crie dois arquivos texto (a e b) utilizando o comando “gedit”.
10 Ainda dentro da pasta “teste” crie a pasta “p”.
11. Agora mova os arquivos “a.txt” e “b.txt” para dentro da pasta “p”.
12. Dentro da pasta “p” remova apenas o arquivo “a.txt”.
13. Volte ao diretório “teste” e remova a pasta “p” contendo o arquivo “b.txt”
14 Volte ao seu diretório “home” e remova a pasta “teste”
Download