Professional Documents
Culture Documents
2
Conceitos básicos do sistema operacional IBM-AIX
3
Conceitos básicos do sistema operacional IBM-AIX
4
Conceitos básicos do sistema operacional IBM-AIX
5
Conceitos básicos do sistema operacional IBM-AIX
6
Conceitos básicos do sistema operacional IBM-AIX
Sistema Operacional
7
Conceitos básicos do sistema operacional IBM-AIX
- Era barato:
As universidades conseguiam obter uma licença basicamente pelo preço de uma fita
cassete, sem contar que os primeiros sistemas Unix proporcionavam recursos poderosos
disponíveis somente em sistemas operacionais que rodavam em computadores mais
caros.
Essas vantagens superavam as desvantagens que o sistema possuía na época, que eram:
- Não tinha suporte:
A AT&T já tinha investido muito no sistema MULTICS e não estava interessada em
explorar o sistema operacional Unix.
- Ele tinha bugs:
Como não tinha suporte, não havia a garantia de que os bugs seriam identificados e
consertados.
- Não tinha quase nenhuma documentação:
Porém era possível usar o código fonte para se basear.
8
Conceitos básicos do sistema operacional IBM-AIX
Recursos do Unix
O sistema Unix proporciona um sistema operacional time-sharing, sendo projetado para
administrar múltiplos processos ao mesmo tempo e suportar múltiplos usuários com a finalidade
de facilitar o compartilhamento de dados entre os membros de uma equipe de projeto.
Os comandos, que nada sabem um do outro, podem ser combinados através de pipelines para
desempenhar manipulações mais complexas.
O sistema operacional
O kernel é o sistema operacional, responsável pelo gerenciamento dos recursos disponíveis e
pelo acesso ao hardware. O kernel contém módulos para cada componente do hardware com o
qual ele faz a interface. São esses módulos que proporcionam a funcionalidade do acesso do
programa á CPU, memória, discos, rede, etc. À medida que novos dispositivos de hardware são
instalados no sistema, novos módulos podem ser incorporados ao kernel.
A maior parte do kernel é programada em linguagem C, sendo que a parte dependente de
hardware é desenvolvida em Assembler.
O ambiente operacional
Ferramentas e aplicativos
A filosofia de comandos do Unix espera que cada um dos comandos faça uma coisa bem, e o
conjunto de comandos forme uma caixa de ferramentas. Quando você tem uma tarefa a executar,
você puxa a(s) ferramenta(s) adequada(s). Tarefas complexas podem ser executadas
combinando-se adequadamente as ferramentas.
Além de comandos básicos necessários para interagir com o sistema, o Unix fornece utilitários
para:
9
Conceitos básicos do sistema operacional IBM-AIX
O shell
O shell é um interpretador interativo de comandos. Isto significa que os comandos são digitados
no prompt de comandos do shell e trabalhados à medida que são emitidos.
Observe que o shell é separado do kernel. Se você não gostar de interface provida pelo shell
fornecido, pode ser substituída por uma que mais lhe agrade.
Os shells mais comuns que acompanham o ambiente Unix são:
- C shell (/usr/bin/csh):
É considerado um aperfeiçoamento do Bourne shell porque oferece recursos interativos
como histórico de comandos (os comandos entrados anteriormente podem ser
recuperados, editados e re-executados) e o uso de alias, o que permite o uso de nomes
alternativos para os comandos existentes.
10
Conceitos básicos do sistema operacional IBM-AIX
Multitarefa
Em um sistema Unix, várias tarefas podem ser executadas ao mesmo tempo, dando a impressão
que de um único terminal os programas estão sendo executados simultaneamente. Isso significa
que um usuário pode editar um texto, enquanto um processo que trata arquivo de dados pode ser
executado, como também pode-se executar um comando para localizar um determinado arquivo
em qualquer lugar do disco, tudo isso dando a impressão ao usuário que os processos estão sendo
executados ao mesmo tempo.
Multiusuário
Permite que mais de um usuário tenha acesso ao mesmo sistema. Vários terminais e teclados
podem ser conectados ao mesmo computador. Esta á a extensão natural da capacidade de
multitarefa.
Assim, um programa pode ser executado por mais de um usuário, incluindo o mesmo usuário,
que poderá ter mais de uma sessão de terminal no mesmo sistema.
11
Conceitos básicos do sistema operacional IBM-AIX
Sessão de terminal
Uma sessão de terminal começa com login através de um terminal reconhecido pelo sistema e
terminal com logout. O computador executará a tarefa ordenada por você em resposta aos
comandos que serão dados no prompt de comandos do sistema operacional, prompt este que
variará de acordo com o tipo de shell ou da maneira como foi configurado pelo administrador do
sistema ou por você mesmo, de acordo com suas preferências pessoais.
Login e Logout
Para efetuar o login e iniciar sua sessão de terminal, os seguintes passos são necessários:
O símbolo que representa o prompt de comando varia de acordo com o shell do usuário, que
podem ser:
12
Conceitos básicos do sistema operacional IBM-AIX
# para quando se estiver logado como superusuário (root). É um lembrete muito útil, pois
o administrador do sistema (usuário root) pode modificar (ou remover) qualquer coisa
no sistema.
Estaremos usando o Korn shell, por isso o prompt será um $. Mais tarde veremos como
personalizá-lo.
Nos sistemas AIX, no primeiro login o usuário é solicitado para que a senha seja alterada por
razões de segurança.
13
Conceitos básicos do sistema operacional IBM-AIX
Como pode ser visto na figura acima, o shell possui muitas outras funções que complementam a
interpretação de comandos.
O comandos podem ou não ter opções de modificação. Estas opções são precedidas pelo sinal de
menos, ou hífen (-). Os argumentos geralmente referem-se a nomes de arquivos, diretórios,
dispositivos, cadeias de caracteres, etc.
O espaço em branco é usado para delimitar (separar) comandos, opções e argumentos, caso
contrário você pode receber do sistema uma mensagem de erro indicando que foi digitado um
comando inválido.
A entrada/saída do terminal suporte digitação contínua. Isso permite que você entre com um
comando e, em seguida, com os outros comandos antes mesmo que o prompt de comandos
14
Conceitos básicos do sistema operacional IBM-AIX
retorne. O comando será mantido em um buffer e será executado logo após o comando corrente
ser concluído.
Comandos múltiplos podem ser introduzidos em uma linha de comando separando-os por ponto-
e-vírgula (;). Por exemplo:
$ ls -l ; pwd ; date
A entrada de comandos no sistema Unix é sensível a maiúsculas e minúsculas. A maior parte dos
comandos e opções são definidos em letras minúsculas.
Caso a linha possa se estendera após o limite visível da tela, pode-se acrescentar o caracter \,
precedido de um espaço, e continuar a digitação da linha de comando na linha seguinte. Após o
pressionamento da tecla f o comando será executado.
O prompt secundário
Os shells Born, Korn e POSIX suportam comandos multilinha interativos. Se o shell requisitar
mais entradas para completar o comando, o prompt secundário (>) será emitido após o
pressionamento da tecla f .
Alguns comandos exigem comandos de fechamento e alguns caracteres exigem um caractere de
fechamento. Por exemplo, um if aberto exige um fi para fechar; parênteses de abertura
exigem parênteses de fechamento e, finalmente, um apóstrofo ou uma aspa-dupla de abertura
exigem respectivamente o mesmo caractere para o fechamento.
Se você digitar um comando incorretamente, o shell emitirá um prompt secundário para você.
Para interromper e cancelar o prompt secundário basta pressionar bC, encerrando a
execução do comando e retornando ao prompt padrão do shell. Veja os exemplos na figura
abaixo (não se preocupe com os comandos apresentados, pois serão estudados mais tarde):
15
Conceitos básicos do sistema operacional IBM-AIX
16
Conceitos básicos do sistema operacional IBM-AIX
- Seção 9: Glossário
Define os termos selecionados usados em todo o manual de referência.
Quando a primeira página do manual on-line aparece, as seguintes teclas podem ser usadas no
prompt standard output:
17
Conceitos básicos do sistema operacional IBM-AIX
18
Conceitos básicos do sistema operacional IBM-AIX
19
Conceitos básicos do sistema operacional IBM-AIX
Comando id
20
Conceitos básicos do sistema operacional IBM-AIX
Comando who
O comando who lista quais são os usuários que estão logados no sistema, em que porta de
terminal está conectado, hora de início da sessão, número de processo (opção -u) e a origem da
conexão (opção -u).
Existe a variante who am i que lista somente informações referente ao usuário da sessão atual.
A variante whoami lista somente a identificação do usuário logado. Veja os exemplos da saída
do comando na figura a seguir:
21
Conceitos básicos do sistema operacional IBM-AIX
Comando date
O comando date mostra a data e hora do sistema. É possível usar argumentos que modificam o
formato de saída do comando.
Geralmente este comando é usado sem opções ou argumentos. Veja na pagina do manual on-line
(através do comando man date) para mais detalhes das opções e argumentos utilizados pelo
comando. Os exemplos abaixo ilustram algumas saídas do comando date:
22
Conceitos básicos do sistema operacional IBM-AIX
Comando passwd
O comando passwd pode ser usado para alterar a sua senha. Sua sintaxe é:
$ passwd
Sua senha atual (senha antiga) é solicitada. Isso é para evitar que alguém mude sua senha se você
deixar o terminal sozinho enquanto está logado. Depois é solicitada a nova senha, é solicitado
que você digite novamente a nova senha para confirmação, evitando que você troque sua senha
por outra que contenha erros de digitação. É recomendado que as senhas antigas e novas sejam
diferentes em, pelo menos, três caracteres.
A senha não será exibida na tela enquanto digitada.
O administrador do sistema (root) não é submetido a essas condições, podendo atribuir uma
senha qualquer para uma conta, não sendo obrigado a seguir essas regras..
23
Conceitos básicos do sistema operacional IBM-AIX
Comando echo
O comando echo serve para exibir argumentos de linha de comando, isto é, para imprimir
mensagens na tela, como ilustrado abaixo:
Embora pareça um tanto inútil, o uso de echo no prompt do shell, este comando será mais
utilizado em programação Script-Shell, onde será usado para a exibição de mensagens ou para a
exibição dos valores de variáveis.
24
Conceitos básicos do sistema operacional IBM-AIX
Comando banner
Este comando foi criado, e ainda é usado, para rotular a saída de listagens impressas. O comando
banner exibe os argumentos passados em letras maiúsculas expandidas, um argumento por
linha.
Caso deseje exibir mais de um argumento na mesma linha, coloque-os entre aspas. Veja a
ilustração abaixo:
25
Conceitos básicos do sistema operacional IBM-AIX
Comando write
Este comando é usado para envio de mensagens para o terminal de um outro usuário que está
logado no mesmo sistema Unix. Quando executado, o comando write dá a você a
oportunidade de digitar sua mensagem. Toda vez que a tecla f for pressionada, a mensagem é
transmitida para o terminal do usuário de destino. O terminal receptor pode fazer a mesmo coisa
e pode-se ter uma conversa interativa entre os dois terminais.
Ao término do envio de mensagens, pressione bD para sair do comando write. Veja o
exemplo na ilustração abaixo:
A não ser que a capacidade de recepção esteja desativada, mensagens podem ser enviadas ao seu
terminal em qualquer momento. Portanto, se você está em um utilitário como o man, mail ou
26
Conceitos básicos do sistema operacional IBM-AIX
um editor de textos como o vi e alguém enviar mensagens para você, ela será exibida em seu
terminal podendo causar confusão nos caracteres exibidos, o que pode tornar-se inconveniente.
Independe do usuário estar ou não com a capacidade de recebimento de mensagens ativada, o
superusuário pode enviar mensagens para o terminal de qualquer usuário logado.
27
Conceitos básicos do sistema operacional IBM-AIX
Comando mesg
Você pode usar o comando mesg para impedir a recepção de mensagens de outros usuários em
seu terminal. Se você enviar mensagens para uma pessoa que desabilitou a recepção de
mensagens, receberá a mensagem Permission denied.
Mesmo que a recepção de mensagens esteja desabilitada em seu terminal, o administrador do
sistema ainda poderá enviar mensagens para o seu terminal. A sintaxe do comando mesg é
simples:
28
Conceitos básicos do sistema operacional IBM-AIX
3 - Tente enviar mensagens para o terminal de algum colega e peça para ele enviar para você.
Use os comandos necessários para verificar se a capacidade de recepção está ou não ativada.
5 - Finalize a sessão do seu terminal. Faça um login de volta, porém com a tecla @ ativada.
Caso seu terminal tenha ficado com a tela estranha, como este problema pode ser resolvido sem a
necessidade de um logout e outro login?
29
Conceitos básicos do sistema operacional IBM-AIX
O topo da hierarquia é identificado como diretório raiz ou root, porque está no topo da árvore
invertida. É denotado com uma barra diagonal (/).
Dependendo da implementação do Unix, a estrutura de diretórios pode variar, assim como alguns
arquivos de configuração de sistema podem estar localizados em outros subdiretórios mas,
basicamente, seguem o padrão exibido na figura acima.
Diferente de algumas implementações Unix, o IBM-AIX gerencia seus sitemas de arquivos
através de LVM (Logical Volume Manager) usando o formato JFS (Journaled File System). Tal
implementação de sistema de arquivos permite recuperação automática em caso da queda do
servidor pela falta de energia ou desligamento acidental.
O sistema de arquivos JFS mantém um log de transações do que é gravado no filesystem para
uso em sua autorecuperação em caso de pane.
Na figura a seguir é mostrado o esquema de como é gerenciado pelo sistema operacional o
acesso a disco através do gerenciamento de volumes lógicos do AIX. rootvg é o nome dado ao
VG, particionado em LVs padrão, onde o AIX é instalado.
30
Conceitos básicos do sistema operacional IBM-AIX
Ao designar o percurso de um arquivo ou diretório, a barra diagonal (/) é utilizada para delimitar
os nomes do diretório e/ou arquivos. Exemplo:
diretório/diretório/diretório
diretório/arquivo
Sempre que se logar, você estará posicionado em algum diretório. Por exemplo, ao fazer login, o
diretório em que você estará posicionado será inicialmente o diretório $HOME. As localizações
de arquivos e/ou diretórios podem ser designados com um percurso absoluto ou relativo.
31
Conceitos básicos do sistema operacional IBM-AIX
Percurso absoluto
- Sempre se inicia no topo da hierarquia (diretório raiz);
- Sempre se inicia com uma barra diagonal (/);
- Não é dependente da localização corrente dentro da hierarquia;
- Sempre fornece a designação completa da localização de um arquivo ou diretório;
- É único dentro da hierarquia.
Exemplos de percursos absolutos:
/tmp/arq001
/home/user1/arq001
/home/user3/arq001
/home/user3/memo/memo001.txt
Percurso relativo
- Sempre começa na posição corrente dentro da hierarquia;
- Nunca começa com uma /;
- É único relativo somente à sua localização corrente;
- É freqüentemente menor do que o percurso absoluto.
Note que o percurso relativo poderá ser muito mais curto do que o absoluto. Por exemplo, se
você estiver no diretório /home/user3/memo, poderá imprimir arq001.txt com qualquer
um dos seguintes comandos:
32
Conceitos básicos do sistema operacional IBM-AIX
lp /home/user3/memo/arq001.txt
lp arq001.txt
Diretório /bin
Normalmente é um link simbólico para /usr/bin. Contém a maioria dos comandos do UNIX.
33
Conceitos básicos do sistema operacional IBM-AIX
Diretório /lib
Geralmente é um link simbólico para /usr/lib. Contém as bibliotecas do sistema.
Diretório /usr
Contém a maioria dos arquivos e diretórios de trabalho do UNIX e outros comandos.
Alguns subdiretórios importantes abaixo de /usr são:
/usr/bin
/usr/lib
/usr/mail
/usr/man
/usr/share/man
/usr/local/bin
Diretório /usr/bin
Contém a maioria dos comandos de seção 1 do UNIX, como por exemplo:
ls, cp, rm, mv, ln, date, mail
Diretório /usr/lib
Contém arquivos bibliotecas utilizados pelo UNIX para suportar linguagens e aplicações.
Diretório /var/spool/mail
A caixa postal do sistema. Contém um arquivo por usuário que possui correspondência.
Normalmente é um link simbólico de /usr/var/spool/mail ou /usr/spool/mail.
Diretório /usr/local/bin
Comandos executáveis desenvolvidos no sistema local.
O diretório /usr/local/bin é normalmente criado pelo Administrador do Sistema para
acrescentar arquivos executáveis que não fazem parte do Sistema Operacional Unix padrão.
Diretório /etc
Contém a maioria dos arquivos e comandos de Administração relativos à máquina local.
Diretório /home
Normalmente contém todos os diretórios de login ao sistema, ou seja, os arquivos de todos os
usuários.
Diretório /dev
Contém os arquivos especiais (device files) para comunicação com periféricos como discos,
fitas, impressoras e terminais.
34
Conceitos básicos do sistema operacional IBM-AIX
35
Conceitos básicos do sistema operacional IBM-AIX
Comando pwd
36
Conceitos básicos do sistema operacional IBM-AIX
Comando ls
Nas figuras a seguir são mostrados alguns exemplos da saída do comando ls com algumas das
suas diferentes opções:
37
Conceitos básicos do sistema operacional IBM-AIX
38
Conceitos básicos do sistema operacional IBM-AIX
Comando cd
O comando cd permite que você se movimente na árvore de diretórios, podendo ser alterado o
diretório corrente. Sua sintaxe é:
$ cd [nome do diretório]
39
Conceitos básicos do sistema operacional IBM-AIX
Comando find
O comando find é usado, basicamente, para localizar arquivos e/ou diretórios no sistema de
arquivos do Unix. Opcionalmente pode ser usado para executar algumas ações nos nomes de
arquivos encontrados. Sua sintaxe é:
caminho argumento obrigatório. É o diretório onde deverá ser iniciada a pesquisa pelo
comando find;
expressão palavras chaves e argumentos que possam especificar os critérios de pesquisa e
as tarefas a serem executadas ao encontrar uma correspondência. Todas as
palavras chave do comando find são precedidas por um hífen (-).
Abaixo são mostradas algumas maneiras mais comuns de uso do comando find e algumas de
suas palavras-chave:
40
Conceitos básicos do sistema operacional IBM-AIX
$ rmdir <diretórios>
O diretório será removido somente se estiver completamente vazio, isto é, não poderá haver
arquivos e/ou diretórios armazenados nele, caso contrário será emitida uma mensagem de erro. O
diretório corrente também não poderá ser removido, assim como o diretório /.
Veja a figura abaixo referente aos comandos mkdir e rmdir:
41
Conceitos básicos do sistema operacional IBM-AIX
2 - Partindo do seu diretório $HOME, vá para o diretório /etc. Utilizando um percurso relativo,
vá para o diretório /home. Utilizando um percurso absoluto vá para diretório bin localizado
sob o diretório /usr. Em seguida retorne para o seu diretório $HOME.
3 - Crie, em seu diretório $HOME, o diretório workflow. Faça dele o seu diretório corrente.
Qual o caminho absoluto do diretório que você acabou de criar?
4 - A partir de seu diretório $HOME, crie os seguintes diretórios abaixo com apenas uma linha de
comando:
business/jan01
business/fev01
business/mar01
business/abr01
42
Conceitos básicos do sistema operacional IBM-AIX
43
Conceitos básicos do sistema operacional IBM-AIX
Você conhece alguns comandos para a manipulação de diretórios. Veremos a seguir alguns
comandos adicionais que serão utilizados em arquivos e diretórios.
44
Conceitos básicos do sistema operacional IBM-AIX
Características de um arquivo
Como é mostrado na figura acima, um arquivo tem várias características a ele associadas. Elas
podem ser exibidas pelo comando ls -l.
Tipos de arquivo
Existem vários tipos de arquivos suportados pelo Unix. Esses tipos são identificados pelo
primeiro caractere exibido na saída do comando ls -l:
- arquivo comum
d diretório
l link simbólico
n arquivo de rede
c dispositivo de caractere (terminal, impressora)
b dispositivo de bloco (discos)
p pipe nomeado (canal de comunicação interprocessos)
s socket (canal de comunicação interprocessos)
45
Conceitos básicos do sistema operacional IBM-AIX
Comando cat
O comando cat exibe o conteúdo de um ou mais arquivos. Tipicamente ele é usado para ver o
conteúdo de um único arquivo. Sua sintaxe:
Se não for informado o nome de arquivo, o comando cat ficará em modo de espera aguardando
a digitação de dados. Ao pressionamento da tecla f, uma linha será saltada para que seja dada
uma nova entrada pelo teclado. Para sair do comando cat, pressione bD e os dados
digitados anteriormente serão exibidos. Para abortar a execução do comando cat pressione
bC.
bC
Abaixo é ilustrado a execução do comando cat.
Caso o arquivo a ser exibido for muito para ser exibido em uma única tela, o texto passará muito
rapidamente para ser lido. Nesse caso aplicaremos outro comando, que será visto a seguir, para
mostrar o arquivo em uma tela de cada vez.
Se o arquivo a ser exibido pelo comando cat contém caracteres de controle, tal como um
arquivo binário ou programa compilado, seu terminal poderá ficar desativado. Nesse caso, entre
em contato com o administrador do sistema para cancelar a sessão do seu terminal.
46
Conceitos básicos do sistema operacional IBM-AIX
Comando more
Como o comando cat, o comando more exibe o conteúdo de um arquivo na tela, porém
mostrando uma página de tela por vez. Por exemplo, para ver o conteúdo do arquivo
/etc/passwd, use o seguinte comando:
$ more /etc/passwd
Diferente do comando cat, o comando more possui opções de controle de paginação do texto
para que, por exemplo, no caso de adiantar ou avançar de mais o texto, você possa ter como
voltar linhas ou páginas e poder ler os dados, sem a necessidade de executar o comando more
novamente para abrir o arquivo. Isso é muito útil quando se trata de arquivos muitos extensos. A
seguir alguns dos comandos de controle do comando more:
47
Conceitos básicos do sistema operacional IBM-AIX
O comando tail serve para exibir as linhas finais de um arquivo. A quantidade de linhas
default mostrada são 10, mas podem ser mostradas quantas linhas se desejar. A mesma coisa vale
para o comando head, porém este mostra as linhas inicias de um arquivo.
No caso do comando line, ele mostra apenas a primeira linha do arquivo.
Supondo que você tenha um arquivo texto chamado listagem.txt com as seguintes linhas:
Arthur Andersen
Accenture
IBM Brasil
Compaq Corp
PriceWaterhouse Coopers
Vamos executar os comando tail para mostrar as 3 últimas linhas do arquivo, o comando
head para mostrar a 3 primeiras e o comando line para mostrar apenas a primeira linha:
48
Conceitos básicos do sistema operacional IBM-AIX
Comando cp
O comando cp é utilizado para copiar arquivos. Pode-se criar cópias de arquivos individuais ou
de vários arquivos. Sintaxe:
$ cp <origem> <destino>
49
Conceitos básicos do sistema operacional IBM-AIX
Comando mv
Podem ser usados percursos relativos ou absolutos. Caso o arquivo não exista no destino, ele será
criado. Se o arquivo existir, será sobrescrito.
A opção -i fará com que o comando avise se o arquivo ou o diretório de destino existe,
aguardando confirmação para sobrescrever o arquivo ou diretório. Por default, o comando mv
renomeia ou move os arquivos ou diretórios sem fazer perguntas.
Exemplos de uso do comando mv:
50
Conceitos básicos do sistema operacional IBM-AIX
Comando rm
O comando rm é usado para remover arquivos. Não é possível recuperar os arquivos após serem
removidos. Podem ser usados percursos relativos ou absolutos.
Sua sintaxe é:
51
Conceitos básicos do sistema operacional IBM-AIX
Comando ln
O comando ln permite que vários nomes possam se referir a um mesmo arquivo (link). Isso é
útil quando um arquivo deve ser referenciado por outro nome em um determinado diretório, mas
não é desejado que outro arquivo seja criado. Diretórios também podem ser referenciados por
outro nome através do comando ln.
Por default, o arquivo criado com o comando ln é um hard-link, isto é, caso o arquivo seja
removido, será removido também o arquivo original ao qual o novo nome está fazendo
referência. Para que isso não aconteça, usa-se a opção -s para que seja criado o link. Sintaxe:
Onde:
-s argumento opcional que faz com que seja criado um soft-link (link
simbólico). O default é ser criado como hard-link (link físico).
Arquivo_original nome do arquivo/diretório a ter um link criado. Pode-se usar
percursos absolutos.
Novo_nome nome que será usado para referenciar a Arquivo_original.
Exemplos:
para criar no diretório corrente um soft-link para o arquivo /usr/bin/vi como nome
meueditor:
$ ln -s /usr/bin/vi meueditor
$ ln .profile /tmp/perfil.ant
Para remover o nome alternativo, use o comando unlink seguido do nome do link criado.
Exemplo:
para remover o link meueditor:
$ unlink meueditor
52
Conceitos básicos do sistema operacional IBM-AIX
4 - Crie, em seu diretório $HOME, um subdiretório chamado etc. Copie o conteúdo do diretório
/etc para esse diretório.
5 - Mova todo o diretório criado no exercício anterior para o subdiretório etc02 em seu
diretório $HOME.
53
Conceitos básicos do sistema operacional IBM-AIX
54
Conceitos básicos do sistema operacional IBM-AIX
O proprietário tem controle absoluto sobre quem tem que tipo de acesso ao arquivo. Ele pode
permitir ou negar o acesso ao seu arquivos a outros usuários do sistema. ele também decide que
grupo poderá acessar seus arquivos. O proprietário pode decidir também dar seu arquivo a outro
usuário do sistema. Uma vez transferida a propriedade, o proprietário anterior não terá mais
controle sobre o arquivo.
O comando ls -l mostra o proprietário e o grupo que tem acesso ao arquivo. Veja na
ilustração abaixo as informações referente aos arquivos listados:
55
Conceitos básicos do sistema operacional IBM-AIX
Tipos de acesso
Há três tipos de acesso, tanto para arquivos como diretórios:
Read
Arquivo - o conteúdo pode ser examinado
Diretório - o conteúdo pode ser examinado
Write
Arquivo - o conteúdo pode ser alterado
Diretório - o conteúdo pode ser alterado
eXecute
Arquivo - pode ser usado como um comando
Diretório - podem tornar-se o diretório de trabalho corrente
Note, como mostrado acima, que deixar um arquivo com permissão Read não o impede de ser
apagado ou sobreposto por outro arquivo do mesmo nome, no caso de um comando mv ou cp.
Para rodar um arquivo como um programa, além das instruções corretas estarem contidas no
arquivo, ele deve ter as permissões read e execute.
56
Conceitos básicos do sistema operacional IBM-AIX
Permissões
O acesso a um arquivo é definido através da identificação do usuário, identificação de grupo e as
permissões associadas ao arquivo. As permissões de um arquivo são designadas no modo. O
modo de um arquivo é um campo de nove caracteres que define as permissões para o
proprietário do arquivo, o grupo a que o arquivo pertence e todos os outros usuários do sistema.
Veja a figura a seguir as permissões mostradas pelo comando ls -l:
57
Conceitos básicos do sistema operacional IBM-AIX
Comando chmod
Modo simbólico
No modo simbólico, a sintaxe do comando chmod é:
Modo numérico
O comando chmod aceita uma representação numérica (octal) para designar as permissões de
arquivos. Sua sintaxe é:
$ chmod permissão arquivos
Onde:
permissão composto três dígitos, cada um representando uma camada de permissão. Os
valores válidos para as permissões são:
4 - leitura
2 - gravação
1 - execução
58
Conceitos básicos do sistema operacional IBM-AIX
A soma dos valores acima, de acordo com a permissão a ser dada, determina qual
a designação de permissão a ser dada para o proprietário (primeiro dígito), grupo
(segundo dígito) e outros (terceiro dígito).
arquivos arquivos que devem ter suas permissões alteradas.
Abaixo são mostrados alguns exemplos do uso do comando chmod, tanto em modo alfabético
quando em modo numérico. Crie o arquivo em seu diretório $HOME usando o comando
>financ.dbf (será discutido mais tarde o uso do caractere >). Use o comando ls -l para
verificar as permissões que você atribuiu aos arquivos.
- atribuição das seguintes permissões para o arquivo financ.dbf: usuário (ler, gravar e
executar), membros do grupo (ler e executar), outros usuários (apenas ler):
$ chmod u=rwx,g=rx,o=r financ.dbf
ou
$ chmod 754 financ.dbf
59
Conceitos básicos do sistema operacional IBM-AIX
Comando umask
O comando umask é usado para definir o modo de permissões padrão de criação de arquivos.
Sintaxe:
onde:
-S esta opção mostra o valor das permissões default para a criação de
arquivos;
permissões quais os valores para as camadas de permissões a serem usada como
default no momento da criação de um novo arquivo.
As permissões, numéricas ou simbólicas, são as mesmas do comando
chmod:
r ou 4 - leitura
w ou 2 - escrita
x ou 1 - execução
Quando as permissões são especificadas em modo simbólico, indicam que serão as permissões a
serem usadas na criação dos arquivos. Quando especificadas em modo numérico, na verdade
você estará especificando ao comando umask qual a permissão que deve ser negada na hora da
criação do arquivo. Por exemplo:
- deseja-se que todos os arquivos que forem criados à partir deste momento possuam as
seguintes permissões:
proprietário = rwx
grupo = rx
outros = r
- utilizando o comando ls -l, verificamos que o arquivo e o diretório deve ter ficado
com as seguintes permissões:
60
Conceitos básicos do sistema operacional IBM-AIX
$ ls -l
-rw-r--r-- ............ arquivo.novo
drwxr-xr-- ............ diretório.novo
61
Conceitos básicos do sistema operacional IBM-AIX
Comando touch
O comando touch atualiza a data e hora de um arquivo existente. Caso o arquivo não exista,
será criado. O comando touch não afeta o conteúdo do arquivo.
Sintaxe:
62
Conceitos básicos do sistema operacional IBM-AIX
Comando chown
- para tornar o usuário informix proprietário do arquivo fornecedores.dat, assim como o grupo
de acesso sendo dba
$ chown informix:dba fornecedores.txt
Em algumas implementações Unix, por medida de segurança o comando chown somente pode
ser executado pelo superusuário (root).
63
Conceitos básicos do sistema operacional IBM-AIX
Comando chgrp
O comando chgrp é usado para alterar o grupo ao qual terá acesso ao arquivo. É necessário que
o grupo seja válido. Isto significa que ele deve estar cadastrado no arquivo /etc/group.
Sintaxe:
Em algumas implementações Unix, por medida de segurança o comando chgrp somente pode
ser executado pelo superusuário (root).
64
Conceitos básicos do sistema operacional IBM-AIX
Comando su
$ su [-][usuário]
Por segurança, você será solicitado a entrar com a password do usuário para o qual está mudando
a identificação, para efetivamente ter acesso aos seus arquivos.
Sem nenhum argumento, o comando su alterna para o usuário root (que é o administrador do
sistema). O root é também conhecido como superusuário, pois tem acesso a qualquer coisa no
sistema. É por esta razão que muitas pessoas pensam que o comando su é abreviação de
superusuário. Claro que a senha de root deverá ser fornecida para efetuar a mudança de
identificação.
Caso seja o usuário root que esteja executando o comando su, a senha do usuário não será
pedida pelo sistema.
Para voltar à identificação de usuário anterior, não use novamente o comando su. Use o
comando exit para sair da sessão que você iniciou com o comando su.
Se for usado a opção hífen (-) além de ser efetuada a troca de identificação, todo o ambiente do
shell daquele usuário será executado, isto é, se existirem seus arquivos .profile e .kshrc
em seu diretório $HOME, estes serão executados como em uma sessão de login padrão.
Na figura abaixo é mostrado o uso do comando su:
65
Conceitos básicos do sistema operacional IBM-AIX
Comando newgrp
O comando newgrp é similar ao comando su. Ele permite a alteração do seu identificador de
grupo.
Os grupos aos quais o usuário poderá ter acesso são definidos pelo administrador do sistema. Se
você não tem permissão para tornar-se membro de um grupo específico a mensagem Sorry será
mostrada. Sintaxe:
$ newgrp [grupo]
O comando newgrp não abre uma nova subsessão. Para retornar à identificação de grupo
original, basta digitar o comando newgrp sem argumentos.
66
Conceitos básicos do sistema operacional IBM-AIX
2- Modifique as permissões do arquivo do exercício anterior de modo que ele fique somente com
permissão de escrita para o proprietário e grupo. Para os demais usuários, as permissões de
acesso deverão ser removidas.
4 - Quem é o proprietário do arquivo /etc/profile? Qual o acesso que você tem a este
arquivo? Quem poderá alterar a propriedade ou grupo deste arquivo?
5 - Rode o comando mesg. Em seguida procure pelo arquivo que faz referência ao seu terminal
e veja as permissões dele. O que o comando mesg faz realmente?
67
Conceitos básicos do sistema operacional IBM-AIX
O que é o vi
O vi é um editor de textos orientado a tela, que acompanha a maioria dos sistemas Unix.
É um editor dirigido por comandos que incluem:
- Comandos de administração geral;
- Comandos de movimentação do cursor;
- Comandos de inserção de texto;
- Comandos de apagamento de texto;
- Comandos de transferência de texto;
- Comandos de modificação de texto.
Você pode usar o vi para criar novos arquivos ou alterar os existentes. Sintaxe:
$ vi [arquivo]
O editor vi foi desenvolvido para ser independente do terminal, e os comandos foram mapeados
para a maioria dos teclados padrão. Foi originalmente usado em teletipos, que não tinham teclas
de funções especiais ou teclas de movimentação do cursos.
A vantagem é que o vi pode ser executado em qualquer tipo de terminal. Como ele acompanha
a maioria dos sistemas Unix, você não precisa reaprender como usar o editor toda vez que mudar
para uma implementação de Unix diferente.
Usar o vi de modo eficiente requer prática. Este capítulo fornecerá uma boa base para a edição
de arquivos, além da habilidade para aumentar sua performance.
68
Conceitos básicos do sistema operacional IBM-AIX
Os modos do vi
O vi é um editor dirigido por comandos. Quando você inicia uma sessão do vi você está no
modo comando. Caso você pressione qualquer tecla, o vi tentará executar o comando associado
àquela tecla. Os comandos estão disponíveis para introduzir texto, mover o cursor, deletar,
modificar e transferir o texto. Os comandos do vi geralmente são silenciosos, não mostrando
nada na tela quando são executados. A única coisa que você verá serão os efeitos do comando.
Existem comandos do vi para acessar o modo entrada, o que permitirá que você possa digitar
informações no seu arquivo. Para retornar ao modo de comando, basta pressionar a tecla ^.
Alguns comandos do vi requisitam entradas múltiplas de teclado. Se você se perder no meio de
um comando, basta pressionar a tecla ^ para finalizar o comando corrente, retornando para o
modo entrada.
69
Conceitos básicos do sistema operacional IBM-AIX
Você deve prestar atenção às mensagens que aparecem na área de modo. O vi pode lembrá-lo
quando você está no modo entrada ou modo substituição. Essas dicas visuais o ajudarão muito
durante as sessões de edição.
Se você está no modo de entrada e não vê a mensagem INPUT MODE, faça o seguinte:
^:set showmodef.
70
Conceitos básicos do sistema operacional IBM-AIX
Para sair do vi sem salvar (abandonar o arquivo), use o seguinte comando ex:
^:q!f
71
Conceitos básicos do sistema operacional IBM-AIX
72
Conceitos básicos do sistema operacional IBM-AIX
^:set numberf
73
Conceitos básicos do sistema operacional IBM-AIX
Quando o vi estiver no modo entrada, aparecerá a mensagem INPUT MODE no lado inferior
direito da tela.
No modo entrada a tecla f abrirá uma nova linha. Se precisar separar uma linha, posicione o
cursor no local desejado e pressione a tecla f. Lembre-se que no modo comando a tecla f
move o cursor para a próxima linha, como se estivesse usando o comando J ou a tecla y.
Para retornar ao modo comando, pressione a tecla ^. O cursor sempre retornará um caractere
para a esquerda após seu pressionamento.
Enquanto você está no modo entrada, é possível usar a tecla Backspace para retornar
caracteres e digitar o novo texto. Quando você voltar com o cursor usando essa tecla, os
caracteres não desaparecerão até que se volte ao modo comando.
74
Conceitos básicos do sistema operacional IBM-AIX
Deletando texto
Dois comandos estão disponíveis para a deleção de texto:
# X apaga o caractere que se encontra na posição do cursor
# Dobjeto apaga o objeto nomeado
O comando D é um comando ativo que requisita um objeto para agir sobre ele. O objeto
especificado será removido. Os objetos são definidos com os comandos de movimentação do
cursor. Vejamos alguns comandos de deleção de texto:
#DW apaga a palavra onde se encontra o cursor
DD
#DD apaga a linha corrente. Isto é uma convenção do vi .Quando uma ação é
repetida, ele afeta a linha toda
D jG apaga até a última linha do arquivo
D$ apaga até o final da linha
D0 ou D^ apaga até o início da linha
Como um novo usuário vi, você pode deletar ou modificar algo que não deveria. O comando
U pode salvar sua vida:
Para o comando jU ou U funcionar, o cursor não pode ser movimentado após a alteração.
Portanto, deve ser acionado imediatamente após a última modificação efetuada.
75
Conceitos básicos do sistema operacional IBM-AIX
Para copiar um texto para a área de buffer do vi, usamos o comando Y, seguido do objeto no
qual ele deve agir. Veja que este comando trabalha de maneira semelhante ao comando D. Veja
os comandos usados para cópia de texto:
Por exemplo, para mover 3 linhas de texto, incluindo a linha corrente, para outro lugar no
arquivo e acima da posição do cursor, execute os seguintes passos:
- posicione o cursor na linha inicial do texto que deseja mover
- digite 3 DD. Isto vai deletar 3 linhas, incluindo a linha onde se encontra o cursor
- leve o cursor até a posição onde deseja inserir o texto
- digite jP. Isto fará com que o texto seja inserido acima do cursor.
Supondo que você tenha um arquivo com umas 30 linhas e queira copiar para o início do texto
desde da linha 15 até o final do arquivo, use o seguinte procedimento:
- vá para a linha 15 do arquivo digitando 15 jG ou :15
- dê o comando Y jG. Isto armazenará, da linha 15 até o final do texto, no buffer
do vi
- vá para o início do arquivo digitando 1 jG ou :1
- digite jP. Isto fará com que o texto seja inserido acima do cursor.
76
Conceitos básicos do sistema operacional IBM-AIX
Alterando o texto
Os comandos que permitem alterar o texto, tornam as modificações mais convenientes, uma vez
que, já que aprendeu a usar os comandos de inserção e deleção de texto, isto pode se tornar um
pouco incômodo, pois você tem que entrar e sair manualmente do modo comando e do modo
entrada.
Existem três comandos comuns que são usados para modificar o texto:
R substitui o caractere na posição onde se encontra o cursor pelo caractere digitado
após este comando
jR substitui todos os caracteres. Este comando faz com que o vi entre no modo
sobrescrever. Para finalizar este comando pressione a tecla ^
Cobjeto substitui o objeto nomeado, colocando o sinal $ no final do objeto. Para
finalizar este comando pressione a tecla ^. A seguir a lista de comandos com
seus objetos:
# CW altera a palavra corrente
# CC altera a linha corrente
CjG altera até o final do arquivo
C$ altera até o final da linha
C^ altera até o início da linha
Caso haja a necessidade da repetição de um comando utilize o comando ponto (.). Este comando
permite que seja repetida a última operação de alteração, incluindo deleção.
77
Conceitos básicos do sistema operacional IBM-AIX
Pesquisando no texto
Uma das coisas mais comuns efetuadas na edição de um texto, é a pesquisa de uma string de
texto específica. Abaixo são relacionados os comandos utilizados para a pesquisa de texto em um
arquivo editado pelo vi:
/texto pesquisa o texto desde da linha corrente até o fim do arquivo, com volta para o
começo
?texto pesquisa o texto desde da linha corrente até o início do arquivo, com volta para o
começo
N encontra a próxima ocorrência, previamente pesquisada, na mesma direção
jN encontra a próxima ocorrência, previamente pesquisada, na direção oposta
Volta para ao começo significa que se o texto não for encontrado até o fim (ou início) do
arquivo, a pesquisa será continuada do outro lado do arquivo.
78
Conceitos básicos do sistema operacional IBM-AIX
[a-zA-Z0-9] define uma classe de caracteres a ser encontrada. O hífen (-) significa que
uma faixa dentro da classe.
^texto fixa texto para o início da linha
texto$ fixa texto para o final da linha
. encontra um caractere simples
caractere* encontra zero ou mais ocorrências de caractere
79
Conceitos básicos do sistema operacional IBM-AIX
- trocar a primeira ocorrência da palavra "vírus" por "bug", iniciando na linha corrente e
terminando no final do arquivo:
:.,$ s/virus/bug
- trocar a palavra "perform" por "Executar". Todas as ocorrências serão trocadas desde o início
até o final do arquivo:
:1,$ s/[Pp][Ee][Rr][Ff][Oo][Rr][Mm]/Executar/g
80
Conceitos básicos do sistema operacional IBM-AIX
Caso deseje que qualquer uma dessas opções sejam ativadas automaticamente quando o entrar
com o vi, coloque os comando (sem preceder por dois pontos) em um arquivo chamado .exrc
em seu diretório $HOME.
81
Conceitos básicos do sistema operacional IBM-AIX
82
Conceitos básicos do sistema operacional IBM-AIX
O uso de alias
Alias é um novo nome para o comando. Você pode abreviar longas linhas de comando, criar
novos comandos ou fazer com que os comandos padrão sejam executados de maneira diferente,
substituindo o comando original por um comando assinalado por um alias.
O alias pode ser uma letra ou uma palavra pequena. Por exemplo, o comando ps -ef é usado
com muita freqüência. Seria mais fácil se usasse psf.
O comando usado para a criação de novos nomes para os comandos chama-se alias. Sua
sintaxe é:
$ alias nome=string
nome novo nome para o comando original.
string cadeia de caracteres que faz referência ao comando original. Se string contém
espaços, deve ser colocada inteira entre aspas.
Ao ser entrado um alias, ele se parece com um comando qualquer do Unix. Sempre que o Unix
for interpretar um comando para a execução, o alias sempre terá prioridade sobre o comando
original. Na verdade o Unix analisa o alias definido, monta a linha de comando e depois a
executa.
Sem argumentos, o comando alias lista todos os aliases definidos no ambiente. Para listar um
alias determinado digite:
$ alias nome
Se a atribuição de alias for feita interativamente, ao término da sessão de terminal (logout) eles
serão destruídos.
Para desativar um alias use o comando unalias, como abaixo:
$ unalias nome
Caso queira que o comando original seja executado ao invés de seu alias, coloque uma barra
invertida (\) antes do nome do comando.
83
Conceitos básicos do sistema operacional IBM-AIX
A variável HISTSIZE define a quantidade de comandos que poderá ser escrita no arquivo de
histórico de comandos. O conteúdo default dessa variável é 128.
A variável HISTFILE especifica o nome do arquivo em que os comandos serão armazenados. O
conteúdo default dessa variável é .sh_history.
Uma vez exibido o seu histórico de comandos, você pode chamar novamente, editar ou
reexecutar qualquer um deles.
Para que um comando seja reexecutado, usa-se o comando r. Vejamos exemplos de uso dos
comandos history e r:
supondo que abaixo tenham sido listados os últimos comandos digitados:
$ history
1 date
2 cat /etc/passwd
3 echo $PATH
4 ls -l /etc/group
Para reentrar primeiro comando da lista mostrada acima pelo comando history digite:
r 1 ou r d este último faz com que o último comando iniciando com a letra d seja
reexecutado.
84
Conceitos básicos do sistema operacional IBM-AIX
Para mostrar o último comando digitado tecle ^. Isso coloca o prompt do Unix no modo
comando do vi. em seguida use as teclas K e J para a movimentação entre as linhas de
comando. Para editá-las use os comandos do vi que já conhece. Na verdade, você está dentro do
vi, editando uma linha de comandos como se estivesse editando um arquivo texto. Nunca use
as teclas de seta para movimentação do cursor. Ao término da edição da linha de comando,
pressione f para que seja executada.
Se você tiver problemas ao editar a linha de comando e quiser recomeçar, tecle bC, o que
faz você voltar ao prompt do shell, e tente novamente.
Você também pode usar o comando history para listas os últimos 16 comandos digitados. Ao
ver o número da linha em que se encontra o comando, poderá ir para aquela linha digitando #
jG (onde # deve ser substituído pelo número do comando a ser editado). Lembre-se que #
jG posiciona o cursor em uma linha específica.
85
Conceitos básicos do sistema operacional IBM-AIX
Ambiente do usuário
O ambiente do usuário descreve muitas coisas sobre o programa que está sendo executado. Ele
descreve a sessão para o sistema. O ambiente contém as seguintes informações:
- caminho para o diretório $HOME do usuário;
- caminho para o armazenamento do correio eletrônico;
- fuso horário no qual se está trabalhando;
- com que nome de usuário se está logado;
- caminho do shell para a pesquisa de comandos;
- tipo e tamanho do terminal;
- outras informações que os aplicativos necessitam.
Por exemplo, os comandos do editor vi precisam saber qual tipo de terminal está sendo usado
para formatar a saída corretamente.
Muitos aplicativos necessitam que se personalize seu ambiente de algum modo. Isto é feito
através da modificação do arquivo .profile, existente no diretório $HOME.
Através do comando env é possível ver as variáveis ambientais. Cada uma dessas variáveis tem
uma razão específica. Abaixo algumas variáveis ambientais mais comuns e seus significados:
TERM, COLUMNS e LINES descrição do terminal em uso
HOME caminho para o diretório de login
PATH caminho de busca de comandos
LOGNAME nome do usuário logado
ENV e HISTFILE variáveis especiais do Korn shell
DISPLAY variável especial do X-Window
Algumas dessas variáveis são ativadas pelo sistema. Outras são defininas no arquivo
/etc/profile ou .profile.
86
Conceitos básicos do sistema operacional IBM-AIX
A variável PATH
A variável PATH é uma relação de diretórios, usada pelo shell para encontrar comandos. É ela
que permite que um comando seja executado apenas com a digitação de seu nome, e não usando
o percurso absoluto (por exemplo vi, ao invés de /usr/bin/vi).
A lista de diretórios para pesquisa é separada por dois-pontos (:).Este é um exemplo de uma
variável PATH:
PATH=/usr/bin:/usr/sbin:/usr/local/bin:.
Isto significa que a busca pelos comandos será nos diretórios /usr/bin, depois em /usr/sbin,
depois em /usr/local/bin e, finalmente, no diretório corrente. A mensagem de not found só
será apresentada se não for encontrado o comando digitado.
A variável TERM
A variável TERM descreve o tipo de terminal que está em uso. Para que muitos comandos sejam
executados corretamente eles necessitam saber o tipo do terminal em uso. Um exemplo é o
comando ls que precisa saber a quantidade de linhas. A mesma coisa vale para o comando
more. Já para o vi há a necessidade de se saber a quantidade de linhas e colunas, além de outras
informações para poder trabalha adequadamente.
O tipo do terminal é ativado usando o modelo de terminal (como vt100, dtterm, vt320,
etc).
Se o terminal ficar estranho quando estiver sendo usado o comando more ou o comando vi, veja
se a variável TERM existe e se está definida corretamente. Se tudo estiver correto, use o comando
tset para resetar as características do terminal usando a variável TERM.
87
Conceitos básicos do sistema operacional IBM-AIX
A primeira coisa que você vê quando vai começar a usar o sistema Unix é o prompt Login:.
Nele você deve digitar o seu nome de usuário (ou login name). Em seguida o sistema vai
solicitar a sua senha no prompt Password:. Após a entrada desses dados, o sistema checa a
validade do login name e senha no arquivo /etc/passwd. Se o nome e senha estiverem
corretos, o sistema posiciona você no seu diretório $HOME e inicia o shell mostrando o prompt
de comandos como símbolo $.
Na verdade essa explicação simples camufla vários passos que acontecem desde o momento em
que a senha foi digitada até o aparecimento do prompt de comandos. A figura acima ilustra o
processo de login em nível de sistema operacional.
Isto tudo acontece quando se está trabalhando com uma sessão de terminal típica, ou seja, login
em tela tipo texto. Caso o login seja efetuado em uma tela gráfica (CDE) os arquivos de
inicialização de sistema normalmente não são usados para startup. Para isso deve ser forçada a
carga dos arquivos de inicialização.
No arquivo .dtprofile, existente no diretório $HOME, a linha DTSOURCEPROFILE deve
ser definida para true. Caso isso não seja feito, somente o arquivo .dtprofile será
executado, não carregando as definições de ambiente criadas nos arquivos .profile e
.kshrc.
88
Conceitos básicos do sistema operacional IBM-AIX
89
Conceitos básicos do sistema operacional IBM-AIX
90
Conceitos básicos do sistema operacional IBM-AIX
2 - Faça com que o alias do exercício anterior seja executado a cada nova sessão se shell que for
aberta.
Agora use a edição de linha de comando para corrigir os erros do comando acima. Não redigite o
comando.
5 - Crie um alias chamado "rm", que execute o comando "rm -i". Como o comando original
pode ser executado ao invés do alias?
91
Conceitos básicos do sistema operacional IBM-AIX
92
Conceitos básicos do sistema operacional IBM-AIX
93
Conceitos básicos do sistema operacional IBM-AIX
Armazenamento de variáveis
Variáveis são áreas de memória onde podem ser armazenados dados. Esses dados podem ser
números, textos, listas de arquivos e até mesmo resultados da saída de comandos que podem ser
utilizados posteriormente.
Existem duas categorias de variáveis que podemos definir no Unix:
Variáveis locais disponíveis somente para o Shell corrente, não sendo acessadas
pelos subprocessos;
Variáveis ambientais ou globais disponíveis tanto para o shell corrente como para os
subprocessos que venham a usar o conteúdo das variáveis
definidas.
Para tornar uma variável com escopo global, ela deve ser exportada usando-se o comando
export. Por exemplo para tornar a variável PS1 de escopo global, digite:
$ export PS1
Para a visualização das variáveis locais usa-se o comando set. Para verificar quais variáveis
estão exportadas, usa-se o comando env.
94
Conceitos básicos do sistema operacional IBM-AIX
Lembre-se que para tornar uma variável de escopo global, o comando export deve ser usado,
podendo-se criar a variável e, ao mesmo tempo, exportá-la como neste exemplo genérico:
$ export nome=conteúdo
Para tornar uma variável imune a alteração ou deleção deve-se usar o comando readonly:
$ readonly nome
$ unset nome
Uma das vantagens de manter-se uma variável somente-leitura é que, no caso de ocorrer, no shell
corrente, a alteração de uma variável de ambiente que não deveria ser alterada, ela estará
protegida contra essa alteração.
Variáveis somente-leitura não podem ser apagadas. Elas somente deixarão de existir no
momento em que for efetuado o logout da sessão de terminal ou se o programa que criou a
variável for encerrado, exceto no caso de um script-shell ter sido executado na mesma instância
de interpretador que iniciou a execução do script.
95
Conceitos básicos do sistema operacional IBM-AIX
$ ARQUIVO=/home/morro.txt
$ more $ARQUIVO
$ echo $HOME
/usr/user1
$ PATH=$PATH:$HOME:.
$ echo $PATH
/usr/bin:/usr/contrib/bin:/usr/local/bin:/usr/user1
$ TXT1="Casa da"
$ TXT2="Mae "
$ TXT3="Joana"
$ echo ${TXT1}da$TXT2$TXT3
Observe que no último exemplo foram usadas as chaves para circundar o nome da variável,
senão o shell poderia interpretar a variável como TXT1da caso as chaves não fosse usadas, o
que seria um nome de variável diferente de TXT1, gerando mensagem de erro de parâmetro não
definido, pois nesse caso a variável TXT1da não existe.
96
Conceitos básicos do sistema operacional IBM-AIX
Substituição de comandos
A substituição de comandos é usada para substituir um comando por seu resultado dentro da
mesma linha de comando. Isto será útil quando for necessário armazenar a saída de um comando
em uma variável ou passar essa mesma saída para outro comando. A sintaxe utilizada é:
$ $(comando)
$ DIR_ATUAL=$(pwd)
banner $(date)
Embora um par de crases seja válida para o Korn shell, recomenda-se usar a sintaxe $(), que é
a padronização POSIX, além de evitar a confusão com o mecanismo de quoting, que será
estudado mais adiante.
97
Conceitos básicos do sistema operacional IBM-AIX
Um til seguido de um hífen (-) será substituído pelo valor da variável OLDPWD;
$ OLDPWD=/home/user3/mail
$ ls ~- - Será substituído por /home/user3/mail
98
Conceitos básicos do sistema operacional IBM-AIX
99
Conceitos básicos do sistema operacional IBM-AIX
Além da monitoração de processos, existem comandos que permitem que estes sejam
gerenciados (alterada a prioridade, cancelamento, execução em background, etc). Os seguintes
comandos serão discutidos com exemplos práticos:
kill [-9] job/processo cancelar um processo em execução
bg job e fg job colocar, respectivamente job em background e foreground
jobs listar os jobs que estão em execução
& coloca processos em background. Sempre colocado no final
da linha de comando
100
Conceitos básicos do sistema operacional IBM-AIX
A figura acima ilustra que o processo-filho não pode alterar o ambiente do processo-pai.
Quando um comando ps -f é executado ele revela somente o shell de login e o comando ps
antes de terminar sua execução. Um valor foi atribuído a uma variável, que em seguida foi
exportada para o ambiente. O comando ksh é chamado, criando um processo-filho. Como o
ambiente é duplicado no momento da criação do processo-filho, pode-se verificar que a variável
criada no shell-pai apresenta o mesmo conteúdo no shell-filho.
Ao alterar o conteúdo da variável, este somente acontece no shell-filho. Quando encerramos o
shell-filho, pode-se verificar que a variável ainda possui o seu valor original, indicando que,
realmente, o shell-filho não pode alterar os valores do ambiente do shell-pai.
O AIX possui um processo especial, que inicia pelo PID 516. Este processo não consome
recursos do sistema operacional, sendo usado internamente apenas para mostrar a quantidade de
recursos livres no momento. Na versão 4 do AIX, o processo é identificado como kproc; na
versão 5 é identificado como wait.
101
Conceitos básicos do sistema operacional IBM-AIX
3 - Crie uma variável chamado MYNAME e armazene nela o seu primeiro nome. Como se mostra
o conteúdo da variável?
4 - Como fazer para que o Shell filho "enxergue" o conteúdo da variável MYNAME?
6 - Modifique seu prompt de comando, de modo que ele fique com a aparência exemplificada a
seguir:
usuário@servidor:/home/usuário =>
102
Conceitos básicos do sistema operacional IBM-AIX
103
Conceitos básicos do sistema operacional IBM-AIX
104
Conceitos básicos do sistema operacional IBM-AIX
105
Conceitos básicos do sistema operacional IBM-AIX
106
Conceitos básicos do sistema operacional IBM-AIX
107
Conceitos básicos do sistema operacional IBM-AIX
3 - Crie um diretório chamado backup sob seu diretório $HOME. Mova para ele todos os arquivos
existentes no seu diretório $HOME.
4 - Crie um diretório com o nome de financ1. Descreva o que acontece quando é digitado o
comando:
$ cd financ*
108
Conceitos básicos do sistema operacional IBM-AIX
109
Conceitos básicos do sistema operacional IBM-AIX
110
Conceitos básicos do sistema operacional IBM-AIX
O quoting \ pode ser mostrado literalmente se for usado entre aspas duplas. Para conseguir tal
resultado, proceda o caractere \ por um espaço em branco.
111
Conceitos básicos do sistema operacional IBM-AIX
112
Conceitos básicos do sistema operacional IBM-AIX
113
Conceitos básicos do sistema operacional IBM-AIX
114
Conceitos básicos do sistema operacional IBM-AIX
Todas as vezes que um shell, ou qualquer outro processo é iniciado, são abertos automaticamente
três arquivos, com os nomes mostrados na figura acima.
O arquivo stdin é usado pelo shell para ler a entrada padrão. Ele é representado pelo descritor
0 da linguagem C e está associado ao teclado do terminal.
Os comandos que obtém sua entrada a partir da entrada padrão são mail, write e cat. Para
concluir a entrada deve ser pressionada a tecla f ou bD.
O arquivo stdin é usado pelo shell para gravar sua saída normal. Ele é representado pelo
descritos 1 da linguagem C e está associado à tela do terminal.
A maior parte dos comandos do Unix gera saída padrão, como por exemplo ls, date, cat,
banner, who, entre outros.
O arquivo stderr é usado pelo shell para a gravação das mensagens de erro. Ele está associado
ao descritor de arquivo 2 da linguagem C. Assim como o stdin, está associado à tela do
terminal. A maioria dos comandos Unix gerará uma saída de erro, geralmente em caso de erro de
sintaxe ou argumentos insuficientes, como os comandos cp, mv e rm, pois estes comandos
necessitam de nomes de arquivos para trabalharem corretamente. Caso não sejam informados os
argumentos mínimos necessários, os comandos retornam mensagens de erro específicas que
serão gravadas em stderr.
115
Conceitos básicos do sistema operacional IBM-AIX
116
Conceitos básicos do sistema operacional IBM-AIX
117
Conceitos básicos do sistema operacional IBM-AIX
118
Conceitos básicos do sistema operacional IBM-AIX
Filtros e pipelines
Um filtro é um comando que lê a entrada padrão e produz uma saída padrão. O comando filtra o
conteúdo do arquivo, sem alterar o arquivo original, e gera a saída padrão. Se for usado
juntamente com o redirecionamento de saída pode-se processar a saída de outros comandos.
O sistema Unix mostra sua capacidade de filtrar o conteúdo de arquivos. Com os pipelines é
possível filtrar o resultado de um comando.
Os pipelines permitem a transferência de resultado de um comando diretamente como a entrada
de outro, eliminando a criação de um arquivo intermediário, pois esse arquivo intermediário
deverá ser eliminado quando o processamento terminar.
O caractere usado no pipeline é o | (lê-se pipe). Ele é utilizado para efetuar a ligação entre dois
comandos. A saída do comando à esquerda do pipe será usada como entrada para o comando à
direita do mesmo. Se um comando aparecer no meio de um pipeline, este deve estar apto a
receber a entrada padrão e gerar a saída padrão.
O comando more
O comando more é usado para exibir o conteúdo de um arquivo uma tela por vez. Este comando
é capaz de ler uma entrada padrão. Se ele aparecer à direita de um pipe, irá controlar a saída de
qualquer comando que gere uma padrão. Isto será útil quando tivermos pipelines que excedam a
capacidade da tela com saídas muito longas.
Veja abaixo o uso do comando more em um pipeline com o comando ls -l:
119
Conceitos básicos do sistema operacional IBM-AIX
O comando wc
O comando wc é usado para contar linhas, palavras e caracteres advindos da entrada padrão ou
de um arquivo. Sintaxe:
$ wc [-lwc] [arquivo1 arquivo2 ... arquivoN]
120
Conceitos básicos do sistema operacional IBM-AIX
O comando sort
O shell não pode abrir o mesmo arquivo para entrada e saída. Entretanto o comando sort pode
ser usado com a seguinte sintaxe, para que o arquivo não classificado seja criado classificado
com o mesmo nome:
$ sort -o arquivo1 -n arquivo1
O comando acima fará com que arquivo1 seja classificado em ordem numérica e gravado com
o mesmo nome. Veja abaixo exemplos de saída do comando sort:
121
Conceitos básicos do sistema operacional IBM-AIX
O comando grep
O comando grep é usado para pesquisar padrões de texto dentro de um arquivo, exibindo os
resultados na saída padrão. Segue a sintaxe do comando grep com as opções mais usadas:
$ grep [-inv] [-E "padrão1|...|padrãoN"] arquivo1 arquivo2 ... arquivoN
122
Conceitos básicos do sistema operacional IBM-AIX
O comando cut
O comando cut é usado para extrair campos ou colunas de uma entrada padrão ou de um
arquivo. Sua sintaxe:
123
Conceitos básicos do sistema operacional IBM-AIX
O comando tr
Veja, nos exemplos da figura a seguir, algumas saídas do comando tr (para mais detalhes,
consulte o manual on-line através do comando man tr):
124
Conceitos básicos do sistema operacional IBM-AIX
O comando tee
Quando usamos um pipeline, já sabemos que a saída de um comando é usada como entrada para
outro. Porém, às vezes há a necessidade de se gravar a saída do comando anterior antes que ela
seja submetida ao comando seguinte. O comando tee permite que a saída de um comando
usado em um pipeline seja desviado para um arquivo, antes que ele seja processado pelo
próximo comando.
Isto pode ser bastante útil em caso de processamentos que produzam os resultados em tela, mas
posteriormente poderíamos precisar destes resultados para análise.
Como comando tee (T em inglês) pode-se desviar a saída de um pipeline, anterior ao comando
tee, para um arquivo em disco. Depois a saída é enviada como entrada para o comando
seguinte, posterior ao comando tee. Outro comando tee pode ser encadeado no pipeline, e
assim por diante. Veja na figura a seguir o esquema de funcionamento do comando tee:
Se a opção –a não for especificada e o arquivo existir, ele será sobrescrito pelo novo conteúdo.
Caso esta opção seja especificada e o arquivo não existir, este será criado. Caso o arquivo exista,
o novo conteúdo será adicionado ao seu final (append).
A figura seguinte mostra o funcionamento do comando tee:
125
Conceitos básicos do sistema operacional IBM-AIX
3 - Crie dois arquivos arq01 e arq02. Crie o arquivo arq.todos, que será a junção dos dois
arquivos criados.
126
Conceitos básicos do sistema operacional IBM-AIX
127
Conceitos básicos do sistema operacional IBM-AIX
O comando tar
O comando tar pode ser usado tanto para efetuar backups de arquivos em fita magnética como
pode ser usado para empacotar vários arquivos em um único (geralmente usando o sufixo .TAR
ou .tar). Existem outras opções para trabalhar com o comando tar, porém neste curso serão
apresentadas as mais utilizados (consulte o manual on-line para mais detalhes através do
comando man tar).
Sintaxe:
$ tar -c|t|x –f ArchiveFile/dispositivo arquivos
-c efetua a gravação no ArchiveFile ou dispositivo
-t efetua a leitura do ArchiveFile ou dispositivo
-x efetua a extração do ArchiveFile ou dispositivo
-f ArchiveFile/dispositivo especifica um nome de arquivo ou dispositivo onde
os arquivos serão armazenados ou de onde serão
lidos/restaurados. No caso de um nome de arquivo o
sufixo pode ser qualquer um, mas costuma-se usar
.TAR por convenção. No caso de o destino ser o
nome de um dispositivo de fita magnética, o nome
pode variar de acordo com a implementação Unix,
porém estes se encontram no diretório /dev.
Exemplos:
- para criar um arquivo chamado bkpetc_3107.TAR contendo todo o conteúdo do diretório
/etc digite:
$ tar -cvf bkpetc_3107.TAR /etc
128
Conceitos básicos do sistema operacional IBM-AIX
O comando cpio
Para executar visualizar o conteúdo da fita onde o backup foi armazenado use:
Os nomes de arquivos a serem restaurados devem ser colocados entre aspas, senão o restore não
ocorrerá.
As demais opções que seguem -o ou -i efetuam as seguintes operações para o comando cpio:
c grava a informação de cabeçalho do backup em formato ASCII, para fins de portabilidade
v permite que seja visualizado quais arquivos já foram copiados para a fita (verbose)
d cria diretórios quando necessário
u efetua a cópia incondicionalmente. Utilizada com a opção -i, permite que todos os
arquivos que são restaurados sobreponham os arquivos existentes. Se não for especificada
esta opção, os arquivos mais novos não são substituídos pelos arquivos mais antigos.
m permite que as datas e horas de criação dos arquivos sejam mantidas. Esta opção não
afeta diretórios.
O comando cpio pode ser usado também para efetuar uma cópia completa de uma árvore de
diretórios. Para isso usa-se a opção -p. Por exemplo, para copiar o todo o conteúdo do diretório
/oracle/tablespace para o diretório /oracle/backup (o diretório de destino deve
estar previamente criado), mantendo os caminhos relativos da origem, use:
129
Conceitos básicos do sistema operacional IBM-AIX
O comando acima fará a cópia em modo verbose (-v), criando os caminhos de diretórios (-d) e
efetuando uma cópia incondicional (-u), isto é, se existirem arquivos com o mesmo nome, serão
sobrescritos.
130
Conceitos básicos do sistema operacional IBM-AIX
O comando mt
O comando mt é usado para a manipulação da mídia magnética da unidade de fita, isto é, este
comando é usado para fazer a movimentação da fita existente na unidade. Usa-se este comando
para rebobinar, avançar, voltar, ejetar e mostrar o status do dispositivo.
A sintaxe do comando mt é:
-t device indica dispositivo que será manipulado. Se não for especificado, assumirá o nome
armazenado na variável de ambiente TAPE. Se esta não existir, assumirá
/dev/rmt12. Os nomes de dispositivos podem variar de acordo com a
implementação Unix que estiver sendo utilizada. Um exemplos é o caso do
Compaq Tru64 que a primeira unidade de fita, usando compressão de hardware, é
identificada como /dev/rmt0h. No IBM AIX esta mesma unidade denomina-se
/dev/rmt0. No HP-UX, a primeira unidade de fita, também com compressão de
hardware ativada, pode ser denominada /dev/rmt/0m ou
/dev/rmt/c0t0d0BEST. Verifique com o administrador qual a denominação
do dispositivo de fita a ser usado em seu sistema.
Em algumas implementações Unix, a opção -f é substituída pelo opção -t.
comando ação a ser efetuada na mídia inserida na unidade. Os seguintes comandos são
válidos:
eof grava uma marca de final de arquivo na posição atual da mídia;
fsf avança a quantidade de volumes especificada em valor;
bsf volta a quantidade de volumes especificada em valor;
rewind rebobina a fita ignorando a quantidade especificada em valor;
offline rebobina a fita e a ejeta da unidade;
status mostra informação sobre o status da unidade
131
Conceitos básicos do sistema operacional IBM-AIX
Supondo que seja necessário efetuar o restore dos arquivo /usr/bin/vi e /usr/bin/ls
em seus diretório de origem, seriam necessários os seguintes comandos:
$ mt -t /dev/rmt0.1 fsf 1
$ cd /
$ cpio -icvdum "/usr/bin/vi" "/usr/bin/ls" </dev/rmt0.1
Para ejetar a fita após o término do backup, ou restore, use o comando a seguir:
$ mt -t /dev/rmt0 offline
Para obter informações sobre a unidade de fita e da mídia nela inserida, digite:
$ mt -t /dev/rmt0 status
132
Conceitos básicos do sistema operacional IBM-AIX
133
Conceitos básicos do sistema operacional IBM-AIX
kill usado para enviar sinais para processos e, opcionalmente, para cancelá-los.
ln cria um novo nome apontando para um arquivo existente (link).
logname mostra o nome que o usuário usou para se logar. Não é afetado pelo
comando su.
ls exibe uma listagem de arquivos. De acordo com as opções, a listagem é
mostrada em diferentes formatos.
mail / mailx permite que se envie mensagens eletrônicas off-line, ou que sejam lidas as
que foram recebidas.
man exibe a página o manual on-line para um comando.
mesg mostra o status para recebimento de mensagens ou o altera.
mkdir cria diretórios.
more exibe o conteúdo do arquivo uma tela por vez.
mv move arquivos entre diretórios ou renomeia-os.
newgrp altera a identificação de grupo.
nice executa um processo em prioridade mais baixa.
nohup permite a execução de processos sem que sejam interrompidos, mesmo
que a sessão de terminal seja encerrada.
passwd altera a senha do usuário correntemente logado.
ps mostra processos em execução.
pwd exibe o diretório corrente.
rm apaga arquivos e, opcionalmente, uma árvore de diretórios.
rmdir remove diretórios.
sed editor de fluxo não interativo.
sleep suspende a execução por uma determinada quantidade de segundos.
sort classifica arquivos em ordem alfabética ou numérica.
stty exibe a configuração do terminal atual e o mapeamento do teclado.
su altera a identificação de usuário.
tail exibe as linhas do final de um arquivo.
tar permite fazer backup de arquivos agrupando-os em um archive-file ou,
opcionalmente, para uma unidade de fita.
tee desvia o fluxo de um pipeline para um arquivo.
touch cria um arquivo vazio ou atualiza o registro de tempo de um arquivo
existente.
tr transformação de caracteres.
tty informa qual o arquivo de terminal usado pela sessão corrente.
134
Conceitos básicos do sistema operacional IBM-AIX
135
Conceitos básicos do sistema operacional IBM-AIX
136