segunda-feira, 19 de abril de 2010

Comandos que tratam Arquivos – Parte 8

grep

O comando grep é um filtro que pesquisa uma cadeia de caracteres em um arquivo, exibindo os registros que contenham o argumento fornecido.

SINTAXE:

grep [-i –v –c –l –n ] string arquivo

DESCRIÇÃO:

-i

ignora o tipo de letra (maiuscula ou minuscula) na comparação

-v

Exibe todas as linhas que não contenham o argumento

-c

Exibe apenas uma contagem das linhas selecionadas

-l

Exibe os nomes dos arquivos nos quais foi encontrado o argumento

-n

cada linha exibida é precedida do seu nº de linha no arquivo

string

string a ser pesquisada

arquivo

arquivos onde serão feitas as pesquisas

COMENTARIOS:

Se mais de um arquivo for especificado para pesquisa, o comando exibira os nomes dos arquivos que contenham linhas que casem com a cadeia de caracteres.

Alguns caracteres podem ser utilizados como expressões regulares para localizar textos (diferente dos metacaracteres que procuram nomes de arquivos). São eles:

[ ] procura por um dos caracteres dentro dos colchetes
- delemita intervalo:
[0 - 9] caracteres de 0 à 9
[a - z] caracteres de a à z
[a-z A-Z] caracteres de a à z ou A à Z
^ o texto deve estar no inicio da linha
^a – a linha
^[0-9] a linha deve iniciar com numeros de 0-9
$ o texto deve estar no final da linha (como ultimo caractere)
$a – a linha deve terminar com o caractere a
. coincide com qualquer caractere
d. – o texto deve ter uma palavra de 2 letras começando com a letra “d” e qualquer outro caractere
[^] O texto não deve coincidir com os caracteres de dentro dos colchetes
^[^0-9] – caracteres que não sejam numeros no inicio do texto
^[^0-9]*$ – caracteres que não sejam numeros do inicio ao final do texto

EXEMPLOS:

- Pesquisas as linhas do arquivo “poema” que iniciem com o caracter #

isis:~ # grep ^# poema
isis:~ #

- Pesquisa as linhas do arquivo poema que iniciem os caracteres A – Z ou a – z

isis:~ # grep "^[A - Z a - Z]" poema
a menina quando dorme
isis:~ #

- Pesquisa a palavra bola no arquivo poema

isis:~ # grep bola poema
isis:~ #

- Encontrar o numero de usuarios root conectados ao sistema:

isis:~ # who |grep root |wc -l
1
isis:~ #

quarta-feira, 14 de abril de 2010

Operador SysDate

IBM Informix Guide to SQL: Syntax

O operador SYSDATE retorna o valor DATETIME atual do relógio do sistema. SYSDATE é idêntico ao operador CURRENT, exceto que a precisão padrão SYSDATE é YEAR TO FRACTION(5), enquanto que a precisão padrão do CURRENT é YEAR TO FRACTION(3).

Em plataformas Windows® que não suportam uma escala de segundo maior que FRACTION(3), SYSDATE é na verdade um sinônimo para o operador CURRENT.

Você pode usar SYSDATE em qualquer contexto em que o operador CURRENT é válido.

As instruções SQL no exemplo a seguir usa o operador SYSDATE para especificar os valores padrão de duas colunas DATETIME de uma tabela do banco de dados, e para inserir uma nova linha na tabela:

CREATE TABLE tab1 (
id SERIAL,
value CHAR(20),
time1 DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE,
time2 DATETIME YEAR TO SECOND DEFAULT SYSDATE YEAR TO SECOND
);

INSERT INTO tab1 VALUES (0, 'description', SYSDATE, SYSDATE);
A consulta a seguir acessa a tabela que foi criada no exemplo acima:


SELECT SYSDATE AS sysdate, * FROM tab1;


Os resultados são sensíveis à data e hora quando as declarações  INSERT e o SELECT são emitidos, mas a consulta pode retornar esses valores em 23 de setembro de 2007:


sysdate  2007-09-23 21:30:23.00000
id 1
value description
time1 2007-09-23 21:29:27.00000
time2 2007-09-23 21:29:27


A próxima consulta acessa a mesma tabela, usando SYSDATE na cláusula WHERE como um argumento para a função DAY:


SELECT *, DAY(time1) AS day FROM tab1 
WHERE DAY(time1) = DAY(SYSDATE);


A consulta retorna o seguinte valor:


id       1
value description
time1 2007-09-23 21:29:27.00000
time2 2007-09-23 21:29:27
day 23


Somente o Informix Dynamic Server suporta o SYSDATE. Exceto por seu nome e sua precisão,  o Operador CURRENT também descreve o Operador SYSDATE.

Comandos que Tratam Arquivos – Parte 7

dircmp (hp-ux)

Compara 2 diretorios e o conteudo de seus arquivos em comum.

SINTAXE:

dircmp –d –s dir1 dir2

DESCRIÇÃO:

-d exibe as diferenças entre os arquivos comuns
-s não lista os nomes dos arquivos que tenham nomes identicos
dir1 dir2 diretorios cujos arquivos serão comparados

COMENTARIOS:

O comando dircmp caminha em paralelo entre 2 diretorios. Para cada arquivo do diretorio fonte, o comando procura o arquivo correspondente no diretorio destino e compara.

EXEMPLOS:

- Comparação de arquivos entre 2 diretorios

isis:~ # dircmp curdir apostdir

Será exibido um resumo das diferenças entre os diretorios cursodir e apostdir. Serão apresentados primeiro os arquivos existentes em um diretorio e não no outro e posteriormente os arquivos existentes nos dois diretorios.

od

Faz dump de arquivos. Lista conteudo de arquivos em octal (default), hexadecimal ou decimal.

SINTAXE:

od [ –b c d o x ] [ arquivo ]

DESCRIÇÃO:

-b interpreta os bytes em octal
-c interpreta os bytes em caracteres ASCII

Certos caracteres não graficos aparecem no formato de “escape da linguagem c: nulo = \0, retrocesso = \b, alimentaçao de formulario = \f, nova linha = \n, retorno do carro = \r, caractere de tabulação = \t.
-d interpreta palavras em decimal
-o interpreta palavras em octal (default)
-x interpreta palavras em hexadecimal

Exemplo:

isis:~ # od poema
0000000 060542 060564 064564 064156 020141 072561 067141 067544
0000020 067040 071541 062543 062412 070163 066141 060550 071040
0000040 066541 071541 070040 066145 020157 064143 067541 060412
0000060 066440 067145 067151 020141 072561 067141 067544 062040
0000100 071157 062555 070012 062557 060440 066440 067541 067040
0000120 020157 067543 060562 060543 005157
0000132
isis:~ #

isis:~ # od -cx poema
0000000   b   a   t   a   t   i   n   h   a       q   u   a   n   d   o
        6162 6174 6974 686e 2061 7571 6e61 6f64
0000020       n   a   s   c   e  \n   e   s   p   a   l   h   a       r
        6e20 7361 6563 650a 7073 6c61 6168 7220
0000040   a   m   a   s       p   e   l   o       c   h   a   o  \n   a
        6d61 7361 7020 6c65 206f 6863 6f61 610a
0000060       m   e   n   i   n   a       q   u   a   n   d   o       d
        6d20 6e65 6e69 2061 7571 6e61 6f64 6420
0000100   o   r   m   e  \n   p   o   e       a       m   a   o       n
        726f 656d 700a 656f 6120 6d20 6f61 6e20
0000120   o       c   o   r   a   c   a   o  \n
        206f 6f63 6172 6163 0a6f
0000132
isis:~ #

quinta-feira, 8 de abril de 2010

Comandos que Tratam Arquivos – Parte 6

cmp

Compara dois arquivos

SINTAXE:

cmp [ -l ][ –s ] arquivo1 arquivo2

DESCRIÇÃO:

-l

exibe, para cada diferença, o nº do byte em decimal e os bytes diferentes em octal.

-s

retorna sometne codigo para o Shell:
0 – arquivos são identicos
1 – arquivos são diferentes
2 – arquivos são inacessiveis ou ausentes
Esses codigos de retorno podem ser visualizados ecoando-se a variavel Shell $?
arquivo1 arquivos que serao comparados
arquivo2 arquivos que serao comparados

COMENTARIOS:

Se a opção –l e –s forem omitidas e os arquivos forem iguais nenhuma informação sera exibida. Se os arquivos forem diferentes, sera exibido o nº do byte e o nº da linha que deu a dirença.

EXEMPLOS:

isis:~ # cmp poema poesia
isis:~ #

isis:~ # cmp poema poesia
poema poesia differ: char 74, line 4
isis:~ #

isis:~ # cmp -l poema poesia
74 141  40
75  40 155
76 155 141
77 141 157
78 157  40
79  40 156
80 156 157
81 157  40
82  40 143
83 143 157
84 157 162
85 162 141
86 141 143
87 143 141
88 141 157
89 157  12
cmp: EOF on poesia
isis:~ #

isis:~ # cmp -s poema poesia
isis:~ # echo $?
1
isis:~ #

diff

Exibe a diferença entre 2 arquivos.

SINTAXE:

diff [ –b ] arquivo1 arquivo2

DESCRIÇÃO:

-b

despresa brancos finais, espaçoes e tabulações para a comparação
arquivo1 arquivos que serão comparados
arquivo2 arquivos que serão comparados

COMENTARIOS:

Outras opções alem de –b podem ser encontrados no manual de referencia do Unix.

No sistema AIX e HP-UX, se os arquivos especificados forem diretorios o comando diff sorteia o conteudo do diretorio e então executa o comando diff nos arquivos textos comuns aos diretorios, exibindo as diferenças que existirem entre os arquivos e os sub-diretorios não comuns aos diretorios comparados.

A exibição das diferenças entre 2 arquivos comuns é dada da seguinte forma:

linhas do arquivo1

ação

linhas do arquivo2

n1,n2

a
c
d

n3,n4

da linha n1 ate a linha n2 ( ou so a linha n1 se não houver n2 ) do primeiro arquivo, mude ( c ) acrescente ( a ) ou delete ( d ) para as linhas n3 ate n4 do segundo arquivo.

EXEMPLOS:

isis:~ # diff poema poesia
4c4
< poe a mao no coracao
---
> poe  mao no coracao
isis:~ #

isis:~ # diff carta carta1
2a3
> sobre o Unix
isis:~ #

quarta-feira, 7 de abril de 2010

Comandos que Tratam Arquivos – Parte 5

link  (HP-UX)

Estabelece ligações de diretorios.

SINTAXE:

link diretorio1 diretorio2

DESCRIÇÃO:

diretorio1

é o diretorio original que sera ligado a outro diretorio

diretorio2

é o diretorio que sera ligado ao diretorio de origem

COMENTARIOS:

O link de diretorios estabelece caminhos alternativos para um mesmo arquivo, ou para um grupo de arquivos

EXEMPLOS:

isis:~ # link /tmp /root/tmp

unlink

Retira as ligações

SINTAXE:

unlink diretorio

DESCRIÇÃO

diretorio/arquivo diretorio ou arquivos a ser desligado de outros diretorios ou arquivos.

COMENTARIOS:

O comando unlink não remove diretorio ou arquivos apenas retira as ligações. A ultima entrada do diretorio tem que ser removida com o comando rmdir.

EXEMPLO:

isis:~ # unlink tmp

rm

Remove arquivos

SINTAXE:

rm [ –f –i –r – ] arquivo

DESCRIÇÃO:

-f não exibe mensagem, força a removação
-i envia mensagem antes de remover cada arquivo
-r permite a remoção recursiva do diretorio e seus conteudos quando o parametro arquivo for um diretorio.
-- indica que o argumento seguinte deve ser tratato como arquivo. Isto permitira especificar nomes de arquivos iniciando com sinal “-“.

COMENTARIOS:

O comando rm remove as entradas dos arquivos do diretorio. Se a entrada for o ultimo link para o arquivo, então o arquivo sera removido.

EXEMPLOS:

isis:~ # rm carta

- Removendo arquivos um a um

isis:~ # rm –i docdir/*

Apos a exibição do nome de cada arquivo, tecle <Y> para deletar o arquivo ou <ENTER> para passar ao proximo.

wc

Conta o numero de caracteres, palavras e registros existentes em arquivos tipo texto e imprime os resultados obtidos.

SINTAXE:

wc [ –c –l –w ] arquivo

DESCRIÇÃO:

-c direciona a contagem para bytes
-l direciona a contagem para linhas
-w direciona a contagem para palavras
arquivo arquivos(s) a ser(em) tratato(s) pelo wc. Se não for especificado, sera assumido a entrada padrao.

EXEMPLOS:

isis:~ # wc poema arq_novo
4 16 90 poema
0  0  0 arq_novo
4 16 90 total
isis:~ #

O arquivo poema possui 4 linhas 16 palavras e 90 caracteres. O arquivo arq_novo é um arquivo vazio.

terça-feira, 6 de abril de 2010

Comandos que Tratam Arquivos – Parte 4

cp

Executa a copia de arquivos

SINTAXE:

cp [-- -r] arquivo1 arquivo2

DESCRIÇÃO

--

Indica que a informação a seguir é um nome de arquivo. É usado para arquivos cujos nomes inciam com sinal “-“.

-r

copia diretorios. Quando o parametro dir-fonte for um diretorio o parametro dir-destino obrigatoriamente tem que ser um diretorio.
arquivo1 Arquivos que sera copiado
arquivo2 Arquivos que recebera a copia

EXEMPLOS:

- Copia do arquivo carta para carta.bak no diretorio corrente:

isis:~ # cp carta carta.bak

- Copia do arquivo carta para o diretorio novo:

isis:~ # cp carta /home/novo

- Copia um diretorio para outro diretorio:

isis:~ # cp –r dir01 dir01.bak

ln

O comando ln (link) é usado para se estabelecer ligações adicionais de um arquivo a outro ou de um arquivo a um diretorio.

SINTAXE:

ln arquivofonte arquivodestino

DESCRIÇÃO:

arquivofonte

arquivo original que sera ligado a um arquivo ou a um diretorio.

arquivodestino

pode ser o nome de um arquivo ou o nome de um diretorio.

COMENTARIOS:

O comando ln encadeia um arquivo com um novo nome de arquivo destino ou com o mesmo nome de arquivo em um diretorio ja existente.

EXEMPLO:

- Criar um link para o arquivo cap1 que se encontra no diretorio /usr, supondo que esse seja o diretorio corrente do usuario

isis:~ # ln cap1 livro

Este comando encadeia o arquivo cap1 com um novo nome “livro” são 2 nomes de arquivos que apontam para o mesmo i-node ( ou seja, para o mesmo arquivo ). Qualquer troca feita em um, aparecera no outro. Se um dos arquivos for removido, o outro ainda permanecera.

Esses arquivos cap1 e livro ficariam relacionados da seguinte forma:

NOME ARQUIVO

ENDEREÇO I-NODE

cap1 92
livro 92

i-node 92

tipo do arquivo
numero de links – 2
identificação do dono
tamanho do arquivo
data de criação atualização e ultimo acesso
endereço da area de dados
.
.
.
outras informações

area de dados

……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
…………………………………………………………

O conteúdo do arquivo pode ser acessado por 2 pathnames:

/usr/cap1

/usr/livro

Observe que no i-node do arquivo, aparece uma nova informação, o numero de links, que nesse caso é igual a 2, ou seja; esse i-node esta ligado a 2 arquivos.

segunda-feira, 5 de abril de 2010

Comandos que Tratam Arquivos – Parte 3

tail

Exibe, na saida padrão, o conteudo de um arquivo, a partir do ponto especificado ( por default, são exibidas as 10 ultimas linhas).

SINTAXE:

tail [+/- numero [ l b c ] ] [-r]

DESCRIÇÃO:

+ / – numero

indica o deslocamento dentro do arquivo (default = 10 ultimas linhas)

l  b c

inicia a leitura a partir da l, do bloco b, ou do caracter c, a partir do inicio ou do final do arquivo, conforme o indicador de deslocamento (+ ou –) especificado.
arquivo arquivo que sera tratado pelo tail

EXEMPLOS:

- Exibição das 10 ultimas linhas do arquivo messages:

isis:/var/log # tail messages

- Exibição das ultimas 20 linhas do arquivo messages:

isis:/var/log # tail -20 messages

- Exibição do arquivo poema a partir do 5º caractere

isis:/var/log # tail +5c messages

mv

Move arquivos para um mesmo diretorio renomeando-o, ou move arquivos de um diretorio para outro diretorio renomeando-os ou mantendo o mesmo nome.
Permite também renomear diretorios, desde que estejam abaixo da mesma path.

SINTAXE:

mv [—] arquivo fonte arquivo destino

DESCRIÇÃO:

-

Interpreta os argumentos seguintes como arquivos. isto permite a criação de arquivos com nomes inciando com o sinal “-“.
arquivo fonte nome do arquivo que sera movido ou nome do diretorio cujos aruivos serão movidos
arquivo destino nome do arquivo que recebera o arquivo fonte ou nome do diretorio que recebera os arquivos fontes

EXEMPLOS:

- Renomeando arquivos
isis:/tmp # mv pc_audit_vdp.out arq_tmp.lst

- Movendo todo o diretorio carta para o diretorio arquivo
isis:/tmp # mv carta arquivo

- Movendo o arquivo livro do diretorio corrente para o diretorio documentos, mantendo o nome do arquivo
isis:/tmp # mv livro documentos

- Movendo varios arquivos para um novo diretorio
isis:/tmp # mv cap1 cap2 cap3 /home/manual

- Movendo todos os arquivos do diretorio corrente que iniciem com cap para o diretorio livro
isis:/tmp # mv cap*.*

- Movendo todos arquivos do diretorio manual para o diretorio corrente (.)
isis:/tmp # mv /home/manual/* .

- Movendo o arquivo “-arq” para o arquivo livo
isis:/tmp # mv -- -arq lixo

quinta-feira, 1 de abril de 2010

Comandos que Tratam Arquivos – Parte 2

touch

Cria arquivos vazios, ou modifica as datas de um arquivo

SINTAXE:

touch [-amc] [-t [yy]MMDDhhmm] arquivo

DESCRIÇÃO:

-a atualiza a data do ultimo acesso do arquivo
-m atualiza a data da ultima modificação do arquivo
-c atualiza a data de criação do arquivo
-t atualiza a hora e data especifica

yy – ano
MM – mes
DD – dia
hh – hora
mm – minuto

COMENTARIO:

Se as opções forem omitidas as tres datas (criação, modificação e acesso) serão alteradas para a data/hora do sistema.

Se o arquivo referenciado não existir sera criado um arquivo vazio.

EXEMPLOS:

- Para criar um arquivo vazio

isis:~ # touch arq_novo
isis:~ #

- Para atualizar a hora do arquivo

isis:~ #  touch -t 1004010840 arq_novo
isis:~ #

pg (HP-UX)

Exibe o conteudo do arquivo tela a tela, no linux o comando less é similar.

SINTAXE:

pg [-c –p –s +linha –linha +/TEXTO/] arquivo

DESCRIÇÃO:

-c limpa a tela e coloca o cursor na 1ª posição antes de iniciar a impressão paginada.
-p string utiliza string como prompt do comando
-s exibe os prompts em highlights
+linha inicia a exibição a partir da linha especifica
-numero especifica o numero de linhas da tela (default = 23)
+/TEXTO/ inicia a listagem a partir da 1ª linha em que for encontrado o texto especificado

COMENTARIOS:

O comando pg le o arquivo especificado no parametro e o imprime na saida padrão tela a tela. Se for especificado “-“ como nome do arquivo ou se nao for utilizado argumentos, a leitura do arquivo sera a entrada padrao. A cada tela apresentada, é exibido um prompt. Nesse prompt, pode-se teclar <ENTER> para visualizar uma nova tela, ou digitar uma das seguintes opções:

pagina exibe uma pagina especifica
+numero exibe o numero da pagina apos a pagina corrente
-numero exibe o numero da pagina anterior a pagina corrente
| scroll de tela de 1 linha
+numero | scroll de tela (a frente) com o nº de linhas especificado
-numero | scroll de tela (para tras) com o nº de linhas especificado
CRTL-L exibe a tela atual novamente. O caracter “.” tem o mesmo efeito
$ exibe a ultima tela do arquivo
q sai do comando pg e retorna ao prompt do sistema

Existem outras opções que podem ser encontradas no manual de referencia do HP-UX.

EXEMPLOS:

- Visualização do arquivo carta.txt pagina a pagina

isis:~ # pg carta.txt

- Visualização do arquivo carta.txt em paginas de 10 linhas

isis:~ # pg –10 carta.txt

- Visualização do conteudo do diretorio corrente pagina a pagina.

isis:~ # ls –l |pg

More

Exibe o conteudo de um arquivo tela a tela, informando a porcentagem listada.

SINTAXE:

more [-d –n +n +texto] arquivo

DESCRIÇÃO:

-d exibe a mensagem “hit space to continue, Del to abort” de cada tela
-n especifica o numero de linhas da tela
+n inicia na linha “n”
+/texto inicia 2 linhas antes da linha que contem o expressao inidicada em texto
arquivo nome do arquivo que se quer visualizar

Outros argumentos podem encontrados no manual de referencia do Unix.

COMENTARIOS:

O comando more exibe o conteudo de arquivos tela a tela. Apos cada tela aparece no video a palavra “more”. neste ponto, pode-se fazer o uso dos seguintes subcomandos:

h ou ? fornece um help do comando
<ENTER> exibe um nova linha
<ESPACO> exibe uma nova tela
= exibe o numero de linha atual
:f exibe o nome do arquivo corrente e o numero da linha
. repete o ultimo comando
q sai do comando e retorna ao prompt do sistema

Outros subcomandos podem ser encontrados no manual de referencia do Unix.

EXEMPLO:

isis:~ # more /etc/service

isis:~ # more –10 service