Então pessoal o comando do qual o Igor passou para descobrrimos o que faz é o seguinte:
Comando:
:%s/abc/def/
Serve para fazer o seguinte:
Ele é uma expressão no Vi que faz a substituição da primeira palavra pela segunda mais em todos texto. Tipo todoas as palavras abc serão transcrevidas para def.
Bem no mais é isso até amanhã pessoal.
domingo, 1 de agosto de 2010
sábado, 31 de julho de 2010
The world of Vi (ou pelo menos um pouquinho)
Introdução ao Vi
O VI é um dos editores de texto mais populares nos sistemas de tipo Unix (com Emacs e Pico) apesar da sua ergonomia muito limitada. Sob Linux, existe uma versão livre de Vi chamada Vim (VI Improved). VI (pronuncia-se Vihaie) é um editor inteiramente em modo texto, o que significa que cada uma das ações se faz com a ajuda de comandos texto. Este editor, embora pouco prático à primeira vista, é muito potente e pode ser muito útil no caso de falha do interface gráfico.
A sintaxe para lançar o VIié a seguinte :
vi nom_du_fichier
Uma vez o ficheiro aberto, é possível deslocar-se com a ajuda dos cursores, bem como as teclas h, j, k e l (no caso do teclado não possuir teclas com flechas).
Os modos Vi
O Vi possui 3 modos de funcionamento :
• O modo normal : aquele no qual está aquando da abertura do ficheiro. Permite escrever comandos
• O modo inserção : Este modo permite inserir os caracteres que digita dentro do documento. Para passar para modo inserção, basta carregar na tecla INSERT do seu teclad ou, na falta desta, na tecla i
• O modo de substituição : Este modo permite substituir o texto existente pelo texto que escreve. Basta pressionar a tecla r para passar para o modo substituição, e carregar na tecla Escape para voltar ao modo normal
Os comandos básicos
Comando - Descrição
:q - Sai do editor (sem salvar)
:q! - Obriga o editor a fechar sem salvar (ainda que tenham sido feitas modificações no documento)
:wq - Salva o documento e sai do editor
:filenom - Salva o documento com o nome especificado
Os comandos de edição
Comando - Descrição
x - Apaga o carácter actualmente sob o cursor
dd - Apaga a linha actualmente sob o cursor
dxd - Apaga x linhas a partir da actualmente sob o cursor
nx - Apaga n caracteres a partir do actualmente sob o cursor
x>> - Faz um espaçamento em x linhas para a direita a partir da actualmente sob o cursor
x<< - Faz um espaçamento em x linhas para a esquerda a partir da actualmente sob o cursor
A investigação e a substituição
Para procurar uma palavra num documento, basta (em modo normal) que escreva /seguido da cadeia a procurar, seguidamente validar com a tecla ENTER. É então possível ir de ocorrência em ocorrência graças à tecla n.
Para substituir uma cadeia de carácter por outra numa linha, existe um comando muito potente no Vi que utiliza as expressões regulares. Eis a sua sintaxe:
:s/chaine_a_remplacer/chaine_de_remplacement/
É possível generalizá-lo a todo o documento graças à sintaxe:
:%s/chaine_a_remplacer/chaine_de_remplacement/
Copiar-colar e cortar-colar
É possível, no Vi, copiar-colar uma selecção de linhas. Para o efeito, só tem de escrever o comando para copiar n linhas:
nyy
Por exemplo, o comando seguinte copiará no tampão 16 linhas :
16yy
Para colar a selecção, basta escrever a letra p.
Cortar-colar n linhas far-se-á de maneira similar com o comando:
ndd
E de seguida p para colar!
Para aqueles que são principiantes no Linux e querem mexer no VI, aí vão alguns comandos dele.
Para acessar algum arquivo de texto no vi, digite na linha de comando do Linux o seguinte:
$ vi exemplo
Onde exemplo é o nome do arquivo.
Logo depois você estará no modo comando. Agora é só se divertir com os comandos a seguir:
Cursor:
• k : para cima
• backspace: esquerda
• space: direita
• j: para baixo
Toda vez que desejar voltar ao modo comando, pressione a tecla ESC.
Movimentação de palavra:
• w : pula uma palavra
• b : volta uma palavra
• c : vai para o fim da palavra
• ex: 2w - pula duas palavras
• $ : vai para o fim da linha
• ^ ou O - vai para o início da linha
Controle do cursor:
• G - final do arquivo
• #G - vai para uma linha qualquer
• :# - vai para uma linha
• Ctrl g - informa a linha que você foi
• Ctrl b - retorna página
• Ctrl f - avança página
• Ctrl u - retorna metade da página
• Ctrl d - avança metade da página
• Ctrl I - refresh da tela
• L - última linha da tela
• M - meio da linha na tela
• H - início da tela
Modo de entrada:
• a - acrescenta texto depois do cursor
• i - insere texto antes do cursor
• o - abre uma linha de texto abaixo
• O - abre uma linha de texto
• A - acrescenta texto no fim da linha
• I - insere texto no início da linha
Deletando texto:
• x - deleta um caracter
• dw - deleta palavra
• ex: 2dw - delete duas palavras
• dd - deleta linha corrente
• dG - deleta até a última linha do arquivo
• d$ - deleta até o fim da linha
• d^ - deleta até o início da linha
Movendo texto:
Primeiro executar o comando deletar, depois executar o colar:
• p - cola abaixo do cursor
• P - cola acima do cursor
Copiando texto:
• yw - copia palavra corrente
• yy - copia a linha corrente
• yG - copia até a última linha do arquivo
• y$ - copia até o fim da linha
• y^ - copia até o início da linha
Alterando o texto:
• r - substitui caracter
• R - substitui todas as letras até pressionar ESC
• cw - altera palavra
• cc - altera a linha inteira
• cG - altera até a última linha do arquivo
• c$ - altera até o fim da linha
Tunelamento de SSH
Eventualmente estamos em lugares onde precisamos acessar alguma página e sempre tem aquele proxy chato que não deixa acessar. Com tunelamento via SSH é possível acessar servidores externos sem se preocupar. Este mecanismo pode ser uma boa quando se precisa de acesso seguro e ter a certeza que ele não será "sniffado" na rede.
O mecanismo funciona da seguinte maneira:
* Estabelece-se um túnel entre a sua máquina e a máquina servidora;
* Este túnel é feito utilizando algoritmos de chave pública e privada, garantindo total privacidade dos dados que trafegam por ali.
O que é necessário:
* Máquina servidora com SSH instalado e funcionando
* A máquina cliente com cliente SSH
Mãos na massa:
Vou partir do princípio que você já tenha um servidor SSH instalado e funcionando. Há vários tutoriais na net que explicam como instalar. Eu por exemplo uso o Ubuntu e instalei usando o comando:
# apt-get install ssh
Configurando o cliente no Linux
1. Abra o shell e digite o comando:
$ ssh@ -D 6000
2. A primeira vez o Linux irá perguntar se deseja salvar o host na lista de hosts conhecidos, informe yes.
3. Informe o password e pronto, nosso túnel já está estabelecido!
4. Agora abra o seu navegador (eu uso o Firefox), vá em Editar > Preferências;
5. Na aba rede, clique no botão configurar;
6. No campo acesso a internet, selecione a opção: "Configuração manual de proxy";
7. No campo SOCKS, informe localhost e na porta, informe 6000;
8. Clique em aplicar.
Para quem está do lado negro da força, configurando no Windows:
1. Baixe o aplicativo Putty e o execute;
2. Selecione a opção "Session";
3. Informe o endereço do servidor no campo Host name (ou IP address);
4. Agora selecione a opção SSH > Tunnels;
5. Informe 6000 no campo source port e opção "Dynamic";
6. Clique no botão add;
7. Clique no botão open;
8. Agora é só configurar o navegador conforme passos 4, 5, 6 e 7) da configuração para Linux;
9. Para quem usa o IE, selecione a opção Ferramentas > Opções de internet;
10. Na aba "Conexões", clique no botão "Definições da Lan";
11. Marque a opção: "Utilizar um servidor proxy para a rede local"
12. Clique no botão: Avançadas
13. No campo socks, informe: localhost e na porta informe 6000;
14. Clique em OK, em seguida OK, depois Aplicar e por último OK.
Pronto, agora você já pode acessar aqueles sites que vc não podia sem ninguém te importunar. Além de navegar. Tudo de forma segura.
O mecanismo funciona da seguinte maneira:
* Estabelece-se um túnel entre a sua máquina e a máquina servidora;
* Este túnel é feito utilizando algoritmos de chave pública e privada, garantindo total privacidade dos dados que trafegam por ali.
O que é necessário:
* Máquina servidora com SSH instalado e funcionando
* A máquina cliente com cliente SSH
Mãos na massa:
Vou partir do princípio que você já tenha um servidor SSH instalado e funcionando. Há vários tutoriais na net que explicam como instalar. Eu por exemplo uso o Ubuntu e instalei usando o comando:
# apt-get install ssh
Configurando o cliente no Linux
1. Abra o shell e digite o comando:
$ ssh
2. A primeira vez o Linux irá perguntar se deseja salvar o host na lista de hosts conhecidos, informe yes.
3. Informe o password e pronto, nosso túnel já está estabelecido!
4. Agora abra o seu navegador (eu uso o Firefox), vá em Editar > Preferências;
5. Na aba rede, clique no botão configurar;
6. No campo acesso a internet, selecione a opção: "Configuração manual de proxy";
7. No campo SOCKS, informe localhost e na porta, informe 6000;
8. Clique em aplicar.
Para quem está do lado negro da força, configurando no Windows:
1. Baixe o aplicativo Putty e o execute;
2. Selecione a opção "Session";
3. Informe o endereço do servidor no campo Host name (ou IP address);
4. Agora selecione a opção SSH > Tunnels;
5. Informe 6000 no campo source port e opção "Dynamic";
6. Clique no botão add;
7. Clique no botão open;
8. Agora é só configurar o navegador conforme passos 4, 5, 6 e 7) da configuração para Linux;
9. Para quem usa o IE, selecione a opção Ferramentas > Opções de internet;
10. Na aba "Conexões", clique no botão "Definições da Lan";
11. Marque a opção: "Utilizar um servidor proxy para a rede local"
12. Clique no botão: Avançadas
13. No campo socks, informe: localhost e na porta informe 6000;
14. Clique em OK, em seguida OK, depois Aplicar e por último OK.
Pronto, agora você já pode acessar aqueles sites que vc não podia sem ninguém te importunar. Além de navegar. Tudo de forma segura.
Operadores de Re-Direcionamento
Os operadores de redirecionamento são totalmente essenciais nos sistemas baseados em Unix, inclusive o Linux. Eles permitem bastantes recursos, como o redirecionamento da saída de um programa para um arquivo, enviar a saída de um programa para entrada de outro e muito mais!
Os operadores são: >, >>, <, 2> e |
Os operadores > e >> são usados para redirecionar a saída de um programa para um arquivo. A sintaxe é muito simples que dá pena:
• comando > arquivo
• comando >> arquivo
O operador > é usado para sobrescrever um arquivo com a saída do comando. Por exemplo:
$ ls > arqs
A saída não será nenhuma se tudo ocorreu bem. Agora ao dar "ls" normalmente você verá um arquivo a mais que é o 'arqs'. Tente dar um cat:
$ cat arqs
(saída do cmd 'ls')
Você pode usar o comando echo para escrever mensagens personalizadas. Veja como:
$ echo "É só um teste" > arqs
$ cat arqs
É só um teste
Algumas características:
• O arquivo será sobrescrito!
• Caso não se tenha permissão para escrever no arquivo, vai dar erro.
• Caso o arquivo não exista, ele será criado.
Seria a mesma coisa que o >, mas com uma diferença: ele não sobrescreve o arquivo. Neste caso você poderá escrever mais. Dê uma olhada:
$ rm teste
-> É bom, caso o arquivo exista poderá nos atrapalhar um pouco
$ echo "Os arquivos são:" >> teste
$ ls ~ >> teste
$ echo "Fim dos arquivos:" >> teste
$ cat teste
Os arquivos são:
(os arquivos do diretório $HOME)
Fim dos arquivos:
$ less
Vai
digitando
qualquer
coisa
aqui
^D
Então aparecerá o "less" listando o texto página a página. O ^D no final, quer dizer, "Ctrl+D", significa "Fim de arquivo".
Agora tente fazer um arquivo com o nome de "teste", digita qualquer coisa e tenta então:
$ less <>
(saída do comando less)
Seria o mesmo que você digitar tudo que tem no arquivo como entrada, mas como o pessoal do Unix tem bom senso, eles automatizaram isso. O ^D também é automatizado.
Este operador pode facilmente ser substituído pelo pipe (|), junto com o comando 'cat'.
A sintaxe:
$ comando1 | comando2
O que o pipe faz é redirecionar a saída de comando1 para entrada de comando2.
Veja um exemplo:
Imagine que o comando "xyz" mostre a frase "Teste de pipe" e o comando "separa" transforma cada espaço em um '-'.
Veja:
$ xyz Teste de pipe $ separa isto é um teste! ^D <-- Isto foi digitado pelo teclado!!!!!!!! isto-é-um-teste! $
Agora se quisermos fazer aparecer a saída de xyz ("Teste de pipe") ser separado por '-'s?
Basta:
$ xyz | separa
Teste-de-pipe
Esta é uma noção. Veja alguns comandos que trabalham muito bem com o pipe:
* echo
* cat
* less
* more
* sed
* awk
* etc
Os operadores são: >, >>, <, 2> e |
Os operadores > e >> são usados para redirecionar a saída de um programa para um arquivo. A sintaxe é muito simples que dá pena:
• comando > arquivo
• comando >> arquivo
O operador >
O operador > é usado para sobrescrever um arquivo com a saída do comando. Por exemplo:
$ ls > arqs
A saída não será nenhuma se tudo ocorreu bem. Agora ao dar "ls" normalmente você verá um arquivo a mais que é o 'arqs'. Tente dar um cat:
$ cat arqs
(saída do cmd 'ls')
Você pode usar o comando echo para escrever mensagens personalizadas. Veja como:
$ echo "É só um teste" > arqs
$ cat arqs
É só um teste
Algumas características:
• O arquivo será sobrescrito!
• Caso não se tenha permissão para escrever no arquivo, vai dar erro.
• Caso o arquivo não exista, ele será criado.
O operador >>
Seria a mesma coisa que o >, mas com uma diferença: ele não sobrescreve o arquivo. Neste caso você poderá escrever mais. Dê uma olhada:
$ rm teste
-> É bom, caso o arquivo exista poderá nos atrapalhar um pouco
$ echo "Os arquivos são:" >> teste
$ ls ~ >> teste
$ echo "Fim dos arquivos:" >> teste
$ cat teste
Os arquivos são:
(os arquivos do diretório $HOME)
Fim dos arquivos:
O operador <
A função deste operador é o contrário do >: ao invés de mandar a saída do comando para o arquivo, ele manda o arquivo como entrada do comando. Não entendeu? Dê uma olhadinha:$ less
Vai
digitando
qualquer
coisa
aqui
^D
Então aparecerá o "less" listando o texto página a página. O ^D no final, quer dizer, "Ctrl+D", significa "Fim de arquivo".
Agora tente fazer um arquivo com o nome de "teste", digita qualquer coisa e tenta então:
$ less <>
(saída do comando less)
Seria o mesmo que você digitar tudo que tem no arquivo como entrada, mas como o pessoal do Unix tem bom senso, eles automatizaram isso. O ^D também é automatizado.
Este operador pode facilmente ser substituído pelo pipe (|), junto com o comando 'cat'.
O pipe - |
Este é, com certeza, o mais importante de todos os operadores de redirecionamento. O pipe é bem complexo ao se comparar com os outros operadores, mas vale è pena conhecer.A sintaxe:
$ comando1 | comando2
O que o pipe faz é redirecionar a saída de comando1 para entrada de comando2.
Veja um exemplo:
Imagine que o comando "xyz" mostre a frase "Teste de pipe" e o comando "separa" transforma cada espaço em um '-'.
Veja:
$ xyz Teste de pipe $ separa isto é um teste! ^D <-- Isto foi digitado pelo teclado!!!!!!!! isto-é-um-teste! $
Agora se quisermos fazer aparecer a saída de xyz ("Teste de pipe") ser separado por '-'s?
Basta:
$ xyz | separa
Teste-de-pipe
Esta é uma noção. Veja alguns comandos que trabalham muito bem com o pipe:
* echo
* cat
* less
* more
* sed
* awk
* etc
O que é TELNET? E sua diferença para SSH.
Telnet é um protocolo cliente-servidor usado para permitir a comunicação entre computadores ligados numa rede (exemplos: rede local / LAN, Internet), baseado em TCP.
Telnet é um protocolo de login remoto.
Antes de existirem os chats em IRC o Telnet já permitia este gênero de funções.
O protocolo Telnet também permite obter um acesso remoto a um computador.
Este protocolo vem sendo gradualmente substituído pelo SSH, cujo conteúdo é criptografado antes de ser enviado. O uso do protocolo Telnet tem sido desaconselhado, a medida que os administradores de sistemas vão tendo maiores preocupações de segurança. Com o Telnet todas as comunicações entre o cliente e o servidor podem ser vistas, inclusive senhas, já que são somente texto plano, permitindo assim que com o uso de "port-stealing" intercepte a conexão e seus pacotes, fazendo hijacking.
- O serviço de SSH permite fazer o acesso remoto ao console de sua máquina, em outras palavras, você poderá acessar sua máquina como se estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A principal diferença com relação ao serviço telnet padrão, rlogin e rsh é que toda a comunicação entre cliente/servidor é feita de forma encriptada usando chaves públicas/privadas RSA para criptografia garantindo uma transferência segura de dados.
A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real, a compactação dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente-servidor ssh. Além do serviço de acesso remoto, o scp possibilita a transferência/recepção segura de arquivos.
Em conexões sem criptografia (rsh, rlogin) os dados trafegam de forma desprotegida e caso exista algum sniffer instalado em sua rota com a máquina destino, todo o que fizer poderá ser capturado.
Resumindo:
SSH: permite usar um shell em uma conexão criptografada. (entre outras coisas)
Telnet, rsh e rlogin: em uma conexão não criptografada.
Telnet é um protocolo de login remoto.
Antes de existirem os chats em IRC o Telnet já permitia este gênero de funções.
O protocolo Telnet também permite obter um acesso remoto a um computador.
Este protocolo vem sendo gradualmente substituído pelo SSH, cujo conteúdo é criptografado antes de ser enviado. O uso do protocolo Telnet tem sido desaconselhado, a medida que os administradores de sistemas vão tendo maiores preocupações de segurança. Com o Telnet todas as comunicações entre o cliente e o servidor podem ser vistas, inclusive senhas, já que são somente texto plano, permitindo assim que com o uso de "port-stealing" intercepte a conexão e seus pacotes, fazendo hijacking.
- O serviço de SSH permite fazer o acesso remoto ao console de sua máquina, em outras palavras, você poderá acessar sua máquina como se estivesse conectado localmente ao seu console (substituindo o rlogin e rsh). A principal diferença com relação ao serviço telnet padrão, rlogin e rsh é que toda a comunicação entre cliente/servidor é feita de forma encriptada usando chaves públicas/privadas RSA para criptografia garantindo uma transferência segura de dados.
A velocidade do console remoto conectado via Internet é excelente (melhor que a obtida pelo telnet e serviços r*) dando a impressão de uma conexão em tempo real, a compactação dos dados também pode ser ativada para elevar ainda mais a velocidade entre cliente-servidor ssh. Além do serviço de acesso remoto, o scp possibilita a transferência/recepção segura de arquivos.
Em conexões sem criptografia (rsh, rlogin) os dados trafegam de forma desprotegida e caso exista algum sniffer instalado em sua rota com a máquina destino, todo o que fizer poderá ser capturado.
Resumindo:
SSH: permite usar um shell em uma conexão criptografada. (entre outras coisas)
Telnet, rsh e rlogin: em uma conexão não criptografada.
quinta-feira, 29 de julho de 2010
Tarefa 3 - Como !?
- Como Re-Direcionar a Saída de Erro Padrão (STDERR)
No Exemplo do qual estarei mostrando abaixo acho que dá para entender como se usa e para que serve o re-direcionamento de saída de erro padrão:
ls teste 2>> error.log
obs: Em negrito comandos do shell
Aqui no exemplo ocorre o seguinte ele pede para mostrar o arquivo teste caso a arquivo não exista dará o seguinte erro: "ls falhou" a mensagem de erro é anexada no error.log.
Obs2: Modo mais simples que achei para explicar o Re-direcionamento de saíde de erro padrão
ls teste 2>> error.log
obs: Em negrito comandos do shell
Aqui no exemplo ocorre o seguinte ele pede para mostrar o arquivo teste caso a arquivo não exista dará o seguinte erro: "ls falhou" a mensagem de erro é anexada no error.log.
Obs2: Modo mais simples que achei para explicar o Re-direcionamento de saíde de erro padrão
- Como Buscar Registros Únicos (uniq)
O comando para fazer essa função seria o uniq pois tem a função de filtrar uma sequência de linhas de modo a remover as linhas adjacentes com conteúdo repetido. Pode ler as linhas em um arquivo ou então lê-las através de uma canalização.
Em geral é utilizado juntamente com o comando sort para remover repetições de seqüências de linhas previamente ordenadas por este comando usando a saída de outros comandos.
Considerando o arquivo teste.txt abaixo:
Yo
Oi
Yo
Bye
Bye
Um exemplo de uso em conjunto de sort e uniq utilizando um pipe é:
sort teste.txt | uniq
Que produz o resultado:
Yo
Oi
Bye
Em geral é utilizado juntamente com o comando sort para remover repetições de seqüências de linhas previamente ordenadas por este comando usando a saída de outros comandos.
Considerando o arquivo teste.txt abaixo:
Yo
Oi
Yo
Bye
Bye
Um exemplo de uso em conjunto de sort e uniq utilizando um pipe é:
sort teste.txt | uniq
Que produz o resultado:
Yo
Oi
Bye
- Como Ordenar Registros (sort)
O comando para fazer essa função seria o uniq pois tem a função de ordenar tudo que esta dentro do registro em ordem afabética e numérica.Também podendo alternar essa ordem sendo de trás pra frente tambem com uma de suas funções o: -r, mais também há varias.
Exemplo básico de uso de sort:
cat teste.txt
camelo
ostra
tubarão
macaco
Agora com sort:
Exemplo básico de uso de sort:
cat teste.txt
camelo
ostra
tubarão
macaco
Agora com sort:
sort teste.txt
camelo
macaco
ostra
tubarão
E com o uso da função -r:
sort -r teste.txt
tubarão
ostra
macaco
camelo
- Como Usar o Comando find
Para procurar dentro de um diretório específico, informe o caminho ao find:
find caminho/onde/procurar
O find recebe uma série de parâmetros úteis. É bom lembrar que o diretório de procura precisa ser sempre o primeiro parâmetro. Assim, para procurar por todos os arquivos de extensão .txt no diretório atual, faça:
find -name "*.txt"
E para procurar dentro de um diretório específico, use:
find caminho/onde/procurar -name "*.txt"
O find permite a você construir uma série de expressões de procura e operação com os arquivos, algumas bastante complicadas (e poderosas). Vamos dar uma olhada em algumas bem simples. Para apagar os arquivos, use -delete. Então, para apagar todos os arquivos .txt no diretório atual e em seus subdiretórios, faça:
find -name "*.txt" -delete
Você também pode passar parâmetros numéricos, que funcionam segundo a seguinte lógica:
• Um número sozinho significa exatamente aquele número, por exemplo: 3
• Com um sinal de mais, significa maior do que aquele número: +3
• Com um sinal de menos, significa menor do que aquele número: -3
Para ver uma lista dos arquivos modificados há menos de três dias, faça:
find -mtime -3
Para ver os que foram modificados a mais de três dias, inverta o sinal:
find -mtime +3
As expressões mais comuns para uso com tempo são:
• -amin – quando o arquivo foi acessado, em minutos.
• -atime – quando o arquivo foi acessado, em dias.
• -cmin – quando o arquivo foi criado, em minutos.
• -ctime – quando o arquivo foi criado, em dias.
• -mmin – quando o arquivo foi modificado, em minutos.
• -mtime – quando o arquivo foi modificado, em dias.
Outras expressões bastante úteis são:
• -regex: funciona como -name, mas recebe uma expressão regular .
• -size: filtra pelo tamanho do arquivo. É um número seguido de uma letra. As mais comuns são: c – bytes, k – kilobytes, M – megabytes e G – gigabytes.
Por fim, você também pode mandar o find executar operações nos arquivos. Foi o que fizemos no início, quando usamos -delete para apagar arquivos. Dentre as operações, uma legal é a -exec.
Quando você coloca -exec numa linha de comando do find, tudo o que vem depois até o próximo “;” é entendido pelo find como um comando, que ele vai executar para cada um dos arquivos encontrados. É obrigatório colocar “;” para terminar o comando, se você se esquecer vai receber o seguinte erro:
$ find -exec ls
find: faltando argumento para `-exec'
Onde você quiser passar para seu comando o nome do arquivo, use {}. Por exemplo, para tirar a permissões de execução de todos os arquivos TXT na busca, você pode fazer:
find -name "*.txt" -exec chmod -x {} ";"
Isso vai executar, para cada um dos arquivos encontrados:
chmod -x ARQUIVO ;
O último truque que eu gostaria que você guardasse na manga é que você pode combinar o find com o excelente comando grep. Grep faz buscas dentro de um arquivo. Com o parâmetro -l o grep apenas lista o nome do arquivo se a expressão regular de busca for encontrada. Então, para encontrar todos os arquivos python que contém o texto “urllib” você pode fazer:
find -name *.py -exec grep -l urllib {} ";"
O find, é claro, tem muito mais recursos e opções. Se quiser mesmo se aprofundar, man find.
quarta-feira, 28 de julho de 2010
RAIDS: Seus Tipos, Vantagens e Desvantagens
Redundant Array of Independent Drives
Também denominado Redundant Array of Inexpensive Drives ou mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos Independentes ou também Conjunto Redundante de Discos Econômicos, é um meio de se criar um sub-sistema de armazenamento composta por vários discos individuais, com a finalidade de ganhar segurança e desempenho.
Vantagens
1. Ganho de desempenho no acesso.
2. Redundância em caso de falha em um dos discos.
3. Uso múltiplo de várias unidades de discos.
4. Facilidade em recuperação de conteúdo "perdido".
Tipos
Vantagens:
- Acesso rápido as informações (até 50% mais rápido).
- Custo baixo para expansão de memória.
Desvantagens:
- Caso algum dos setores de algum dos HD’s venha a apresentar perda de informações, o mesmo arquivo que está dividido entre os mesmos setores dos demais HD’s não terão mais sentido existir, pois uma parte do arquivo foi corrompida, ou seja, caso algum disco falhe, não tem como recuperar.
- Não é usado paridade.

RAID 0 - Striping
No striping, ou distribuição, os dados são subdivididos em segmentos consecutivos (stripes, ou faixas) que são escritos seqüencialmente através de cada um dos discos de um array, ou conjunto. Cada segmento tem um tamanho definido em blocos. A distribuição, ou striping, oferece
melhor desempenho comparado a discos individuais, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o conjunto, ou array.
Há problemas de confiabilidade e desempenho. RAID 0 não terá desempenho desejado com sistemas operacionais que não oferecem suporte a busca combinada de setores. Uma desvantagem desta organização é que a confiança se torna geometricamente pior. Um disco SLED com um tempo médio de vida de 20.000 horas será 4 vezes mais seguro do que 4 discos funcionando em paralelo com RAID 0 (admitindo-se que a capacidade de armazenamento somada dos quatro discos for igual ao do disco SLED). Como não existe redundância, não há confiabilidade neste tipo de organização.
melhor desempenho comparado a discos individuais, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o conjunto, ou array.Há problemas de confiabilidade e desempenho. RAID 0 não terá desempenho desejado com sistemas operacionais que não oferecem suporte a busca combinada de setores. Uma desvantagem desta organização é que a confiança se torna geometricamente pior. Um disco SLED com um tempo médio de vida de 20.000 horas será 4 vezes mais seguro do que 4 discos funcionando em paralelo com RAID 0 (admitindo-se que a capacidade de armazenamento somada dos quatro discos for igual ao do disco SLED). Como não existe redundância, não há confiabilidade neste tipo de organização.
Vantagens:
- Acesso rápido as informações (até 50% mais rápido).
- Custo baixo para expansão de memória.
Desvantagens:
- Caso algum dos setores de algum dos HD’s venha a apresentar perda de informações, o mesmo arquivo que está dividido entre os mesmos setores dos demais HD’s não terão mais sentido existir, pois uma parte do arquivo foi corrompida, ou seja, caso algum disco falhe, não tem como recuperar.
- Não é usado paridade.
RAID 1 - Mirror

É o nível de RAID que implementa o espelhamento de disco, também conhecido como mirror. Para esta implementação são necessários no mínimo dois discos. O funcionamento deste nível é simples: todos os dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a não descontinuidade da operação do sistema.
Vantagens:
- Caso algum setor de um dos discos venha a falhar, basta recuperar o setor defeituoso copiando os arquivos contidos do segundo disco.
- Segurança nos dados (com relação a possíveis defeitos que possam ocorrer no HD).
Desvantagens:
- Custo relativamente alto se comparado ao RAID 0.
- Ocorre aumento no tempo de escrita.
- Não é usado paridade.
- Caso algum setor de um dos discos venha a falhar, basta recuperar o setor defeituoso copiando os arquivos contidos do segundo disco.
- Segurança nos dados (com relação a possíveis defeitos que possam ocorrer no HD).
Desvantagens:
- Custo relativamente alto se comparado ao RAID 0.
- Ocorre aumento no tempo de escrita.
- Não é usado paridade.
RAID 2/1
RAID 2 é similar ao RAID 4, mas armazena informação ECC (Error Correcting Code), que é a informação de controle de erros, no lugar da paridade. Este fato possibilita uma pequena protecção adicional, porém o RAID 2 ficou obsoleto pelas novas tecnologias de disco já possuírem este tipo de correcção internamente. O RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de segurança e um encerramento correto podem oferecer os mesmos benefícios.
Vantagem:
- Usa ECC;
Desvantagem:
- Hoje em dia há tecnologias melhores para o mesmo fim;
RAID 3
É uma versão simplificada do RAID nível 2. Nesse arranjo, um único bit de paridade é computado para cada palavra de dados e escrito em um drive de paridade. À primeira vista, pode parecer que um único bit de paridade dá somente detecção de erro, e não correção de erro. Para o caso de erros aleatórios não detectados, essa observação é verdadeira. Todavia, para o caso de uma falha de drive, ela provê correção total de erros de um bit, uma vez que a posição do bit defeituoso é conhecida. Se um drive falhar, o controlador apenas finge que todos os seus bits são "zeros". Se uma palavra apresentar erro de paridade, o bit que vem do drive extinto deve ter
sido um "um", portanto, é corrigido.
A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.
sido um "um", portanto, é corrigido.A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.
Vantagens:
- Leitura rápida
- Escrita rápida
- Possui controle de erros
Desvantagem:
- Montagem difícil via software
RAID 4
Funciona com dois ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de segurança) da informação contida nos discos. Se algum dos discos avariar, a paridade pode ser imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados, são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simultâneas.
O RAID 4 assim como outros RAID's, cuja característica é utilizarem paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser utilizados todos os discos em simultâneo.
Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o factor limitante do desempenho total do array. Devido ao facto do disco requerer somente um disco adicional para protecção de dados, este RAID é mais acessível em termos monetários que a implementação do RAID 1.
O RAID 4 assim como outros RAID's, cuja característica é utilizarem paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser utilizados todos os discos em simultâneo.
Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o factor limitante do desempenho total do array. Devido ao facto do disco requerer somente um disco adicional para protecção de dados, este RAID é mais acessível em termos monetários que a implementação do RAID 1.
Vantagens:
- Taxa de leitura rápida;
- Possibilidade do aumento de área de discos físicos.
Desvantagens:
- Taxa de gravação lenta.
- Em comparação com o RAID 1, em caso de falha do disco, a reconstrução é difícil, pois o RAID 1 já tem o dado pronto no disco espelhado.
- Tecnologia não mais usada por haver melhores para o mesmo fim.
RAID 5 - Parity
É frequentemente usado e funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do array são distribuídas ao longo de todos os discos do array , ao invés de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4, e, simultaneamente, tolerância a falhas.
Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados são divididos pode ser optimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 é equivalente ao de um RAID 4, excepto no caso de leituras sequenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade. A informação sobre paridade é distribuída por todos os discos;
perdendo-se um, reduz-se a disponibilidade de ambos os dados e a paridade, até à recuperação do disco que falhou. Isto causa degradação do desempenho de leitura e de escrita.
Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados são divididos pode ser optimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 é equivalente ao de um RAID 4, excepto no caso de leituras sequenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade. A informação sobre paridade é distribuída por todos os discos;
perdendo-se um, reduz-se a disponibilidade de ambos os dados e a paridade, até à recuperação do disco que falhou. Isto causa degradação do desempenho de leitura e de escrita.Vantagens:
- Maior rapidez com tratamento de ECC.
- Leitura rápida (porém escrita não tão rápida).
Desvantagem:
- Sistema complexo de controle dos HDs.
RAID 6
É um padrão relativamente novo, suportado por apenas algumas controladoras. É semelhante ao RAID 5, porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao mesmo tempo. Ao usar 8 HDs de 20 GB cada um em RAID 6, teremos 120 GB de dados e 40 GB de paridade.
Vantagem:
- Possibilidade falhar 2 HDs ao mesmo tempo sem perdas.
Desvantagens:
- Precisa de N+2 HDs para implementar por causa dos discos de paridade.
- Escrita lenta.
- Sistema complexo de controle dos HDs.
Comandos Basicos e Exemplos de Shell
SHELL
Uma das ferramentas mais poderosas do GNU/Linux, a linha de comandos.
Segue abaixo uma lista com alguns comandos e seus exemplos:
Uma das ferramentas mais poderosas do GNU/Linux, a linha de comandos.
Segue abaixo uma lista com alguns comandos e seus exemplos:
1 - ls (lista o conteúdo de uma pasta)
Exemplo: $ ls
2 - ls -a (lista as pastas, ficheiros ocultos e executáveis)
Exemplo: $ ls -a
3 - ls -l (Lista o conteúdo de uma pasta mais detalhadamente)
Exemplo: $ ls -l
4 - pwd (mostra o caminho para a pasta corrente)
Exemplo: $ pwd
5 - cd (muda de pasta)
Exemplo: $ cd /etc
6 - cd – (volta para a pasta anterior)
Exemplo: $ cd –
7. cd .. (sobe uma pasta acima)
Exemplo: $ cd ..
8 - cd ~ (volta para a nossa pasta pessoal /home/nomedeutilizador)
Exemplo: $ cd ~
9 - mkdir [nome da pasta] (cria uma pasta com o nome desejado)
Exemplo: $ mkdir programas
10 - mkdir [nome da pasta1] [nome da pasta2] (cria a pasta1 e a pasta2 ao mesmo tempo)
Exemplo: $ mkdir teste1 teste2
11 - mkdir -p [nome da pasta]/[ nome da sub-pasta] (cria uma pasta e uma sub-pasta simultaneamente)
Exemplo: $ mkdir -p teste3/teste3_1
12 - rm -r [nome da pasta/nome do ficheiro] (apaga uma pasta ou ficheiro)
Exemplo: $ rm -r teste3
13 - mv [nome do ficheiro1] [nome do ficheiro2] (muda o nome de um ficheiro)
Exemplo: $ mv teste teste2
14 - mv [nome do ficheiro] [caminho] (move o ficheiro para outra pasta de determinado caminho)
Exemplo: $ mv imagem.jpg ~/imagens
15 - cp [nome do ficheiro] [caminho] (copia um ficheiro para uma pasta de determinado caminho)
Exemplo: $ cp imagem.jpg ~/imagens
16 - ln -s [caminho] [link] (cria um atalho/link a uma pasta ou ficheiro)
Exemplo: $ ln -s /usr/bin/limewire limewire
17. type [executável] (procura o caminho de um executável)
Exemplo: $ type limewire
18 - cat > [ficheiro] (cria um novo ficheiro)
Exemplo: $ cat > teste.txt
19 - cat [nome do ficheiro1] >> [nome do ficheiro2] (acrescenta o ficheiro2 ao ficheiro1)
Exemplo: $ cat teste1 >> teste2
20 - touch [nome do ficheiro] (cria um novo ficheiro)
Exemplo: $ touch teste.txt
Biografias de Linus / Andrew / Richard
Biografia de Linus Torvalds
Começou a lidar com a informática quando tinha 11 anos. O avô,
Leo Waldemar Tornqvist, um matemático e estatístico da Universidade comprou um dos primeiros computadores Commodore em 1980 e pediu-lhe ajuda para usá-lo.Tornou-se tão interessado que passou um verão inteiro dentro de casa ou, melhor dizendo, no quarto em frente ao computador desenvolvendo o que restava do núcleo.
Em 1983 Richard Stallman criou a Free Software Foundation (GNU project). Em 1986 Marice J. Bach publicou Design of the Unix Operating System. Em 1988 Linus foi admitido na Universidade de Helsinki. No mesmo ano Andy Tanenbaum traz a público o Sistema Operacional MINIX, um Unix para fins didáticos e que rodava em IBM/PC. Em 1990 Torvalds começa a aprender C em seus estudos.
No fim dos anos 80 ele tomou contato com os computadores IBM/PC compatíveis e em 1991 comprou um 80386. Com 21 anos, 5 já de experiência programando (em C), ele tinha contato com o Sistema Unix da Universidade (SunOS, atualmente Solaris) e desejava rodar a versão de Tannenbaum (Minix) no seu recém adquirido 80386. Entretanto, descontente com os recursos do Minix, especialmente em relação ao emulador de terminal do Minix que ele utilizaria para acessar remotamente o Unix da Universidade, começa a desenvolver o seu próprio emulador de terminal que não rodaria sobre o Minix, mas diretamente no hardware do PC 386. Este projeto pessoal foi sendo modificado gradualmente e adquirindo características de um Sistema Operacional independente do Minix. Este é o início do desenvolvimento do núcleo Linux, relatado pelo próprio Linus Torvalds em seu livro Just for fun.
O núcleo Linux foi inicialmente desenvolvido por Linus Torvalds numa tentativa de criar um sistema operacional similar ao Unix que rodava em processadores Intel 80386. O projeto foi lançado em 1991 em uma famosa mensagem para a Usenet em que ele divulgou que estava disposto a disponibilizar o código-fonte e contar com a colaboração de outros programadores. Desde os primeiros dias, ele recebeu ajuda de hackers do Minix, e hoje recebe contribuições de milhares de programadores dos mais diversos locais do mundo.
Em 1997 Linus Torvalds recebeu os prêmios "1997 Nokia Foundation Award'y" e "Lifetime Achievement Award at Uniforum Pictures". No mesmo ano finaliza os estudos superiores (1988 - 1997) passou 10 anos como estudante e investigador na Universidade de Helsinki, coordenando o desenvolvimento do núcleo do S.O. desde 1992.
Torvalds trabalhou na Transmeta (fabricante de processadores para portáteis) entre 1997 e 2003, e neste ano juntou-se à Open Source Development Labs (OSDL), uma fundação criada para ajudar no desenvolvimento do núcleo Linux, como OSDL fellow. Fazem parte dessa fundação várias grandes empresas do ramo da informática, como IBM, Sun, Nokia e outras.
Torvalds possui a marca registrada "Linux" e supervisiona o uso da marca através da organização sem fins lucrativos Linux International.
Fonte: http://pt.wikipedia.org/wiki/Linus_Torvalds
Andrew Stuart "Andy" Tanenbaum (White Plains, 16 de março de 1944) é o chefe do Departamento de sistemas de computação, na Universidade Vrije, Amsterdã nos Países Baixos. Ele é o autor do MINIX, um sistema operacional baseado no Unix com propósito educacional, e bastante conhecido por seus livros sobre ciência da computação.
Nasceu na cidade de Nova Iorque e cresceu em White Plains no estado de Nova Iorque. Recebeu o título de bacharelado pelo MIT e o doutorado pela UC Berkeley em 1971. Atualmente ministra aulas sobre Organização de computadores e Sistemas operacionais.
Ficou conhecido internacionalmente pelos seus livros de Ciência da computação, particularmente:
• Redes de computadores, ISBN 0-13-066102-3
• Sistemas operacionais: Design e implementação, ISBN 0-13-638677-6
• Sistemas operacionais modernos, ISBN 0-13-031358-0
Outras publicações:
• Structured Computer Organization
• Distributed Systems: Principles and Paradigms
O núcleo Linux foi inspirado no MINIX(utilizava o sistema de arquivos do MINIX, porém, era uma implementação do zero). Tanenbaum ficou envolvido com as discussões do Usenet durante 1992 com Linus Torvalds, criador do Linux, sobre os méritos básicos de Torvalds usando núcleo monolítico em vez de micronúcleo que Tanenbaum achou que era o meio do futuro.
Ele também implementou o Sistema operacional distribuído Amoeba.
Fonte: http://pt.wikipedia.org/wiki/Tanenbaum
Richard Matthew Stallman nasceu em Nova Iorque, filho de Alice Lippman e Daniel Stallman. Seu primeiro acesso a um computador aconteceu em 1969, no seu primeiro ano do curso médio.
Empregado pelo Centro Científico da IBM em Nova York, após concluir seu curso médio (High School) Stallman passou o verão escrevendo seu primeiro programa - um pré-processador para a linguagem de programação PL/I no IBM 360. "Eu o escrevi primeiro em PL/I, passando então para a linguagem de montagem quando o programa de PL/I se tornou grande demais para caber no computador", contou Stallman, anos depois (Williams 2002, capítulo 3).
Stallman era simultaneamente assistente voluntário do laboratório do departamento de Biologia na Rockefeller University. Embora já se estivesse encaminhando para as áreas de Matemática e Física, sua mente analítica impressionou de tal modo o diretor do laboratório que, alguns anos depois de Stallman ter ido para a faculdade, sua mãe recebeu uma chamada de telefone: "Era o professor da Rockefeller", ela recordou, "quis saber o que Richard estava fazendo". Foi surpreendido ao saber que estava trabalhando em computadores. O professor imaginava que Richard teria tido um grande futuro como biólogo (Williams 2002, capítulo 3).
Durante estes anos tornou-se mais conhecido pelas iniciais de seu nome, rms. Na primeira edição do dicionário do hacker, ele escreveu, "Richard Stallman' é apenas meu nome mundano; você pode me chamar de 'rms'."
Richard Matthew Stallman, frequentemente abreviado para "rms" (Manhattan, 16 de março de 1953) é um famoso hacker, fundador do movimento free software, do projeto GNU, e da Free Software Foundation(FSF) ("Fundação para o Software Livre"). Um aclamado programador, seus maiores feitos incluem Emacs (e o GNU Emacs, mais tarde), o GNU Compiler Collection e o GNU Debugger. É também autor da GNU General Public License (GNU GPL ou GPL), a licença livre mais usada no mundo, que consolidou o conceito de copyleft.
Desde a metade dos anos 1990, Stallman tem dedicado a maior parte de seu tempo ao ativismo político, defendendo software livre e lutando contra a patente de softwares e a expansão da lei de copyright. O tempo que ainda devota à programação é gasto no GNU Emacs. Ele se sustenta com aproximadamente a metade do que recebe por suas palestras.
Em 1971, ainda calouro na Universidade Harvard - onde se graduou em Física, em 1974 - Stallman era programador do laboratório de IA do MIT e tornou-se um líder na comunidade hacker.
Fonte: http://pt.wikipedia.org/wiki/Richard_Stallman
terça-feira, 27 de julho de 2010
Histórias do Linux / Unix / GNU
História do Linux
O núcleo Linux foi, originalmente, escrito por Linus Torvalds do Departamento de Ciência da Computação da Universidade de Helsinki, Finlândia, com a ajuda de vários programadores voluntários através da Usenet (uma espécie de sistema de listas de discussão existente desde os primórdios da Internet).Linus Torvalds começou o desenvolvimento do núcleo como um projeto particular, inspirado pelo seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andrew S. Tanenbaum. Ele limitou-se a criar, nas suas próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). E depois de algum tempo de trabalho no projeto, sozinho.
Curiosamente, o nome Linux foi criado por Ari Lemmke, administrador do site ftp.funet.fi que deu esse nome ao diretório FTP onde o núcleo Linux estava inicialmente disponível. (Linus tinha-o batizado como "Freax", inicialmente)
No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do núcleo Linux, versão 0.02. Desde então muitos programadores têm respondido ao seu chamado, e têm ajudado a fazer do Linux o sistema operacional que é hoje. No início era utilizado por programadores ou só por quem tinha conhecimentos, usavam linhas de comando. Hoje isso mudou, existem diversas empresas que criam os ambientes gráficos, as distribuições cada vez mais amigáveis de forma que uma pessoa com poucos conhecimentos consegue usar o Linux. Hoje o Linux é um sistema estável e consegue reconhecer muitos periféricos sem a necessidade de se instalar os drivers de som, vídeo, modem, rede, entre outros.
Fonte: http://pt.wikipedia.org/wiki/Linux
História do Unix
O Unix é um sistema operacional multitarefa e multiusuário, disponível para diversas plataformas de hardware.O Unix foi criado no final da década de 1960 e início de 1970, em uma época em que os computadores eram grandes, caros e de difícil acesso a pessoas comuns. Havia poucos computadores e vários pesquisadores necessitando dos recursos destes para poderem dar andamento aos seus trabalhos, e os sistemas operacionais da época não satisfaziam às necessidades desses profissionais. Era então, imprescindível desenvolver um sistema operacional multiusuário, multitarefa, que pudesse ser convertido para diferentes plataformas de hardware.
O Unix é um sistema operacional multiusuário, pois permite que vários usuários utilizem o mesmo computador ao mesmo tempo, por meio de terminais remotos, e também um sistema operacional multitarefa, pois permite que vários programas sejam executados simultaneamente.
Além disso, o Unix apresenta uma vasta gama de possibilidades relacionadas à rede, como sistema de cota de disco, FTP, e-mail, WWW, DNS, possibilidade de diferentes níveis de acesso, de executar programas em background, etc.
Inicialmente o Unix foi escrito em linguagem Assembly, que varia muito de um computador para outro. A necessidade de converter o Unix para diversas plataformas de hardware levou à criação de uma linguagem de programação na qual qualquer programa pudesse ser convertido facilmente, com pouca ou nenhuma alteração, para qualquer uma das plataformas. Essa linguagem foi denominada C, que mesmo nos dias de hoje, continua moderna e poderosa. Logo o Unix foi reescrito em C e convertido para as mais diversas plataformas de hardware, sendo executado atualmente tanto em computadores de bolso como em supercomputadores.
No início, o UNIX era distribuído gratuitamente pela AT&T (empresa que o desenvolveu) para as universidades. Mais tarde, porém, percebendo o sucesso do Unix no meio comercial, a AT&T logo passou a disponibilizá-lo por um preço muito alto. Logo em seguida, departamentos de ciência da computação de diversas universidades no mundo inteiro começaram a desenvolver programas comerciais para o Unix, criando um grande número de usuários e desenvolvedores de utilitários e programas.
Entre os vários pesquisadores que desenvolveram o Unix, destaca-se o grupo da Universidade da California, em Berkeley, que em 1975 licenciou a versão 6 da AT&T, fez diversos aprimoramentos e relançou-o como Unix BSD. Conseqüentemente, os dois maiores centros de desenvolvimento do Unix são a AT&T e Berkeley.
Com o advento das workstations (estações de trabalho) na década de 80, surgiram muitas versões comerciais do Unix, como Sun OS e Solaris, da Sun Microsystems, AIX, da IBM, OSF/1 (hoje chamado de digital Unix), da Digital, IRIX, da Silicon Graphics, e HP-UX, da Hewlett Packard.
Todas essas versões são baseadas nas versões da AT&T e de Berkeley, freqüentemente com muitos cruzamentos e acréscimos, resultando em uma confusão de versões do Unix, porém, em 1990, o IEEE (Instituto de Engenheiros Elétricos e Eletrônicos) começou a desenvolver o padrão POSIX (Portable Operating Systems Interface Unix) para uniformizar as características dos sistemas Unix.
Até meados da década de 80, o Unix ainda não possuia uma interface gráfica própria. Porém, com o advento do X Window System (sistemas de janela X), desenvolvido pelo MIT (Massachussets Institute Of Technology), ele passou a dispor de um sistema gráfico do tipo cliente-servidor e independente de arquitetura do computador.
Em 1988, o controle do X Window System foi passado para o X Consorcium (Consórcio X), organização sem fins lucrativos criada para garantir a evolução do X.
Cronologia do Unix
1969 - Ken Thompson cria o Unix, executando em um PDP-7 da DEC
1970 - Thompson e Dennis Ritchie instalam o Unix em um PDP-11/20 da DEC. Ritchie usa a linguagem C para ser portável em arquiteturas de hardware diferentes.
1971 - É lançada a versão 1 do Unix, escrita em linguagem Assembly.
1973 - Ritchie e Thompson escrevem o primeiro compilador C para o Unix. A versão 4 do Unix é escrita em linguagem C.
1974 - A AT&T autoriza a distribuição do código-fonte do Unix para as universidades.
1975 - É lançada a versão 6 do Unix. Sua distribuição é ampla nas universidades. A Universidade da Califórnia, em Berkeley, começa a trabalhar no BSD Unix.
1978 - É lançada a versão 7 do Unix. São necessárias taxas de licença.
1979 - A AT&T lança o Unix System III.
1983 - A AT$T lança o Unix System V; A Universidade da Califórnia, em Berkeley, lança o BSD Unix 4.2 (a Sun o utiliza como base para a criação do SunOS).
1984 - O servidor de janelas X Window começa a ser desenvolvido no MIT.
1986 - Primeira implementação comercial do X Window, executando no VAXstation-II/GPX, o X10R3.
1987 - A AT&T lança o Unix System V release 3. É lançado o BSD 4.3. A Sun e a AT&T concordam em fundir o BSD Unix e o Unix System V.
1988 - Criação do X Consortium, organização aberta para garantir a evolução do X. É lançado o X11R3.
1990 - A AT&T lança o Unix System V release 4, que promove relativa unificação do BSD Unix e do Unix System V. O Minix é colocado à disposição na Internet.
1992 - A Sun lança o Solaris, baseado no Unix System V release 4. É lançado o Linux 0.99pl5.
1992-93 - É lançada a primeira distribuição do Linux em um cd-rom.
1994 - É lançada a versão livre do X Window, o XFree86, pelo grupo XFree Project.
Fonte: http://wiki.pm.sc.gov.br/Historia_do_UNIX
História do GNU
Projeto GNU, em computação, é um projeto iniciado por Richard Stallman em 1984, com o objetivo de criar um sistema operacional totalmente livre, que qualquer pessoa teria direito de usar, estudar, modificar e redistribuir o programa e seu código fonte, desde que garantindo para todos os mesmos direitos.Este sistema operacional GNU deveria ser compatível com o sistema operacional UNIX, porém não deveria utilizar-se do código fonte do UNIX. Stallman escolheu o nome GNU porque este nome, além do significado original do mamífero Gnu, é um acrônimo recursivo de: GNU is Not Unix (em português: GNU Não é Unix).
A partir de 1984 Stallman e vários programadores, que abraçaram a causa, vieram desenvolvendo as peças principais de um sistema operacional, como compilador de linguagem C, editores de texto, etc.
Em 1991 o sistema operacional já estava quase pronto, mas faltava o principal, que é o núcleo do sistema operacional. O grupo liderado por Stallman estava desenvolvendo um núcleo chamado Hurd. Porém, em 1991, um jovem finlandês chamado Linus Torvalds havia criado um núcleo que poderia usar todas as peças do sistema operacional GNU. Este núcleo ficou conhecido como Linux, contração de Linus e Unix.
Atualmente, o sistema operacional GNU com o Linux é conhecido como GNU/Linux, que é como o projeto solicita aos utilizadores que se refiram ao sistema completo, embora a maioria das pessoas se referem ao sistema apenas como Linux por uma questão de comodidade.
Mas o próprio Linus Torvalds discorda da nomenclatura GNU/Linux, chamando seu Sistema Operacional apenas de Linux. A discussão e desentendimento entre Stallman e Torvalds prosseguem acerca da correta nomenclatura a respeito do Sistema, arrastando também as opiniões dos inúmeros usuários e desenvolvedores do Sistema GNU/Linux (ou apenas Linux).
Fonte: http://pt.wikipedia.org/wiki/Projeto_GNU
segunda-feira, 26 de julho de 2010
Jovens Talentos Ilegra - Infra (Apresentação)
Nome: William de Andrade Ferroni
Idade: 20 anos
Endereço: Rua dos Maias, n° - 1339, Compl: Apt: 403, Bloco D
Telefone: (51) 3387-1072
Altura: 1,76 m
Formação:
- Técnico em Informática
- Web Designer
- Análise e Desenvolvimento de Sistemas (Em andamento) - 3° Semestre
Bem o início estava parecendo um cv mais vamos lá.
Sou uma pessoa um pouco diferente em relações a gostos tanto musicais e a programas. Eu escuto contantemente musicas em japones, canto em japones e assisto coisas em japones (com legenda). Isso vem a ser o meu hobby.
Na informática em si tenho um gosto por analisar os problemas ao redor e tentar resolver, na maioria dos casos gosto de sentar e "desenhar" o problemas e mostrar os caminhos para resolução. Posso até demorar para resolução mais me esforço ao extremo para conseguir. Para aprender coisas novas sou bem avançado mais tem que ter agum tipo de tutorial ao alguma opinião para me sentir satisfeito sobre o que estou tentando aprender.
Sou bem alegre e feliz na mioria das vezes sempre rindo e falando algo para descontrair, mas tambem sei agir em situações das quais pedem seriedade.
Realizo design de sites, edições de fotos, layouts entre outras coisas uma gosto pessoal tambem que pode ser considerado um hobby é desenhar.
E o motivo do qual eu gostaria de trabalhar na Ilegra seria, pelo crescimento tanto na carreira quanto pessoal, poucas empresas do porte da Ilegra dão essas oportunidades para as pessoas e essas oportunidades temos que agarrar com todas as forças.
Idade: 20 anos
Endereço: Rua dos Maias, n° - 1339, Compl: Apt: 403, Bloco D
Telefone: (51) 3387-1072
Altura: 1,76 m
Formação:
- Técnico em Informática
- Web Designer
- Análise e Desenvolvimento de Sistemas (Em andamento) - 3° Semestre
Bem o início estava parecendo um cv mais vamos lá.
Sou uma pessoa um pouco diferente em relações a gostos tanto musicais e a programas. Eu escuto contantemente musicas em japones, canto em japones e assisto coisas em japones (com legenda). Isso vem a ser o meu hobby.
Na informática em si tenho um gosto por analisar os problemas ao redor e tentar resolver, na maioria dos casos gosto de sentar e "desenhar" o problemas e mostrar os caminhos para resolução. Posso até demorar para resolução mais me esforço ao extremo para conseguir. Para aprender coisas novas sou bem avançado mais tem que ter agum tipo de tutorial ao alguma opinião para me sentir satisfeito sobre o que estou tentando aprender.
Sou bem alegre e feliz na mioria das vezes sempre rindo e falando algo para descontrair, mas tambem sei agir em situações das quais pedem seriedade.
Realizo design de sites, edições de fotos, layouts entre outras coisas uma gosto pessoal tambem que pode ser considerado um hobby é desenhar.
E o motivo do qual eu gostaria de trabalhar na Ilegra seria, pelo crescimento tanto na carreira quanto pessoal, poucas empresas do porte da Ilegra dão essas oportunidades para as pessoas e essas oportunidades temos que agarrar com todas as forças.
Assinar:
Comentários (Atom)
