Você está na página 1de 35

PRODABEL S/A – Empresa de Informática e Informação do Município de Belo Horizonte S/A

Curso de AIX Básico

Robert Marques Maia


2010
Sumário
Introdução.............................................................................................................................................3
Unidade 1..............................................................................................................................................4
Introdução ao AIX...........................................................................................................................4
Funcionamento do AIX...................................................................................................................5
Arquivos e diretórios – O sistema de arquivos AIX........................................................................6
Unidade 2..............................................................................................................................................8
Fazendo login e logout no AIX........................................................................................................8
Utilizando comandos no shell do AIX.............................................................................................8
Comandos básicos do AIX..............................................................................................................9
Comunicação entre usuários..........................................................................................................10
Unidade 3............................................................................................................................................12
Documentação do AIX..................................................................................................................12
Unidade 4............................................................................................................................................13
Arquivos e diretórios.....................................................................................................................13
Caminhos de arquivos e diretórios.................................................................................................13
Trabalhando com arquivos e diretórios.........................................................................................13
Unidade 5............................................................................................................................................16
Usando arquivos............................................................................................................................16
Unidade 6............................................................................................................................................18
Permissões de arquivos..................................................................................................................18
Unidade 7............................................................................................................................................19
O editor vi......................................................................................................................................19
Unidade 8............................................................................................................................................22
Shell básico....................................................................................................................................22
Unidade 9............................................................................................................................................25
Usando variável de shell................................................................................................................25
Unidade 10..........................................................................................................................................26
Processos........................................................................................................................................26
Unidade 11..........................................................................................................................................28
Controlando processos...................................................................................................................28
Unidade 12..........................................................................................................................................31
Utilitários do AIX..........................................................................................................................31
Unidade 13..........................................................................................................................................33
Utilitários do AIX – parte 2...........................................................................................................33
Unidade 14..........................................................................................................................................35
Shell script básico..........................................................................................................................35
Introdução

Este curso tem por objetivo capacitar operadores a trabalharem no ambiente UNIX AIX da
IBM. Ele visa dar uma visão básica sobre os principais conceitos e facilidades do sistema AIX,
permitindo que operadores possam trabalhar com mais eficiência e de forma consciente.
O presente material, assim como a programação do presente curso, é baseado no curso
AU13 da IBM, que é o curso oficial de operação de sistemas AIX 5L.
4

Unidade 1

Introdução ao AIX
Advanced Interactive eXecutive, ou simplesmente AIX, é uma versão da IBM do Sistema
Operacional UNIX que é executado em computadores IBM de médio porte baseados na tecnologia
RISC POWER. Ele se baseia no UNIX System V e é muito utilizado em grandes empresas. Antes
do produto ser comercializado, o acrônimo AIX era uma abreviação de Advanced IBM UNIX ou,
em português, Unix Avançado da IBM.
A IBM introduziu a primeira versão do AIX, chamada AIX V1, em 1986, para ser executado
sobre suas estações de trabalho IBM 6150 RT. Esta versão foi baseada no Unix System III. A IBM
posteriormente portou o AIX para a plataforma RS/6000. Esta versão para arquitetura baseada em
processadores da linha POWER era a versão AIX V3, lançada no fim de 1989 e baseada no UNIX
System V. O AIX serviu como sistema operacional primário para o RS/6000.
Em 1990, a IBM lançou uma versão do AIX para seu System/370 batizada de AIX/370.
Com a introdução da arquitetura ESA/390, O AIX/370 foi relançado como AIX/ESA e implantado
na plataforma System/390 em 1991. Diferentemente do AIX/370, o AIX/ESA para mainframe
poderia ser executado como o sistema operacional principal ou numa partição de VM. AIX/ESA no
mainframe teve pouco sucesso comercial e as funcionalidades do UNIX acabam por ser
acrescentadas ao sistema operacional existente no mainframe, o MVS, que foi renomeado para
MVS/ESA OpenEdition em 1993, atualmente z/OS.
As versões do AIX seguem cronologicamente abaixo:

IBM 6150 RT
• AIX v1.0 - 1986
• AIX v2.0
• Última versão foi a 2.2.1.

IBM PS/2
• AIX PS/2 v1.1 - 1989
• Última versão foi a 1.3 - 1992.

S/370 – S/390 – System Z


• AIX/370 – 1990
• AIX/ESA – 1991
• Atualmente é um subsistema do z/OS.

POWER - PowerPC
• AIX 3.0 - 1989
• AIX 3.1 - Fevereiro de 1990
• AIX 3.2 - 1992
• AIX 4.0 - 1994
5

• AIX 4.1 – 12 de Agosto de 1994


• AIX 4.1.1 – 28 de Outubro de 1994
• AIX 4.1.3 – 7 de Julho de 1995
• AIX 4.1.4 – 20 de Outubro de 1995
• AIX 4.1.5 – 8 de Novembro de 1996
• AIX 4.2 – 17 de Maio de 1996
• AIX 4.2.1 – 25 de Abril de 1997
• AIX 4.3 – 31 de Outubro de 1997
• AIX 4.3.1 – 24 de Abril de 1998
• AIX 4.3.2 – 23 de Outubro de 1998
• AIX 4.3.3 – 17 de Setembro de 1999
• AIX 5L 5.1 – 4 de Maio de 2001
• AIX 5L 5.2 – 18 de Outubro de 2002
• AIX 5L 5.3 – 13 de Agosto de 2004
• AIX V6 6.1 – 9 de Novembro de 2007

Funcionamento do AIX
O AIX é um sistema operacional multiusuário e multitarefa. Estas são as duas características
mais importantes deste sistema.

O que significa o AIX ser multiusuário?

Significa que este sistema operacional permite que mais de um usuário opere o computador
simultaneamente e de forma independente, de forma compartilhada com outros usuários. Ou seja,
vários usuários podem executar aplicações diferentes ao mesmo na mesma máquina.

Como o AIX faz isto?

O AIX permite que um ou mais usuários executem uma ou mais aplicações ao mesmo
tempo. Esta habilidade do sistema operacional é chamada de multitarefa. Na verdade, em um
sistema com um só processador, as aplicações são executadas sequencialmente de forma tão rápida
que parecem estar sendo executadas simultaneamente. O AIX escalona sua execução e reserva-lhes
recursos computacionais (intervalo de tempo de processamento, espaço em memória RAM, espaço
no disco rígido, etc.). O AIX utiliza uma técnica chamada de multitarefa preemptiva, onde esgotado
um determinado tempo reservado àquela aplicação, o AIX suspende a execução do processo, salva
o seu estado atual, para que ele possa ser retomado posteriormente, e coloca em execução o
próximo processo da fila de espera. O Unix também determina quando cada processo será
executado, a duração de sua execução e a sua prioridade sobre os outros. Ele executa esta sequência
infinitas vezes até que a aplicação tenha terminado de executar ou seja interrompida.

Por dentro do AIX

O AIX é composto basicamente de duas partes: O kernel (ou núcleo do sistema) e os


aplicativos. O kernel do sistema operacional é a parte que relaciona-se diretamente com o hardware
e que executa num espaço de memória privilegiado. É função do kernel agendar os processos,
gerenciar a memória, controlar o acesso a arquivos e o hardware. O acesso ao kernel é feito por
6

chamadas de sistema, que são funções especiais fornecidas para interação com o kernel.
As aplicações executam em espaços de memória não privilegiados, e que fazem a interface
entre o usuário e o núcleo. Consistem, principalmente, de Conjunto de bibliotecas C, Shell (um
ambiente que permite que o usuário digite comandos), programas utilitários diversos (são
programas usados para manipular arquivos, controlar processos, aplicações de bancos de dados e
sistemas, etc.).

O Shell do AIX

O AIX tem entre suas diversas aplicações uma que que pode ser considerada de fundamental
importância que chamamos de Shell. O Shell é a aplicação que interpreta os comandos do usuário.
Ou seja, os comandos dados pelo usuário na linha de comando são tratados e executados pelo Shell.
O Shell interage com o Kernel e com o usuário, e é a ligação entre os dois.

Arquivos e diretórios – O sistema de arquivos AIX


Sistema de arquivos é uma estrutura lógica que possibilita o armazenamento e recuperação
de arquivos. No Unix, arquivos são contidos em diretórios, os quais são conectados em uma árvore
que começa no diretório raiz (/). Mesmo os arquivos que se encontram em dispositivos de
armazenamento diferentes (discos rígidos, pen drives, CDs, DVDs, sistemas de arquivos em rede)
precisam ser conectados à árvore para que seu conteúdo possa ser acessado. Cada dispositivo de
armazenamento possui a sua própria árvore de diretórios, que é adicionada à árvore raiz quando são
montados.
7

Dispositivos no AIX

Sistemas Unix são orientados a arquivos, ou seja, quase tudo nele é tratado como arquivo.
Seus comandos são na verdade arquivos executáveis, que são encontrados em lugares determinados
em sua árvore de diretórios, e até mesmo a comunicação entre aplicações é feita por estruturas
parecidas com arquivos. Com os dispositivos de hardware não é diferente. Cada dispositivo é
tratado também como arquivo no AIX. O acesso aos dispositivos de hardware é feito através de
uma estrutura de arquivos, ou seja, para determinado hardware ser utilizado, haverá um local à
partir de onde aquele hardware poderá ser acessado.

Terminais do AIX

O AIX, por ser um sistema operacional multiusuário, necessita separar o ambiente de


trabalho de cada usuário. Quando os usuários estão trabalhando simultaneamente, cada um ocupa
um dispositivo especial chamado terminal. Um terminal é alocado a um único usuário no momento
em que ele entra no sistema e é liberado quando este usuário sai do sistema.
8

Unidade 2

Fazendo login e logout no AIX


O sistema AIX comporta múltiplos usuários acessando-o simultaneamente. Por este motivo,
o sistema necessita de uma forma de identificar quem está trabalhando em cada terminal. A maneira
como o sistema identifica os usuários é através do processo que chamamos de login. O login é a
abertura de uma sessão de trabalho através da utilização de um usuário cadastrado no sistema, e
opcionalmente, de uma senha.

Nome de usuário

O nome de usuário, ou user name, como é chamado no sistema, é o nome que utilizamos
para fazer login no AIX. Este nome é sempre um nome válido no sistema, ou seja, é um nome pré-
existente, configurado na instalação do sistema, ou adicionado por um superusuário como o root.

Senha do usuário

A senha do usuário, ou user password, é uma senha utilizada em conjunto com o nome de
usuário para se autenticar no sistema. Apesar da senha ser opcional, não é comum administradores
de sistemas permitirem autenticação de usuários sem senha. É a senha que permite e garante a
segurança do ambiente, pois ela permite entrar no sistema somente quem tem um usuário registrado
e conhece sua senha.

Login de sucesso

Quando o usuário faz um login com sucesso, é apresentado em sua tela o sinal de prompt do
shell, um sinal de cifrão ($), ou no caso de ser um usuário root, o sinal de sustenido (#). Em alguns
casos pode o usuário entrar diretamente em alguma interface pré-determinada pelo administrador,
como algum sistema interativo.
Saindo do sistema

O processo de sair do sistema é chamado de logout. Sair do sistema AIX é muito simples. O
usuário, na linha de comando do shell, pode digitar os comandos exit ou logout, ou usar a
combinação de teclas ctrl + d. Quando o usuário faz logout ele libera aquele terminal para a
utilização de outro usuário.

Utilizando comandos no shell do AIX


Os comandos no Shell seguem um padrão no AIX. São utilizados na ordem de comando +
opções + argumentos. Os comandos podem ser comandos de Shell ou programas externos. Uma
explicação de cada parte de um comando segue abaixo:
Comando: É o comando propriamente dito. São sempre digitados em primeiro lugar.
Opções: São modificadores de comportamento de um comando, precedidos de um hífen (-).
Argumentos: São opções especiais de entrada para um comando ou de saída para um comando.
Comandos podem não solicitar ou não necessitar de opções ou argumentos. Para comandos
digitados sem opções, o comportamento padrão é o realizado. Quando não há opções, significa que
9

o comando só tem um comportamento. Já os comandos sem argumentos são aqueles em que sua
saída é a padrão, podendo ser um arquivo padrão (menos comum) ou um dispositivo padrão, como
uma impressora ou a tela do terminal (mais comum), ou que sua entrada é pré-definida no próprio
comando.

Comandos básicos do AIX


Alguns comandos básicos do AIX serão apresentados nesta seção.

clear, echo e print

O comando clear tem a função de limpar a tela do terminal. Esta limpeza permite que o
terminal fique livre de sujeira visual indesejável. É de importância grande quando há muitos
caracteres dispensáveis na tela do terminal.

O comando echo imprime na tela do terminal os caracteres que são escritos após o comando.
É muito utilizado na montagem de interfaces de aplicações em Shell Script.

O comando print faz a mesma coisa que echo.

date e cal

O comando date mostra na tela a data e hora do sistema.

O comando cal exibe o calendário do mês e ano informado após o comando. Se o comando
for seguido somente do ano, ele exibe o calendário dos 12 meses. Se não for seguido de nenhum
argumento, exibe o calendário do mês corrente, obedecendo a data do sistema.

Who e finger

O comando who mostra quem está logado no sistema, e o nome do terminal do usuário.
Mostra também a data e o horário em que os usuários fizeram login.

Opções:

-u : Exibe, além das informações básicas do who, o tempo de login do usuário na sessão e o
número do processo do usuário no sistema, ou como chamado no AIX, o id do processo.

-m : Exibe as informações do who somente para o usuário atual. Tem o mesmo


funcionamento do comando digitado na forma who am i (who am i).

Vale lembrar que o comando who am i é diferente de whoami. O segundo mostra somente o
nome do usuário atualmente logado no terminal.

O comando finger tem o seguinte formato padrão de saída: usuários, tempo de login, o
diretório home dos usuários, e o shell padrão dos usuários. Você pode usar seu próprio nome de
usuário para saber informações sobre você mesmo, ou de algum outro usuário do sistema para saber
informações sobre ele.
10

Comunicação entre usuários


A comunicação entre usuários no AIX pode acontecer de duas formas: na forma de
mensagem instantânea e na forma de correio eletrônico. A comunicação pode acontecer entre
usuários usando terminais no mesmo servidor ou entre usuários em logados em servidores
diferentes. É importante ressaltar que para as mensagens eletrônicas serem entregues ao outro
usuário, ele deve estar com o recurso de mensagens habilitado. Veremos como habilitar o recurso
de recebimento de mensagens instantâneas, como enviá-las. e como enviar e-mail.

mesg

É através do comando mesg que habilitamos o recebimento de mensagens instantâneas. Para


habilitarmos o recebimento de mensagens, basta digitar o comando mesg y. Para desabilitar o
recebimento de mensagens, digite mesg n. Para verificar o status do recebimento de mensagens,
basta digitar mesg.

Mensagens instantâneas

Mensagens instantâneas são mensagens recebidas em tempo real, enviadas por algum
usuário. É possível enviar mensagens instantâneas de duas formas: Para um usuário específico ou
para todos os usuários logados ao mesmo tempo em determinado sistema. É importante lembrar que
mensagens instantâneas só serão recebidas por usuários que estejam logados no momento do envio
da mensagem.

write e talk

Para se estabelecer uma conversa com um usuário logado em outro terminal no mesmo
servidor ou em outro servidor, utilizamos o comando write.
O comando é seguido do usuário a quem se destina a mensagem, ou seja, o usuário deve ser
conhecido de quem vai enviar a mensagem. Quando o usuário pertence a outro servidor, o nome do
usuário deve ser seguido por @nome_servidor, onde o arroba tem o significado de “em”.

Assim como o comando write, o comando talk estabelece uma conversa entre dois usuários,
locais ou em servidores diferentes.
Também diferentemente de write, talk necessita de uma confirmação do outro usuário.
A forma de utilizar o comando é a mesma do write, com a diferença de que o outro usuário
deverá responder a solicitação de conexão.

wall

O comando wall envia uma mensagem instantaneamente para todos os usuários.


Diferentemente do comando write ou talk, o wall não mantém uma conversa, é utilizado somente
para enviar avisos para todos os usuários logados no servidor.

Atalhos de teclado para talk e write

Para os programas de mensagem instantânea podemos utilizar alguns atalhos de teclado para
realizar tarefas. As teclas ou as combinações abaixo realizam as seguintes tarefas:
11

Backspace corrige erros na mensagem


Ctrl+c termina o comando e retorna ao shell
Ctrl+d fim da transmissão ou fim do arquivo
Ctrl+s suspende temporariamente as saídas na tela
Ctrl+q recebe as saídas paradas pelo Ctrl+s
Ctrl-u apaga a linha atual

mail

Além de enviar mensagens eletrônicas, é possível ainda enviar mensagens de e-mail.


Mensagens de e-mail são mensagens que podem ser enviadas tando para um usuário que esteja
conectado quando para um usuário que esteja desconectado do sistema. As mensagens de e-mail são
enviadas digitando o comando mail e o nome do usuário a quem se destina o e-mail.
Da mesma forma que os comandos write e talk, quando queremos enviar mensagens para
usuários em outros servidores, utilizamos após o nome do usuário @nome_servidor.

Opções:

O aplicativo mail contém alguns comandos para sua operação. Estes comandos são digitados
na linha de comando do mail, representada pelo &.

t exibir a mensagem
d deleta mensagem
m próxima mensagens
r responder ao remetente da mensagem
s anexar arquivo à mensagem
q sair do aplicativo mail e deixar mensagens na fila
12

Unidade 3

Documentação do AIX
O AIX provê documentação em várias mídias. Podemos consultar o manual impresso do
AIX, por exemplo. Existem também manuais do AIX online, no site da IBM. Outro tipo de material
online sobre o AIX em formato digital são os RedBooks, também encontrados no site da IBM.

man

O comando man exibe o manual relacionado ao comando ou aplicativo. Utiliza-se o


comando man digitando man seguido do nome do comando ou do aplicativo.
Dentre as opções que o comando man permite, a mais importante é a opção -k. Esta opção
permite-nos pesquisar em todos os manuais disponíveis no sistema por palavras-chaves. É usado
digitando-se man -k seguido da palavra a ser pesquisada.
13

Unidade 4

Arquivos e diretórios
O AIX tem uma organização hierárquica de arquivos e diretórios. Isto quer dizer que ele
organiza seus dados em forma de árvore, onde o primeiro nível é representado pelo diretório root
(ou também chamado diretório raiz, não confundir com o diretório de root, do usuário root).
AIX impõe uma estrutura interna de acordo com o conteúdo do arquivo. São três os tipos:

• Tipo ordinário arquivos de texto ou código binário


• Tipo diretório uma tabela de conteúdo, que lista os arquivos contidos dentro
desta estruturas
• Tipo especial representa hardware ou dispositivos

Caminhos de arquivos e diretórios


A organização hierárquica pressupõe uma organização dos arquivos. Para interagirmos com
esta organização no AIX, usamos um artifício chamado caminho. O caminho de um arquivo é dado
pelas ligações que o mesmo faz até o diretório root.
O caminho de um arquivo pode ser representado de duas formas: da forma de caminho
absoluto (ou caminho completo) e de caminho relativo.
A diferença entre as duas formas se dá porque o caminho absoluto, como o próprio nome
diz, é o caminho completo do arquivo, referenciado desde o diretório root.
Diferentemente do caminho absoluto, o caminho relativo é o caminho em que o ponto de
partida da referência é o diretório local onde se encontra o usuário.

Exemplos de caminhos

Caminho absoluto: /usr/bin


Caminho relativo: ./teste ou teste (à partir do diretório atual)
../teste (à partir do diretório anterior)

Trabalhando com arquivos e diretórios


pwd

Esse comando é usado para mostrar o diretório atual, e é, na realidade, um acrônimo de


print working directory (mostre o diretório de trabalho).
14

ls

Lista os arquivos e diretórios do diretório corrente.

Opções:
• l listagem em formato longo
• a listagem dos arquivos ocultos (arquivos que inicial com “.” )
• d listagem dos diretórios
• r ordem reversa
• h exibe o campo do tamanho do arquivo agrupadas em unidades do tipo K (kilo), M
(mega) ou G (giga)

Atributos dos arquivos

Quando usamos o comando ls com a opção -l, podemos ver os atributos dos arquivos. A
saída do comando com esta opção é como a transcrita abaixo.

-rwxrw-r-x 1 root root 734 Nov 26 13:22 portas.sh

A linha anterior descreve os atributos do arquivo portas.sh. O primeiro conjunto de 10


caracteres representam o tipo de arquivo e as permissões do arquivo. O primeiro caractere da
sequência indica que tipo de arquivo é:

d diretório
b arquivo de bloco
c arquivo especial de caractere
p canal
s socket
- arquivo comum

Os 9 caracteres restantes da sequência de 10 representam as permissões do arquivo. Os


atributos dela são:

r significa permissão de leitura (read)


w significa permissão de gravação (write)
x significa permissão de execução (execution)
- significa permissão desabilitada

Estes 9 são subdivididos em três grupos: três para o dono do arquivo, três para o grupo a que
o arquivo pertence ou está associado e finalmente, três para os outros usuários.

O segundo grupo de caracteres indica a quantidade de links associados ao arquivo.


O terceiro grupo de caracteres indica o dono do arquivo.
O quarto grupo de caracteres indica o grupo ao qual o arquivo está associado.
O quinto grupo de caracteres indica a quantidade de bytes que o arquivo possui.
O sexto grupo de caracteres indica data da última alteração e a hora.
O sétimo grupo de caracteres indica o nome do arquivo.
15

cd

Este comando muda o diretório corrente. É usado digitando-se cd seguido do


nome do diretório. Quando é seguido de “..”, ele volta um nível na hierarquia.
Quando cd é digitado sozinho, ele muda o diretório corrente para o home do usuário.

mkdir

Comando usado para criar diretórios vazios. O comando mkdir deve ser seguido do nome do
diretório que se deseja criar. O diretório é criado dentro do diretório corrente. Para se criar um
diretório em outro diretório fora do atual, usamos o caminho absoluto para o diretório. Podemos
também utilizar caminhos relativos para criar diretórios à partir do diretório corrente. Usando a
opção -p, podemos criar uma árvore completa ou diretórios aninhados.

rmdir

Da mesma forma que o comando mkdir, esse comando é usado para remover somente
diretórios vazios de forma relativamente segura. A utilização deste comando é igual à utilização de
mkdir na sequência dos argumentos deste comando. A opção -p também é utilizada para remover
uma árvore completa ou diretórios aninhados.

touch

O comando touch cria um arquivo vazio. A forma de utilização do arquivo é similar ao do


mkdir.

Regras para nomes de arquivos e diretórios

Para nomes de arquivos e diretórios, devemos observar algumas regras para sua criação e
descrição. Os nomes de arquivos:

• devem ser descritivos quanto ao conteúdo


• devem usar somente caracteres alfanuméricos, MAIÚSCULAS, minúsculas, números, #, @
e_
• não devem incluir espaços em branco
• não devem conter metacaracteres (caracteres curinga): * ? > < / ; & ! [ ] | $ \ ' " ( )
• não devem iniciar com sinais de + ou -
• não devem utilizar palavras reservadas (palavras que tem o mesmo nome de comandos ou
aplicações)

É importante salientar que os nomes de arquivos, assim como os nomes de aplicações,


comandos e opções de comandos e aplicações são case-sensitive, ou seja, diferenciam maiúsculas e
minúsculas. Arquivos iniciados com um . (ponto) são interpretados pelo sistema como arquivos
ocultos. Vale lembrar também que o tamanho máximo dos nomes de arquivos não podem
ultrapassar 255 caracteres
16

Unidade 5

Usando arquivos
cp

O comando cp é usado para duplicar arquivos. Com ele podemos copiar um ou vários
arquivos. Usa-se o cp digitando cp seguido do arquivo de origem e em seguida do arquivo de
destino.

mv

O comando mv é usado para mover arquivos. Com ele podemos, além de mover um ou
vários arquivos, renomear um arquivo. Usa-se o mv digitando mv seguido do arquivo de origem e
em seguida do arquivo de destino.

wc

O comando wc é também chamado o comando de contagem de palavras. Ele pode contar e


informar a quantidade de caracteres, palavras e linhas do arquivo especificado.
Opções:

-c conta o número de caracteres


-l conta o número de linhas
-w conta o número de palavras

ln

Esse comando é usado para criar links (nomes alternativos) para outro arquivo. Quando um
link é criado para um arquivo ou outro link, todas as mudanças nos links são, na realidade,
mudanças no arquivo ao qual estão linkadas.

Opções:

-f Cria o link mesmo se o arquivo destino não exista ou não estiver acessível
-s Cria um link simbólico (soft link)

O comando ln pode criar tanto links simbólicos (soft links) como diretos (hard links); ln cria
links diretos por padrão.

rm

Este comando é usado para remover arquivos do sistema de arquivos do UNIX. A ação
padrão, quando nenhuma opção é indicada, é tentar remover os objetos especificados.

Opções:

-f apaga sem pedir confirmação


17

-i apaga após pedir confirmação


-r apaga arquivos e subdiretórios
-v lista arquivos deletados

Cuidado com o uso de caracteres curinga, pois pode ter conseqüências desastrosas! Ao
entrar este comando, esteja absolutamente certo do diretório em que será executado.

cat, pg e more

O comando cat permite visualizar o arquivo, sem abri-lo em um editor de texto. Para usá-lo
basta digitar cat seguido do nome do arquivo.

O comando pg também permite visualizar o arquivo, sem abri-lo em um editor de texto,


organizado em uma página por vez. Para usá-lo basta digitar pg seguido do nome do arquivo.

O comando more é análogo ao comando pg.


18

Unidade 6

Permissões de arquivos
Conforme descrito em atributos de arquivos, na unidade 4, as permissões de arquivos são os
atributos de um arquivo que indicam quem pode fazer que tipo de operação com os arquivos.
Existem três comandos básicos para se trabalhar com as permissões de arquivos, uma vez que
podemos mudar as permissões, o dono do arquivo e o grupo ao qual pertence o arquivo.

chmod

Esse comando é usado para alterar o modo de acesso de um arquivo ou diretório. É usado
digitando-se chmod seguido de opções e por último seguido do nome do arquivo.

Opções:

u usuário
g grupo
o outros.
+ dá permissão
- retira permissão.
r ler(read)
w escrever(write)
x executar.

Outra forma de usar o chmod é utilizando as opções em formato octal ao invés de utilizar as
opções em forma de caracteres.

chown

Este comando é usado para tornar outro usuário dono de um arquivo. Para transferir a
propriedade de uma arquivo, o usuário deve ser dono do arquivo. O comando chown é seguido do
nome do novo dono e em seguida do nome do arquivo.

chgrp

Este comando é usado para mudar o grupo ao qual o arquivo pertence. Para transferir o
grupo de uma arquivo, o usuário deve ser dono do arquivo. O comando chgrp é seguido do nome do
novo grupo e em seguida do nome do arquivo.
19

Unidade 7

O editor vi
O vi é o editor típico dos sistemas UNIX e tem uma filosofia de funcionamento ligeiramente
diferente dos editores convencionais. Ele possui uma interface despojada, mas é um aplicativo
muito versátil.

Uso

Para executar o editor, use esta sintaxe:

vi arquivo

Onde arquivo é um arquivo do diretório atual ou um caminho e nome de um arquivo


presente em algum sistema de arquivos.

Uma vez iniciado, o editor entra no modo visualização e aguarda comandos do usuário. Para
entrar no modo edição que permite alterar o texto, tecle <Insert>. Enquanto estiver no modo edição
o editor não recebe comandos, para retornar ao modo visualização tecle <ESC>.

Comandos mais usados

Inserção de caracteres

i insere texto antes do caractere atual.


I insere texto no início da linha atual.
a insere texto após o caractere atual.
A insere texto no final da linha atual.
o abre uma linha abaixo da atual e insere texto nela.
O abre uma linha acima da atual e insere texto nela.

Observação: Para sair do modo de inserção de caracteres, pressione <ESC>.

Exclusão de caracteres

<del> exclui a letra anterior ao cursor (depende da configuração).


x exclui a letra sob o cursor.
nx exclui as próximas n letras.
dw exclui o restante da palavra atual (a partir do cursor).
ndw exclui as n próximas palavras.
dd exclui a linha atual.
ndd exclui n linhas a partir da atual.
u desfazer. Restaura o que foi apagado por último ou apaga o que foi inserido por
último.
20

Substituição de caracteres

s apaga a letra atual e entra no modo de inserção.


S apaga o conteúdo da linha atual e entra no modo de inserção.
r substitui a letra atual (não entra no modo de inserção).
R entra no modo de substituição (sai com <ESC>).
~ inverte a caixa da letra atual (troca maiúscula por minúscula e vice-versa).
. repete a última alteração.

Movimentação de cursor

Em algumas dessas situações as setas também funcionam.

j uma linha para baixo


k uma linha para cima
h um caracter para a esquerda
l um caracter para a direita
b volta para o início da palavra.
w avança para a próxima palavra.
0 início da linha
$ fim da linha
nG vai para a linha n (0G ou G vai para a última linha).
% usado com parênteses, colchetes e chaves para achar o par correspondente.
+n vai n linhas para baixo.
-n vai n linhas para cima.

Busca de palavras

/palavra procura palavra a partir da posição atual.


?palavra procura palavra no sentido contrário (na direção do começo do arquivo).
n procura próxima ocorrência da última palavra procurada (na mesma direção
em que foi buscada).
# destaca todas as ocorrências iguais à palavra onde o cursor está posicionado.

Operações com buffers

yy ou Y copia a linha inteira.


nyy ou nY copia n linhas.
ndd apaga n linhas (a partir da atual). Elas poderão ser recolocadas com os
comandos p e P.
p coloca após a linha atual a última linha copiada ou apagada.
P coloca antes da linha atual a última linha copiada ou apagada.

Operações de bloco

:'a,'b[operação] realiza a operação no bloco contido entre as marcas a e b.


:d exclui a linha atual (útil como operação de blocos).
:s/string1/string2/ substitui string1 por string2.
mx marca a posição atual como x (pode ser usada qualquer letra do alfabeto).
`x vai para a posição previamente marcada como x.
21

Para ler ou escrever o arquivo (ou parte dele) usam-se os comandos:

:r arquivo inserir o conteúdo do arquivo na posição atual do arquivo que está sendo
editado.
:w salva alterações.
:w abc grava arquivo com o nome abc.
:q sai se o arquivo não foi modificado.
:q! sai descartando quaisquer alterações não gravadas.
:wq sai, salvando o arquivo editado.
ZZ sai, salvando o arquivo editado.
22

Unidade 8

Shell básico
Shell é o programa responsável em interpretar as instruções enviadas pelo usuário e seus
programas ao sistema operacional (kernel). É ele quem executa comandos lidos do dispositivo de
entrada padrão (teclado) ou de um arquivo executável. É a principal ligação entre o usuário, os
programas e o kernel. O AIX possui três tipos de shell básicos que são o ksh, csh e o sh. Entre eles
o padrão é o korn shell, ou simplesmente ksh
Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-
interativa.
Na forma interativa os comandos são digitados no aviso de comando e passados ao
interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar
uma tarefa, ou próximo comando.
Na forma não-interativa são usados arquivos de comandos criados pelo usuário (scripts) para
o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador
executa os comandos do arquivo um por um e dependendo do término do comando, o script pode
checar qual será o próximo comando que será executado e dar continuidade ao processamento. Este
sistema é útil quando temos que digitar por várias vezes seguidas um mesmo conjunto de
comandos.
Existe ainda uma terceira forma que mescla as duas formas anteriores, que são os shell
scripts interativos, onde o usuário tem um conjunto de opções pré-definidas.

Metacaracteres e caracteres curinga

Metacaracteres são caracteres que tem um significado especial para o shell. Normalmente
não são usados para compor nomes de arquivos. Quando usados em nomes de arquivos, não podem
ser utilizados como início do nome. Os seguintes caracteres compõem o conjunto de
metacaracteres: ! " $ % ^ & * ( ) { } [ ] # ~ ; ' < > / ? ' \ |
Caracteres curinga são um subconjunto recursos usados para especificar um conjunto de
arquivos e/ou diretórios de uma única vez. Permitindo assim, manipular vários arquivos/diretórios
com um único comando.

Existem três tipos de curinga no AIX:

* substitui um conjunto de caracteres


? substitui um único caractere
[] substitui um conjunto de caracteres especificados dentro dos colchetes

Redirecionamento e pipe

Antes de entendermos como funciona o redirecionamento no AIX, é necessário


conhecermos as entradas e saídas (E/S) padrões. E/S padrão é o dispositivo padrão que utilizamos
para interagir com o sistema e que o sistema utiliza para nos dar as respostas do que solicitamos.
Existe uma estrutura de dados no AIX chamado descritores de arquivos, que será abordada
neste curso, mas que define entre outras coisas as saídas e entradas padrões. Existem três descritores
de arquivos para definir as entradas e saídas de um processo, que são:
23

STDIN_FILENO (stream stdin, entrada 0): entrada padrão (padrão: teclado). Usado por
todas as funções de entrada de dados que não especificarem um descritor de arquivo.
STDOUT_FILENO (stream stdout, entrada 1): saída padrão (padrão: terminal). Usado por
todas as funções de saída de dados que não especificarem um descritor de arquivo.
STDERR_FILENO (stream stderr, entrada 2): saída de erro (padrão: terminal). Usado pelas
funções que produzem mensagens de erro.

Baseado nestes três descritores acima, podemos compreender melhor como funcionam os
redirecionamentos no AIX.

Redirecionamento de entrada

Para redirecionar a entrada padrão de um comando para um arquivo/dispositivo, usamos o


metacaractere <. Este redirecionador envia dados ao comando ou ao dispositivo.

Redirecionamentos de saída

Para redirecionar a saída de um programa/comando/script para algum dispositivo ou arquivo


ao invés do dispositivo de saída padrão (terminal), usamos o metacaractere >. Quando é usado com
arquivos, este redirecionamento cria ou substitui o conteúdo do arquivo.
Para redirecionar a saída de um programa/comando/script para algum dispositivo ou final de
arquivo ao invés do dispositivo de saída padrão (terminal), usamos os metacaracteres >>. A
diferença entre este redirecionamento duplo e o simples, é se caso for usado com arquivos, adiciona
a saída do comando ao final do arquivo existente ao invés de substituir seu conteúdo.
Para enviar a saída de um comando para a entrada do próximo comando para continuidade
do processamento, utilizamos o redirecionador | (pipe). Os dados enviados são processados pelo
próximo comando, que mostrará o resultado do processamento.
A principal diferença entre o "|" e o ">", é que o pipe envolve processamento entre
comandos, ou seja, a saída de um comando é enviado a entrada do próximo e o ">" redireciona a
saída de um comando para um arquivo/dispositivo.
Para redirecionar a saída de erro de um programa/comando/script para algum dispositivo ou
arquivo ao invés do dispositivo de saída padrão (terminal), usamos os caracteres e metacaracteres
2> combinados. O número 2 é a identificação de entrada do descritor de saída de erro.

tee

Este comando envia o resultado do programa para a saída padrão (tela) e para um arquivo ao
mesmo tempo. Deve ser usado após o redirecionador pipe "|".

Combinação de redirecionamentos

Podemos combinar dois ou mais redirecionadores na mesma linha de comando. O pipe é o


redirecionador que mais comumente utilizado, pois permite formar sequências de entradas e saídas
de processamentos, criando sequências de processamento batch.

grep

É um filtro que examina os arquivos de entrada em busca de padrões. Quando uma


coincidência é encontrada, a linha que a contém é gravada na saída padrão, a menos que seja
impedido por uma das opções. Múltiplos arquivos podem ser processados concorrentemente
24

especificando-se seus nomes na linha de comando, embora usualmente seja usado em um arquivo
por vez.

Opções:

-c realiza a contagem das linhas que contém o padrão;


-i instrui o grep a não levar e conta a diferença entre letras maiúsculas e minúsculas.
-l especifica que somente devem ser exibidos os nomes dos arquivos que contém o
padrão. Útil quando se processa grande quantidade de arquivos.
-n ativa a numeração de linhas, na exibição das linhas coincidentes.
-s suprime as mensagens de erro quando são encontrados arquivos que não podem ser
lidos ou quando não são encontrados os arquivos especificados.
-v instrui o grep a imprimir na saída padrão todas as linhas que não contenham o
padrão.

Comandos em múltiplas linhas e agrupados

Podemos inserir um comando extenso em várias linhas. Esta opção é especialmente


interessante para ser usada em shell scripts onde comandos podem ser muito longos. Para
digitarmos um comando em múltiplas linhas utilizamos o metacaractere \ e logo após apertamos a
tecla return (ou enter). Quando estamos no prompt, nos é exibido um sinal de >, na frente do qual
continuamos a escrever nosso comando.

Outra opção que o shell nos dá e o agrupamento de comandos. O agrupamento de comandos


é feito quando queremos deixar vários comandos para serem executados automaticamente. Os
comandos, entretanto, não precisam ter relação alguma entre si. Para procedermos o agrupamento
de comandos, utilizamos o metacaractere ;. A cada comando completo, devemos separá-lo com
um ; do próximo comando.
25

Unidade 9

Usando variável de shell


Como já foi dito anteriormente, o shell é um interpretador de comandos interativo e constitui
a principal interface entre o usuário e o sistema AIX. O shell possui variáveis que armazenam
informações sobre o sistema. Elas devem ser inicializadas logo no início da sessão. Para
exemplificar podemos citar as variáveis $PATH, que guarda o nome dos diretórios permitidos na
busca de comandos e $HOME que define nome do diretório de entrada do usuário.
Todos os nomes de variáveis de shell são case-sensitive. Por exemplo, HOME e home não
são a mesma coisa. Por convenção, variáveis escritas em maiúsculas são usadas como o padrão do
sistema, e variáveis em minúsculas são usadas por usuários

Criando e atribuindo variáveis

Criar e atribuir um valor a uma variável é muito simples. Escreve-se o nome da variável,
seguida do sinal de = e em seguida o seu conteúdo.

Usando metacaracteres

Temos a utilização principal de quatro tipos de metacaracteres. Os metacaracteres aspas


duplas (“), aspas simples ('), crase (`) e barra invertida (\) tem importância tanto na utilização de
variáveis quanto na criação de comandos para scripts.
As aspas duplas (“) são usadas para delimitar sequências de caracteres. Os caracteres que
estiverem dentro das aspas duplas são tratados como texto, inclusive a maioria dos metacaracteres.
A função dos metacaracteres cifrão ($), crase (`) e barra invertida (\) são respeitados mesmo
delimitados pelas aspas duplas.
As aspas simples (') também são usadas para delimitar sequências de caracteres.
Diferentemente das aspas duplas, elas ignoram todos os metacaracteres contidos entre elas.
A crase (`) é usada para retornar a saída de comandos, ou seja, quando queremos atribuir à
uma variável um texto seguido de uma saída de algum comando, utilizamos a crase.
A barra invertida (\) é utilizada quando desejamos ignorar a função de um metacaractere.
Por exemplo, quando queremos ignorar a função da crase dentro de aspas duplas, transformando-as
em texto puro, utilizamos antes de cada crase uma barra invertida.
26

Unidade 10

Processos
Processos são aplicações ou comandos que estejam em execução no sistema. No AIX vários
processos podem coexistirem simultaneamente. Para organizar a execução dos processos, o sistema
determina um número para o processo (PID ou Process ID). O shell armazena seu próprio número
de processo na variável $$. O número do processo é extraído da tabela de processos.

Listando processos

Para identificar quais processos estão sendo executados, utilizamos o comando ps, que será
descrito posteriormente em detalhes.

Relacionamento entre processos

Processos são organizados numa hierarquia pais/filho. Quando se inicia um processo, seja
ele uma aplicação ou um comando, é um processo pai. Um processo filho é o produto do processo
pai. Um processo pai pode ter vários processos filho, mas um processo filho só pode ter um pai.
Quando um processo pai é iniciado, o PPID (PPID ou Parent Process ID – ID do processo
pai) na lista de processos é igual ao número PID do próprio processo. Já um processo filho, quando
é iniciado, recebe do sistema um número de processo e se relaciona com o processo pai através do
PPID, que receberá o mesmo valor do PID processo pai.

Variáveis e processos

Quando utilizamos variáveis dentro de processos, elas pertencem ao processo de forma


exclusiva. A este tipo de variável chamamos de variáveis locais. Estas variáveis só podem ser
acessadas pelo processo que a criou.
Entretanto, os processos podem criar variáveis acessíveis por outros processos. Chamamos
estas variáveis de variáveis globais. Este tipo de variável é muito utilizado quando há necessidade
de comunicação entre processos, ou seja, quando processos diferentes dependem dos dados
processados por ambos.

export

O comando export transforma variáveis locais em globais, ou seja, permite que qualquer
processo em execução possa trabalhar com a variável em questão. Para se exportar uma variável
utiliza-se o comando export seguido do nome da variável=valor da variável.

Shell script

Um shell script é um arquivo com uma coleção de comandos a serem executados em


sequência, de forma interativa ou não interativa. Shell scripts interativos são aqueles normalmente
dotados de uma interface que permite que se realizem operações de acordo com as opções do
usuário. Shell scripts não interativos, também chamados de batch scripts, são aqueles que uma
sequência de comandos pré-determinada é executada.
27

Executando shell scripts

A execução de scripts se dá de duas maneiras básicas. A primeira maneira é invocando um


shell seguido do nome do shell script. A segunda maneira, e a mais comumente usada, é a
invocação direta do arquivo de script, que neste caso já terá definido internamente qual será o shell
a ser invocado para a execução dos comandos.
Para serem executados, os shell scripts devem ter permissão de execução.
28

Unidade 11

Controlando processos
ps

O comando ps nos permite ver quais os processos estão em execução e também nos mostra
qual usuário executou o processo, hora que o processo foi iniciado, entre outras informações.
Algumas vezes é útil ver quais processos estão sendo executados no computador, pois assim
podemos saber quais processos podemos interferir.

Opções:

-e exibe informações sobre todos os processos em execução no sistema


-f exibe além das informações básicas do ps, o nome do usuário ao qual o processo
pertence, o PPID, a hora do início da execução de cada processo
-l exibe além das informações básicas do ps, o ID do usuário, PPID e prioridades para
cada processo. Diferente da opção -f, exibe somente o nome do processo ao invés do
caminho completo.

Iniciando processos

Processos podem ser iniciados de diferente formas. Podem ser invocados a partir de outros
processos ou pela própria vontade do usuário. Processos podem demorar segundos ou horas para
serem finalizados. Entretanto, enquanto um processo é executado, o usuário pode desejar executar
outros processos paralelamente, ou simplesmente ter seu terminal livre.
Existem dois estados para a execução de um processo, que são: primeiro plano (Foreground)
e segundo plano (Background). Processos em foreground são aqueles que estão em execução e são
exibidos no terminal, e que o usuário tem controle total sobre sua execução. Processos em
background são aqueles que estão em execução, entretanto o usuário não interage com eles, ou seja,
que não estão em exibição.

Finalizando processos

Algumas vezes processos podem demorar a serem executados. E em alguns casos o usuário
pode necessitar de terminar um processo antes do fim de sua execução. Os processos em execução
podem ser interrompidos através de combinação de teclas ou através do comando kill.
Para cancelarmos um processo em foreground, podemos utilizar a combinação de teclas
ctrl+c ou o comando kill, entretanto o processo pode ignorar a combinação de teclas ctrl+c. Neste
caso, o processo só pode ser interrompido com o comando kill. Para os processos em background só
são possíveis serem cancelados através do comando kill.

kill

O comando kill é utilizado para cancelar (matar) um processo. Sua utilização se dá digitando
o comando kill seguido de sinal de sistema (não obrigatório) e o PID do processo. Quando é
digitado o comando kill sem o sinal do sistema, é informado ao processo que ele deva finalizar-se
por conta própria. Com o comando kill usamos o sinal de sistema “-9”, que interrompe
29

imediatamente o processo.
Para cancelar um processo o usuário precisa ser o dono do processo ou o usuário root para
terminá-lo. Você pode verificar se o processo foi finalizado através do comando ps.

Liberando o terminal

Se o processo travar o terminal, e a combinação de teclado ctrl+c não funcionar, o usuário


deve entrar em outro terminal e matar o processo com kill -9 seguido do nome do processo.

Sinais

Os sinais são usados para informar ao comando kill o que fazer com o PID especificado no
comando. Por padrão, o comando kill envia um sinal de 15 para um processo.
Para enviar um sinal diferente para o processo use kill -num PID onde num é o sinal que
você desejar para enviar.
O sinal HANGUP (01) é enviado para um processo quando o processo pai morre, por
exemplo, se você fizer logoff enquanto um processo em segundo plano está em execução.

Sinais do sistema

Sinal Valor Ação Comentário

HUP 1 A Travamento detectado no terminal de controle ou finalização do


processo controlado
INT 2 A Interrupção através do teclado
QUIT 3 B Sair através do teclado
KILL 9 AC Sinal de destruição do processo
TERM 15 A Sinal de Término

As letras da coluna Ação tem o seguinte significado:

A A ação padrão é terminar o processo.


B A ação padrão é terminar o processo e mostrar o core.
C O sinal não pode ser ignorado.

Interrompendo processos

Algumas vezes precisamos interromper momentaneamente um processo para executar outra


tarefa, mas não desejamos finalizar o processo, ou quando queremos colocar um processo para
executar em background. Quando queremos colocar um processo em pausa para continuar sua
execução num outro momento mais oportuno, utilizamos a combinação de teclas ctrl+z. Isto faz
com que o processo em execução fique em pausa, aguardando ser reativado.

bg, fg e jobs

O comando bg permite fazer um processo executando em primeiro plano ou parado,


executar em segundo plano. Para fazer um processo em primeiro plano executar em segundo, é
necessário primeiro interromper a execução do comando com ctrl+z. Será exibido o número do
processo interrompido. Use este número com o comando bg para iniciar a execução do comando em
30

segundo plano.
O comando fg permite fazer um processo executando em segundo plano ou parado, voltar a
ser executado em primeiro plano. Você deve usar o comando jobs para saber o PID do processo
executando em segundo plano ou interrompido. Este número será informado ao comando fg para
ativa-lo em primeiro plano.
O comando jobs permite fazer um programa rodando em segundo plano ou parado, rodar em
primeiro plano. Você deve usar o comando jobs para o número do processo rodando em segundo
plano ou interrompido, este número será utilizado com o comando fg para ativa-lo em primeiro
plano.

nohup

O nohup, ou NO HangUP, assumirá o controle de um processo em segundo plano quando o


processo tenha sido invocado. Ele informa ao processo para ignorar os sinais 01 e 03 (travamento e
sair). Isso permitirá que o processo continue executando, se o usuário fizer logoff do sistema.
O comando é utilizado digitando-se nohup seguido do que se deseja executar. É utilizado
normalmente junto com o sinal de execução em background.

Daemons

No AIX um daemon, acrônimo de Disk And Execution MONitor (Monitor de Execução e de


Disco), é um processo que executa em background, ao invés de ser controlado diretamente por um
usuário. Tipicamente, daemons têm nomes que terminam com a letra "d". Por exemplo, syslogd é o
daemon que gerencia o log do sistema ("system log").
O AIX inicia daemons durante a inicialização do sistema. Os daemons muitas vezes têm o
propósito de responder a requisições de rede, atividades de hardware, ou outros programas.
Daemons também podem executar muitas outras tarefas, como executar tarefas em horários pré-
determinados (como o cron).
31

Unidade 12

Utilitários do AIX
find

Procura por arquivos/diretórios no disco. find pode procurar arquivos através de sua data de
modificação, tamanho, etc., através do uso de opções.

Opções:

-name arquivo indica o arquivo a ser procurado


-user usuário indica que o arquivo tem que pertencer a o usuário indicado
-group grupo indica que o arquivo tem que pertencer a o grupo indicado
-mtime n procura os arquivos que foram modificados em exatos n dias

grep

Procura por um padrão de texto. É usado digitando grep seguido do texto a ser procurado,
seguido do nome do arquivo seguido opcionalmente de opções.

Opções:

-v exibe as linhas onde não foram encontrados o texto.


-c exibe somente a quantidade de ocorrências encontradas
-l exibe somente os nomes dos arquivos onde foram encontrados
-n numera as linhas encontradas
-i ignora se as letras estão em maiúsculas ou minúsculas ao comparar

sort

Organiza as linhas de um arquivo texto ou da entrada padrão. A organização é feita por


linhas e as linhas são divididas em campos.

Opções:

-b Ignora linhas em branco.


-d Somente usa letras, dígitos e espaços durante a organização.
-f Ignora a diferença entre maiúsculas e minúsculas.
-r Inverte o resultado da comparação.
-n Caso estiver organizando um campo que contém números, os números serão
organizados na ordem aritmética.

head e tail

O comando head mostra as linhas iniciais de um arquivo texto. Já o comando tail mostra as
linhas finais de um arquivo texto. Os dois comandos utilizam as mesmas opções.
32

Opções:

-c [numero] Mostra o [numero] de bytes do inicio do arquivo ou do fim do arquivo.


-n [numero] Mostra o [numero] de linhas do inicio do arquivo. Caso não for especificado, o head
mostra as 10 primeiras linhas e o tail mostra as 10 últimas linhas.

tn ou telnet

Tanto o tn quanto o telnet realizam a mesma operação. São usados para acessar remotamente
a linha de comando de outro sistema AIX. Utilizam-se estes comandos digitando tn ou telnet
seguido do nome do sistema remoto.

ftp

ftp é a aplicação que permite que façamos transferência de arquivos. Assim como o tn/telnet,
utilizamos o comando ftp digitando ftp seguido do nome do sistema remoto. Os comandos mais
usados no ftp são:

ls Lista arquivos do diretório atual.


cd [diretório] Entra em um diretório.
get [arquivo] Copia um arquivo do servidor ftp para o computador local. O arquivo
é gravado, por padrão, no diretório onde o programa ftp foi executado.
hash [on/off] Por padrão esta opção está desligada. Quando ligada, faz com que o
caracter "#" seja impresso na tela indicando o progresso do download.
mget [arquivos] Semelhante ao get, mas pode copiar diversos arquivos e permite o uso
de curingas.
send [arquivo] Envia um arquivo para o diretório atual do servidor FTP (você precisa
de uma conta com acesso a gravação para fazer isto).
prompt [on/off] Ativa ou desativa a pergunta para a cópia de arquivo. Se estiver como
off assume sim para qualquer pergunta.

tar

Comando que é utilizado para fazer backup e também para compactar arquivos. As opções
principais do tar são:

-c Cria um novo arquivo .tar


-t Lista o conteúdo de um arquivo .tar
-v Mostra os nomes dos arquivos enquanto são processados
-f Usa o arquivo especificado para gravação ou o dispositivo /dev/rmt0
-x Extrai arquivos gerados pelo tar
33

Unidade 13

Utilitários do AIX – parte 2


xargs

Este comando processa uma lista de argumentos e executa um outro comando qualquer
baseado nesta lista de argumentos.

Opções:

-a [arquivo] processa a lista de argumentos do arquivo


-t não exibe as linhas de comando na saída padrão

Outra forma de se passar uma lista de argumentos ao xargs usando redirecionadores com o
arquivo que contém os argumentos ao invés de se utilizar a opção -a.

which, whereis e whence

Os comandos which, whereis e whence exibem a localização de comandos, ou seja, onde os


comandos são armazenados no sistema operacional. Os três comandos tem o mesmo resultado,
entretanto as saídas são ligeiramente diferentes.

file

O comando file exibe uma descrição do arquivo ou aplicação. Este comando só funciona se
o arquivo ou aplicação tiverem uma string especial que os identifique.

diff

Compara dois arquivos e mostra as diferenças entre eles. O comando diff é usado somente
para a comparação de arquivos em formato texto. As diferenças encontradas podem ser
redirecionadas para um arquivo que poderá ser usado pelo comando patch para aplicar as alterações
em um arquivo que não contém as diferenças. Isto é útil para grandes textos porque é possível
copiar somente as modificações.
É usado digitando-se diff seguido de opções (não é obrigatório) seguido dos nomes dos
arquivos a serem comparados.

Opções:

-a indica as linhas que devem ser adicionadas ao primeiro arquivo para obter o mesmo
formato do segundo arquivo
-d indica as linhas que devem ser deletadas do segundo arquivo
-c indica as linhas que devem ser alteradas entre o primeiro e o segundo arquivos

cmp

Compara dois arquivos de qualquer tipo (binário ou texto). Os dois arquivos especificados
34

serão comparado e caso exista diferença entre eles, é mostrado o número da linha e byte onde
ocorreu a primeira diferença na saída padrão. É usado digitando-se cmp seguido dos dois arquivos a
serem comparados e das opções.

Opções:

-l Mostra o número do byte (hexadecimal) e valores diferentes de bytes (octal) para


cada diferença.
-s Não mostra nenhuma diferença, só retorna o código de saída do programa.
35

Unidade 14

Shell script básico


O shell do AIX é uma poderosa ferramenta que traz ao usuário muita flexibilidade.
Muita gente desconhece que o shell tem uma poderosa linguagem de script embutida nele.
Diversas pessoas utilizam-se desta linguagem para facilitar a realização de inúmeras tarefas
administrativas em um sistema AIX, ou até mesmo para criar seus próprios programas. Para quem
gosta de usar a criatividade para criar coisas e facilitar o uso do sistema no dia-a-dia, o shell-script é
uma importantíssima ferramenta.
Uma das vantagens do shell-script é que ele não precisa ser compilado, ou seja, não precisa
ser transformado em código de máquina. É necessário apenas criar um arquivo texto qualquer e
inserir comandos nele.
Basta tornar o arquivo executável, utilizando o comando chmod.

Conceitos básicos de shell Script

Um shell script nada mais é que uma sequências de comandos a serem executados.
Entretanto, algumas regras devem ser definidas dentro de um shell script. No AIX, uma shell script
começa com a definição de qual o shell deverá ser usado. Temos no sistema alguns shells, cada um
com sua particularidade, mas todos funcionando basicamente da mesma forma. Os três shells do
AIX são o Bourne shell (sh), o Korn shell (ksh) e o C shell (csh). O shell padrão do AIX é o ksh, e
quando não definimos o shell, ele utiliza o shell padrão para executar o script.
A linha que identifica qual shell será usado é precedida de #! e seguida do caminho do shell,
como por exemplo #!/bin/sh. Caso o script não conte com esta linha e não seja para ser executado
com o shell padrão, podemos ainda invocá-lo digitando o nome do shell seguido do nome do
arquivo de script.
Em seguida, colocam-se os comandos e toda a estrutura do shell.

Para este curso de shell script básico, utilizaremos material específico.

Você também pode gostar