|  | Página seguinte
Página anterior
Índice 
 
 
 
 
 O Linux tem uma estrutura de diretórios e arquivos similar à do
DOS/Win.  Arquivos têm nomes-de-arquivo que obedecem a regras especiais,
são gravados em diretórios, alguns são executáveis, e a maioria destes tem
opções de linha de comando.  Além disso, você pode usar caracteres coringa,
redirecionamento e canalização.  Há apenas algumas pequenas diferenças:
 
 
 Sob o DOS, os nomes-de-arquivo tem o formato chamado 8.3; p.ex., 
INSUFICI.TXT.  No Linux, podemos fazer de um jeito melhor.  Se você
instalou o Linux usando um sistema de arquivos como o ext2 ou umsdos, você
pode usar nomes-de-arquivo mais longos (até 255 caracteres), e com mais de
um ponto: por exemplo,Este_eh.um.nome_de_arquivo.MUITO.longo.  Observe que eu usei tanto
caracteres maiúsculos como minúsculos: de fato... letras maiúsculas e minúsculas em nomes-de-arquivo e comandos são
diferentes.  Portanto, NOMEARQ.tar.gzenomearq.tar.gzsão dois
arquivos diferentes.lsé um comando,LSé um erro; usuários de Windows 95: cuidado ao usar nomes-de-arquivo longos no
Linux.  Se um nome-de-arquivo contiver espaços (não recomendado, mas
possível), você deve incluir o nome-de-arquivo entre aspas duplas sempre
que fizer referência a ele.  Por exemplo:
Além disso, certos caracteres não devem ser usados: alguns deles são
$ # o seguinte comando cria um diretório chamado "Meus arquivos antigos"
$ mkdir "Meus arquivos antigos"
$ ls
Meus arquivos antigos    bin     tmp
 !*$&. não há extensões obrigatórias, como .COM e .EXE para programas, ou
.BAT para arquivos de lote.  Arquivos executáveis são marcados com um
asterisco `*' ao final do nome quando você executa o comandols -Fcomando.  Por exemplo:Os arquivos
$ ls -F
Eu_sou_um_dir/   cindy.jpg    cjpg*   letter_to_Joe    meu_script*  old~
 cjpg*emeu_script*são executáveis, isto é, 
"programas".  No DOS, nomes de arquivos de backup terminam em .BAK,
enquanto no Linux terminam com um til.  Além disso, um arquivo cujo nome
comece com um ponto é considerado oculto.  Exemplo: o arquivo.Eu.sou.um.arquivo.ocultonão aparece na saída de um comandols; opções de programas são obtidas através de /opçãono DOS;
no Linux se usa-opçãoou--opção.  Exemplo:dir /svirals -R.  Observe que muitos programas DOS, comoPKZIPeARJ, usam opções ao estilo UNIX. Agora você pode pular para a Seção 
Traduzindo Comandos do DOS para o Linux, mas, se eu fosse você, continuaria lendo.
 
 
O Unix tem um tipo de arquivo que não existe no DOS: a ligação simbólica.
Isto pode ser considerado como um ponteiro para um arquivo ou diretório, e
pode ser usado ao invés do arquivo para o qual aponta; é similar aos
atalhos do Windows 95.  Exemplos de ligações simbólicas são
/usr/X11, que aponta para/usr/X11R6;/dev/modem, que aponta para/dev/cua0or/dev/cua1. Para fazer uma ligação simbólica:
 
 
$ ln -s <arq_ou_dir> <nomedaligação>
 Exemplo:
 
 
$ ln -s /usr/doc/g77/DOC g77manual.txt
 Agora você pode se referir a g77manual.txtao invés de/usr/doc/g77/DOC.
As ligações simbólicas aparecem assim em listagens de diretório: 
 
$ ls -F
g77manual.txt@
$ ls -l
(várias coisas...)           g77manual.txt -> /usr/doc/g77/DOC
 
 
 
 No DOS, arquivos e diretórios têm os seguintes atributos: A (arquivo), 
H (oculto), R (somente-para-leitura), e S (sistema).  Somente H e R fazem
sentido no Linux: arquivos ocultos começam com um ponto, e quanto ao
atributo R, siga em frente.
 No Unix, cada arquivo tem "permissões" e um dono, que por sua vez
pertence a um "grupo".  Veja este exemplo:
 
 
$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*
 O primeiro campo contém as permissões do arquivo /bin/ls, que
pertence ao root, grupo bin.  Deixando as informações restantes de lado,
lembre-se que-rwxr-xr-xsignifica, da esquerda para a direita: -é o tipo de arquivo (- = arquivo normal, d = diretório, l = ligação, etc);rwxsão as permissões para o dono do arquivo ("read, write,
execute", i.e., "leitura, gravação, execução");r-xsão as permissões para o grupo do dono do arquivo (leitura,
execução); (eu não explicarei o conceito de grupo, você pode sobreviver sem
isso enquanto for um iniciante ;-)r-xsão as permissões para todos os
outros usuários (leitura, execução).
 O diretório /bintem permissões também: veja a Seção
Permissões de Diretórios para mais
detalhes.  É por isso que você não pode apagar o arquivo/bin/ls,
a menos que seja o superusuário (root): você não tem permissão para isso.  Para mudar as
permissões de um arquivo, o comando é: 
 
$ chmod <quemXperm> <arquivo>
 onde quem é u(usuário, i.e., dono),g(grupo),o(outros), X
é ou+ou-, perm ér(leitura),w(gravação), oux(execução).  Alguns exemplos do uso dechmod: 
 
$ chmod +x arquivo
 isto define a permissão de execução do arquivo.
 
 
$ chmod go-rw arquivo
 isto remove as permissões de leitura e gravação para todos, exceto o dono.
 
 
$ chmod ugo+rwx arquivo
 isto dá permissão de leitura, gravação e execução para todos.
 
 
# chmod +s arquivo
 isso faz um arquivo chamado "setuid" ou "suid"---um arquivo que todos 
podem executar com os privilégios do dono.  Normalmente, você encontrará
arquivos setuid root; freqüentemente, são programas importantes do sistema,
como o servidor X.
 Uma maneira mais curta de se referir a permissões é com dígitos:
rwxr-xr-xpode ser expresso como 755 (cada letra corresponde a um bit:---é 0,--xé 1,-w-é 2,-wxé 3...).  Parece difícil, mas com um pouco de
prática você entenderá a idéia. Sendo o superusuário, pode-se mudar as permissões de qualquer arquivo. LPM.
 
 
 
 À esquerda, os comandos do DOS; à direita, sua contrapartida no Linux.
 
 
ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat
 Operadores de redirecionamento e canalização:  < > >> | Coringas: * ? nul:        /dev/null
 prn, lpt1:  /dev/lp0 ou /dev/lp1; lpr
 
 Exemplos
 
 
DOS                                     Linux
---------------------------------------------------------------------
C:\GUIDO>ATTRIB +R ARQUIVO.TXT          $ chmod 400 arquivo.txt
C:\GUIDO>COPY JOE.TXT JOE.DOC           $ cp joe.txt joe.doc
C:\GUIDO>COPY *.* TOTAL                 $ cat * > total
C:\GUIDO>COPY FRACTALS.DOC PRN          $ lpr fractals.doc
C:\GUIDO>DEL TEMP                       $ rm temp
C:\GUIDO>DEL *.BAK                      $ rm *~
C:\GUIDO>MOVE PAPER.TXT TMP\            $ mv paper.txt tmp/
C:\GUIDO>REN PAPER.TXT PAPER.ASC        $ mv paper.txt paper.asc
C:\GUIDO>PRINT LETTER.TXT               $ lpr letter.txt
C:\GUIDO>TYPE LETTER.TXT                $ more letter.txt
C:\GUIDO>TYPE LETTER.TXT                $ less letter.txt
C:\GUIDO>TYPE LETTER.TXT > NUL          $ cat letter.txt > /dev/null
        n/a                             $ more *.txt *.asc
        n/a                             $ cat section*.txt | less
 Observações:
 
 
 
 
 Para executar um programa, digite seu nome, como faria no DOS.  Se o
diretório (Seção 
Usando Diretórios) 
onde o programa está armazenado estiver incluso no PATH (Seção 
Arquivos de Inicialização do Sistema),
o programa será iniciado.  Exceção: diferentemente do DOS, no Linux um
programa localizado no diretório atual não é executado a menos que seu
diretório seja incluído no PATH.  Contorno: sendo progo seu programa, digite./prog. A linha de comando típica é parecida com essa:
 
 
$ comando [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< entrada] [> saída]
 onde -s1, ...,-snsão as opções do programa,par1,
...,parnsão os parâmetros do programa.  Você pode dar vários
comandos na mesma linha de comando: 
 
$ comando_1 ; comando_2 ; ... ; comando_n
 Isto é tudo que há sobre executar programas, mas é fácil ir um passo a
frente.  Um dos principais motivos para usar Linux é que é um sistema
operacional multitarefa---pode executar vários programas (daqui em diante,
processos) ao mesmo tempo.  Você pode lançar processos em segundo plano e
continuar trabalhando tranqüilamente.  Além disso, o Linux permite que você 
abra várias sessões: é como ter vários computadores para trabalhar ao mesmo
tempo.
 
 
 Para alternar entre as sessões 1..6 nos consoles virtuais, pressione
<ALT-F1> ... <ALT-F6>
 Para iniciar uma nova sessão no mesmo console virtual sem fechar a atual,
digite su - <nomedelogin>. Exemplo:su - root. Isto é útil,
por exemplo, quando você precisa fazer algo que só o superusuário pode fazer. Para terminar uma sessão, digite exit.  Se houver trabalhos 
interrompidos (veja abaixo), você será avisado. Para lançar um processo em segundo plano, adicione um '&'
ao fim da linha de comando:o interpretador de comandos identifica o processo por um número de trabalho (p.ex.
$ nomeprog [-opções] [parâmetros] [< entrada] [> saída] &
[1] 123
 [1];
veja abaixo), e a um PID (Process Identification Number, ou Número de
Identificação de Processo; 123 no nosso exemplo). Para ver quantos processos existem atualmente, digite ps -ax.
A saída será uma lista dos processos sendo executados. Para matar um processo, digite kill <PID>.  Você pode
precisar matar um processo quando você não souber como terminá-lo da
maneira correta... A menos que você seja o superusuário, você não pode matar
processos de outros usuários.  Às vezes, um processo somente pode ser
matado através dekill -SIGKILL <PID>.
Além disso, o shell permite que você termine ou suspenda temporariamente
um processo, envie um processo ao segundo plano, e traga um processo do
segundo para o primeiro plano.  Nesse contexto, processos são chamados
"jobs" ou trabalhos. Para ver quantos trabalhos existem, digite jobs.  Aqui os trabalhos são
identificados pelos seus números de trabalho, e não pelos seus PIDs. Para terminar um processo executando em primeiro plano, pressione
<CTRL-C> (não é sempre que funciona).
 Para suspender um processo executando em primeiro plano, pressione
<CTRL-Z> (idem).
 Para mandar um processo suspenso para o segundo plano, digite
bg <job>(ele se torna um trabalho). Para trazer um trabalho ao primeiro plano, digite fg <job>.
Para trazer o último trabalho que foi enviado ao segundo plano, digite
simplesmentefg. Para matar um trabalho, digite kill <%job>onde <job>
pode ser 1, 2, 3,... Usando esses comandos você pode formatar um disco, zipar um conjunto de
arquivos, compilar um programa e descompactar um arquivo, tudo ao mesmo
tempo, e ainda ter a linha de comando à sua disposição.  Tente isso no DOS! E
tente no Windows, apenas para ver a diferença de desempenho (se não travar,
é claro).
 
 
 
 
 Para executar um programa em uma máquina remota cujo endereço IP seja
maquina.remota.edu, digite: 
 
$ telnet maquina.remota.edu
 Depois de entrar no sistema, inicie seu programa favorito.  Desnecessário dizer que
você deve ter uma conta na máquina remota.
 Se você tiver o X11, você pode até mesmo executar uma aplicativo X no
computador remoto, exibindo-o na tela do seu X.  Seja
maquina.remota.eduo computador remoto elocal.linux.boxsua
máquina Linux.  Para executar a partir delocal.linux.boxum programa
X que resida emremote.machine.edu, faça o seguinte: 
 
 execute o X11, inicie um xtermou um emulador de terminal
equivalente, e digite:
$ xhost +maquina.remota.edu
$ telnet maquina.remota.edu
 depois de entrar no sistema, digite:
(ao invés de
remote:$ DISPLAY=local.linux.box:0.0
remote:$ nomeprog &
 DISPLAY..., pode ser que você tenha que digitar:setenv DISPLAY local.linux.box:0.0.  Depende do seu interpretador de comandos remoto.) E voila!  Agora nomeprogrodará emmaquina.remota.edue será
exibido na sua máquina.  Entretanto, não tente isto usando um modem, pois
será lento demais para ser usável. 
 
 Página seguinte
Página anterior
Índice
 |