O Unix é foi desenvolvido pela Bell Laboratories, originalmente
para executar como sistema operacional para computadores da DEC.
Devido a sua capacidade multitarefa e multiusuários, aliado
às suas capacidades de conectividade e comunicação,
assim como as características de sistema operacional de tempo compartilhado,
grande versatilidade no controle de programas e periféricos e portabilidade,
logo passou a ser utilizado também em mainframes.
Em UNIX, o nome do arquivo não tem limitações em termos de número de caracteres, assim, como pode também ter diversas extensões.
Quando você liga a máquina, para acessar ao sistema, deverá entrar com um login e um password.
Cada usuário é limitado ao que lhe é autorizado. Isto porque existe uma sequência de caracteres
(tipo atributos) que definem o que cada usuário pode fazer com cada arquivo ou diretório
e somente o dono do arquivo (owner) e o gerente da rede (root) pode mudar as permissões
d rwx rwx rwx | | | | Onde: tipo dono grupo outros r=leitura w=escrita (gravação) x=execução
->ls -l
-rwxrw-r-- 2 mauricio 16345 May 12 9:02 file
Para ocultar um arquivo, basta renomeá-lo colocando um ponto em sua frente. Varios comandos podem ser executados simultâneamente. Para fazê-lo, digite-os na linha de comando separando-os por um ;
Usuários de DOS, sabem que quando um comando é executado, precisa-se esperar a comclusão do mesmo para que o prompt possa ser liberado. Em UNIX, basta colocar um & no fim do comando e o prompt ficará liberado logo após sua execução, sem necessidade de tem de aguardar todo o processamento do mesmo, deixando assim, o prompt livre para outros comandos. Os programas que estão rodando em paralelo se denominam programas em background. Os que estão rodando no momento, diz-se programs rodando em foreground.
Outra alternativa para liberar o prompt é pressionar ctrl+z. Mas isso suspende o comando. Deve-se então digitar bg, para que o comando suspendido rode em background . Caso tenha muitos programas rodando em background e queira visualizá-los, digite jobs » serão mostrados todos os comandos que estão em segundo plano e um respectivo número de identificação que serve para coloca-lo em foreground com o comando fg.
Ao digitar fg, não esqueça de por em seguida o número
de identificação.
Vou apresentar uma lista e comandos cujo aprendizado é imprescindível
ls » É equivalente ao comando dir do DOS.
Parametros:
-t = lista os arquivos em ordem de criação
-a = lista todos os arquivos, inclusive os
escondidos
-F = acrescenta os seguintes caracteres no
final dos arquivos:
/ - diretório
@ - link
* - executável
-R = lista todos os arquivos e subdiretórios
-l = lista de uma forma completa
more » equivale ao type (com o paramtro|
more) do DOS, ou seja, exibe o conteúdo de arquivos, mas faz uma
pausa a cada tela cheia.
cal » exibe calendário.
digite cal -r mês
ano
mkdir » É como
o MD do DOS
rmdir » idem
RD dos DOS
cp »
equivale ao copy do DOS.
mv » é o move do DOS. atenção o mv não pede confitmação antes de sobrescrever um arquivo.
rm » equivale ao deltree do DOS
Parametros:
-r = remove o conteúdo dos subdiretórios,
caso existam
-i = pergunta confirmação para os arquivos
find » procura arquivos. Basta digitar find
Parametros
-R = troca
para arquivos que estão em subdiretórios
-f
= caso ocorra algum erro ele força a troca de permissão
quem = é a classe do usúario
(ugoa) para quem vai receber a permissão nova
u
= usuário
g
= grupo
o
= outros
a
= todas as classes juntos (all)
=+ / - / = mais, menos ou igual define se você vai colocar (+)
ou tirar (-) a permissão, o sinal = serve para trocar a permissão
se ele tiver com permissao ele tira a permissão
permissão = tipo de permissão (rwx)
cd » Semelhante
so cd do DOS. Para sair de um diretório, digite cd ..
(observe que tem de sem mantido um espaço atre o cd e o ..)
pwd » mstra
o diretório corrente em que você está. Em unix você
não vê o diretório corrente no prompt como no DOS,
a menos que digite pwd
at »
processa um comando ou arquivo script (tipo .BAT do DSO) para ser processados
posteriormente numa hora, dia ou mês desejado. O at , após
a sua sintaxe, deixa espaço para colorar os comandos ou arquivos
script que serão processados posteriormente (use ^d quando acabar
de digitar os comandos) ou pode-se especificar um arquivo para entrada
com < para dar entrada um arquivo ja criado.
ln »
o comando ln faz um atalho (link) de um arquivo ou diretório. Você
pode se referir a um arquivo que está num diretório /bin
por exemplo no seu diretório home somente fazendo um link do mesmo.
Existe dois tipos de link o hard link e o simbolic link (simbolico), o
primeiro tipo faz um link onde irá apontar para o lugar no winchester
onde o arquivo esta amarzenado, o outro é um link simbólico
pois o link é um arquivo texto que contem o path de onde o arquivo
está. Isto quer dizer se apagar um hard link ira excluir o arquivo
e se apagar um simbolic link irá apagar somente o link.
Parametros
-s = cria um simbolic link (hrad link é criado sem esse
parametro)
-f = força a criação do link, para links
que não se tem permição de leitura
arquivo = nome do arquivo ou diretório que vai ser linkado
nomelink = nome do link pode ser qualquer um, mas o interssante e colocar
o mesmo nome do arquivo ou diretório.
Existem uma infinidade de comandos. Estes apenas lhe servirão
para iniciar um primeiro contato com este poderoso sistema
O UNIX e um dos sistemas operacionais mais populares do mundo
por causa de sua
grande base de suporte e distribuicao. Foi originalmente construido
como um sistema de
multitarefas para microcomputadores e mainframes (computadores de grande
porte) no
meio dos anos 70. Cresceu desde então e tornou-se um dos sistemas
operacionais mais
usados em qualquer lugar, apesar de sua interface confusa e de falta
de uma padronizacao
central, às vezes.
O LINUX é uma versão gratuita distribuida do primeiro
UNIX desenvolvido por Linus
Torvalds na Universidade de Helsinque na Finlândia. O LINUX foi
desenvolvido com a
ajuda de muitos programadores UNIX, e especialistas em Internet, permitindo
a qualquer
um com bastante experiência e bom senso a capacidade de desenvolver
a alterar o sistema.
O LINUX foi originalmente desenvolvido como um passatempo por Linus.
Foi inspirado
no Minix, um pequeno sistema UNIX desenvolvido por Andy Tanenbaum,
e as primeiras
discussões sobre ele foi no newsgroup Usenet comp.os.minix.
Linus escreveu no comp.os.minix,
Depois da versão 0.03, Linus levou o número da versão
até 0.10, quando mais pessoas
começaram a trabalhar no sistema. Após várias
revisões, Linus aumentou o número da
versão para 0.95 refletindo sua expectativa de que o sistema
estava pronto para uma
versão; "oficial" muito em breve. (Geralmente, o software
não é atribuido ao número
da versão 1.0 até que esteja teoricamente completo ou
sem erros.)
Atualmente o LINUX é um clone do UNIX completo, capaz de executar
o X Windows
System, o TCP/IP, o Emacs, o UUCP, o software do correio e de informações,
o que
quizer. Quase todos os grandes pacotes gratuitos de software foram
transportados para
o LINUX e o software comercial está se tornando disponível.
Por que as pessoas gostam do Linux
?
Por que você deveria executar o LINUX? Boa pergunta. O que voce
tem agora funciona,
não é? Ou talvez não. Talvez você esteja
apenas desejando algo diferente ou esteja
cansado do limite de memória de 640K, embora tenha 20 MB de
RAM. Essas são
algumas razões pelas quais as pessoas estão mudando para
o Linux:
É gratuito. Isto é, o LINUX e um clone do sistema operacional
(OS) UNIX distribuido
gratuitamente. Você poderá obtê-lo gratuitamente
com alguem que o tenha,
transferi-lo de um site da Internet, de um BBS ou poderá compra-lo
por um preço
razoável de um revendedor em um pacote que posso fornecer também
os serviços
de suporte.
É popular. É executado na arquitetura barata do PC Intel
386/486/Pentium e
suporta uma grande variedade de placas de vídeo, placas de áudio,
drives de
CD-ROM, drives de discos e outros dispositivos. O LINUX pode ser usado
nos
sistemas EISA, Localbus, ou PCI também. O LINUX foi transportado
para outras
plataformas, incluindo os processadores Motorola, 680x0, DEC ALPHA,
PowerPC
e SPARC. Outras arquiteturas são também objetivos, e
projetos de
desenvolvimento estão em andamento.
É eficiente. Voce ficara satisfeito ao ver como o sistema é
executado com rapidez,
mesmo com muitos processos sendo executados e com diversas janelas
abertas.
O LINUX faz um excelente uso do hardware. Muitos sistemas operacionais
comerciais (a saber, o MS-DOS) fazem pouco uso da capacidade avançada
com
diversas tarefas do processador 80x86. O LINUX é o próprio
dessa arquitetura e a
utiliza de forma completa. Uma maquina LINUX com um processador
razoavelmente rápido e uma quantidade suficiente de RAM pode
executar tão bem,
ou melhor, quanto as estações de trabalho mais caras
do UNIX.
Tem boa qualidade e executa as aplicações de alta qualidade.
O LINUX está
sendo desenvolvido publicamente com centenas de programadores e
usuáriosaperfeiçoando-o, mas como uma visão individual
e concentrada em seu
criador, Linus Torvalds. Diferente de outros sistemas operacionais
novos, o LINUX
ja tem uma enorme base de aplicações disponíveis
gratuitamente para serem
utilizadas, desde aplicações científicas maiores
até as ferramentas multimídia e
jogos. É altamente compatível com MS-DOS, Windows
e Windows 95. Você poderá instalar o
LINUX em outras partições do disco que contenham o MS-DOS
ou outros sistemas
operacionais. O LINUX pode acessar diretamente os arquivos do MS-DOS
a partir de
um drive de disquete ou do disco rígido. Os construtores estão
trabalhando nos
Eladores do MS-DOS e do Windows para que você possa executar,
eventualmente,
suas aplicações comerciais favoritas a partir do LINUX.
O LINUX não é executado no
MS-DOS, no Windows, ou em qualquer outro sistema operacional: é
totalmente
independente deles, mas recursos foram acrescentados para permitir
que os sistemas
operacionais trabalhem juntos.
Sobre os direitos autorais do Linux
O Linux e coberto pelo o que e conhecido como a GNU General Public License
ou GPL.
A GPL foi desenvolvida para o projeto GNU pela Free Software Foundation.
Tomou
diversas medidas para a distribuicao e a modificacao do "software gratuito".
O termo
gratuito neste sentido refere-se a independencia, nao ao custo. A GPL
sempre foi alvo
de ma interpretacao.
Originalmente, Linus Torvalds lancou o Linux com uma licenca mais restrita
que a GPL, o
que permitia ao software ser distribuido gratuitamente e modificado,
mas impedia
qualquer mudanca de propriedade de sua distribuicao e uso. A GPL permite
que as
pessoas vendam e tenham lucro com o software gratuito, mas nao permite
que elas
restrinjam o direito dos outros na distribuicao do software de qualquer
maneira.
Primeiro, deve ser explicado que o "software gratuito" coberto pela
GPL nao esta no
dominio publico. O software de dominios publicos e aquele que nao tem
direitos autorais
e pertence, ou autores. Isto significa que ele e protegido pelas leis
internacionais de
direito autoral padrao e que o seu autor esta legalmente definido.
Apenas porque o
software pode ser distribuido gratuitamente nao significa que ele esta
no dominio
publico.
A GPL permite tambem que as pessoas obtenham e modifiquem o software
gratuito e
distribuam suas proprias versoes. Porem, quaisquer trabalhos derivados
do software
GPL, tem que ser cobertos tambem pela GPL. Em outras palavras, uma
empresa nao
podera obter o Linux, modifica-lo e envia-lo com uma licensa com restricoes.
Se qualquer
software vier do Linux, este software tera que ser coberto tambem pela
GPL.
As pessoas e as organizacoes podem distribuir o software GPL por um
pagamento e
ainda ter lucros com sua venda e distribuicao. Porem, ao vender o software
GPL, o
distribuidor nao podera tirar estes direitos do comprador; ou seja,
se voce comprar o
software GPL em alguma fonte, podera distribuir este software gratuitamente
ou vende-lo
voce mesmo.
Isto pode parecer uma contradicao a primeira vista. Por que vender
o software para ter
lucros quando a GPL permite que qualquer pessoa obtenha-o gratuitamente?
Como
exemplo, digamos que alguma empresa decidiu colocar uma grande quantidade
de
softwares em um CD-ROM distribui-lo. Esta empresa precisa cobrar pelo
processo de
producao e distribuicao do CD-ROM e ela pode ainda decidir lucrar com
as vendas do
software. Isto e permitido pela GPL.
No mundo do software gratuito, a questao importante nao e o dinheiro.
O objetivo do
software gratuito e sempre desenvolver e distribuir softwares fantasticos
e permitir que
qualquer pessoa obtenha-o e use-o.
Iniciantes:
INTRODUCAO
Este topico foi pensado e elaborado para todos os novos usuarios que
estejam querendo adotar o
Linux como um verdadeiro sistema operacional. Como o Linux (Unix) e
muito diferente dos
outros sistemas , os iniciantes que geralmente ja usaram o Windows
ou DOS antes, com certeza
irao sentir uma certa dificuldade no Linux.
Para instalar e rodar o sistema Linux voce nao vai precisar de muitas
informacoes do UNIX. Na
verdade, muitos iniciantes do UNIX conseguem instalar o Linux em seus
sistemas com sucesso.
Vale a pena essa experiencia, mas nao se esqueca de que podera ser
bem frustantes para
algumas pessoas. Se voce tiver sorte, sera capaz de instalar e comecar
a usar o seu sistema
Linux sem precisar ter nunhuma experiencia no UNIX.
Ninguém pode esperar se transformar, sendo um iniciante em UNIX,
em um administrador de
sistemas da noite para o dia, voce tera que estar preparado pela jornada
que esta por vir. Mas
como Linux eh Linux, vamos em frente, que vale a pena o "esforco".
Nessa pagina voce ira tirar
suas duvidas basicas que muitas vezes ate atrapalham os Gurus do sistema
com perguntas bobas
e repetitivas de "Como faco para instalar o Linux?", "Nao estou conseguindo
rodar o
X-Windows", "Nao consigo conectar!!", "Como faco para instalar tal
programa?" e muito mais. Se
voce esta iniciando nesse sistema, aqui e o seu lugar.
Camandos básicos do Linux
Esta eh uma pequena lista de comandos Linux, mas apesar de simples e
pequena e uma
mina de ouro para novos e inexperientes usuarios que precisam saber
um basico para
acessar um sistema Linux.
| Comando | Descricao | Exemplo |
| ls | Lista os arquivos, mesmo que dir do DOS.
Atributos comuns: -a = mostra arquivos ocultos -l = mostra bytes, permissoes, diretorio, etc. |
(nenhum) |
| rm | Remove arquivos, no formato: rm (arquivo1) (arquivo2) (arquivo3) ... | rm eu.doc / rm leiame.txt manual.html win95.w95 |
| cp | Copia arquivos, no formato: cp (arquivo1) (diretorio) | cp manual.txt /home/manual |
| mv | Mover e/ou renomear arquivos
Linha: mv origem_do_arquivo destino_do_arquivo ou mv arquivo arquivo1 |
(nenhum) |
| cat | Mostra o conteudo do arquivo, mesmo que o 'type' no DOS | (nenhum) |
| more | Exibe o conteudo de um arquivo pagina a pagina, mesmo que no DOS. | ls|more |
| pwd | Exibe o diretorio atual (o que vc esta) | (nenhum) |
| rmdir | Apaga diretorio | rmdir /diretorio se o diretorio estiver cheio, use o rm com o atributo -r | mkdir | Cria diretorio | mkdir /diretorio |
| clear | Limpa a tela, mesmo que 'cls' no DOS | (nenhum) |
| who | Mostra quem estah na maquina no momento | (nenhum) |
| whoami | Mostra quem voce eh - util quando vc esquece com que login entrou. | (nenhum) |
| finger | Mostra o usuario associado a certa chave | (nenhum) |
| df | Mostra o espaco usado, livre e a capacidade das particoes do HD | (nenhum) |
| free | Exibe a memoria livre, a usada, e o buffers da memoria RAM | (nenhum) |
| exit e logout | Sai da sessao atual | (nenhum) |
| shutdown | "Reseta" a maquina | shutdown -r now |
Como criar sistemas de arquivos ?
Antes de poder usar suas particoes do Linux para armazenar os arquivos,
voce tera que criar sistemas
de arquivos nelas. Criar um sistema de arquivos e parecido com a formacao
de uma particao no
MS-DOS ou em outros sistemas operacionais.
Existem diversos tipos de sistemas de arquivos disponiveis para o Linux.
Cada tipo de sistemas de
arquivos tem seu proprio formato e conjunto de caracteristicas (como
o comprimento do nome de
arquivo, o tamanho maximo do arquivo, etc.). O Linux suporta tambem
diversos tipos de sistemas de
arquivos de "terceiros", como o sistema de arquivos do MS-DOS.
O tipo de sistemas de arquivos mais usado eh o Second Extended Filesystem
(Segundo sistema de
arquivos extendidos) ou ext2fs. O ext2fs eh um dos sistemas de arquivos
mais eficientes e flexiveis; ele
permite os nomes de arquivos com ate 256 caracteres e tamanhos de sistemas
de arquivos de ate 4
terabytes.
Para criar um sistema de arquivos ext2fs, use o comando:
mke2fs -c tamanho da particao
onde particao eh o nome da particao e tamanho eh o tamanho da particao
em blocos. Por exemplo:
para criar um sistema de arquivos com 82080 blocos no /dev/hda2, use
o comando:
# mke2fs -c /dev/hda2 82080
Se voce estiver usando diversos sistemas de arquivos para o Linux, precisara
usar o devido comando
mke2fs para cada sistema de arquivos.
Como criar uma conta de usuário ?
Para comecar a usar o seu sistema, voce precisara criar uma conta do
usuario para si mesmo.
Finalmente, se voce pretende ter outros usuarios em seu sistema, ira
criar as contas do usuario para
eles tambem. Mas antes de comecar a explorar, voce precisara de pelo
menos uma conta.
Por que isto? Todo sistema Linux tem diversas contas pre-instaladas,
como a conta root. Porem, esta
conta destina-se exclusivamente a finalidades administrativas. Como
root voce tera todos os tipos de
previlegios a podera acessar todos os arquivos em seu sistema.
Entretando, usar a conta root, pode ser perigoso, sobretudo se voce
for um iniciante no Linux. Como
nao existem restricoes sobre o que a conta root pode fazer, sera muito
facil digitar incorretamente um
comando e apagar sem querer arquivos, danificar seu sistema de arquivos,
etc. Voce devera
conectar-se como root apenas quando precisar executar as tarefas de
administracao do sistema,
como: consertar os arquivos de configuracao, instalar um novo software,
etc.
Para um uso normal, voce devera criar uma conta do usuario padrao. Os
sistemas UNIX tem uma
seguranca predefinida que impedem que os usuarios apaguem os arquivos
dos outros usuarios,
danificando recursos importantes como os arquivos de configuracao do
sistema e assim por diante.
Isto acontece principalmente com os usuarios sem experiencia em administracao
do sistema UNIX.
Muitas distribuicoes Linux fornecem ferramentas para criar novas contas.
Estes programas sao
chamados geralmente de useradd ou adduser. Como root, chamando um desses
comandos voce
devera ver o resumo do uso do comando e criar uma nova conta devera
ser bastante simples.
Outrs distribuicoes como o Yggdrasil LGX CD-ROM, fornecem uma ferramenta
de administracao do
sistema geral para varias tarefas, dentre elas a criacao de uma nova
conta do usuario. O comando
control-panel (painel de controle) no LGX ira finalizar essa ferramenta.
Se tudo mais falhar, voce podera criar uma conta manualmente. Geralmente,
tudo o que eh necessario
para criar uma conta eh:
Editar o arquivo /etc/passwd para acrescentar
o novo usuario.
Editar, opcionalmente,o arquivo /etc/shadow
para especificar os atributos da "senha
correspondente" para o novo usuario.
Criar o diretorio pessoal do usuario.
Copiar os arquivos de configuracao da estrutura
(como o .baschrc) para o diretorio pessoal do
novo usuario. Eles podem ser encontrados,
algumas vezes, no diretorio /etc/skel.
Lembre-se de que para definir ou alterar a senha na conta do usuario,
voce usara o comando passwd.
Por exemplo: para alterar a senha de um usuario com o nome duck, envie
o seguinte comando:
# passwd duck
Isso ira definar ou alterar a senha duck. Se voce executar o comando
passwd como root, nao sera
solicitado a senha original. Assim, se voce esqueceu sua antiga senha,
podera se conectar como root,
para redefini-la.
Conectando Linux ao Provedor Internet
1. Aqui voce ira saber passo a passo como conectar o
seu computador num sistema Linux com a Internet, leia atentamente o texto
a seguir e boa sorte.
2. Procedimentos iniciais.
Voce deve ter instalado os softwares de rede (pacote N, no Slackware - nem todos sao necessarios), alem de ter compilado o kernel com suporte a PPP.
Identifique em qual saida serial o seu modem esta conectado. Lembre-se:
| DOS | Linux |
| COM1 | /dev/cua0 (/dev/ttyS0) |
| COM2 | /dev/cua1 (/dev/ttyS1) |
| COM3 | /dev/cua2 (/dev/ttyS2) |
| COM4 | /dev/cua3 (/dev/ttyS3) |
telematica:/home/farias# ln -s /dev/cua1 /dev/modem
Esta acao produzira o seguinte:
telematica:/home/farias# ls -l /dev/modem
lrwxrwxrwx 1 root root 4 Jan 18 1997 /dev/modem -> /dev/cua1
A configuracao padrao normalmente permite acesso direto a /dev/modem apenas para o usuario root.
Voce pode utilizar o software "minicom" para testar sua configuracao e para observar as sequencias de conexao do seu Provedor. Voce ira precisar delas se desejar automatizar o processo de conexao.
2.1 Arquivos de Configuracao.
Novamente, estas tarefas devem ser feitas com o usuario root. Edite os seguintes arquivos:
#/etc/hosts.deny
ALL: ALL
#End of /etc/hosts.deny
#/etc/hosts.allow
ALL: 127.0.0.1
#End of /etc/host.allow
Para obter maiores informacoes sobre estes arquivos, consulte "man 5 hosts_access". Estou considerando que voce nao esteja conectado a uma LAN e/ou que nao tenha acesso a um IP estatico (se voce nao sabe o que e, com certeza nao tem).
Neste ponto, voce precisa saber qual e o name server (DNS server) de seu provedor e edite o arquivo "/etc/resolv.conf".
#/etc/resolv.conf
search . provedor.com.br
nameserver 222.222.222.222
nameserver 333.333.333.333
nameserver 444.444.444.444
#End of /etc/resolv.conf
Voce pode utilizar ate 3 name servers, que serao consultados em ordem, no caso do anterior nao responder.
Modifique agora o arquivo "/etc/hosts".
#/etc/hosts
localhost 127.0.0.1
0.0.0.0 telematica
#* "telematica" e o nome de minha maquina, troque pelo nome da sua.
#End of /etc/hosts
Uma minima configuracao e necessaria em "/etc/networks".
#/etc/networks
# /etc/ppp/options (NO PAP/CHAP)
Este arquivo tem funcionado nos Provedores que ja tive oportunidade
de testar.
Aconselho ainda a criacao do arquivo /etc/ppp/scripts/ppp-off, contendo
o seguinte:
#!/bin/sh
Com isto, ja e possivel testar uma conexao manual ao provedor. Se tudo
funcionar como desejado, poderemos automatizar o processo.
3. Conexao.
3.1 Conexao Manual.
Voce pode utilizar o "minicom", que tem a possibilidade de sair sem
ressetar o modem (Ctrl + A + Q ou Alt + Q). Agora voce deve logar-se como
"root" ("su" nao ira funcionar). Disque para seu Provedor, logue-se (informe
seu username e senha quando solicitado), e estabeleca PPP no servidor (digitando
"ppp" ou selecinando a opcao equivalente em algum menu - depende do provedor).
Voce podera observar o aparecimento de "lixo" em sua tela, tipo:
y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .¸y}
Agora saia do minicom sem ressetar o modem (Alt + Q), e no prompt do
shell, digite (como root):
telematica:~# pppd -d -detach /dev/modem &
A opcao -d habilita o debug, o que podera ajuda-lo na resolucao de problemas.
Alguns segundos depois, voce podera verificar a interface PPP, digitando:
telematica:~# ifconfig ppp0
Devera aparecer algo como:
* inet addr: indica o seu numero IP para esta conexao.
Se tudo ocorreu bem, parabens, pois voce esta conectado. Contudo, existe
um porem. Se, por acaso, voce nao conseguir acessar outros hosts que nao
seja o roteador do provedor (neste caso, 200.248.171.4), voce deve verificar
a tabela de roteamento do kernel. Digite:
telematica:/home/farias# /sbin/route del default
E provavel que esta rota esteja sendo definida nos scripts rc de inicializacao
do Linux (/etc/rc.d/rc.inet1, no SlackWare), portanto comente as linhas
necessarias.
Teste agora a resolucao de nomes, "pingando" um site que voce tenha
certeza que esteja on-line. Voce ira notar que havera uma certa demora
ate que o nome seja resolvido, mas se este atraso nao for demais, esta
tudo OK.
Se tudo funcionou como desejado, desconecte-se digitando (como root):
telematica:/home/farias# /etc/ppp/scripts/ppp-off
Se o script nao funcionar, chame o minicom, digite +++ para interromper
o modem e depois ATH0 para desligar, quando receber o "OK" do modem.
Agora ja e possivel automatizar a conexao.
3.2 Automatizando o processo de conexao.
Eu utilizo scripts para o "chat" na automatizacao da conexao, os quais
nunca me deram problemas, portanto nunca me preocupei em aprender a utilizar
o "dip".
Com estes scripts, voce necessitara digitar apenas um comando para estabelecer
conexao com seu provedor de acesso. IMPORTANTE: Somente utilize estes scripts
se voce testou a conexao manual e a mesma funcionou 100%!!
Para executar tais scripts, voce precisara ser root, ou membro do grupo
do pppd (lembrei deste fato agora, e nao pretendo reescrever este documento
abordando esta facilidade, portanto utilize root, ou leia o PPP-HOWTO).
Os scripts funcionam da seguinte maneira: quando o modem disca para o provedor,
esperamos um prompt de login do servidor, mandamos o login/username. Depois
esperamos um prompt de senha, e a enviamos.
3.2.1 Testando os scripts de conexao.
Logue-se como root em um VC (virtual console) ou xterm e digite:
telematica~# tail -f /var/log/messages
(ou seja la qual seja seu arquivo de log)
Em outro VC ou xterm, tambem como root, digite:
telematica:~# /etc/ppp/scripts/ppp-on & [1] 678
Se voce nao rodar o script em background (utilizando o '&'), voce
nao tera o prompt liberado ate que o pppd termine (quando o link e terminado).
Agora, retorne ao VC (ou xterm) onde o log esta sendo mostrado. Voce
devera observar algo semelhante ao que segue (desde que tenha especificado
a opcao '-v'para o chat):
Se tudo ocorreu bem, voce pode navegar a vontade, pois voce ja faz parte
da grande rede!!
3.2.2 Desconectando...
Para desconectar-se, utilize o script /etc/ppp/scripts/ppp-off. Novamente,
voce deve ser root para executar esta tarefa (ou membro do grupo do pppd,
mas isto e outra historia...). Voce podera observar o seguinte no arquivo
de log (ou algo semelhante):
Aug 6 16:36:23 telematica pppd[677]: Terminating on signal 2.
4. Conclusao
A ideia basica deste documento era apenas ajudar os usuarios a estabelecerem
uma conexao PPP com um provedor de acessos. Quanto a utilizacao de softwares
clientes, como browsers, leitores de e-mail, programas de ftp, etc, aconselho
a leitura do ISP-Hookup-HOWTO ou entao entre em contato com seu Linux Guru
local. Ainda nao consegui organizar meu tempo para criar um documento mais
abrangente.
Espero que este documento possa ajudar qualquer usuario com o minimo
de conhecimento em Unices a conectar-se a Internet. Se meu objetivo nao
foi alcancado, solicito que entrem em contato comigo para que se possa
melhorar este breve e simples tutorial. A intencao e tornar o Linux um
SO o mais amigavel possivel, e embora seja uma tarefa dificil, e algo que
*pode* ser acabado, se um dia for *iniciado*!
Aprendizado avançado
INTRODUCAO
Mesmo pessoas com anos de experiencia de programacao no UNIX e administracao
de sistema
Mais importante, talvez, eh a funcionalidade. Em muitos casos, o novo
codigo sera criado no
Se voce foi um administrador de sistema UNIX por mais de uma decada
e usou todos os sistemas
Com toda essa atividade dinamica, como voce espera acompanhar o mundo
sempre em
Bem no centro do Linux esta o espirito do software gratuito, do crescimento,
e do
Comandos avançados I
"Mountando" o floppy : Crie um dir no raiz chamado /floppy e
digite:
mount /dev/fd0 /floppy ou
mount /dev/fd1 /floppy
dependendo do local do seu floppy. Se ele for drive A: no DOS sera fd0,
se for B: sera fd1. Ai vc vera o conteudo do disquete a partir do dir /floppy
"Mountando" o CD-ROM: Crie um dir no raiz chamado /cdrom e digite:
mount -t iso9660 -r /dev/cdrom /cdrom
Todo o conteudo do CD sera visualizado no diretorio /cdrom
Exemplo:
grep rwx /etc/passwd ou
cat /etc/passwd | grep rwx
Ele verificara todas as entradas rwx no arquivo passwd.
Linha: head -c Nb arquivo ; onde N e o numero de bytes que serao exibidos.
Vc pode usar em vez da letra b apos o N, as letras k(kilobytes)
ou m(megabytes).
Opcoes: -f
Linha: ln origem destino
Opcoes: -a
Linha: su
Sintaxe : chmod permissões nome_do_arquivo
onde :
permissões - indica as permissões a serem modificadas;
As permissões podem ser especificadas de várias maneiras.
Aqui está uma das formas mais simples de realizarmos esta operação
:
1- Use uma ou mais letras indicando os usuários envolvidos:
. u (para o usuário)
2- Indique se as permissões serão adicionadas (+) ou
removidas (-). 3- Use uma ou mais letras indicando as permissões
envolvidas :
. r (para "read") (ler)
Exemplo : No exemplo a seguir, a permissão de escrita ("write")
é adicionada ao diretório "dir1" para usuários pertencentes
ao mesmo grupo. (Portanto, o argumento "permissões" é g+w
e o argumento "nome" é dir1).
$ ls -l dir1
Como você pôde verificar, o hífen (-) no conjunto
de caracteres para grupo foi modificado para "w" como resultado deste comando.
- r w - r - - r - -
e para novos diretórios é:
d r w x r - x r - x
Alguns arquivos, tais como arquivos binários e executáveis,
não podem ser visualizados na tela. O comando "file" pode ser útil
se você não tem certeza sobre o tipo do arquivo. O uso do
comando permitirá a visualização do tipo do arquivo.
Exemplo : $file copyfile
Sintaxe: chgrp [-f] [-h] [-R] gid nome-do-arquivo
"chgrp" modifica o identificador de grupo ("group ID" , gid) dos arquivos
passados como argumentos.
"gid" pode ser um número decimal especificando o group id, ou
um nome de grupo encontrado no arquivo "/etc/group". Você deve ser
o proprietário do arquivo, ou o super-usuário, para que possa
utilizar este comando.
Opções:
-f Esta opção não reporta erros
-h Se o arquivo for um link simbólico, esta opção
modifica o grupo do link simbólico. Sem esta opção,
o grupo do arquivo referenciado pelo link simbólico é modificado.
- R Esta opção é recursiva."chgrp" percorre
o diretório e os subdiretórios, modificando o GID à
medida em que prossegue.
Sintaxe: chown [-fhR] (proprietário) (nome-do-arquivo)
O argumento "proprietário" especifica o novo proprietário
do arquivo.Este argumento deve ser ou um número decimal especificando
o userid do usuário ou um "login name" encontrado no arquivo "/etc/passwd".
Somente o proprietário do arquivo ( ou o super-usuário
) pode modificar o proprietário deste arquivo.
Opcões
- f Esta opção não reporta erros.
- h Se o arquivo for um link simbólico, esta opção
modifica o proprietário do link simbólico. Sem esta opção,
o proprietário do arquivo referenciado pelo link simbólico
é modificado.
- R Esta opção é recursiva."chown" percorre
o diretório e os subdiretórios, modificando as propriedades
à medida em que prossegue.
% apropos compiler
Uma vez de posse desta informacao eu digitaria entao
% man gcc
para obter informacoes especificas sobre o compilador gcc.
Todavia, este banco de dados nao e criado automaticamente. O administrador
de sistemas precisa criar este banco de dados atraves do comando catman.
Este comando ira varrer todos os diretorios especificados na variavel de
ambiente MANPATH e ira construir um arquivo chamado "whatis", onde ira
colocar as descricoes dos programas. Caso nao exista este arquivo, ao se
invocar o comando apropos uma mensagem parecida com a mensagem abaixo sera
exibida:
% apropos compiler
Para construir este banco de dados emitir o comando:
# catman -w
Uma vez criado o banco de dados o comando apropos (ou man -k) podera
entao ser utilizado.
Ao contrario do comando split, abordado na dica anterior, o comando
csplit permite que se especifique uma string que ira indicar o delimitador
de cada um dos novos arquivos.
Tomemos como exemplo o arquivo abaixo, chamado arq1:
arq1
Era uma vez, era uma vez tres porquinhos, Palhaco, Palito e Pedrito.
Capitulo 2
E o Lobo Mau, ...
Capitulo 3
E o cacador, matou o Lobo Mau, casou-se com a Chapeuzinho Vermelho,
e viveram felizes para sempre.
The End
@@@ Fim arq1 O autor, colocou todos os capitulos do livro em apenas
um arquivo e depois se arrependeu. Agora ele quer criar varios arquivos
contendo um capitulo cada. O comando abaixo pode resolver este problema:
% csplit -f Capit arq1 "/Capitulo/" {2}
Traduzindo, o comando csplit ira criar varios arquivos iniciados em
"Capit", ate um maximo de 3 arquivos (parametro {2}, computa-se o numero
entre colchetes + 1). Este valor indica o numero de vezes que o comando
sera repetido. No nosso exemplo, foi especificado exatamente o numero de
capitulos contidos no arquivo original (3). Caso nao conhecamos este valor,
podemos especificar um numero que sabemos maior que o numero de arquivos
existentes. O comando csplit ira reclamar, e apagar todos os arquivos ja
criados. Para evitarmos que isto aconteca, basta especificar a flag "-k",
ou seja, a reclamacao continuara sendo feita, mas o trabalho ja feito nao
sera removido. O que nao pode e se especificar um numero inferior ao desejado.
Neste caso, o comando ficaria como:
% csplit -k -f Capit arq1 "/Capitulo/" {9}
A quebra sera feita, tomando-se por base o nosso exemplo, antes da string
Capitulo, exclusive. Devido a isto, o primeiro arquivo, Capit00, esta vazio.
Os arquivos criados, a excecao do arquivo Capit00 que esta vazio, contem:
Capit01
Capitulo 1
Era uma vez, era uma vez tres porquinhos, Palhaco, Palito e Pedrito.
...
Capit02
Capitulo 2
Capit03
Capitulo 3 E o cacador, matou o Lobo Mau, casou-se com a Chapeuzinho
Vermelho, e viveram felizes para sempre.
The End
O comando csplit todavia, e um pouco complexo. Existe um programa de
dominio publico chamado slice, que e muito mais flexivel e facil de usar
que o comando csplit.
Por exemplo, para se converter todos as letras maiusculas de um documento
para letras minusculas, executar o comando abaixo:
dd if=arquivo1 of=arquivo2 conv=lcase
Este comando ira converter todos as letras maiusculas do arquivo1 em
letras minusculas e gerar um outro arquivo chamado arquivo2 com o resultado
do processamento.
Da mesma forma, se quisermos converter todas as letras do arquivo2 para
maiusculas:
dd if=arquivo2 of=arquivo3 conv=ucase
Outra aplicacao interessante deste comando seria renomear todos os arquivos
em um determinado diretorio com seu nome equivalente em letras minusculas:
#!/bin/sh
arq1
1
arq2
a
O comando
% paste arq1 arq2 > arq3
resultaria no arquivo arq3 com o seguinte conteudo:
1 a
Ja o comando
% paste -s arq1 arq2 > arq3
resultara no arquivo arq3 com o conteudo abaixo
1 2 3 4 5
O comando split nos permite dividir um arquivo baseando-se no numero
de linhas ou numero de bytes que cada arquivo novo deve conter.
Por exemplo:
% split -l 10 /etc/passwd
Este comando criara varios arquivos denominados xaa, xab, xac, etc.
Nem sempre estes nomes sao os mais convenientes. Neste caso podemos, com
o acrescimo de mais um parametro, determinar o sufixo do nome dos arquivos
que serao criados:
% split -l 10 /etc/passwd pas-
Os arquivos criados passaram a conter o prefixo "pas-", permitindo identificar
mais claramente os contadores dos arquivos (aa, ab, ac, etc.)
Alem do particionamento em linhas, o comando split, quando invocado
com a opcao "b", ira efetuar a divisao do arquivo baseando-se no numero
de bytes:
% split -b 32k /etc/passwd pas-
ou entao
% split -b 32 /etc/passwd pas-
ou ainda
% split -b 32m /etc/passwd pas-
No primeiro exemplo, o arquivo /etc/passwd sera dividido em varios arquivos
de 32kbytes cada um, ao passo que no segundo exemplo, o arquivo sera dividido
em arquivos de 32 bytes cada. No terceiro exemplo, o arquivo /etc/passwd
e dividido em arquivos de 32MB cada pouco provavel :-)
Os exemplos abaixo ilustram claramente o poder e facilidade de uso deste
comando:
1) Divisao de um mailbox em varios arquivos contendo uma mensagem cada:
% slice -f mailbox -m
Sao criados varios arquivos iniciados por "mailbox:" e os numeros que
se seguem identificam a data da mensagem.
2) Divisao de um arquivo sempre que for encontrada a string "###". A
string "###" deve ser eliminada (flag -x) dos arquivos resultantes:
% slice -f arq1 -e "###" -x
Alem disto, o nome dos arquivos gerados pode ser configurado atraves
de algumas diretivas aceitas pelo comando slice. Caso o arquivo original
contenha as linhas:
arq1
----------------------------------------------------------------------- O comando abaixo
% slice -f arq1 -e "--- Os arquivos gerados receberam o prefixo "x." e o sufixo e o segundo
(#2) campo da linha que preencheu os requesitos para divisao dos arquivos,
indicado pelo parametro (-e "--- Este comando esta disponivel no servidor de ftp anonimo da Unicamp,
em http://ftp.unicamp.br/pub/unix-c/file-mgmt/slice.tar.gz.
arq1
1:2:3:4:5:6
O comando abaixo:
% sort -t: +1 -n arq1
ira gerar a seguinte saida:
|
Observar que o segundo campo, indicado pela seta, esta ordenado numericamente
em ordem crescente. Os campos deste arquivo sao separados por ":". O tipo
de separador e indicado pela flag "-t:". Em seguida a flag "-t" poderiamos
indicar qualquer tipo de separador. O campo a ser ordenado e indicado pela
flag "+1". Para o comando sort a contagem dos campos inicia-se por 0, desta
forma, o valor "+1" ira indicar na realidade o segundo campo do arquivo.
A ordenacao tambem pode ser feita numericamente, do maior para o menor
valor:
% sort -t: +1 -nr arq1
|
arq1
x
O comando abaixo, executado sobre o arquivo arq1, ira gerar a saida
exibida abaixo:
% sort arq1
Alem desta funcao, o comando sort tambem pode ser utilizado para combinar
dois arquivos diferentes. Os arquivos sobre os quais o comando sort ira
atuar ja devem ter sido previamente ordenados:
arq1
aa
arq2
bb
O comando:
% sort -m arq1 arq2
ira exibir na tela:
aa
A saida do comando sort, em todos os exemplos apresentados, tem sido
redirecionada para a tela. Caso queiramos redirecionar esta saida para
um arquivo para processamento posterior, temos duas opcoes equivalentes:
% sort arq1 arq2 > arq3
ou
% sort arq1 arq2 -o arq3
Tomemos os arquivos arq1 e arq2:
arq1
AA
arq2
bb
O comando sort abaixo:
% sort arq1 arq2
ira gerar uma saida onde a ordenacao sera feita primeiramente sobre
as letras maiusculas e em seguida as minusculas, ou seja, A-Z e em seguida
a-z.
Ja o comando abaixo
% sort -f arq1 arq2
ira realizar a ordenacao dos arquivos independentemente das palavras
estarem grafadas em maiusculas ou minusculas.
arq1
joao
O comando:
% sort -u arq1
ira gerar a saida abaixo
heitor
A diretiva "-u" fez com que a saida gerada contivesse apenas uma ocorrencia
de cada uma das linhas.
O comando:
% tail /etc/passwd
ira exibir as dez ultimas linhas do arquivo /etc/passwd
E possivel tambem especificar o numero de linhas a serem exibidas, ao
inves das dez linhas que o comando adota como default:
% tail -n 100 /etc/passwd
No exemplo acima, serao exibidas as 100 ultimas linhas do arquivo /etc/passwd.
Uma flag muito util, e a flag "-f", que permite a visualizacao dinamica
de um arquivo, ou seja, as linhas sao exibidas na tela na medida em que
sao geradas. Esta facilidade e particularmente interessante quando se faz
a compilacao de um software redirecionando a saida para um arquivo. Atraves
do comando tail pode-se acompanhar toda a compilacao ao mesmo tempo em
que as informacoes sao gravadas em um arquivo:
% make >& make.log
% ls | tee saida.txt
A listagem do diretorio e exibida na tela ao mesmo tempo em que e gravada
no arquivo saida.txt
O comando tee aceitas as flags "-a", indicando que a saida do comando
deve ser acrescida ao conteudo do arquivo especificado e a flag "-i", que
especifica que interrupcoes devem ser ignoradas.
O comando script oferece funcionalidade semelhante, porem mais abrangente.
O comando script registra tudo o que ocorre em uma sessao interativa, ao
passo que o comando tee grava o resultado de apenas um arquivo.
Uma outra possibilidade e redirecionar a saida de um comando executado
em uma tela para uma outra:
% ls | tee /dev/pts/1
Nestte exemplo, a saida do comando ls sera exibida na tela original
e na tela identificada por /dev/pts/1.
Este comando chama-se traceroute. Para determinar o caminho percorrido
de meu computador ate o servidor ftp da Universidade de Washington basta
emitir o comando:
root@netway:[/]traceroute wuarchive.wustl.edu
Da saida do comando acima pode-se identificar todo o caminho percorrido
ate se chegar ao computador destino. No total, a mensagem passa por 13
computadores ate chegar ao destino.
Ao lado do nome de cada computador pode-se ver o numero IP e tres valores
em milissegundos. A cada um destes computadores sao enviados tres pacotes
UDP e, para cada um destes pacotes, e medido o tempo de ida e volta do
pacote. Se nao houver resposta dentro de tres segundos, no lugar onde seria
exibido o tempo da viagem de ida e volta e colocado um asterisco, como
se pode ver acima.
O objetivo deste comando e servir como uma ferramenta para identificacao
de problemas de rede, roteamento e medicao de performance. Se o pacote
estiver tomando caminhos totalmente diferentes da melhor rota esta anomalia
ja pode ser identificada a partir da saida do traceroute. Pode-se tambem
se identificar gargalos, a partir dos quais a performance se torna extremamente
lenta.
Como dito acima, este comando existe tambem em sistemas Windows. O nome
todavia e diferente. Chama-se tracert e deveser invocado a partir de uma
janela DOS.
O comando xargs atua sobre o resultado a ele fornecido pelo standard
input e constroi um comando baseado nesta entrada e em seus proprios argumentos
da linha de comando.
Por exemplo:
% ls | xargs rm -f
Este comando ira remover todos os arquivos do diretorio corrente. A
diferenca entre o comando acima e os comandos
% rm -f `ls`
e
% rm -f *
e que apos a shell realizar a expansao dos nomes gerados atraves do
"rm -f *" ou "rm -f `ls`" o tamanho da linha de comandos pode causar um
erro. O comando xargs gera linhas de comando de tamanho compativel com
as limitacoes do sistema e executa o comando solicitado tantas vezes quantas
forem necessarias para completar a tarefa.
% find . -user queiroz -exec ls {} \;
A diferenca e que no primeiro find o comando ls e executado uma vez
para cada arquivo encontrado. Se forem encontrados 1000 arquivos o comando
ls sera executado 1000 vezes.
Ja no segundo exemplo, com a saida do find redirecionada para o comando
xargs, o comando ls sera executado sobre um grupo de arquivos de cada vez
e nao uma vez para cada arquivo. O que ira determinar o numero de vezes
que o comando xargs executara o comando ls e justamente o tamanho da linha
de comandos. O comando xargs ira dividir a saida gerada pelo comando find
em blocos compativeis com a capacidade do sistema de maneira a que nao
ocorra um erro quando da execucao, em nosso caso, do comando ls.
Em outras palavras, suponhamos que o comando find descubra 2000 arquivos
sobre os quais o comando xargs devera executar o comando ls. O limite maximo
de arquivo sobre os quais o comando ls pode atuare de 500. O comando xargs
automaticamente realizara a divisao desta entrada em quatro blocos de 500
arquivos.
Concluindo, o comando xargs e bem mais eficiente do que a diretiva -exec
do comando find, por exigir menos recursos computacionais para executar
a mesma tarefa. uma vez sobre todos os arquivos encontrados.
Impressão de Man Pages
As vezes se deseja imprimir algumas paginas do manual do sistema. Normalmente
se
man ls > ls.doc
ou
man ls | lpr
Alguns sistemas operacionais entretanto costumam sublinhar determinadas
partes do
DESCRIPTION
No exemplo acima os caracteres confusos sao a palavra "file" sublinhada,
e que nao se
Para retirar os sublinhados, basta redirecionar a saida do comando man
atraves do
man ls | col -b > ls.doc
O documento gerado, no nosso caso, ls.doc, pode entao ser impresso em
qualquer tipo
loopback 127.0.0.1
localnet 0.0.0.0
#End of /etc/networks
#
# Prevent pppd from forking into the background
-detach
# If you are using a STATIC IP number, edit the 0.0.0.0 part of the
# following line to your static IP number.
0.0.0.0:
#
# use the modem control lines
modem
# use uucp style locks to ensure exclusive access to the serial device
lock
# use hardware flow control
crtscts
# create a default route for this connection in the routing table
defaultroute
# do NOT set up any "escaped" control sequences
asyncmap 0
# use a maximum transmission packet size of 552 bytes
mtu 552
# use a maximum receive packet size of 552 bytes
mru 552
#
#-------END OF SAMPLE /etc/ppp/options (no PAP/CHAP)
######################################################################
# /etc/ppp/scripts/ppp-off
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop
it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Success. Let pppd clean up its own junk.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
# --------- End of /etc/ppp/scripts/ppp-off
ppp0 Link encap:Point-Point Protocol
inet addr:200.248.171.138 P-t-P:200.248.171.4 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:1500 Metric:1
RX packets:276 errors:0 dropped:0 overruns:0
TX packets:268 errors:0 dropped:0 overruns:0
Onde:
* P-t-P: indica o numero IP do servidor.
telematica:~$ /sbin/route
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
vendetta.conesu * 255.255.255.255 UH 1500 0 0 ppp0
localnet * 255.255.255.0 U 1500 0 8 eth0
loopback * 255.0.0.0 U 3584 0 31 lo
default vendetta.conesu * UG 1500 0 21 ppp0
Se nao aparecer uma rota default, ou entao demorar muito para aparecer
toda a tabela de roteamento, e provavel que o pppd esteja tendo problemas
para configurar a rota default. Isto podera acontecer no caso de ja existir
uma rota default *antes* de voce rodar o pppd. Neste caso, digite (como
root):
PPP link to ppp0 terminated.
#!/bin/sh
# /etc/ppp/scripts/ppp-on
#
# Este script nao e seguro, ja que e possivel visualizar os argumentos
# atraves do 'ps', mas e bastante facil de entender. Se desejar algo
# melhor, RTFM 'n' do your own!
#
TELEPHONE=277997 # Numero a ser discado
ACCOUNT=farias # Username
PASSWORD=it'sasekrit! # Senha para este username
LOCAL_IP=0.0.0.0 # IP local. Dinamico = 0.0.0.0
REMOTE_IP=0.0.0.0 # IP remoto. Geralmente 0.0.0.0
# NETMASK=255.255.255.0 # Netmask, se necessario.
#
# Exportar variaveis para que estejam disponiveis para o script ppp-on-dialer
export TELEPHONE ACCOUNT PASSWORD
#
# Localizacao do script 'ppp-on-dialer'. TEM que ser o caminho absoluto,
# nao me pergunte o porque!
#
DIALER_SCRIPT=/etc/ppp/scripts/ppp-on-dialer
#
# Inicia a conexao
#
# A maioria das opcoes estao informadas no arquivo /etc/ppp/options.
#
exec /usr/sbin/pppd /dev/cua1 19200 \
$LOCAL_IP:$REMOTE_IP \
connect $DIALER_SCRIPT
/bin/setserial /dev/cua1 spd_vhi # modems 14.400 ou maior (> UART 16550A)
# -------- End of /etc/ppp/scripts/ppp-on
A seguir, o script ppp-on-dialer.
#!/bin/sh
# /etc/ppp/scripts/ppp-on-dialer
#
# Segunda parte dos scripts de conexao...
#
exec chat \
TIMEOUT 30 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 45 \
OK ATDT$TELEPHONE \
BIS '' \
login:--login: $ACCOUNT \
assword: $PASSWORD \
'ption' '4'
# ------ End of /etc/ppp/scripts/ppp-on-dialer
Para maiores informacoes sobre scripts de conexao, leia a manpage do chat,
o PPP-HOWTO.
Aug 6 16:34:43 telematica pppd[677]: pppd 2.2.0 started by root, uid 0
Aug 6 16:34:44 telematica chat[678]: timeout set to 30 seconds
Aug 6 16:34:44 telematica chat[678]: abort on (\nBUSY\r)
Aug 6 16:34:44 telematica chat[678]: abort on (\nNO ANSWER\r)
Aug 6 16:34:44 telematica chat[678]: abort on (\nRINGING\r\n\r\nRINGING\r)
Aug 6 16:34:44 telematica chat[678]: send (rAT^M)
Aug 6 16:34:44 telematica chat[678]: expect (OK)
Aug 6 16:34:44 telematica chat[678]: rAT^M^M
Aug 6 16:34:44 telematica chat[678]: OK -- got it
Aug 6 16:34:44 telematica chat[678]: send (ATH0^M)
Aug 6 16:34:44 telematica chat[678]: timeout set to 45 seconds
Aug 6 16:34:44 telematica chat[678]: expect (OK)
Aug 6 16:34:44 telematica chat[678]: ^M
Aug 6 16:34:45 telematica chat[678]: ATH0^M^M
Aug 6 16:34:45 telematica chat[678]: OK -- got it
Aug 6 16:34:45 telematica chat[678]: send (ATDT277997^M)
Aug 6 16:34:45 telematica chat[678]: expect (BIS)
Aug 6 16:34:45 telematica chat[678]: ^M
Aug 6 16:35:01 telematica chat[678]: ATDT277997^M^M
Aug 6 16:35:01 telematica chat[678]: CONNECT 14400/REL-LAPM V.42 BIS -- got it
Aug 6 16:35:01 telematica chat[678]: send (^M)
Aug 6 16:35:01 telematica chat[678]: expect (login:)
Aug 6 16:35:01 telematica chat[678]: ^M
Aug 6 16:35:01 telematica last message repeated 2 times
Aug 6 16:35:01 telematica chat[678]:-----------------------------------------------^M
Aug 6 16:35:01 telematica chat[678]:| CYCLOM-MP/RA |^M
Aug 6 16:35:01 telematica chat[678]:| Copyright(C) 1995,1996 CYCLADES Corporation |^M
Aug 6 16:35:01 telematica chat[678]:-----------------------------------------------^M
Aug 6 16:35:01 telematica chat[678]: ^M
Aug 6 16:35:01 telematica chat[678]: ^M
Aug 6 16:35:01 telematica chat[678]: tom login: -- got it
Aug 6 16:35:01 telematica chat[678]: send (farias^M)
Aug 6 16:35:02 telematica chat[678]: expect (assword:)
Aug 6 16:35:02 telematica chat[678]: ^M
Aug 6 16:35:02 telematica chat[678]:
Aug 6 16:35:02 telematica chat[678]: Invalid user name.^M
Aug 6 16:35:02 telematica chat[678]: tom login: farias^M
Aug 6 16:35:02 telematica chat[678]: Password: -- got it
Aug 6 16:35:02 telematica chat[678]: send (censored!^M)
Aug 6 16:35:02 telematica chat[678]: expect (option)
Aug 6 16:35:03 telematica chat[678]: ^M
Aug 6 16:35:03 telematica chat[678]: ^M
Aug 6 16:35:03 telematica chat[678]: CYCLOM-MP/RA Main Menu
Aug 6 16:35:03 telematica chat[678]: ^M
Aug 6 16:35:03 telematica pppd[677]: Serial connection established.
Aug 6 16:35:03 telematica chat[678]: 1. Telnet 2. Logout 3. Ping^M
Aug 6 16:35:03 telematica chat[678]: 4. PPP^M
Aug 6 16:35:03 telematica chat[678]:
Aug 6 16:35:03 telematica chat[678]: Select option -- got it
Aug 6 16:35:03 telematica chat[678]: send (4^M)
Aug 6 16:35:04 telematica pppd[677]: Using interface ppp0
Aug 6 16:35:04 telematica pppd[677]: Connect: ppp0 <--> /dev/cua1
Aug 6 16:35:05 telematica pppd[677]: local IP address 200.248.171.146
Aug 6 16:35:05 telematica pppd[677]: remote IP address 200.248.171.6
Observe as ultimas 3 linhas de log. Se voce receber estas, existem boas
chances de voce estar conectado! :-) Agora, teste a conexao, primeiramente
'pingando' o "remote IP". Logo apos, faca o mesmo com o IP de um site que
sabidamente esteja on-line. Depois destes dois testes, utilize nomes ao
inves de IP's para testar o seu "/etc/resolv.conf".
Aug 6 16:36:23 telematica pppd[677]: Connection terminated.
Aug 6 16:36:23 telematica pppd[677]: Exit.
poderao precisar de assistencia antes de serem capaz de obter e instalar
o Linux. Existem ainda,
aspectos do sistema com os quais os especialistas no UNIX precisam
estar familiarizados antes
de iniciar. Primeiro, o Linux nao e um sistema UNIX comercial. Ele
nao tenta preservar os
mesmos padroes dos outros sistemas UNIX que voce podera encontrar.
Para ser mais especifico,
embora a instabilidade seja um fator importante no desenvolvimento
do Linux.
kernel padrao mesmo que ainda tenha erros a nao esteja funcionando
completamente. A
pretensao eh que eh mais importante lancar um codigo que os usuarios
poderao testar e usar do
que segurar a versao ate que esteja "completa". Exemplo: o Wine da
Microsoft tinha uma versao
alfa "oficial" antes de estar totalmente testado. Assim, a comunidade
do Linux teve uma
oprtunidade de trabalhar com o codigo, testa-lo, e ajudar a desenvolve-lo,
apesar de ser usados
por aqueles que acharam o codigo alfa "bom o suficiente" para suas
necessidades. Os
revendedores do UNIX comercial, raramente lancam o software desta maneira.
UNIX comerciais existentes, o Linux podera ter alguma utilidade. O
sistema e muito moderno e
dinamico. Uma nova versao do Kernel e criado num curto periodo de tempo.
Um novo software
eh lancado constantemente. Um dia seu sistema podera esta bem atualizado
com a versao atual
e no outro, o mesmo sistema podera ser considerado da Idade da Pedra.
movimento do Linux? Na maioria das vezes, e melhor atualizar com acrescimos,
ou seja,
atualizar apenas as partes do sistema que precisam ser atualizadas
e entao, apenas quando
voce achar que uma atualizacao e necessaria. Por exemplo: Se voce nunca
usa o Emacs, havera
poucas razoes para instalar sempre cada nova versao dele em seu sistema.
E mais, mesmo que
voce seja um usuario Emacs avido, geralmente nao havera motivo para
atualiza-lo, a menos que
voce ache que algum recurso esta faltando e que exista na proxima versao
do software.
desenvolvimento constante. A comunidade do Linux coloca a expansao
acima da estabilidade e
esse e um conceito dificil de ser engolido para muitas pessoas, especialmente
aquelas que estao
empreginadas pelo mundo do UNIX comercial. Voce nao pode esperar que
o Linux seja perfeito;
nada esta no mundo do software gratuito. Porem, acreditamos que o Linux
esta de fato tao
completo e util quanto qualquer outra implementacao do UNIX.
mount
Serve para "mountar"(Tornar o algo importado como uma coisa local) um diretorio
ou particao. Por exemplo se voce quiser visualizar o conteudo de um disquete,
voce o "mounta" com o mount. Linha: mount origem destino
umount
Serve para "desmountar" um diretorio ou particao. Apos voce "mountar" qualquer
coisa e nao quiser mais usar-lo, voce tera que "desmounta-lo". A linha
do comando umount sera sempre umount diretorio.
df
Utilizado para visualizar espaço nas particoes.
Filesystem
1024-blocks
Used
Available
Capacity
Mounted on
/dev/hdb1
791155
285322
464961
38%
/
/dev/hda1
2060032
1080544
979488
52%
/dosc
du
Visualizar espaco ocupado por aqueles arquivos do diretorio.
Opcoes aconselhadas: -a
cc
Compilador C do sistema UNIX. Opçoes: -o
Linha: cc -o arquivo arquivo.c
find
Procurar arquivos no sistema
Linha: find diretorio_do_arquivo -name nome_do_arquivo
date
Exibe data e hora do sistema
grep
Comando usado para identificar um linha em certo arquivo. Exemplo:
head
Usado para mostrar as dez primeiras linhas(default) de um certo arquivo.
tail
Verifica as 10 ultimas linha dum certo arquivo, e com a opcao -f espera
infinitamente por novas linhas no final. Perfeito para se usar em logs.
Linha: tail -f arquivo
ln
Serve para linkar um arquivo a um diretorio ou outro arquivo.
netstat
Mostra todas as conexoes TCP, UDP, RAW e UNIX sockets.
su
Comando usado para trocar de user sem precisar dar um logout.
Recomendado usar-lo sempre ainda mais se vc for um admin pois ficar
logado como root nao e aconselhavel.
touch
Cria um arquivo vazio.
Linha: touch arquivo
uname
Exibe informacoes do sistema.
Opcoes: -a
mailx
Verifica novos mails na caixa de mensagem.
showmount
Exibe diretorios mountados da maquina local ou qualquer outra.
Opcoes: -ae
Linha: showmount -ae IP_DA_MAQUINA
chmod
Modifica as permissões de um arquivo ou diretório.Você
deve ser o proprietário de um arquivo ou diretório, ou ter
acesso ao root, para modificar as suas permissões.
nome - indica o nome do arquivo ou diretório cujas permissões
serão afetadas.
. g (para o grupo)
. o (para "outros")
. a (para todas as categorias acima)
. w (para "write") (escrever)
. x (para "execute") (executar)
drwxr-xr-x 3 dir1 1024 Feb 10 11:15 dir1
$ chmod g+w dir1
$ ls -l dir1
drwxrwxr-x 3 dir1 1024 Feb 10 11:17 dir1
$
Quando você cria um novo arquivo ou diretório, o sistema
associa permissões automaticamente. Geralmente, a configuração
"default" (assumida) para os novos arquivos é:
file
Exibe o tipo de um arquivo.
copyfile: ascii text
chgrp
Modifica o grupo de um arquivo ou diretório.
chown
Modifica o proprietário de um arquivo ou diretório.
apropos
Uma facilidade bastante interessante existente em sistemas Unix e o comando
apropos. Este comando consulta um banco de dados consistindo da descricao
do comando. E bastante util em situacoes em que se deseja executar determinada
tarefa e nao se conhece o nome do comando. Por exemplo, caso eu queira
descobrir obter informacao a respeito de compiladores instalados em meu
sistema, eu poderia digitar:
cccp, cpp (1) - The GNU C-Compatible Compiler Preprocessor.
g++ (1) - GNU project C++ Compiler
gcc, g++ (1) - GNU project C and C++ Compiler (v2.7)
apropos: file /usr/local/man/whatis not found
Create the whatis database using the catman -w command.
csplit
Outro comando tambem utilizado para se dividir um arquivo em varios outros
e o comando csplit (Content Split).
Capitulo 1
% ls -l
total 4
-rw-r--r-- 1 queiroz supsof 0 Jun 17 18:31 Capit00
-rw-r--r-- 1 queiroz supsof 85 Jun 17 18:31 Capit01
-rw-r--r-- 1 queiroz supsof 29 Jun 17 18:31 Capit02
-rw-r--r-- 1 queiroz supsof 136 Jun 17 18:31 Capit03
-rw-r--r-- 1 queiroz supsof 250 Jun 17 18:11 arq1
0
85
29
csplit: {9} - out of range
136
E o Lobo Mau, ...
dd
O comando dd possui varias outras funcoes interessantes alem da copia pura
e simples de arquivos. Um funcao que julgo bastante util e a conversao
de caracteres.
for file in `ls`
do
mv $file `echo $file | dd conv=lcase`
done
paste
O comando paste serve para colar o conteudo de dois arquivos lado a lado.
Por exemplo, tomemos os arquivos arq1 e arq2:
2
3
4
5
b
c
d
e
2 b
3 c
4 d
5 e
a b c d e
split
Muitas vezes precisamos dividir um arquivo em varios outros menores, seguindo
alguma convencao. Para isto podemos usar tanto o comando split.
% ls
pas-aa pas-ab pas-ac pas-ad pas-ae pas-af pas-ag pas-ah
slice
Este comando incorpora toda a funcionalidade dos comandos split e csplit,
abordados anteriormente. Ao contrario dos comandos split e csplit, o comando
slice nao e padrao em sistemas Unix. Ele faz parte da distribuicao de utilitarios
para unix, chamada unix-c, e disponivel, entre outros lugares,em http://ftp.unicamp.br/pub/unix-c.
% ls
mailbox:1995-05-02.14:28 mailbox:1996-12-10.10:04:47
mailbox:1995-05-24.13:35:43 mailbox:1997-02-06.09:00:15
mailbox:1995-05-24.13:40:04 mailbox:1997-02-26.09:42:23
abcdefghijklmno
-----------------------------------------------------------------------
abcdefghijklmno
-----------------------------------------------------------------------
abcdefghijklmno
-----------------------------------------------------------------------
abcdefghijklmno
-----------------------------------------------------------------------
abcdefghijklmno
-----------------------------------------------------------------------
% ls
arq1 x.ARQ1 x.ARQ2 x.ARQ3 x.ARQ4 x.ARQ5 x.ARQ6
sort (1)
O comando sort, tambem oferece inumeras facilidades interessantes. Tomemos
o arquivo abaixo como exemplo:
1:1:3:4:5:6
1:4:3:4:5:6
1:2:3:4:5:6
1:0:3:4:5:6
1:2:3:4:5:6
1:7:3:4:5:6
1:2:3:4:5:6
1:0:3:4:5:6
1:9:3:4:5:6
v
1:0:3:4:5:6
1:0:3:4:5:6
1:1:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:4:3:4:5:6
1:7:3:4:5:6
v
1:9:3:4:5:6
1:7:3:4:5:6
1:4:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:2:3:4:5:6
1:1:3:4:5:6
1:0:3:4:5:6
1:0:3:4:5:6
sort (2)
O comando sort, na sua forma mais simples, serve para ordenar o conteudo
de um arquivo. Tomemos o arquivo:
a
h
j
k
a
h
j
k
x
yy
zz
bb
yy
zz
sort (3)
Uma outra caracteristica interessante do comando sort e a possibilidade
de fazer as comparacoes sobre os argumentos convertidos para minusculas
(flag -f).
XX
kk
AA
XX
bb
kk
AA
bb
kk
XX
sort (4)
O comando sort pode tambem ser utilizado para ordenar arquivos removendo
eventuais linhas duplicadas. Tomemos o arquivo arq1:
maria
jose
maria
joao
heitor
joao
jose
maria
tail
O comando tail pode ser utilizado para examinar as ultimas linhas de um
arquivo.
% tail -f make.log
tee
O comando tee permite que a saida de um comando seja gravada em um arquivo
ao mesmo tempo em que e exibida na tela. Por exemplo:
traceroute
Voce ja parou para pensar por onde passam os seus dados em suas viagens
pela Internet? Se voce quer saber, existe um comando em sistemas Unix e
Windows (95 e NT) que lhe fornecem estas informacoes.
traceroute to wuarchive.wustl.edu (128.252.135.4), 30 hops max, 40
byte packets
1 panoramix.cmp.unicamp.br (143.106.30.11) 9 ms 2 ms 2 ms
2 cmp-gw.unicamp.br (143.106.10.40) 10 ms 3 ms 3 ms
3 ansp-gw.unicamp.br (143.106.1.45) 4 ms 4 ms 4 ms
4 ansprd2.unicamp.br (143.106.70.1) 7 ms 5 ms 6 ms
5 143.108.5.7 (143.108.5.7) 156 ms * 186 ms
6 143.108.5.1 (143.108.5.1) 178 ms 184 ms 146 ms
7 delta.cora.br (143.108.13.3) 173 ms 173 ms 207 ms
8 mix-serial4-4.Washington.mci.net (204.189.152.193) 514 ms 391 ms
341 ms
9 * core1-fddi-0.Washington.mci.net (204.70.2.1) 365 ms *
10 core1.NorthRoyalton.mci.net (204.70.4.205) 365 ms 374 ms 390 ms
11 core-hssi-2.Chicago.mci.net (204.70.1.93) 383 ms 473 ms 397 ms
12 * border4-fddi-0.Chicago.mci.net (204.70.3.83) 390 ms *
13 startnet-llc.Chicago.mci.net (204.70.27.6) 420 ms 445 ms 411 ms
14 * wuarchive.wustl.edu (128.252.135.4) 428 ms *
xargs
Os resultados obtidos pelo comando find podem ser redirecionados para o
comando xargs para que sejam tomadas acoes especificas (remocao, mudanca
de atributos, listagem, etc) sobre estes arquivos.
xargs (2)
Qual a diferenca entre os comandos abaixo?
% find . -user queiroz -print | xargs ls
executa o comando man redirecionando a saida para um arquivo, ou diretamente
para
uma impressora:
documento e as vezes a impressora nao suporta este tipo de impressao,
gerando algo
parecido com
For each _^Hf_^Hi_^Hl_^He that is a directory, ls lists the
consegue identificar. Se existem muitos sublinhados como estes, voce
gastou papel a
toa.
comando col invocado com a opcao -b:
de impressora.