Escolar Documentos
Profissional Documentos
Cultura Documentos
derável base operacional. Esta base tem aumentado de forma significativa nos úl-
timos cinco anos, impulsionada principalmente pelo crescente sucesso dos sistemas
de livre distribuição como o Linux.
Para aquele que nada ou muito pouco conhece de Linux ou Unix e acha que isto é
mais uma palavra esquisita utilizada em informática, este livro serve como uma
introdução leve, segura e simples a esta tecnologia, sem traumas, medos nem de-
sesperos.
Para aquele que já é usuário ocasional do Linux, este livro funciona como um "sal-
va vidas" em meio ao mar de coisas que se escreve sobre ele de maneira invaria-
velmente confusa e sem direção.
Não posso deixar de citar as incursões que faremos pelo universo gráfico oferecido
pelo Linux e seu aplicativo mais difundido como o StarOffice, um verdadeiro sis-
tema de automação de escritórios, (já apresentado em detalhes no livro Automação
de Escritórios com StartOffice 5.1a) e as principais ferramentas gráficas de admi-
nistração e produtividade com o ambiente gráfico KDE.
A Deus, pois Ele me concedeu...
No início da década de 90 o Linux foi visto com desconfiança pela maioria dos
usuários de computadores. Naquela época o sistema era visto como uma ferramenta
hacker, ou seja, seria usado por pessoas que tinham na computação e nas suas
ferramentas uma diversão e acima de tudo um desafio.
É importante frisar que o Linux foi desenvolvido com único intuito de permitir ao
seu usuário uma condição fácil de utilização, sem a necessidade de qualquer inves-
timento, pois ele é gratuito.
É claro que sistemas operacionais modernos são baseados em interface que facilita
a operação dos aplicativos, que precisam ser de baixo custo, geralmente gratuitos, e
que de uma maneira geral atendem a todas as necessidades não deixando de lado a
integração em ambiente de rede local.
1
2 Linux: Sistema Operacional II
Quando os usuários optam por novas ferramentas a sua principal preocupação diz
respeito àquilo que ele consegue mensurar, ou seja: “Quanto tempo é necessário
para aprender isto?”.
Esta limitação dos usuários é proporcionada pela dificuldade que ele sente em de-
senvolver de forma pessoal as suas necessidades, ou seja, quanto mais tempo ele
gastar para aprender a utilizar a ferramenta da qual ele dispõe, pior será a avaliação
que ele fará da ferramenta de trabalho em relação às suas necessidades.
A principal avaliação que deve ser considerada pelo técnico está ligada à alta qua-
lidade do trabalho que o usuário conseguirá desenvolver com um mínimo de trei-
namento que ele venha a receber. Este critério pode não ser o melhor, porém cons i-
dero sempre que é melhor este do que critério algum, sabendo que os usuários de
uma maneira geral, necessitam de um bom instrumento de produtividade e conside-
rando que esse instrumento deve ser fácil de usar, simples de manter, não sujeito a
erros, fraudes e outros acidentes e sabendo ainda que os usuários geralmente não
estão dispostos a aprender uma nova ferramenta por si só.
Para iniciar a interface do usuário, o técnico deverá estar preparado para configurar
o Shell com todas as tarefas necessárias ao início do ambiente de trabalho que o
usuário utilizará.
A configuração do Shell requer alguns comandos que serão estudados neste livro.
Nossa ênfase será em comandos internos e externos:
Parte -se aqui do pressuposto de que algumas técnicas devem ser dominadas por
você para que o computador possa ser preparado para receber o sistema operacio-
nal Linux.
Não adianta dizer que não existe complexidade no processo de instalação e mesmo
de uso do Linux, pois não quero enganar o leitor com afirmações sobre uma facili-
dade que de fato não existe. Cada distribuição de Linux, e existem dezenas delas,
oferece suas próprias facilidades de instalação e operação. Escolher uma ou outra
dependerá de um conhecimento prévio do que é oferecido por cada versão.
Nas etapas seguintes, iremos considerar apenas os processos que são comuns e que
geram menos confusão durante a instalação. Considere que o seu computador po-
derá ter instalado um sistema DOS ou um sistema Windows. Em qualquer dos ca-
sos será necessário preservar os dados e o próprio sistema operacional existente,
procedendo ao particionamento do seu disco rígido.
Uma situação ideal é ter à disposição um disco rígido que possa ser integralmente
formatado com o novo sistema. Independente da sua situação, e considerando prin-
cipalmente a primeira, não deixe de efetuar cópias de segurança de todos os dados
que você possui gravados neste disco.
1. Pelo comando autoboot.bat que usa o utilitário loadlin para carregar o sistema.
Executado direto do prompt do DOS/Windows.
2. Através dos discos boot e root gerados com o utilitário rawrite.
3. Boot direto pelo CD-ROM de distribuição. Requer ajustes na BIOS e suporte
para boot em CD.
Vários arquivos terminados com a letra i estão disponíveis para a criação do disco
de boot. Outros tantos arquivos terminados com a letra s, contêm as imagens do
root.
Por ser voltado ao ambiente web, o Linux traz linguagens script tradicionais nos
ambientes Unix. Desenvolver aplicativos ou rotinas corriqueiras em linguagem
script é muito facilitado pela existência de editores de texto que mais lembram o
antigo Wordstar. Para os usuários mais avançados o editor ‘vi’ está disponível
juntamente com o edlin, ambos muito conhecidos de usuários Unix.
Como todo sistema Unix que se preze, o Linux oferece compatibilidade para cone-
xão com praticamente qua lquer tipo de sistema. A conexão mais utilizada é para
redes locais baseadas no padrão ethernet.
Ainda não temos um sistema Linux totalmente convertido e traduzido para o portu-
guês do Brasil, porém a distribuição Console Linux traz a maioria dos manuais e
ajudas de comandos já traduzidos para o português do Brasil o que facilita bastante
o trabalho dos usuários que têm pouca ou nenhuma intimidade com o inglês.
6 Linux: Sistema Operacional II
O leitor deve considerar ainda que a operação de sistemas Linux e Unix compatí-
vel, pode variar de versão para versão obrigando que, para sua operação, sejam
consultados manuais e dicas de operação, principalmente para aqueles serviços que
não seguem o padrão Unix.
A grande maioria do material que você encontrará neste livro pode também ser en-
contrada na Internet em dezenas de sites nos mais diversos idiomas e com os mais
Observações Gerais 7
variados graus de profundidade. Os comandos descritos aqui nada mais são do que
uma compilação livre, porém com enfoque prático, de documentos disponíveis
quer seja na Internet, quer seja nos sistemas de Help on-line do próprio Linux ou
em News Internet afora.
A parte referente ao editor ‘vi’ por exemplo, resume os principais comandos deste
poderoso editor, porém, com ajuda do help instalado em seu computador você po-
derá verificar não apenas os comandos citados neste livro mais todos os comandos
existentes para o ‘vi’.
Algumas atividades que serão solicitadas ao longo do livro podem requerer que o
leitor possua uma conexão com Internet e eventualmente um segundo computador
interligado em uma rede local. Quando isto não for possível você conseguirá ape-
nas atingir o primeiro objetivo, ou seja, entender a parte conceitual.
Conheci muitos “técnicos” que não sabiam inicar uma tarefa, nem aquelas mais
simples, se não através de um software assistente (wizards) ou partindo de um mo-
delo pronto “mastigado”. Em última análise “saber se virar” demanda no mínimo:
1) saber inglês técnico, 2) procurar a raiz funcional dos softwares e 3) não intimi-
dar-se com mensagens do tipo “command zxkwy not found”. São estas pequenas
coisas que farão a grande diferença no final do mês quando você receber o seu sa-
lário, ou pelo menos deveriam fazer.
Vocabulário básico
Antes de iniciar o assunto propriamente dito, é necessário estabelecer um vocabulá-
rio básico sem o qual o entendimento de alguns textos pode ficar prejudicado.
9
10 Linux: Sistema Operacional II
Prompt – ou sinal de pronto, indica ao usuário que o SO está pronto para ser utili-
zado. Nos sistemas Unix o prompt pode ser um $ ou #.
Cursor – é um pequeno sinal que pisca de forma intermitente após o prompt e ser-
ve para indicar a posição onde aparecerá o próximo caractere digitado.
Área de trabalho
O Linux apresenta-se ao usuário com uma tela principal denominada ‘tela de login’
ou ‘issue screen’. Nela o usuário deve digitar sua identificação (login) e senha de
acesso (password).
Depois de validar login e password, o Linux apresenta um sinal de prontidão
(prompt) que pode ser $ (dólar), # (jogo da velha) ou outro, dependendo da confi-
guração inicial de cada usuário.
Se você tiver um Pentium (qualquer um!) com 32MB RAM, 1.2 GB de HD, unida-
de de disquetes de CD, você terá uma plataforma considerada “padrão” para insta-
lar e rodar bem o Linux.
Minha máquina é um Pentium 150 MHz “bala” montado numa placa Soyo 5y (a-
quela baby AT) com 64MB de EDORAM –70 “a jato”, HD Caviar de 2.5GB, Pla-
ca de vídeo PCI Diamond S3 “bala” com 4MB, Monitor Asaki de 14” com Kde
rodando em 1024 X 768 X 8bits sem flicking, Placa ethernet 3COM ISA COMBO
de 10Mbits, Mouse Genius 3 botões, Teclado Five Star US, CD IDE Creative quad
speed “bala”, Placa Sound Blaster ISA 16, conjunto este que chamo carinhosamen-
te de “FrankPCstain”, e faço com ele coisas que até eu duvido... e numa velocida-
de!!! que deixa muito PIII 600 de 256MB com HD SCSI rodando Windows 2000
Server “comendo poeira”.
No meu FrankPCstain eu rodo Mail Server com antivírus, Web Server Apache,
MySQL, PHP, Perl, gcc, COBOL, StarOffice, Netscape, Samba, KDE desktop,
Sniffer e ainda “sobra muita máquina”.
12 Linux: Sistema Operacional II
Sabe quantas vezes o Linux travou no meu FrankPCstain? Nenhuma. Sabe quantas
vezes eu perdi dados porque um aplicativo travou? Nenhuma. Sabe desde quando
ele está rodando ininterruptamente 24h/dia, 7 dias/semana (descontando as duas
vezes em que faltou energia, uma outra quando tropecei no fio de energia e uma
quarta que meu filho apertou o reset quando eu estava salvando este arquivo)?
Desde 21 de março de 2000 às 15:37 quando comecei a escrever este livro, por-
tanto quase um ano SEM ESQUENTAR MINHA CABEÇA COM SISTEMA
OPERACIONAL, fazendo testes, experiências, instalando e desinstalando softwa-
res, lin guagens e “outros bichos”!!!
Seleção do Teclado
• Escolha do leiaute do seu teclado. Cuidado para não selecionar o leiaute
incorreto. Se o seu teclado for padrão ABNT (aquele com Ç) não se preo-
cupe, não existem comandos com Ç ou acentuação em Unix. Se seu tecla-
14 Linux: Sistema Operacional II
do não tiver este símbolo será preciso ativar as teclas mortas (acentos e
combinações para gerar o Ç), necessárias ao digitar textos a serem impres-
sos ou enviados pela Internet.
Escolha o Mouse
• Qual é o modelo de mouse conectado ao seu computador?
• Uma lista é exibida com vários modelos pelo programa de instalação. Você
deve escolher aquele que melhor indica o equipamento que você possui.
Possivelmente a sugestão feita pelo programa de instalação deva ser a me-
lhor indicação para o seu caso. Fique atento para o tipo de interface que se-
rá utilizada: serial ou PS/2.
• A opção de emular três botões em equipamentos que possuam dois botões
geralmente não funciona adequadamente, portanto, desmarque esta opção.
• Qual é o dispositivo ao qual o mouse está conectado?
• O programa de instalação o sugere /dev/ttyS0 (COM1 under DOS), que re-
solve 99% dos casos.
• Se o mouse do seu computador estiver em outro endereço (COM2, COM3
ou COM4), escolha um na lista exibida.
Tipo de Instalação
• Qual é o tipo de sistema que você gostaria de instalar? Workstation (Gno-
me ou KDE), Dos/Windows (mantém intacta a FAT atual com Windows),
Servidor ou Atualização?
Interface 15
Configuração de Rede
• Um hostname é o nome que o computador terá e pelo qual ele será reco-
nhecido em um ambiente de rede. Se ele não estiver em um ambiente de
rede, ainda assim este será o nome associado ao seu computador.
• Importante: Não utilize caracteres especiais (símbolos e letras acentuadas)
e evite a utilização de espaços em branco ao definir o nome do computa-
dor.
• Se o seu computador tiver uma placa de rede instalada, ela pode ser conf i-
gurada automaticamente utilizando uma técnica conhecida por bootp/dhcp,
e que consiste na leitura das configurações necessárias diretamente de um
arquivo previamente criado. A outra opção seria informar o endereço dire-
tamente no espaço disponível para isto.
• O endereço IP deve ser válido respeitando as classes de endereçamento de-
terminadas por este protocolo. Para maiores informações, consulte o livro
Internet Intranet e Redes Corporativas , deste mesmo autor e editora.
• Dê preferência pelas classes B ou C de endereçamento. Veja um bom
exemplo de endereço para ser utilizado nesta configuração:
192.168.0.1
16 Linux: Sistema Operacional II
• Quaisquer deles que você venha a escolher permitirão que seu computador
trabalhe sem conflitos de endereço tanto em uma rede local como em co-
nexões com a Internet. É sempre importante, contudo, se a instalação esti-
ver acontecendo em um ambiente de rede empresarial, que se consulte o
administrador de rede responsável pela distribuiç ão dos endereços IP váli-
dos neste ambiente.
• Informe então o endereço IP, por exemplo, 192.168.0.1 e prossiga com Tab
até o campo OK. Observe que a máscara (Netmask), Default gateway e
Primary nameserver, são automaticamente preenchidas pelo programa de
instalação. Para ter certeza destes valores, não deixe de verificar os valores
válidos com o administrador de redes da empresa ou consulte o livro já ci-
tado antes.
• Caso o micro que receberá o Linux esteja participando de uma rede local
ethernet pode-se ativar a busca automática de endereços pelo DNS ativo e
ativar também o default gateway. Estes parâmetros simplificam a conexão
de uma máquina Linux com a Internet e demais recursos da rede.
• Se isto aconteceu com sua instalação e você ficou com dúvidas, peça ajuda
ao administrador da sua rede para informar-lhe o endereço do servidor
DNS e o default gateway de saída para Internet.
Fuso horário
Aponte no mapa o fuso horário que corresponde à sua região. O mapa que é exibi-
do é interessante. Conforme aproxima-se o ponteiro do mouse da localidade dese-
jada, uma seta aponta a cidade correta, e ao clicar, o fuso horário e a localidade são
estabelecidos.
usuário com o seu nome. Para efeito de exemplo, o usuário normal durante
todo o livro será Garcia.
Particionamento automático
• Essa etapa pode demorar cerca de meia hora (no meu FrankPCstain demo-
rou 17 minutos) até mais de duas horas (dependendo do conjunto de paco-
tes escolhidos), podendo demorar mais dependendo da configuração do seu
computador (velocidade do HD, total de memória RAM, tipo da CPU).
Bootdisk
Completado
Reboot
Primeiro boot
• O mouse é detectado e uma tela é mostrada para que o device seja configu-
rado. Escolha a opção Configure e aguarde. Confirme a escolha do mouse
que foi feita no processo de instalação e aguarde que o restante da carga
termine. Uma tela similar a esta (chamada issue – divulgar) deve ser exib i-
da. Pequena variação pode ocorrer caso o nome dado a sua instalação seja
diferente de Console Linux:
Console Linux 1.0 (Spike)
Kernel 2.2.17-21mdk
console login:
Uma visão geral do Console Linux com algumas janelas sobrepostas. A semelhan-
ça com o Windows é grande: desde o botão K (Iniciar) até a barra com data, hora e
janelas na barra de tarefas; com apenas uma inversão no controle das janelas colo-
cando o botão fechar (x) no canto superior esquerdo.
O Koffice possui esta tela integradora chamada koshell e dentro da qual as demais
aplicações são abertas.
22 Linux: Sistema Operacional II
Figura 2.1
Figura 2.2
Figura 2.3
Figura 2.4
24 Linux: Sistema Operacional II
Figura 2.5
Figura 2.6
Figura 2.7
26 Linux: Sistema Operacional II
Primeiro login
O cursor que é exibido está aguardando que seja informado o nome de um usuário.
Informe então o usuário root.
console login: root
Password: [informe sua senha]
Uma vez que você tenha informado usuário e a senha correta, deve ser exibida na
tela o prompt do Linux.
[root@console /root]#
[root@MeuLinux /root]#
A palavra root que precede o host name refere-se ao usuário que se logou ao siste-
ma. Se você se logar com outro nome de usuário, por exemplo, Garcia, em uma
máquina chamada MeuLinux, então o prompt aparecerá assim:
[Garcia@MeuLinux /Garcia]$
A string /Garcia exibida depois do login name e do host name é o diretório (pasta)
onde o foco do Shell está no momento. Neste caso você está na pasta Garcia imedi-
atamente abaixo do diretório de trabalho do usuário, portanto /home/Garcia.
Para fechar uma sessão utilize o comando exit ou tecle CTRL + D. Note que a tela
issue é novamente exibida.
Mas não é só isto! Ao fechar o login, seu computador não pode ser desligado sim-
plesmente. Os sistemas modernos ativam diversos processos que o usuário não vê,
Interface 27
A lista que será exibida é composta por dezenas de processos, estando aqui ilustra-
dos apenas os primeiros.
Sabendo então que existem diversos processos em execução, os mesmos devem ser
encerrados evitando desta forma uma eventual perda de dados.
Principais opções:
Poderes do root
A conta do usuário root, também chamado superusuário, é poderosa o suficiente
para danificar uma instalação Linux a partir de um único comando. Sistemas Unix
partem do pressuposto de que o usuário root sabe o que está fazendo e nem sempre
avisa ou impede ações executadas por ele que possam causar danos ao sistema.
Portanto cuidado!
Configurações
Se você está acostumado a operar apenas com cliques de mouse, sentirá o Shell do
Linux um pouco hostil no início de sua utilização. Todas as configurações necessá-
rias são armazenadas em simples arquivos do tipo texto que estão em sua maioria
no /etc. Portanto, começaremos nosso estudo fazendo um passeio pelos diretórios
(pastas) disponíveis de forma a conhecer melhor onde estão os arquivos mais im-
portantes do sistema.
As configurações dos sistemas Unix são geralmente mantidas em arquivos texto
dentro do /etc. Faça o login como superusuário e execute os comandos:
[root@Console /root]# cd /etc
O comando cd (change dir), seguido do caminho (path) leva o prompt para outro diretório,
neste caso /etc.
[root@Console /etc]# ls *.conf
O resultado obtido consiste na listagem dos arquivos que atendem o filtro *.conf.
[root@Console /etc]#
30
Configuração do Linux 31
O comando cat (catalog) seguido de um nome de arquivo faz exibir o conteúdo deste arquivo.
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda1
Note que o conteúdo do arquivo lilo.conf é somente texto composto por parâmetros e seus
valores.
[root@Console /etc]#
Arquivo Descrição
cdrecord.conf Configuração para gravador de CD informando modelo,
velocidade de gravação. Contém os padrões utilizados na linha
de comando se nenhum parâmetro for informado.
inetd.conf Este arquivo descreve os serviços que estão disponíveis através
do servidor INETD TCP/IP. Para configurar e executar o
INETD edite este arquivo e envie um sinal SIGHUP para
reiniciar os serviços.
initlog.conf Define como será o arquivo com a log (histórico) da
inicialização do Linux. As configurações deste arquivo têm
precedência aos comandos emitidos no prompt.
32 Linux: Sistema Operacional II
Arquivo Descrição
lilo.conf Configura a carga do sistema operacional.
logrotate.conf Define uma rotatividade para a log do sistema e controla os
parâmetros funcionais desta log (mensagens de erro, utilização
de compactação, etc).
mtools.conf Define as atribuições para as unidades de disco utilizadas em
ambiente de alguns emuladores.
named.conf Estabelece os padrão do servidor de nomes named.
nscd.conf Configura o cache do servidor de nomes (Name Service Cache).
nsswitch.conf Name Service Switch. Este arquivo deve ser classif icado pelos
serviços mais utilizados no começo do mesmo.
A entrada '[NOTFOUND=return]' significa que a procura por
uma entrada deve parar se a procura por uma entrada anterior
não retornar nada.
pbm2ppa.conf Exemplos de configuração para impressoras HP.
phhttpd.conf Cabeçalho exemplo para tags xml.
pine.conf Configura o leitor de mail e news estabelecendo todos seus
aspectos funcionais.
pnm2ppa.conf Outro exemplo de configuração para impressoras HP.
rpmfind.conf Configuração dos locais onde os pacotes RPM podem obter
dados e como eles devem rodar no ambiente Linux.
smb.conf Principal arquivo para configuração do samba, que permite o
compartilhamento de recursos do Linux para uma rede ponto a
ponto.
sysctl.conf Controla o funcionamento de envio de pacotes em uma rede
local, habilitando ou não opções de rote amento.
syslog.conf Define como e onde as mensagens emitidas pelo kernel serão
registradas no sistema.
yp.conf Configura o funcionamento do NISDOMAIN.
ypserv.conf Configura as principais funções do NIS server.
Configuração do Linux 33
Arquivo /etc/passwd
Outros tipos de arquivos de configuração do ambiente Linux que estão no /etc
guardam um dos segredos mais preciosos deste sistema. Trata-se do arquivo
passwd. Este arquivo concentra todos os nomes de usuários válidos para acesso ao
Linux. Vamos verificar a estrutura deste arquivo:
[root@Console /etc]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
gdm:x:42:42::/home/gdm:/bin/bash
Garcia:x:500:500:Marcus Garcia:/home/Garcia:/bin/bash
Note a especificação da estrutura do nosso arquivo pelo nosso usuário exemplo Garcia:
Garcia:x:500:500:Marcus Garcia:/home/Garcia:/bin/bash
1
2
3
7
34 Linux: Sistema Operacional II
named:x:25:25:Named:/var/named:/bin/false
piranha:x:60:60::/home/httpd/html/piranha:/dev/null
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
pvm:x:24:24::/usr/share/pvm3:/bin/bash
squid:x:23:23::/var/spool/squid:/dev/null
[root@Console /etc]#
Arquivo /etc/group
[root@Console /etc]# cat group
Vemos agora o conteúdo do arquivo group do /etc. No arquivo passwd vimos referência ao
grupo ao qual o usuário pertence. Os grupos estão referenciados e descritos no arquivo group.
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
wheel:x:10:root
1
2
3
4
Configuração do Linux 35
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
nobody:x:99:
users:x:100:
floppy:x:19:
utmp:x:22:
xfs:x:43:
console:x:31:
gdm:x:42:
pppusers:x:44:
popusers:x:45:
slipusers:x:46:
slocate:x:21:
Garcia:x:500:
named:x:25:
piranha:x:60:
postgres:x:26:
pvm:x:24:
squid:x:23:
[root@Console /etc]#
cando-se com sistemas Windows e Netware nos protocolos NetBEUI e IPX sem
qualquer problema, mas isto não é comum. Vamos então verificar alguns arquivos
do /etc que definem configurações de alguns aspectos do ftp que faz parte do
TCP/IP.
Arquivo /etc/ftpaccess
Arquivo Descrição
ftpaccess Configura o comportamento do servidor FTP no Linux. Que
classes de usuários podem acessar, quantas tentativas de
conexão, mensagens de boas vindas e de aviso são alguns dos
parâmetros configuráveis aqui.
[root@Console /etc]# cat ftpaccess
1 class all real,guest,anonymous *
2 email root@localhost
3 loginfails 5
4 readme README* login
5 readme README* cwd=*
6 message /welcome.msg login
7 message .message cwd=*
8 compress yes all
9 tar yes all
10 chmod no guest,anonymous
11 delete no guest,anonymous
12 overwrite no guest,anonymous
13 rename no guest,anonymous
14 log transfers anonymous,real inbound,outbound
15 shutdown /etc/shutmsg
16 passwd-check rfc822 warn
[root@Console /etc]#
Qualquer alteração que seja feita neste arquivo de configuração passa a valer ime-
diatamente após ser salva.
Configuração do Linux 37
A numeração de linhas exibida à esquerda não existe no arquivo original. Ela foi utilizada
aqui apenas para facilitar a explicação das configurações.
Utilize as setas para movimentar o cursor e faça a digitação direta como em qual-
quer editor de textos.
Os comandos são acionados com a tecla Ctrl combinada com letras. Por exemplo,
Ctrl + X encerra o pico salvando as alterações, Ctrl + G exibe uma tela de ajuda,
Ctrl + V avança uma página e Ctrl + Y retorna uma página e assim por diante.
Verifique todos os comandos disponíveis acionando o help com a combinação de
teclas Ctrl + G.
Figura 3.1
38 Linux: Sistema Operacional II
Ao abrir o arquivo, sua interface fica dividida nas três partes indicadas na figura
3.1 e a seguir descritas:
Agora que você já conhece um pouco do pico, carregue o arquivo ftpaccess e va-
mos verificar o que suas configurações indicam.
Linha Descrição
1 Todas as classes de usuários que pertencerem aos grupos indicados po-
dem acessar o serviço de ftp.
2 Ocorrências serão enviadas para o e-mail indicado aqui.
3 Quantidade de logins mal sucedidos no ftp até que a conexão seja encer-
rada. Um login mal sucedido pode ser causado por um usuário inexistente
(não registrado no sistema) ou por uma senha incorreta.
4–7 Arquivos e tipos das mensagens que serão enviadas ao usuário que utiliza
o serviço de ftp.
8 – 13 Funções e comandos do sistema operacional que estão disponíveis e
quem pode utilizar cada um.
14 Local onde a descrição das ocorrências com a conexão ftp são armazena-
das. Isto permite uma auditoria rápida do que está ocorrendo com o ser-
vidor.
15 Arquivo com a mensagem a ser exibida em caso de problemas com o ser-
viço ftp e outras ocorrências.
16 Como a senha é verificada e que aviso deve ser emitido ao usuário.
Connected to Console.
220 Console FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST 2000) ready.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
O prompt indica que você está conectado. Digite o comando quit do ftp para voltar ao Shell.
ftp>quit
[root@Console Garcia]#
A seqüência anterior estabelece a conexão com o usuário padrão criado em seu sis-
tema.
Delete na primeira linha a palavra real e salve o arquivo. Ao emitir o comando Ctrl
+ X para sair, o pico pergunta:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
O processo evolui normalmente até o momento da conexão. Neste ponto, porém o Linux a
rejeita, pois agora o ftpaccess estabelece que apenas usuários guest e anonymous poderão
se conectar.
Password:
530 Login incorrect.
Login failed.
ftp> quit
221 Goodbye.
[root@Console /etc]#
Tente agora um ftp através do usuário anonymous. Este usuário não existe efeti-
vamente no Linux. É apenas uma identificação especial para acesso restrito ao Li-
nux via ftp.
[root@Console /etc]# ftp localhost
Connected to Console.
220 Console FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST 2000) ready.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:Garcia): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
Configuração do Linux 41
Depois de encerrar o ftp ele avisa quantos bytes foram transferidos durante a sessão.
O número que precede cada mensagem emitida pelo ftp é padronizado. Todo servi-
dor ftp envia ao cliente estes números.
Arquivo /etc/ftpusers
Este arquivo contém uma lista dos usuários que NÃO podem acessar o sistema via
ftp. O seu conteúdo padrão envolve os usuários: root, bin, daemon, adm, lp, sync,
shutdown, halt, mail, news, uucp, operator, games e nobody.
Utilizando a mesma técnica anterior (/etc/ftpaccess) faça o seguinte teste com o seu
usuário criado na instalação. Inclua este usuário na lista do /etc/ftpuser e tente aces-
sar o ftp com este usuário. Observe que a mensagem emitida pelo Linux será:
Para trabalhar com a criação de novas pastas e fazer a navegação por elas existem
os comandos que veremos a seguir.
42
Comandos de Navegação pelas Pastas 43
O usuário poderá organizar seus dados e programas partindo do seu diretório que
está localizado no /home/[nome do usuário]. Desta forma o usuário Garcia teria seu
diretório localizado em /home/Garcia. O diretório do usuário é chamado simple s-
mente de home.
Observe pela figura 4.2 que este usuário tem abaixo de sua pasta uma pasta chama-
da .kde e outra chamada Desktop.
Partindo do diretório home do seu usuário padrão, vamos navegar pelas pastas. Fa-
ça o login com o seu usuário e note que utilizaremos a conta comum e não a de su-
perusuário.
[Garcia@Console Garcia]$ cd
O comando cd (change dir) emitido sem parâmetros posiciona o foco do Shell no diretório
home do usuário.
[Garcia@Console Garcia]$ pwd
44 Linux: Sistema Operacional II
O comando pwd (print which directory) simplesmente imprime o caminho completo (full
path) da pasta na qual o Shell está com o foco.
/home/Garcia
[Garcia@Console Garcia]$
Para alternar de pastas pode-se utilizar o caminho absoluto (full path) ou o caminho
relativo, que parte da pasta onde está o foco atualmente. Por exemplo, consideran-
do que o foco do Shell é /home/Garcia, para navegar até o /home/ftp existem duas
formas: utilizando o caminho absoluto ou utilizando o caminho relativo.
O mkdir utilizado para criar os diretórios documentos e planilhas a partir do diretório Gar-
cia.
[Garcia@Console Garcia]$ ls
documentos planilhas
[Garcia@Console Garcia]$
46 Linux: Sistema Operacional II
Vamos verificar esta facilidade utilizando a pasta planilhas criada no item anterior.
Vamos copiar para esta pasta alguns arquivos e depois vamos fazer comandos de
remoção para constatar seu funcionamento.
Comandos de Navegação pelas Pastas 47
Agora vamos copiar do /etc todos os arquivos que tenham a extensão .conf:
O comando ls nos permite confirmar que a cópia foi efetuada com sucesso ao exibir a lista
dos arquivos copiados.
O comando cd com o caminho relativo .. (ponto ponto) indica o nível imediatamente acima
do atual.
Removendo com rm –r
Vamos utilizar um parâmetro adicional no comando rm:
[root@Console Garcia]# rm -r planilhas
Note agora que somente depois de remover todo o conteúdo de planilhas é que o rm pede a
confirmação para remover o próprio diretório planilhas.
[root@Console Garcia]#
Removendo com –r –f
Confirmar individualmente será muito demorado se a pasta contiver centenas de
arquivos. Para evitar isto utilizamos o parâmetro adicional –f. Vamos então criar
novamente a pasta planilhas, copiar os arquivos para lá e testar este comando com
o novo parâmetro. Agora CUIDADO! Este parâmetro inibe a segurança e ao teclar
<ENTER> tudo é imediatamente removido sem que nenhuma confirmação seja
solicitada:
[root@Console Garcia]# pwd
/home/Garcia
[root@Console Garcia]# mkdir planilhas
Copiando os arquivos com cp. Note o caminho absoluto para a origem dos arquivos do /etc
e o caminho relativo para o destino . (ponto).
[root@Console planilhas]# ls
amd.conf isapnp.conf mtftpd.conf phhttpd.conf
sysctl.conf cdrecord.conf krb5.conf mtools.conf
50 Linux: Sistema Operacional II
O diretório está vazio. A pasta planilhas e todo seu conteúdo foram removidos sem que
nenhum aviso ou pedido de confirmação fosse emitido pelo Shell.
ls
ls – l
Lista longa do conteúdo da pasta, exibindo detalhes como permissões, dono, grupo,
espaço que ocupa, data e hora da criação e nome.
[root@Console Garcia]# ls -l
total 8
drwxr-xr-x 5 Garcia Garcia 4096 Aug 3 17:22 Desktop
drwxrwxr-x 2 root root 4096 Aug 3 17:22 planilhas
[root@Console Garcia]#
ls –la
O parâmetro l faz uma listagem longa (long) e o parâmetro a exibe todos os arquivos (all),
não ocultando os que começam com ponto.
A numeração que aparece à esquerda não é gerada pelo comando ls e foi inserida para faci-
litar a explicação.
52 Linux: Sistema Operacional II
Linha Descrição
1 Total de ligações listadas
2 Diretório atual (/home/Garcia)
3 Diretório acima (/home)
4 – 14 Arquivos iniciados por ponto
15 Diretório Desktop
16 Diretório planilhas
17 Arquivo x
[root@Console Garcia]#
Cada um dos arquivos e diretórios Unix tem sua estrutura básica assim composta:
Comandos de Navegação pelas Pastas 53
-
dono grupo outros
d
(owner) (group) (other)
l
Os valores atribuídos para cada posição dos conjuntos dono, grupo e outros, permi-
tem formar um valor para cada posição que, depois de combinadas, definem uma
seqüência numérica única para qualquer permissão que se deseje aplicar. Observe
este exemplo:
0 7 4 0
Como o dono terá acesso total, as três letras rwx devem estar “ligadas”, portanto as
suas posições terão os valores 4, 2 e 1.
Como os usuários do grupo poderão apenas ler, então apenas o r estará “ligado”,
portanto as suas posições terão os valores 4, 0 e 0.
Alterando permissões
Acompanhe na listagem a seguir a seqüência de comandos para aplicar este exe mplo.
Primeiro faça o login e posicione-se no diretório home.
A partir deste ponto sempre que for necessário conectar-se ao Shell do Linux e fazer o login
com o usuário ordinário (nos exemplos aqui do livro aparecem como Garcia) criado no
processo de instalação do Console Linux 1.0 visto na Unidade 1 deste livro, isto será refe-
renciado apenas desta forma.
Comandos de Navegação pelas Pastas 55
Utilize o comando chmod (change mode), alterar modo, para mudar as permissões.
[root@console Garcia]# pwd
/home/Garcia
[root@console Garcia]# mkdir documentos
[root@console Garcia]# ls -l
total 12
drwxr-xr-x 5 Garcia Garcia 4096 abr 29 11:07 Desktop
drwxrwxr-x 2 root root 4096 mai 3 21:04 documentos
-rw-r--r-- 1 Garcia Garcia 737 mai 3 17:19 smb.conf
[root@console Garcia]# chmod 740 documentos
[root@console Garcia]# ls -l
total 12
drwxr-xr-x 5 Garcia Garcia 4096 abr 29 11:07 Desktop
drwxr----- 2 root root 4096 mai 3 21:04 documentos
-rw-r--r-- 1 Garcia Garcia 737 mai 3 17:19 smb.conf
[root@console Garcia]#
Note que depois do comando chmod com o parâmetro 740, a permissão de docu-
mentos foi modificada para drwxr- – - – -.
Um link é uma ligação simbólica que os sistemas Unix implementam para indicar a
posição lógica de um arquivo dentro do sistema de arquivos.
• Um arquivo tem pelo menos um link que aponta para o diretório onde ele
está.
• Um diretório tem pelo menos dois links, aquele que aponta para o diretório
onde ele está e aquele que aponta para um nível abaixo dele.
total 12
drwxr----- 2 root root 4096 mai 3 21:04 documentos
[root@Console Garcia]#
Alterando o dono
Alterando grupo
Ao criar um diretório, o Linux reservará para ele pelo menos 4096 bytes que é o
tamanho padrão de uma unidade de alocação de dados. Para um arquivo o espaço
alocado será igual ao seu conteúdo. Desta forma, se na listagem aparecerem 15
bytes alocados para um arquivo, é este o espaço efetivamente ocupado por ele.
Marca o momento exato no qual o arquivo ou diretório foi criado. Esta informação
é derivada do relógio da máquina, se o mesmo estiver errado, a informação gravada
também estará.
Sendo necessário efetuar ajuste na data e hora do Linux, o mesmo comando date
pode ser utilizado, porém informando os parâmetros MMDDHHMM, ou seja, mês,
dia, hora e minutos. Acompanhe os comandos e verifique o resultado:
[root@Console Garcia]# date
Fri Aug 4 16:25:01 AMT 2000
[root@Console Garcia]# date 12311435
6 – Nome do arquivo
• O nome do arquivo permite o acesso a ele e suas referências.
• Deve-se utilizar apenas letras e números na formação de nomes de arqui-
vos e diretórios.
• Caracteres acentuados e de controle devem ser evitados.
• Nomes longos (com mais de oito caracteres) podem ser utilizados, mas o
espaço em branco não é permitido. Para contornar isto, se utiliza ponto ou
sublinhado para compor o nome longo, por exemplo, nome_do_arquivo ou
nome.do.arquivo pode ser utilizado sem problemas.
Pode-se dizer que o Linux é um Unix. Por ser um Unix ele segue o padrão POSIX
e seguindo este padrão ele é funcionalmente compatível com todos os Unix que
existem e vice-versa.
Compatibilidade funcional
Isto não quer dizer que um programa escrito para rodar em Linux vai funcionar exa-
tamente como está se for instalado no SCO Unix (Unix para plataforma x86 produzi-
do pela Santa Cruz Operations) ou no AIX (Unix da IBM). Para isto ele deve ser re-
compilado para aquela plataforma, pois não existe compatibilidade binária.
Compatibilidade binária
Este tipo de compatibilidade se verifica quando um programa puder ser instalado
em vários sistemas sem qualquer alteração. É o que ocorre com alguns programas
escritos para rodar em Windows 98 e que também funcionam bem no Windows NT
ou no Windows 2000.
59
60 Linux: Sistema Operacional II
O kernel do Linux não utiliza código proprietário (aquele tipo de programa escrito
para funcionar apenas sob determinados processadores), sendo a maior parte de seu
desenvolvimento feito sob o projeto GNU da Free Software Foundation, tornando
obrigatório distribuir o código fonte.
O kernel
Há realmente um Linux e ele é o núcleo (kernel), e todos o estão utilizando. Mas
não é possível usar um núcleo sozinho; um núcleo só é útil como parte de todo um
sistema operacional. Linux é normalmente utilizado em combinação com o sistema
operacional GNU: o sistema é basicamente GNU, com Linux funcionando como
núcleo.
Os programadores geralmente sabem que Linux é o núcleo. Mas desde que eles
também já ouviram todo o sistema ser chamado Linux, muitas vezes visualizam
uma história que corresponde ao nome. Por exemplo, muitos acreditam que, assim
Universo Unix e o Projeto GNU 61
que Linus Torvalds terminou de escrever o núcleo, seus amigos procuraram por
outros programas livres e, por nenhuma razão em particular, praticamente tudo ne-
cessário para criar um sistema similar ao Unix já estava disponível.
Os grandes colaboradores
A maioria dos projetos de software livre tem por objetivo desenvolver um progra-
ma em particular para uma tarefa em particular. Por exemplo, Linus Torvalds es-
creveu um núcleo similar ao Unix (Linux); Donald Knuth escreveu um formata-
dor de textos (TeX); Bob Scheifler escreveu um sistema de janelas (X Windows).
É natural medir a contribuição deste tipo de projeto pelos programas específicos
que vieram daquele projeto.
Mas não existe concordância de que esta é a maneira correta de considerar a ques-
tão. O projeto GNU não foi e não é um projeto para desenvolver pacotes específi-
cos de software. Não foi um projeto para desenvolver um compilador C, apesar de
também ter feito isto. Não foi também um projeto para desenvolver um editor de
textos, apesar de vários deles terem sido desenvolvidos. O objetivo do Projeto
GNU era desenvolver um Sistema Operacional Livre similar ao Unix.
Muitos fizeram grandes contribuições para o software livre no sistema GNU, e to-
dos eles merecem crédito. Mas a razão pela qual temos um sistema conhecido ge-
nericamente por Linux – e não somente uma coleção de programas úteis – é porque
o Projeto GNU se definiu para fazer um. Criou-se uma lista de programas necessá-
rios para compor um sistema livre completo, e este foi sistematicamente sendo
encontrado e escrito, ou encontraram-se pessoas para escrever tudo que a lista con-
tinha. A equipe GNU e seus cola boradores escreveram componentes principais,
essenciais, mas não excitantes como o montador (assembler) e o editor de ligação
(linker), porque não é possível ter um sistema operacional sem eles. Um sistema
completo necessita mais do que simplesmente ferramentas de programação; o
Bourne Again Shell (bash), o interpretador PostScript Ghostscript e a biblioteca
GNU C são igualmente importantes.
Por volta do início dos anos 90 todo o sistema à parte do núcleo foi agrupado (e
ainda está-se trabalhando em um kernel, o GNU Hurd). Desenvolver esse núcleo
tem sido bem mais difícil do que se esperava, e ainda há muito trabalho para sua
finalização.
Felizmente, você não precisa esperar por ele, porque o Linux está funcionando ago-
ra. Quando Linus Torvalds escreveu o Linux, ele completou a última grande lacu-
na. Pessoas puderam então colocar o Linux junto com o sistema GNU para compor
um sistema livre completo: um sistema GNU baseado em Linux (ou sistema
GNU/Linux, para simplificar).
Colocar os dois componentes juntos parece simples, mas não foi uma tarefa trivial.
A biblioteca GNU C (chamada glibc para simplificar) precisou de mudanças subs-
tanciais. Integrar um sistema completo como uma distribuição que funcionasse fora
da caixa (disponível na Internet para download) foi também um trabalh o grande.
Isto exigiu resolver o problema de como instalar e iniciar o sistema (boot) – um
problema que ainda não foi resolvido, porque ainda não se chegou lá. As pessoas e
Universo Unix e o Projeto GNU 63
A confusão
Todos nós (usuários, desenvolvedores, empresas) utilizamos sistemas GNU basea-
dos em Linux hoje para a maioria do nosso trabalho, e espera-se que você também
os use. Mas definitivamente não confunda o usuário utilizando o nome Linux de
forma ambígua. Linux é o núcleo, um dos principais componentes essenciais do
sistema. O sistema como um todo é mais ou menos o sistema GNU.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc., 59 Temple Place –
Suite 330, Boston, MA 02111, USA
Várias companhias vendem computadores com sistemas GNU/Linux totalmente
grátis pré-instalados.
Surgiram então distribuições como Debia n, Slackware, Conectiva, Red Hat, SUSE,
Mandrake, Open Linux, Corel Linux, etc., cada uma com as suas próprias caracte-
rísticas, mas tendo em comum interface melhorada de instalação, muitas delas to-
talmente gráficas como é o caso do Console Linux 1.0, além de aplicativos gratui-
tos, atualizações permanentes e manuais.
Ele pensou em alguma coisa que pudesse representar de maneira muito poética a
satisfação que sente uma pessoa após se fartar com chocolate. Ela apenas senta-se e
então fica sentindo o prazer daquelas delícias.
Quem melhor do que o pingüim que depois de comer um monte de peixe senta-se e
fica esperando a hora da próxima refeição? Fica simplesmente ali: calmo, firme,
decidido, auto-suficiente sabendo que a qualquer momento ele pode ir em busca de
mais e mais até se fartar novamente e depois sabe que sentirá o mesmo prazer de
novo ou mesmo algo maior e melhor.
Bourne Again Shell, o bash. Pelo seu prompt o usuário pode ter acesso a tudo que
o GNU/Linux oferece, codificar e executar programas utilizando os recursos nati-
vos deste ambiente e avançar nos segredos do sistema.
O que é um Shell
Basicamente um Shell é simplesmente um processador de macros (conjuntos orde-
nados de comandos) que executa comandos. Um Shell de Unix funciona como um
interpretador de comandos que provê uma interface ao usuário, trazendo um con-
junto completo de comandos Unix e ainda uma linguagem de programação que
permite combinar estes comandos.
Com o Shell podem-se criar arquivos que contêm comandos que passarão a funcio-
nar como se fossem novos comandos. Estes comandos novos têm a mesma usabili-
dade dos comandos embutidos do sistema, permitindo aos usuários ou grupos de
trabalho estabelecerem ambientes mais amigáveis. Para usuários acostumados ao
MS-DOS, por exemplo, pode-se criar um comando cls ou dir.
65
66 Linux: Sistema Operacional II
Resumindo
• O Shell é um processador de macros que traz uma linguagem de pro-
gramação embutida.
• Macros são conjuntos de comandos processados seqüencialmente.
• Comandos podem ser síncronos ou assíncronos .
• Em um comando síncrono , o Shell espera seu término antes de aceitar no-
vos comandos.
• Em um comando assíncrono, o Shell aceita novos comandos enquanto o
comando inicial é executado.
• Com o redirection podem-se controlar com precisão as entradas e as saí-
das dos comandos.
• O Shell possui diversos comandos embutidos.
• O Shell pode ser utilizado de maneira interativa ou não interativa.
• No modo interativo as entradas para os comandos (parâmetros, opções e
flags) são digitadas.
• No modo não interativo as entradas são lidas de um arquivo.
• Construtores
• Comentários
• Funções
Operação do Shell
Ler uma entrada diretamente de um arquivo (Shell script). Esta opção torna o Shell
ilimitado em opções. O usuário pode criar menus interativos que executem várias
operações que seriam complexas, demoradas ou sujeitas a muitos erros se fossem
executadas diretamente na linha de comando.
O comando dc, por exemplo, permite a execução de cálculos simples diretamente pelo
prompt. As entradas para este comando devem ser entradas diretamente pelo teclado.
[root@console documentos]# dc
25
25
+
p
50
[root@console documentos]#
Usando o redirection para entrada < (sinal de menor), a mesma seqüência pode ser
lida de um arquivo. Desta forma, se criarmos um arquivo que tenha a seqüência
correta de parâmetros, o dc poderá ler e exibir o resultado.
68 Linux: Sistema Operacional II
Comando dc
Vamos então criar um arquivo chamado parms com a seqüência correta para cal-
cular raiz quadrada de 144. Este arquivo deve ter a seqüência:
144
v
p
Utilize o pico e crie o arquivo parms com o conteúdo correto. Verifique o conteú-
do com cat e execute o dc usando o redirecionador de entrada.
[root@console documentos]# cat parms
144
v
p
Note que ao fazer dc < parms , o Shell exibe o resultado esperado. O que o Shell
fez foi ler os dados do arquivo texto parms e executar o seu conteúdo como fosse
uma entrada digitada pelo usuário.
O Bash 69
Utilizando o pico, crie no /bin um arquivo chamado localizar que tenha o conteúdo
listado a seguir. Não digite a numeração das linhas. Os dois parâmetros utilizados
neste exemplo serão identificados dentro do script como $1 e $2.
O comando Shell que faz a localização de arquivos é o find e ele utiliza vários pa-
râmetros. Criando o localizar isto é simplificado para apenas dois parâmetros, in-
cluindo ainda mais algumas facilidades utilizando os redirection para saída ( > ) e
append ( >> ).
Linha Descrição
1 Executa o script cls.
2 Exibe a mensagem.
3 Insere ao final do arquivo encontrados.hist a data e hora.
4 Insere ao final do arquivo encontrados.hist a mensagem sendo $1 e $2
substituídos pelos valores digitados na linha de comando.
5 Insere ao final do arquivo encontrados.hist o tracejado.
6 Exibe na tela o que está sendo localizado e em qual diretório iniciará.
7 Exibe na tela um tracejado.
8 Exibe na tela a mensagem Aguarde...
9 Executa o comando find que fará a localização efetivamente. O
resultado da localização é gravado no arquivo encontrados.
10 Insere ao final do arquivo encontrados.hist o resultado da localização
concluída.
11 Exibe na tela o resultado da localização, precedendo cada uma o seu
número de seqüência.
O Bash 71
Neste exemplo a entrada é interativa e não por parâmetros. Utilizamos então o co-
mando read que interrompe a execução do script até que uma entrada seja feita
pelo teclado.
Para executar o script altere suas permissões para 755 e digite seu nome.
Linha Comentários
1–3 Simples comentários.
4 Exibe a mensagem entre aspas mantendo o cursor na mesma linha (-n).
5 Espera uma entrada pelo teclado e armazena na variável ANIMAL.
6 Exibe a mensagem entre aspas, resolvendo o conteúdo da variável
$ANIMAL.
7 – 12 Estrutura de decisão case com a impressão da resposta correta.
13 Exibe o ponto e pula linha.
O ponto barra (./) antes do nome do arquivo (animal) indica que o bash deve pro-
curar o arquivo executável no diretório atual.
Só para que você não esqueça: Para que estes exemplos (localizar e animal)
possam ser executados:
• Crie os arquivos com o editor pico [nome do arquivo].
• Depois de criados torne-os executáveis com chmod 755 [nome do arquivo].
Neste tipo de script é possível utilizar a técnicas de redirection de entrada ( < ) co-
locando o nome do animal em um arquivo e fazendo com que ele seja lido: ani-
mal < arquivo como fizemos com o dc.
arch
Nome
arch – exibe a arquitetura da máquina
Resumo
arch
Descrição
Em sistemas Linux, arch exibe coisas como "i386", "i486", "i586", "alpha",
"sparc", "arm", "m68k", "mips", "ppc".
O Bash 73
Veja também
uname(1), uname(2)
Exemplo
ash
Nome
ash – um Shell
Resumo
ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c command ] [ arg ]
Copyright
Copyright 1989 por Kenneth Almquist.
Descrição
O ash é uma versão do Shell com facilidades similares àquelas encontradas em
sistemas Unix compatíveis com System V.
Chamadas
Se a opção -c for informada, então o Shell executa o comando especificado. O flag
-s flag faz o Shell ler o comando da entrada padrão (depois de executar os
comandos especificados com a opção –c). Se as opções –s ou –c forem informadas
o primeiro argumento é trazido como o nome de um arquivo a partir do qual serão
lidos comandos. Se isto for impossível pela inexistência de argumentos, então o –s
fará a leitura dos comandos pela entrada padrão.
O Shell fixa o valor inicial dos parâmetros posicionais a partir dos argumentos
restantes depois que qualquer argumento usado como o nome de um arquivo de
comandos é apagado.
74 Linux: Sistema Operacional II
Os flags devem ser precedidos pelo sinal de menos “-” ou de mais “+”. Verifique o
conjunto de comandos embutidos para uma lista de flags. Se nenhum valor for
especificado para o flag –i, o flag –s passa a valer e a entrada e saída padrão do
Shell são direcionadas para o terminal.
Se nenhum valor é especificado para o flag –j o flag que vale será o –i.
Por questões de compatibilidade com o System V a opção –i deve vir após a opção
–c.
Se nenhum caractere for informado antes do sinal de “-” (menos) o Shell assume
que está acontecendo um login e então os arquivos /etc/profile e .profile serão
lidos se existirem.
SHINIT não será examinado se o Shell identificar que está ocorrendo um processo
de login.
Estruturas de controle
Uma lista é uma seqüência de nenhum ou mais comandos separados por quebra de
linha, ponto e vírgula ou barra invertida ou opcionalmente terminada por um destes
três caracteres. Isto difere um pouco do System V que abriga uma lista contendo
pelo menos um comando na maioria dos casos.
“&&” e “||” são operadores binários. “&&” executa o primeiro comando e então
executará o segundo comando se o resultado do primeiro comando for zero.
“|” é um operador binário que alimenta a saída padrão do primeiro comando como
entrada padrão para o segundo comando.
O operador “|” pode ser combinado várias vezes e tem precedência sobre “&&” e “||”.
Exemplo if...fi
Utilizando o que vimos até agora é possível criar um script interativo que
chamaremos de ash1. Trata-se de uma calculadora interativa criada com
redirection de entrada ( < ) de saída ( > ) e de append ( >> ).
Crie o arquivo no diretório /bin com o nome ash1 utilizando para isto o editor pico.
Linha Comentários
1 Limpa a tela.
2–4 Exibe as mensagens entre aspas mantendo o cursor na mesma linha (-n).
5 Espera uma entrada pelo teclado e armazena na variável A.
6 Exibe a mensagem entre aspas.
7 Espera uma entrada pelo teclado e armazena na variável OPERADOR.
8 Exibe a mensagem entre aspas.
9 Espera uma entrada pelo teclado e armazena na variável B.
10 Cria um arquivo x com o valor de A.
11 Adiciona ao arquivo x o valor de B.
12 – 17 Testa se o operador é multiplicação (x) e substitui pelo caractere
apropriado (*) senão preserva o caractere digitado pelo usuário,
adicionando o operador ao arquivo x.
18 Adiciona ao arquivo x o caractere p.
19 Utiliza o comando dc para calcular a expressão e armazena o resultado
no arquivo y.
20 – 22 Exibe o resultado da expressão.
O comando dc
Veja neste exemplo que depois de digitar o comando dc o prompt passa a receber
parâmetros. Os dois primeiros são os valores (10 e 2), o terceiro é a operação a ser
executada (multiplicação) e finalmente um comando (p) que imprime o resultado
da operação, neste caso 10 x 2 = 20.
cat
Nome
cat – concatena arquivos e imprime no stdout (saída padrão).
Resumo
cat [OPÇÕES] [ARQUIVO]...
Descrição
Copyright
Copyright © 1999 Free Software Foundation, Inc.
78 Linux: Sistema Operacional II
Exemplo
Note no exemplo a utilização direta do comando e sua combinação com a opção –e.
chgrp
Nome
chgrp – muda referência ao nome do grupo.
Resumo
chgrp [OPÇÕES]... GROUP ARQUIVO...
Descrição
Autor
Programa escrito por David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Exemplo
chown
Nome
chown – muda dono do arquivo.
Resumo
chown [OPTION]... .GROUP FILE...
Descrição
Autor
Programa escrito por David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Exemplo
clear
Nome
clear – limpa a tela.
Resumo
clear
Descrição
Limpa a tela se isto for possível. A verificação é feita na variável de ambie nte
TERM e o tipo de terminal no banco de dados terminfo.
cp
Nome
cp – copia arquivos e diretórios.
Resumo
Descrição
Autor
Programa escrito por Torbjorn Granlund, David MacKenzie e Jim Meyering.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
O Bash 83
Exemplo
Neste exemplo foram exibidos utilizando ls –R (listagem recursiva de diretório)
todos os arquivos e diretórios existentes na pasta /home/Garcia.
cpio
Nome
cpio – copia arquivos gerando seqüências de backup.
Resumo
Descrição
O comando cpio copia arquivo para dentro de um device (fita, disco) onde ficarão
todos os arquivos da origem e ainda a sua estrutura de armazenamento (diretórios).
Além disto, cpio armazena para cada arquivo seu nome, dono, timestamps e
permissões de acesso.
Uma forma típica para gerar uma lista de nomes de arquivos é com o comando find
com a opção -depth.
Apenas os arquivos cujos nomes forem coincidentes a estes padrões serão copiados
para o container.
O formato crc é como o new ASCII, mas também contém um checksum para cada
arquivo que o cpio calcula quando está criando o arquivo dentro do container e
verifica quando o arquivo é extraído do container.
O formato tar é colocado para compatibilidade com o programa tar. Ele não pode
ser usado com nomes de arquivos com mais de 100 caracteres e não aceitam modos
especiais de archive (blocos ou dispositivo caractere).
O formato POSIX.1 tar não pode ser usado para gerar archives de arquivos com
nomes maiores do que 255 caracteres (a menos que eles tenham uma / (barra) no
último caractere da direita.
Opções
-0, --null – Nos modos copy-out e copy-pass, faz a leitura da lista de arqui-
vos terminados por um caractere null em vez de uma nova linha. Portanto,
aqueles arquivos cujos nomes contiverem um caractere new-lines poderão
ser colocados no archive. GNU utilizou este caminho para produzir uma lista
de arquivos terminada por null.
O Bash 87
• newc New SVR4 portável, com suporte a file system com mais
de 65536 i-nodes.
• crc New SVR4 portável com o checksum.
• tar Old tar.
• ustar POSIX.1 tar. Também reconhecido pelo GNU tar archives,
são similares mas não idênticos.
• hpbin Binary absoluto utilizado pelo cpio do HPUX, para cópias
cruzadas na mesma máquina.
• hpodc Portável usado pelo cpio do HPUX, para cópias cruzadas
em máquinas diferentes.
-i, --extract – Roda no modo copy-in.
-I archive – Utilizar o nome do archive ao invés da entrada padrão. Para uti-
lizar uma fita em outra máquina neste modo, use o nome do arquivo iniciado
com HOSTNAME:. O hostname pode ser precedido por um nome de usuá-
rio e uma @ para acessar uma unidade de fita remotamente, desde que o
usuário tenha permissão para isto.
-k – Ignorado. Opção mantida apenas para compatibilidade com versões an-
tigas do cpio.
-l, --link – Faz link dos arquivos ao invés de copiá-los, quando possível.
-L, --dereference – Os arquivos assinalados por links são efetivamente copi-
ados, e não apenas seus links.
-m, --preserve -modification-time – Mantém a hora anterior de modificação
quando cria arquivos.
-M MESSAGE, --message=MESSAGE – Imprime a MESSAGE quando o
final da cópia ocorre. Quando o espaço no volume esgota (fita ou disquete),
um prompt é exibido solicitando para que uma nova fita seja inserida (insert
a new volume). Se MESSAGE contiver a string "%d", ela será substituída
pelo número do volume que inicia em 1, permitindo o controle de qual fita
deve ser inserida.
-n, --numeric-uid-gid – Na tabela de conteúdos são exibidos o UID e GID ao
invés de transformá-los em nomes.
--no-absolute-filenames – No modo copy-in, cria todos os arquivos relati-
vos ao diretório atual, deixando-os iguais ao nome absoluto do arquivo que
será criado em archive.
--no-preserve -owner – Nos modos copy-in e copy-pass, não troca o nome
do dono do arquivo; quando os arquivos forem extraídos, o do original é
O Bash 89
mantido. Esta é uma opção default para usuário não root, impedindo que u-
suários do System V percam acesso aos arquivos de sua propriedade.
-o, --create – Roda o cpio no modo copy-out.
-O archive – Gera um archive ao invés de colocar na saída padrão. Idem -F.
--only-verify-crc – Quando ler um archive no formato CRC no modo copy-
in, somente verifica o CRC para cada arquivo dentro do archive, não extra-
indo arquivo algum.
-p, --pass-through – Roda no modo copy-pass.
--quiet – Não imprime o número de blocos copiados.
-r, --rename – Troca o nome dos arquivos interativamente.
-R [user][:.][group], --owner [user][:.][group] – Nos modos copy-out e
copy-pass, seta o dono de todos os arquivos criados para um usuário especí-
fico e/ou grupo. O usuário, o grupo ou ambos devem existir (estarem defin i-
dos para o sistema que receberá o archive).
--sparse – Nos modos copy-out e copy-pass, escreve os arquivos com gran-
des blocos de zeros como arquivos espalhados.
-s, --swap-bytes – No modo copy-in, troca os bytes de cada palavra (par de
bytes) nos arquivos.
-S, --swap-halfwords – No modo copy-in, troca as palavras de 4 bytes nos
arquivos.
-t, --list – Imprime uma tabela de conteúdos da entrada.
-u, --unconditional – Substitui todos os arquivos, sem pedir conformação pa-
ra substituição aos arquivos que serão sobrescritos.
-v, --verbose – Lista todos os arquivos processados, ou com -t, exibe ao esti-
lo de um ls -l.
-V --dot – Imprime um . (ponto) para cada arquivo processado.
--version – Imprime a versão do programa cpio e sai.
Exemplo
Copiando arquivos para o disquete
Acompanhe na seqüência a seguir. Verificando o posicionamento do foco do Shell
no diretório /home/Garcia, criou-se ali um diretório chamado diretorio para dentro
do qual foram copiados alguns arquivos conf do /etc.
90 Linux: Sistema Operacional II
Note que nesta etapa foi utilizada a técnica documentada aqui do comando
find gerando a lista de nomes a serem incluídas no archive. A técnica é sim-
ples: o find gera uma lista de nomes de arquivos que são redirecionados via |
(pipe) para o comando cpio. O cpio recebe os parâmetros ocvB.
o – indicando o modo copy-out (geração de archive).
c – usar o formato old ASCII.
v – exibe uma lista dos arquivos processados.
B – seta o bloco para 5120 bytes.
Depois de concluído, o cpio informa que utilizou quatro blocos de 5120 by-
tes para gravar os arquivos listados.
O Bash 91
Para verificar o que foi gravado naquele archive basta fazer o processo inverso.
Note que agora o find não é mais necessário. O comando cpio recebe os parâmetros
itv.
Depois de concluído, o cpio informa que os arquivos listados ocuparão trinta e três
blocos de 512 bytes se restaurados no file system do Linux.
date
Nome
date – imprime ou ajusta a data e a hora do sistema.
Resumo
date [OPÇÃO]... [+FORMATO]
date [OPÇÃO] [MMDDhhmm[[CC]YY][.ss]]
92 Linux: Sistema Operacional II
Descrição
%p – Informa AM ou PM.
%r – Exibe hora no formato 12 horas (hh:mm:ss [AP]M).
%s – Segundos passados desde a meia noite de 1 de janeiro de 1970 (esta é
uma extensão da GNU).
%S – Exibe segundos (00..60).
%t – Faz uma tabulação.
%T – Exibe a hora no formato 24 horas (hh:mm:ss).
%U – Número de semanas do ano considerando domingo como pr imeiro dia
da semana (00..53).
%V – Número de semanas do ano considerando a segunda-feira como pr i-
meiro dia da semana (01..52).
%w – Dia da semana (0..6); 0 representa domingo.
%W – Número de semanas do ano considerando segunda-feira como prime i-
ro dia da semana (00..53).
%x – Representação da data configurada (mm/dd/aa).
%X – Representação da hora configurada (%H:%M:%S).
%y – Exibe apenas os dois últimos dígitos do ano (00..99).
%Y – Exibe o ano (1970...).
%z – Representação no estilo RFC-822 (-0500)
%aZ – Indica a zona configurada (por exemplo, BRT), ou nada se nenhuma
foi configurada.
Por default, os campos numéricos da data são preenchidos com zeros. A data no
sistema GNU/Linux reconhece as seguintes modificações entre '%' e uma diretiva
numérica: '-' (hífen), nenhum preenchimento '_' (sublinhado).
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Exemplo
Para exibir a data no formato tradicional brasileiro podemos utilizar:
[root@Console /root]# date +%d/%m/%y
27/09/00
94 Linux: Sistema Operacional II
Através de scripts pode se fazer uso interessante destes diversos parâmetros para o
comando date.
dd
Nome
dd – converte interativamente um arquivo.
Resumo
dd [OPÇÕES]...
Descrição
Converte e formata interativamente de acordo com as opções.
c 1 = 1 byte
w 2 = 2 bytes
b 512 = 512 bytes
kD 1000 = 1000 bytes
k 1024 = 210 bytes
MD 1.000.000 = 106 bytes
M 1.048.576 = 220 bytes
GD 1.000.000.000 = 109 bytes
G 1.073.741.824 = 230 bytes
TD 1.000.000.000.000 = 1012 bytes
T 1.099.511.627.776 = 240 bytes
PD 1.000.000.000.000.000 = 1015 bytes
P 1.125.899.906.842.624 = 250 bytes
ED 1.000.000.000.000.000.000 = 1018 bytes
E 1.152.921.504.606.846.976 = 260 bytes
Autor
Programa escrito por Paul Rubin, David MacKenzie e Stuart Kemp.
96 Linux: Sistema Operacional II
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Exemplo
Neste exemplo utiliza-se o editor de textos pico para criar um arquivo simples
chamado teste.
df
Nome
df – informa o espaço em disco utilizado por um filesystem.
Resumo
df [OPÇÕES]... [ARQUIVO]...
O Bash 97
Descrição
Esta versão do df não exibe informações sobre filesystems que não estejam
montados, porque na maioria das vezes os sistemas fazem referência a estruturas de
filesystem não suportados.
Opções
Autor
Programa escrito por Torbjorn Granlund, David MacKenzie, Larry McVoy e
Paul Eggert.
98 Linux: Sistema Operacional II
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Exemplos
dmesg
Nome
dmesg – exibe informações de configuração do kernel.
Resumo
dmesg [ -c ] [ -n level ] [ -s bufsize ].
Descrição
O dmesg é usado para examinar ou controlar o anel central do kernel. O programa
ajuda o usuário a exibir as mensagens dadas no momento do boot.
O Bash 99
Opções
Autor
Programa escrito por Theodore Ts'o.
Exemplo
dnsdomainname
Ver hostname.
doexec
Nome
doexec – roda um programa executável com um argumento argv[0].
Resumo
doexec /path/to/executable argv[0] [argv[1-n]].
Descrição
O comando doexec simplesmente roda um executável com uma lista de
argumentos. Isto permite que seja especificado um argv[0] outro nome de um
executável.
Opções
Todas as opções são passadas dentro da lista executável argv que começa a
ser executada.
102 Linux: Sistema Operacional II
domainname
Ver hostname.
echo
Nome
echo – exibe uma linha de texto.
Resumo
echo [OPTION]... [STRING]...
Descrição
Exibe a STRING para a saída padrão (standard output).
--help – Exibe o help e sai.
--version – Exibe a versão e sai.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
ed
Nome
ed, red – editor de textos.
Resumo
ed [-] [-Gs] [-p string] [file]
red [-] [-Gs] [-p string] [file]
Descrição
O ed é um editor orientado a linha. Ele é usado para criar, exibir, modificar e outras
manipulações em arquivo texto. O editor red segue a mesma diretriz sendo um
pouco mais restrito. O red só edita arquivos do diretório atual e não executa
comandos Shell.
O Bash 103
As edições podem ser feitas de duas formas distintas: comandos e entrada direta.
Quando um comando é invocado, o ed lê da entrada padrão os comandos que
permitem manipular o buffer. Um formato típico de comando é o seguinte:
s/antigo/novo/g, que substituirá todas as ocorrências da string antigo pela string
novo.
Quando um comando de entrada como o 'a' (append), 'i' (insert) ou 'c' (change), é
informado, o ed entra em modo de entrada. Este é o principal modo de adicionar
texto a um arquivo. Neste modo nenhum comando está disponível; ao invés disto,
a entrada padrão é escrita diretamente para o buffer do editor. Linhas consistem de
texto que estão sendo incluídos como o caractere newline. O modo de entrada é
encerrado ao entrar um simples ponto (.) numa linha.
Os endereços (address) indicam a linha ou intervalo delas, que serão afetadas pelo
comando. Se forem dados menos endereços do que o comando aceita, então o
endereço default é ignorado.
Opções
-G – Força compatibilidade. Afeta os comandos 'G', 'V', 'f', 'l', 'm', 't', e '!!'.
-s – Não faz interpretação. Deve ser utilizado se for entrado a partir de um
script.
-p string – Especifica o prompt de comando. Ele deve ser sozinho e sem o
comando 'P'.
104 Linux: Sistema Operacional II
file – Especifica o nome do arquivo que será lido. Se o nome de arquivo for
precedido por uma exclamação, então ele será interpretado como um coman-
do Shell. Neste caso, o que for lido pela saída padrão do arquivo será execu-
tado via Shell.
Para ler um arquivo que comece com exclamação, utilize o prefixo barra in-
vertida (backslash).
Endereçando Linhas
Um endereço é um intervalo entre duas linhas separado por uma vírgula ou ponto e
vírgula. O valor do primeiro endereço em um intervalo não pode exceder o valor
do segundo.
Expressões Regulares
Expressões regulares são padrões utilizados para selecionar texto. Por exemplo, o
comando ed g/string/ imprime todas as linhas que contêm a string. Expressões
regulares também podem ser utilizadas pelo comando 's' para selecionar textos a
serem substituídos.
c – Qualquer caractere não listado, incluindo '{', '}', '(', ')', '<' and '>'.
\c – Uma barra invertida permite indicar os caracteres '{', '}', '(', ')', '<', '>', 'b',
'B', 'w', 'W', '+', e '?'.
\{n,m\}
\{n,\}
\{n\} – Encontra um simples caractere em uma subexpressão. Por exemplo, a ex-
pressão '\{2\}' encontra a string '{2}'.
Comandos
egrep
Nome
grep, egrep, fgrep – exibe as linhas onde determinada string foi encontrada.
Resumo
grep [-[ABC] NUM] [-EFGHLUVZabchilnqrsuvwxyz] [-e PATTERN | -f
FILE] [-d ACTION] [--directories=ACTION] [--extended- regexp][--fixed-
strings] [--basic-regexp] [--regexp=PATTERN] [--file=FILE] [--ignore-
case] [--word-regexp] [--line-regexp] [--line-regexp] [--no-messages] [-
-invert match] [--version] [--help] [--byte-offset] [--line-number] [--with-
filename] [--no-filename] [--quiet] [--silent] [--text] [--files-without-
match] [--files-with-matches] [--count] [--before-context=NUM] [--after-
context=NUM] [--context[=NUM]] [--binary] [--unix-byte-off-sets] [--
mmap] [--null] [--recursive] [file...]
Descrição
Grep procura pela string informada pela entrada padrão, no arquivo ou lista de
ocorrências passada como parâmetro, retornando as linhas onde a string for
encontrada. São três as principais formas de utilizar o grep:
-G, --basic-regexp – Interpreta o padrão como uma expressão regular (de-
fault).
-E, --extended-regexp – Interpreta o padrão como uma expressão estendida
(veja adiante).
-F, --fixed-strings – Interpreta o padrão como uma lista de strings fixas, se-
paradas por newlines, qualquer que seja o padrão.
Expressões Regulares
Grep entende duas diferentes versões para sintaxe de expressões regulares: "basic"
e "extended". No GNU grep, não há diferença entre estas duas expressões que
estão disponíveis com a mesma funcionalidade. Em outras implementações, uma
110 Linux: Sistema Operacional II
expressão regular básica pode ser menos poderosa. A descrição seguinte se aplica a
expressões regulares estendidas.
Uma lista de caracteres entre colchetes combina-se com os demais que estejam fora
da lista; se o primeiro caractere da lista for ^ então será encontrado qualquer
caractere, que combinado com os demais, não esteja na lista. Por exemplo, a
expressão regular [0123456789] encontrará qualquer um dos dígitos. Um intervalo
de caracteres ASCII pode ser especificado informando-se o primeiro e o último
separando-os por um hífen. Finalmente certos nomes de classes de caracteres são
predefinidos. Seu conteúdo é auto-explicativo, e são os seguintes:
[:alnum:]
[:alpha:]
[:cntrl:]
[:digit:]
[:graph:]
[:lower:]
[:print:]
[:punct:]
[:space:]
[:upper:]
[:xdigit:]
Duas expressões regulares podem ser juntadas pelo operador |; o resultado desta
expressão será uma expressão regular que encontra qualquer string na subex-
pressão.
O GNU egrep tenta suportar o uso tradicional ao assumir que { não é um caractere
especial se for colocado no início de uma especificação de intervalo válido. Por
exemplo, o comando emitido no shell egrep '{1' procurará por dois caracteres {1
112 Linux: Sistema Operacional II
Diagnóstico
ex / view
Nome
vim – Vi IMproved (vi aperfeiçoado), um editor de textos.
Resumo
ex
view
Descrição
Vim é um editor de textos compatível funcionalmente ao vi. Ele pode ser utilizado
para editar qualquer arquivo texto ASCII sendo especialmente útil para editar
programas.
Vim oferece uma série de avanços sobre o vi: múltiplos níveis de desfazer (undo),
múltiplas janelas e buffers, realce de sintaxe, edição de linha de comando,
detalhamento sobre o arquivo (nome completo, linhas colunas), help on-line,
seleção de visual, etc. Veja no arquivo ":help vi_diff.txt" um resumo com as
diferenças entre Vim e Vi.
Vim oferece um help que pode procurar por comandos enquanto edita-se um ou
mais arquivos, retornando seu significado e utilização além do conjunto de
comandos. Utilize ":help command".
A maneira mais simples de utilizar o vim é para editar um arquivo texto: vim
arquivo
O Bash 113
Se a lista de arquivos for ilegal o editor é iniciado com o buffer vazio. Umas das
quatro maneiras podem ser utilizadas para escolher um ou mais arquivos a serem
editados.
arquivo ... – Uma lista de nomes de arquivo. O primerio arquivo da lista será lido
para o buffer e o cursor posicionado na primeira linha. Para pegar o próximo
arquivo utilize o comando ":next" e o comando ":prev" para pegar o anterior.
gvim gview ou vim –g – Versões GUI do vim. Abre uma nova janela no desktop
(KDE, por exemplo).
rvim rview rgvim rgview ou vim –Z – Da mesma forma que o anterior, porém com
restrições. Não é possível “startar” comandos shell ou suspender o vim.
114 Linux: Sistema Operacional II
Opções
+[num] – Para o primeiro arquivo de uma lista, o cursor será posicionado na linha
"num". Se "num" não existir, o cursor será posicionado na última linha do arquivo.
-C – Compatível. Ativa o vim para que seja mais compatível com o vi. O arquivo
.vimrc deve existir.
-N – Modo não compatível. Reseta a opção 'compatible'. Fará com que vim se
comporte de forma parecida com o vi, mesmo que o arquivo .vimrc não exista.
-o[N] – Abre N janelas. Quando N é omitido, abre uma janela para cada arquivo.
-R – Abre no mode Read-only. Com esta opção é possível editar o buffer, mas
quando for salvar, um aviso será emitido que o arquivo é read-only. Se você quiser
sobrescrever o arquivo, uma exclamação deve ser inserida antes do comando
w(rite) ":w!". Para mais informações veja ":help 'readonly'".
-V – Verbose. Emite mensagens sobre quais arquivos são criados, lidos e escritos
durante o início da edição.
Help on-line
Digite ":help" no prompt do Vim para obter instruções. Para obter o help de um
tópico específico digite ":help tópico". Por exemplo: ":help append" para obter o
help sobre o comando "append". Para completar os comandos utilize <Tab> na
linha do help e ele completará o nome do comando existente. Pressione <Tab>
novamente e os comandos com as iniciais informadas serão completados. Veja
":help cmdline-completion".
Arquivos
/usr/share/vim/vim56/doc/*.txt
Para obter a lista completa use ":help doc-file -list".
/usr/share/vim/vim56/doc/tags
Lista de tags utilizadas para encontrar informações nos arquivos de docu-
mentação.
/usr/share/vim/vim56/syntax/*.vim
Sistema de inicialização de destaques de sintaxe em várias linguagens.
/usr/share/vim/vim56/filetype.vim
Script para detectar o tipo de arquivo pelo seu nome. Veja ":help 'filetype'"
para mais informação.
Autor
A maior parte do Vim foi feita por Bram Moolenaar, com a ajuda de outros. Veja
":help credits" para detalhes dos colaboradores e em que cada um ajudou. Vim é
baseado no Stevie, desenvolvido por: Tim Thompson, Tony Andrews e G.R. (Fred)
Walter. Apesar de ser pouco provável, algum código original pode ter ficado
remanescente e estar em uso na atual versão do Vim.
116 Linux: Sistema Operacional II
Bugs
Provavelmente. Veja ":help todo" para obter uma lista de bugs conhecidos.
false
Nome
false – não faz nada, sem êxito.
Resumo
false [linha de comando ignorada]
false OPÇÃO
Descrição
Veja também
Para documentação completa digite o comando: info false.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
exit
Comando Tcl embutido
Nome
exit – Finaliza a aplicação.
Resumo
exit ?returnCode?
O Bash 117
Descrição
find
Nome
find – procura por arquivos na estrutura de diretórios.
Resumo
find [caminho...] [expressão]
Descrição
Esta descrição abrange a versão GNU do find. find localiza arquivos e diretórios a
partir de um ponto da estrutura de arquivos, segundo parâmetros e argumentos
próprios que são avaliados da esquerda para a direita de acordo com suas regras de
precedência.
O primeiro argumento do find deve começar com "-", "(" , ")", "," ou "!"; Qualquer
argumento antes disto são caminhos de procura e qualquer argumento depois disto
são o resto da expressão. Se nenhum caminho for informado, o diretório corrente é
assumido e se nenhuma expressão for informada a expressão -print é utilizada.
Expressões
A expressão é feita com opções (as quais afetam todas as operações antes de processar o
arquivo específico e sempre retornam o valor verdadeiro), testes (que retornam
verdadeiro ou falso), e ações (que têm efeito complementar e retornam valor verdadeiro
ou falso), todos separados por operadores. -and será assumido se nenhum operador for
informado. Se a expressão não contiver nenhuma outra ação, -prune é assumido, -print
será feito para todos os arquivos para os quais a expressão for verdadeira.
Opções
Todas as opções sempre retornam verdadeiro. Elas sempre causam efeito, antes de
serem processadas, apenas quando seu lugar na expressão for atingido. Portanto,
para ficar claro, o melhor lugar para colocar uma opção é no começo da expressão.
118 Linux: Sistema Operacional II
Testes
Argumentos numéricos podem ser especificados como:
+n – maior do que n,
-n – menor do que n,
n – igual a n.
-amin n – Arquivo foi acessado há n minutos atrás.
O Bash 119
-anewer file – Arquivo foi acessado mais recentemente do que o arquivo foi
modificado. -anewer é afetado por -follow apenas se -follow aparecer antes
de -anewer na linha de comando.
-atime n – Arquivo foi acessado há n*24 horas atrás.
-cmin n – O status do arquivo foi modificado há n minutos atrás.
-cnewer file – O status do arquivo foi alterado mais recentemente do que o
arquivo foi modificado. -anewer é afetado por -follow apenas se -follow apa-
recer antes de -anewer na linha de comando.
-ctime n – O status do arquivo foi modificado há n*24 horas atrás.
-empty – Arquivo está vazio ou é um diretório.
-false – Sempre falso.
-fstype type – Arquivo está em um filesystem do tipo especificado em type.
Os tipos válidos de filesystem variam muito com as diferentes versões de
Unix; uma lista incompleta de tipos de filesystem aceitos na maioria dos U-
nix inclui entre outros: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Pode-se uti-
lizar -printf com o parâmetro %F para ver os tipos de filesystems que exis-
tem em seu Unix.
-gid n – Arquivos cujo valor do group ID seja n.
-group gname – Arquivos que pertencem ao grupo gname (valores numéri-
cos de group ID são permitidos).
-ilname pattern – O mesmo que -lname, mas a procura é case insensitive.
-iname pattern – O mesmo que -name, mas a procura é case insensitive. Por
exemplo, o padrão 'fo*' e 'F??' localiza arquivos cujos nomes sejam 'Foo',
'FOO', 'foo', 'fOo', etc.
-inum n – Arquivos cujo número do inode seja n.
-ipath pattern – O mesmo que -path, mas a procura é case insensitive.
-iregex pattern – O mesmo que -regex, mas a procura é case insensitive.
-links n – Arquivos que tenham n links.
-lname pattern – Arquivo é um link simbólico. Os metacaracteres '/' e espe-
cialmente '.' não são aceitos.
-mmin n – Os dados do arquivo foram modificados há n minutos atrás.
-mtime n – Os dados do arquivo foram modificados há n*24 horas atrás.
120 Linux: Sistema Operacional II
Esta expressão trará uma entrada para um diretório chamado './src/misc' (se
algum existir).
l link simbólico
s socket
-uid n – Arquivos cujo user ID seja n.
-used n – Arquivo teve o último acesso n dias depois que o seu status foi
modificado.
-user uname – Arquivo é do usuário informado em uname (user ID numé-
rico é permitido).
Ações
-fls file – Retorna true; da mesma forma que -ls mas escreve para um arqui-
vo como -fprint.
-fprint0 file – Retorna true; da mesma forma que -print0 mas escreve no ar-
quivo como -fprint.
Ao contrário do -print, -printf não insere uma nova linha ao final da string.
As diretivas são:
\b Backspace.
\c Pára a impressão no formato e joga para a saída.
\f Form feed.
\n Newline.
\r Carriage return.
\t Tab horizontal.
\v Tab vertical.
\\ Um literal barra invertida ('\').
122 Linux: Sistema Operacional II
%% O literal %.
%a Último acesso ao arquivo.
Campos de tempo
H hora (00..23)
I hora (01..12)
k hora ( 0..23)
l hora ( 1..12)
M minuto (00..59)
p acrescenta AM ou PM
r tempo em 12 horas (hh:mm:ss [AP]M)
S segundos (00..61)
T tempo em 24 horas (hh:mm:ss)
X hora no formato (H:M:S)
Z utiliza Time Zone
Campos de data
a nome abreviado do dia da semana (Sun..Sat)
A nome completo do dia da semana (Sunday..Saturday)
b nome abreviado do mês (Jan..Dec)
B nome completo do mês (January..December)
c data e hora no formato (Sat Nov 04 12:02:33 EST 1989)
d dia do mês (01..31)
D data no formato (mm/dd/aa)
h mesmo que b
j dia do ano (001..366)
m número do mês (01..12)
w número do dia da semana (0..6)
W número da semana do ano sendo Segunda-feira o primeiro dia da
semana (00..53)
O Bash 123
Operadores
Em ordem de precedência:
( expr ), Force precedência.
! expr, Retorna true se expr for false.
-not expr, O mesmo que ! expr.
expr1 expr2, E lógico; expr2 não é considerada se expr1 for falsa.
expr1 -a expr2, O mesmo que expr1 expr2.
expr1 -and expr2, O mesmo que expr1 expr2.
expr1 -o expr2, Ou lógico; expr2 não é executada se expr1 for true.
expr1 -or expr2, O mesmo que expr1 -o expr2.
expr1 , expr2, Lista; expr1 e expr2 são sempre avaliadas.
finger
Nome
finger – Exibe as informações dos usuários conectados ao sistema.
Resumo
finger [-lmsp] [user ...] [user@host ...]
Descrição
O finger exibe informações sobre os usuários do sistema.
Opções
O tempo de login é exibido como mês, dia, hora e minuto, a menos que o
tempo seja maior do que seis meses, caso em que o ano é exibido antes das
horas e minutos.
Números de telefone registrados com onze dígitos são exibidos como "+N-
NNNNNN-NNNN''. Telefones especificados com sete ou dez dígitos são e-
xibidos de maneira apropriada respeitando a string. Telefones especificados
com cinco dígitos são exibidos como "xN-NNNN" e com quatro dígitos
"xNNNN".
Caso nenhum argumento seja especificado, finger imprimirá uma entrada pa-
ra cada usuário logado no sistema.
Se a saída padrão for socket, finger emitirá um carriage return (^M) antes de
cada linefeed (^J).
História
O finger apareceu na versão 3.0 do FreeBSD.
free
Nome
free – Exibe a quantidade de memória livre e utilizada no sistema.
Resumo
free [-b | -k | -m] [-o] [-s delay ] [-t] [-V]
Descrição
free exibe a quantidade total de memória física livre e utilizada, além da memória
de swap do sistema como também a memória compartilhada e buffers utilizados
pelo kernel.
Opções
Arquivos
Autor
Programa desenvolvido por Brian Edmonds.
gzip
Nome
gzip, gunzip – comprime ou expande arquivos
Resumo
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
zcat [ -fhLV ] [ name ... ]
O Bash 127
Descrição
Sempre que possível, cada arquivo especificado na lista é renomeado para um que
tenha o mesmo nome mas com a extensão .gz, mantendo-se todavia o dono, grupo
e permissões do arquivo original.
Exemplo:
Na seqüência, o arquivo teste, originalmente com 2924 bytes, foi compactado (gzip
teste) na listagem seguinte o arquivo original teste foi movido para teste.gz agora
com o tamanho de 1673 bytes.
Opções
Esta opção é suportada apenas em alguns sistemas não Unix. Para MSDOS,
CR LF é convertido para LF quando compactado, e LF é convertido para CR
LF quando descompactado.
Exemplo:
Exemplo:
Partindo agora do arquivo compactado.gz utilizamos o comando gzip –d
compactado e o arquivo é descompactado para o seu nome após compacta-
ção. Isto acabou gerando dois arquivos idênticos, teste e compactado, ambos
com 2924 bytes.
O Bash 129
Exemplo:
O arquivo teste foi compactado com a opção –c (gzip –c teste > teste.gz) o
que manteve o arquivo original intacto. Na seqüência a compactação com –f
(gzip –f teste) sobrescreveu o arquivo existente teste.gz.
Exemplo:
Exemplo:
hostname
Nome
hostname – Mostra ou define o nome do sistema.
domainname – Mostra ou define o nome do domínio.
dnsdomainname – Mostra o nome DNS do sistema.
nisdomainname – Mostra ou define o nome NIS do domínio.
O Bash 131
Resumo
hostname [-v] [-a] [--alias] [-d] [--domain] [-f] [--fqdn]
[-i] [--ip-address] [--long] [-s] [--short] [-y] [--yp]
[--nis] [-n] [--node]
hostname [-v] [-F filename] [--file filename] [hostname]
domainname [-v] [-F filename] [--file filename] [name]
nodename [-v] [-F filename] [--file filename] [name]
hostname [-v] [-h] [--help] [-V] [--version]
dnsdomainname [-v]
nisdomainname [-v]
ypdomainname [-v]
Descrição
Estes nomes são usados por muitos programas de rede para identificar a máquina
na rede.
Obtendo o nome
Exemplo:
Definindo o nome
Ações
Arquivos
/etc/hosts
Autores
Programa desenvolvido por Peter Tobias, <tobias@et-inf.fho-emden.de>
Bernd Eckenfels, <net-tools@lina.inka.de> (NIS and manpage). Steve
Whitehouse, <SteveW@ACM.org> (DECnet support and manpage).
kill
Nome
kill – termina um processo
Resumo
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
Descrição
O kill envia um sinal específico para o processo. Se nenhum sinal for especificado
o sinal TERM é enviado.
O sinal TERM irá matar o processo que capturá-lo. Para outros processos, pode ser
necessário utilizar o sinal 9. Desde que este sinal possa ser capturado o processo
será terminado imediatamente.
A maioria dos shell modernos trazem o kill embutido.
Opções
pid ... – Especifica uma lista de processos a serem terminados.
-s – Especifica o sinal a ser enviado.
-p – Especifica que o kill deve apenas imprimir o id do processo (pid) mas
não deve enviar o sinal.
-l – Exibe uma lista de nomes de sinais. Eles podem ser encontrados em
/usr/include/linux/signal.h
Exemplo:
last
Nome
last, lastb – mostra uma listagem dos últimos logins efetuados pelo usuário,
sua origem e duração em horas:minutos.
Descrição
Last procura as entradas anteriores no arquivo /var/log/wtmp (ou o arquivo
especificado pelo flag -f) e exibe a lista de todas as vezes em que o usuário
esteve logado no sistema desde que o arquivo foi criado.
134 Linux: Sistema Operacional II
Nota
O arquivo wtmp poderá não ser encontrado. A log de acesso somente será
informada caso o arquivo seja encontrado.
Arquivos
/var/log/wtmp
/var/log/btmp
Autor do Programa
Miquel van Smoorenburg.
ln
Nome
ln – faz links entre arquivos.
Resumo
ln [OPTION]... TARGET [LINK_NAME]
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... --target-directory=DIRECTORY TARGET...
Descrição
Quando for um link físico, a única pista de que o arquivo possui um link é a
quantidade de ligações obtida com a listagem longa (ls -l).
Exemplo
Exemplo:
O comando ln teste lteste.lnk criou um link físico para o arquivo teste. Note que a
quantidade de links para o arquivo mudou de 1 para 2.
Opções
Autor
Programa escrito por Mike Parker e David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
login
Nome
login – acessa o sistema
Resumo
login [ name ]
login -p
login -h hostname
login -f name
Descrição
Após estas condições terem sido verificadas, a senha será requisitada e também
verificada (se a senha for requerida para aquele usuário). Dez tentativas são
permitidas antes do login ser encerrado. Depois das três primeiras tentativas a
resposta do login ficará mais lenta. Falhas de login são reportadas via syslog. Esta
facilidade é também utilizada para reportar qualquer login de sucesso efetuado pelo
usuário root.
Se o arquivo .hushlogin existir, então um "quiet" login será executado, ou seja, ele
desabilitará a verificação de mail e as informações de último login não são
exibidas. Por outro lado se /var/log/lastlog existir, a data, hora e origem do último
login serão exibidos e os dados do login atual são atualizados.
Opções
-p – Usado pelo getty(8) para informar que o login não deve destruir as vari-
áveis de ambiente.
-f – Utilizado para pular a segunda autenticação de login. Especialmente pa-
ra o root, esta opção não gera efeito algum.
-h – Usado para acesso a outros servidores.
O arquivo /etc/securetty lista os nomes dos terminais a partir dos quais o usuário
root poderá estabelecer conexão.
/var/run/utmp
/var/log/wtmp
/var/log/lastlog
138 Linux: Sistema Operacional II
/usr/spool/mail/*
/etc/motd
/etc/passwd
/etc/nologin
/etc/usertty
.hushlogin
Autores
Programa derivado do BSD login 5.40 (5/9/89) por Michael Glad
(glad@daimi.dk) para HP-UX. Portado para o Linux por Peter Orbaek
(poe@daimi.aau.dk).
ls
Nome
ls – lista o conteúdo do diretório
Resumo
ls [OPTION]... [FILE]...
Descrição
Lista informações sobre os arquivos existentes no diretório atual onde está o
foco do shell.
Opções
Autores
Programa escrito por Richard Stallman e David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
mkdir
Nome
mkdir – cria diretórios
Resumo
mkdir [OPTION] DIRECTORY...
Descrição
Cria um diretório se ele ainda não existir.
Opções
Autor
Programa escrito por David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
more
Nome
more – permite uma leitura na tela de um arquivo longo.
Resumo
more [-dlfpcsu] [-num] [+/ pattern] [+ linenum] [file ...]
Descrição
More é um filtro de páginas que exibe uma tela completa de texto de cada vez.
Opções
Comandos
Ambiente
More utiliza as seguintes variáveis de ambiente se existirem:
MORE – Pode ser definida com a opção preferida do more.
SHELL – Shell atualmente em uso. Geralmente é shell do login.
TERM – Especifica o tipo do terminal.
Autores
Programa criado por Eric Shienbrood, UC Berkeley e complementado por
Geoff Peck, UCB e por John Foderaro para o acréscimo de facilidades.
Histórico
O comando more apareceu inicialmente na versão 3.0 do BSD. A última versão
antes desta do Linux foi a 5.19 (Berkeley 6/29/88), na qual a do Linux é baseada.
mount
Nome
mount – monta um file system
142 Linux: Sistema Operacional II
Resumo
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
Descrição
Todos os arquivos acessíveis nos ambientes Unix e compatíveis estão em uma
grande árvore cuja hierarquia é determinada pelo ponto raiz. Os arquivos que são
ali exibidos podem estar em diversos disposit ivos e até máquinas diferentes. O
comando mount serve para atachar o sistema de arquivos encontrado em um
dispositivo ao device que mantém a grande árvore de arquivos tornando-a visível e
acessível a partir de um único ponto conhecido por raiz, root directory ou
simplesmente / (barra).
Este domando diz ao kernel para anexar o file system encontrado no device ao
diretório informado, liberando o acesso aos seus arquivos.
Opções
-h – Exibe um resumo das opções.
-V – Exibe a versão do mount.
mount – Lista todos os file systems montados e disponíveis.
-a – Monta todos os file systems.
-r – Monta o file system read-only.
-w – Monta o file system read/write. Opção default.
-t vfstype – Especifica o tipo de file system que deve ser montado sendo que
os mais comuns são: adfs, affs, autofs, coda, coherent, devpts, efs, ext, ext2,
hfs, hpfs, iso9660, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, romfs, smbfs,
sysv, udf, ufs, umsdos, vfat, xenix, xiafs.
Arquivos
/etc/fstab – tabela do file system
O Bash 143
mv
Nome
mv – move (renomeia) arquivos
Resumo
mv [OPTION]... SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... --target-directory=DIRECTORY SOURCE...
Descrição
Renomeia SOURCE patra DEST, ou move SOURCE para DIRECTORY.
-b, --backup[=CONTROL] – Faz backup antes de remover.
-f, --force – Remove destinos que já existam sem perguntar.
-i, --interactive – Pergunta antes de sobrescrever.
--help – Exibe o help e sai.
--version – Exibe informações sobre versão e sai.
Autores
Programa escrito por Mike Parker, David MacKenzie e Jim Meyering.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
netstat
Nome
netstat – exibe as conexões da rede, tabela de rotas, estatística das interfaces,
conexões mascaradas, mensagens de rede e conexões ativas.
144 Linux: Sistema Operacional II
Resumo
netstat [-venaocs] [--tcp|-t] [--udp|-u] [--raw|-w] [--groups|-g] [--unix|-
x] [--inet|--ip] [--ax25] [--ipx] [--netrom]
netstat [-venc] [--inet] [--ipx] [--netrom] [--ddp] [--ax25] {--route|-r}
netstat [-venpac] {--interfaces|-i} [iface]
netstat [-enc] {--masquerade|-M}
netstat [-cn] {--netlink|-L}
netstat {-V|--version} {-h|--help}
Descrição
Netstat exibe informações do subsistema de rede do Linux.
(sem opções) – Você pode ver a situação das conexões da rede pela listagem
dos sockets abertos. Esta é a operação default: se não for especificada ne-
nhuma família de endereços, então os sockets de todos os endereços configu-
rados serão exibidos. Uma família de endereços inet exibirá simplesmente
sockets udp e tcp.
-r, --route – Exibe a tabela de rotas no mesmo formato obtido com route -e.
passwd
Nome
passwd – atualiza a autenticação do usuário.
O Bash 145
Descrição
Passwd é usado para atualizar a autenticação do usuário (senha).
Opções
Não deixe outras pessoas digitarem sua senha. Não digite sua senha em um
computador que você não confie ou conheça. Use sua senha por tempo limitado
trocando-a periodicamente.
Previna-se contra a escolha de uma senha realmente ruim, mas não seja bobo, crie
sua senha com sabedoria. Não use qualquer coisa que você encontrou em um
dicionário (se for linguagem ou jargão).
Não use um nome (incluindo da esposa, pais, filhos, cachorro, apelidos, pessoas
famosas e locais) ou qualquer variação do seu próprio nome ou nome de usuário.
Não use informções acessíveis sobre você (como número do telefone, placas do
carro, CPF, RG) ou do seu meio. Não use sua data de aniversário ou combinações
de padrões (como a data invertida, seguida ou precedida por um dígito). Ao invés
disso, utilize uma mistura de caracteres em letras maiúsculas e minúsculas assim
como números e símbolos de pontuação. Quando escolher uma nova senha, tenha
certeza de que ela não está relacionada a nenhuma senha anteriormente utilizada.
Utilize senhas longas com pelo menos oito caracteres. Pode-se utilizar um par de
146 Linux: Sistema Operacional II
palavras com pontuação inserida, uma frase falsa (combinação sem sentido de uma
seqüência de palavras) ou as letras iniciais de cada palavra de uma frase sem
sentido.
Autor do programa
Cristian Gafton <gafton@console.com>
ping
Nome
ping – envia um pacote ICMP ECHO_REQUEST para um host da rede.
Resumo
ping [-dfnqrvR] [-c count] [-i wait] [-l preload] [-p pattern] [-s packetsize]
Changed options: -I <device name> pode ser utilizado para definir a interfa-
ce de saída.
Novas opções
Melhorias
Descrição
pwd
Nome
pwd – imprime o nome do diretório atual
Resumo
pwd [OPTION]
Descrição
Imprime o caminho completo do diretório de trabalho atual.
--help – Exibe o help e sai.
--version – Exibe a versão e sai.
rm
Nome
rm – remove arquivos ou diretórios.
Resumo
rm [OPTION]... FILE...
148 Linux: Sistema Operacional II
Descrição
O rm remove cada arquivo especificado. Por default ele não remove diretórios.
Se o arquivo estiver protegido contra escrita, a opção -f ou --force pode ser usada,
rm perguntará se o arquivo deve ser removido. Se a reposta não começar por y ou
Y, o arquivo não é apagado.
Opções
-d, --directory – Remove um diretório mesmo que ele não esteja vazio. Ape-
nas super-user.
-f, --force – Remove sem pedir confirmação.
-i, --interactive – Pergunta antes de remover.
-r, -R, --recursive – Remove o conteúdo de diretórios recursivamente.
-v, --verbose – Exibe o que está sendo feito.
--help – Exibe ajuda e sai.
--version – Exibe a versão e sai.
Autores
Programa escrito por Paul Rubin, David MacKenzie, Richard Stallman e Jim
Meyering.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
rmdir
Nome
rmdir – Remove diretórios vazios
Resumo
rmdir [OPTION]... DIRECTORY...
O Bash 149
Descrição
Remove um diretório se este estiver vazio.
--ignore -fail-on-non-empty – Ignora cada falha se o diretório não estiver
vazio.
-p, --parents – Remove DIRECTORY, então tenta remover cada subdiretório
(se estes estiverem vazios).
Por exemplo: "rmdir -p a/b/c" é o mesmo que "rmdir a/b/c a/b a.
--verbose – Exibe um diagnóstico para cada diretório processado.
--help – Exibe a ajuda e sai.
--version – Exibe a versão e sai.
Autor
Programa escrito por David MacKenzie.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
rpm
Nome
rpm – gerenciador de pacotes da Red Hat.
Resumo
rpm [options]
Descrição
O rpm é um poderoso gerenciador de pacotes, que pode ser utilizado para montar,
instalar, verificar, atualizar e desinstalar pacotes de software.
Um pacote consiste de um conjunto de arquivos e suas respectivas informações,
incluindo nome, versão e descrição.
Uma das seguintes formas podem ser utilizadas para operar pacotes rpm:
Initialize Database, Rebuild Database, Build Package, Recompile Package, Build
Package from Tarball, Query, Show Querytags, Install, Freshen, Uninstall, Verify,
150 Linux: Sistema Operacional II
Database maintenance
rpm -i [--initdb]
rpm -i [--rebuilddb]
Building
rpm [-b|t] [package_spec]+
rpm [--rebuild] [sourcerpm]+
rpm [--tarbuild] [tarredsource]+
Querying
rpm [--query] [queryoptions]
rpm [--querytags]
Signatures
rpm [--verify|-V] [verifyoptions] [package]+
rpm [--resign] [package_file]+
rpm [--addsign] [package_file]+
Miscellaneous
rpm [--showrc]
rpm [--setperms] [package]+
rpm [--setgids] [package]+
O Bash 151
Arquivos Associados
/usr/lib/rpm/rpmrc
/etc/rpmrc
~/.rpmrc
/usr/lib/rpm/macros
/etc/rpm/macros
~/.rpmmacros
/var/lib/rpm/conflictsindex.rpm
/var/lib/rpm/fileindex.rpm
/var/lib/rpm/groupindex.rpm
/var/lib/rpm/nameindex.rpm
/var/lib/rpm/packages.rpm
/var/lib/rpm/providesindex.rpm
/var/lib/rpm/requiredby.rpm
/var/lib/rpm/triggerindex.rpm
/tmp/rpm*
Autores
Marc Ewing <marc@console.com>
Jeff Johnson <jbj@console.com>
Erik Troan <ewt@console.com>
sed
Nome
sed – Um Stream EDitor
152 Linux: Sistema Operacional II
Resumo
sed [-n] [-V] [--quiet] [--silent] [--version] [--help]
[-e script] [--expression=script]
[-f script-file] [--file=script-file]
[script-if-no-other-script]
[file...]
Descrição
Sed é um stream editor. Um stream editor é utilizado para realizar transformações
básicas de uma stream de entrada (que pode ser um arquivo ou uma entrada a partir
de um pipeline). Enquanto em algumas formas de utilização ele é parecido com um
editor que permite a edição de scrips (como o ed), sed trabalha apenas na
composição de etapas a partir das entradas, sendo desta forma mais eficiente. Mas
a principal habilidade do sed é a de filtragem de textos entrados por um pipeline o
que o distingue particulamente de outros tipos de editores.
Opções
Os comandos do sed podem ser conseguidos com man sed no prompt de co-
mando. Note que os comandos são parecidos com o ed.
su
Nome
su – executa um shell em substituição ao usuário e grupos atuais, com per-
missões de superusuário.
Resumo
su [OPTION]... [-] [USER [ARG]...]
Descrição
Modifica o usuário ativo (user id) e seu grupo (group id) para o novo USER
especificado.
-, -l, --login – Solicita a senha do usuário root.
-c, --commmand=COMMAND – Passa o COMMAND para o shell.
-m, -p, --preserve-environment – Não reseta as variáveis de ambiente.
-s, --shell=SHELL – Executa o SHELL se /etc /shells permitir isto.
--help – Exibe a ajuda e sai.
--vers ion – Exibe a versão e sai.
Copyright
Copyright © 1999 Free Software Foundation, Inc.
tar
Nome
tar – versão GNU do utilitários de backup.
154 Linux: Sistema Operacional II
Resumo
tar [ – ] A --catenate --concatenate | c --create | d
--diff --compare | r --append | t --list | u --update | x
-extract --get [ --atime-preserve ] [ -b, --block-size N ]
[ -B, --read-full-blocks ] [ -C, --directory DIR ] [
--checkpoint ] [ -f, --file [HOSTNAME:]F ] [ --force-
local ] [ -F, --info-script F --new-volume-script F ] [
-G, --incremental ] [ -g, --listed-incremental F ] [ -h,
--dereference ] [ -i, --ignore-zeros ] [ -I, --bzip ] [
--ignore-failed-read ] [ -k, --keep-old-files ] [ -K,
--starting-file F ] [ -l, --one-file-system ] [ -L,
--tape-length N ] [ -m, --modification-time ] [ -M,
--multi-volume ] [ -N, --after-date DATE, --newer DATE ] [-o, --old-
archive, --portability ] [ -O, --to-stdout ] [
-p, --same-permissions, --preserve -permissions] [ -P,
--absolute-paths ] [ --preserve ] [ -R, --record-num-
ber ] [ --remove-files ] [ -s, --same-order, --preserve-
order ] [ --same-owner ] [ -S, --sparse ] [ -T, --files-
from F ] [ --null ] [ --totals ] [ -v, --verbose ] [
-V, --label NAME ] [ --version ] [ -w, --interactive,
--confirmation ] [ -W, --verify ] [ --exclude FILE ] [
-X, --exclude-from FILE ] [ -Z, --compress, --uncompress]
[ -z, --gzip, --ungzip ] [ --use-compress-program
PROG ] [ --block-compress ] [ -[0-7][lmh] ]
Descrição
O manual detalhado do tar pode ser obtido com o comando man tar ou info tar.
O tar foi projetado para gerar arquivamento e extração de arquivos para e a partir
de mídias de qualquer tipo (disquete, CD, fitas e arquivos no próprio file system).
vi
Nome
vi – editor de textos vi.
Comandos
O vi é um editor de textos de tela completa (full screen) que requer para sua
operação a digitação de caracteres de controle. No ambiente Linux, o vi é mais
interativo ao exibir na última linha da tela o modo no qual ele está operando além
de mensagens que orientam o usuário.
A tecla ESC é utilizada para cancelar o comando atual e entrar no modo de seleção
de novos comandos. O dois pontos (:) acessa a barra de comandos na última linha
da tela.
Inserção de texto
Localização de Texto
Alteração de Texto
Salvar o Texto
umount
Nome
umount – desmonta um file system.
Resumo
umount [-hV]
umount -a [-nrv] [-t vfstype]
umount [-nrv] device | dir [...]
Descrição
Note que um file system não poderá ser desmontado caso ele esteja ocupado. Por
exemplo, se um CD estiver montado e o foco do shell estiver em um dos seus
diretórios, o umount não funcionará e, ao contrário, retornará um mensagem que o
dispositivo está ocupado ('busy').
Opções
Arquivos associados
who
Nome
who – mostra quem está logado.
Resumo
who [OPTION]... [ FILE | ARG1 ARG2 ]
Descrição
Copyright
Copyright © 1999 Free Software Foundation, Inc.
Conforme já explicado anteriormente, não é aconselhável utilizar a conta de supe-
rusuário todo o tempo. Inevitavelmente um erro será cometido, e a checagem de
acesso que normalmente evita esse tipo de erro não funcionará, uma vez que ao
superusuário é permitido fazer qualquer coisa no sistema.
Se não devemos acessar o sistema como superusuário , com que nome devemos
acessá-lo então? Com o seu nome, obviamente. Para isso, é preciso saber como
criar contas no Linux.
Contas
Assim que ligado, o sistema oferece diversas formas de criar novas contas. Usare-
mos inicialmente o método mais básico: o comando useradd.
Pronto, o usuário fulano já está criado. Muito simples? Vamos tentar acessar o sis-
tema. No campo de senha do usuário “fulano”, simplesmente pressione Enter. Note
que a mensagem de login incorrect é exibida indicando que falta alguma coisa.
160
Criação de Contas de Acesso 161
login:
Senhas
O comando passwd pode ser usado para:
As primeiras duas situações são realmente as mesmas; para o comando passwd não
faz diferença entre uma conta que já exista e uma que acabou de ser criada. Deve-
se acessar o sistema como superusuário (root), e então especificar o nome da conta
cuja senha quer alterar. Usando a conta que acabamos de criar, temos o seguinte
exemplo:
[root@Console /root]# passwd fulano
Changing password for user fulano
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
[root@Console /root]#
A senha não aparece na tela quando informada. Deve-se ainda digitar duas vezes,
para garantir que não houve nenhum engano ao informá-la. Vamos acessar o siste-
ma com a conta recém-criada novamente:
Console Linux 1.0 (Spike)
Kernel 2.2.17-21mdk
login: fulano
Password:
Last login: Thu May 3 21:26:02 from 192.168.0.1
162 Linux: Sistema Operacional II
Uma vez no prompt do bash, pode-se alterar a senha da conta que está sendo usada
utilizando-se o comando passwd sem o nome da conta. Neste caso, será solicitada
a senha atual da conta, seguida do comando de nova senha. Por exemplo, para uma
conta fulano, teremos:
[fulano@Console fulano]$ passwd
Changing password for fulano
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
[fulano@Console fulano]$
Comando su
Na manutenção normal do sistema, pode ser necessário processar alguns poucos
comandos como outro usuário. É normal que administradores de sistemas Unix
tenham esse tipo de demanda. Todo bom administrador utiliza sua conta pessoal e
sem privilégios especiais a maior parte do tempo. Mas caso uma senha de usuário
necessite ser alterada, por exemplo, ou as permissões de um determinado arquivo
precisem ser ajustadas, isso geralmente não é possível com uma conta de usuário
simples.
Tais tarefas não levam mais que um minuto, e é incômodo sair e entrar no sistema
diversas vezes, somente para executar pequenas tarefas como superusuário. Uma
abordagem mais simples consiste na utilização do comando su. Com este comando,
a sessão atual pode transformar-se na sessão do superusuário ou outro usuário.
Se estiver logado como root e quiser mudar para qualquer outro usuário (Garcia,
por exemplo) basta entrar com o comando su Garcia e nenhuma senha será solic i-
tada.
[root@Console Garcia]# su Garcia
[Garcia@Console Garcia]$
Eu preciso do Linux?
Você quer começar com o Linux e conhece um pouquinho de DOS? Boa iniciativa,
pois o Linux é tecnicamente superior ao DOS e Windows 9X/NT/2K. Mas cuida-
do! Linux pode não lhe ser útil, se você não for o tipo adequado de usuário.
DOS e Windows são mais usados para jogos e produtividade de escritório, ao passo
que o Linux dá seu melhor em networkin g, desenvolvimento e computação cientí-
fica.
O Linux é incrivelmente poderoso, mas aprender como aproveitar esse poder leva
tempo. Assim, se você precisa principalmente de software comercial, ou se você
não está disposto a aprender novos comandos e conceitos, é melhor procurar outra
coisa.
Tornar o Linux mais fácil de usar é um trabalho em andamento, mas não espere
tornar-se proficiente sem ler muita documentação e usá-lo por pelo menos um mês.
O Linux não lhe dará resultados instantâneos. Apesar destes avisos, eu tenho 100%
164
Linux para Usuários DOS/Windows 165
Pré-requisitos
• Conhecer os comandos e conceitos básicos do DOS;
• Ter o Linux, preferencialmente com o KDE, corretamente instalado no seu
PC;
• Ter como shell o bash.
Você instalou o Linux e os programas de que precisava no seu PC. Você criou uma
conta para você mesmo (se não, digite adduser agora!) e o Linux está rodando.
Você digitou seu nome e sua senha, e agora está olhando para a tela pensando: "E
agora?"
login: Garcia
Password:
Last login: Tue Mar 20 14:58:44 from 192.168.0.2
[Garcia@Console Garcia]$
Não se desespere. Você está quase pronto para fazer as mesmas coisas que costu-
mava fazer com DOS/Win, e muito mais. Se você estivesse rodando DOS/Win ao
invés de Linux, estaria fazendo alguma das seguintes tarefas:
• Executando programas e criando, copiando, visualizando, apagando, im-
primindo e renomeando arquivos;
• Mudando, criando e apagando seus diretórios, e listando seu conteúdo
(com CD, MD, RD, DIR);
• Formatando disquetes e copiando arquivos de/para eles;
• Personalizando o sistema;
• Escrevendo arquivos .BAT e programas na sua linguagem favorita;
• O 1% restante.
166 Linux: Sistema Operacional II
Você ficará feliz em saber que estas tarefas podem ser realizadas no Linux de uma
maneira similar ao DOS. No DOS, o usuário médio utiliza muito poucos dos mais
de 100 comandos disponíveis: o mesmo, até certo ponto, vale também para o Li-
nux.
Conceitos Introdutórios
A melhor maneira de aprender algo novo é praticando. Você é fortemente estimu-
lado a experimentar e brincar com o Linux: você não danificará seu sistema assim.
Conseguindo Ajuda
Há várias maneiras de se conseguir ajuda no Linux. As mais importantes são:
Ler a documentação. Isto mesmo! Embora este capítulo sirva como uma introdução
ao Linux, e este livro traga algumas digas e diretrizes, há vários outros livros que
você realmente deve ler.
O CD que acompanha este livro é do Console Linux 1.0. Utilize e leia a documen-
tação on-line disponível no ambiente do KDE e no site http://www.console.com.br.
Sinta-se com a consciência pesada até que você tenha lido pelo menos um deles.
Convenções
Ao longo desta capítulo, os exemplos normalmente seguirão o seguinte formato: < ... > é
um argumento obrigatório, ao passo que [...] é um argumento opcional. Exemplo:
$ tar -tf <arquivo.tar> [> arquivo_redir]
arquivo.tar deve ser indicado , mas o redirecionamento para arquivo_redir é opcional.
LPM significa “por favor Leia as Páginas de Manual para mais informações”.
Quando o prompt de um exemplo de comando for ‘#’, o comando pode ser execu-
tado apenas pelo root.
Arquivos e Programas
O Linux tem uma estrutura de diretórios e arquivos similar ao 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 curinga, redirecionamento e canalização.
Observe que foram usados tanto caracteres maiúsculos como minúsculos: de fato...
Além disso, certos caracteres não devem ser usados: alguns deles são !*$&.
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 comando ls -F. Por exemplo:
170 Linux: Sistema Operacional II
[Garcia@Console Garcia]$ ls -F
Meus arquivos antigos/ diretorio/ parms*
[Garcia@Console Garcia]$
Se você quiser, pode pular para Traduzindo DOS para o Linux, mas, se eu fosse
você, continuaria lendo.
Links Simbólicos
O UNIX tem um tipo de arquivo que não existe no DOS: o link simbólico. Isto po-
de ser considerado como um ponteiro para um arquivo ou diretório, e pode ser usa-
do ao invés do arquivo para o qual aponta; é similar aos atalhos do Windows 9X.
Exemplos de links simbólicos são /usr/X11, que aponta para /usr/X11R6;
/dev/modem, que aponta para /dev/cua0 or /dev/cua1.
Por exemplo:
$ ln -s /usr/doc/g77/DOC g77manual.txt
Permissões e Propriedade
No DOS, arquivos e diretórios têm os seguintes atributos: A (arquivo), H (oculto),
R (somente-para-leitura), e S (sistema).
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 diretório /bin tem permissões também. É por isso que você não pode apagar o
arquivo /bin/ls, a menos que seja root: você não tem permissão para isso. Para mu-
dar 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 -,
172 Linux: Sistema Operacional II
perm é:
r (leitura),
w (gravação),
x (execução).
$ chmod +x arquivo
Isto define a permissão de execução do arquivo.
# chmod +s arquivo
Isso faz um arquivo chamado "setuid" ou "suid"- um arquivo que todos podem e-
xecutar 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-x pode
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.
Curingas: *?
nul: /dev/null
prn, lpt1: /dev/lp0 ou /dev/lp1; lpr.p /
Exemplos
C:\ >ATTRIB +R ARQUIVO.TXT $ chmod 400 arquivo.txt
C:\ >COPY JOE.TXT JOE.DOC $ cp joe.txt joe.doc
C:\ >COPY *.* TOTAL $ cat * > total
C:\ >COPY FRACTALS.DOC PRN $ lpr fractals.doc
C:\ >DEL TEMP $ rm temp
C:\ >DEL *.BAK $ rm *~
C:\ >MOVE PAPER.TXT TMP \ $ mv paper.txt tmp/
C:\ >REN PAPER.TXT PAPER.ASC $ mv paper.txt paper.asc
C:\ >PRINT LETTER.TXT $ lpr letter.txt
C:\ >TYPE LETTER.TXT $ more letter.txt
C:\ >TYPE LETTER.TXT $ less letter.txt
C:\ >TYPE LETTER.TXT > NUL $ cat letter.txt > /dev/null
n/a $ more *.txt *.asc
n/a $ cat section*.txt | less
Observações:
• O Linux tem outro curinga: []. Uso: [abc]* corresponde a arquivos que
comecem com a, b, c; *[I-N1-3] corresponde a arquivos que terminem com
I, J, K, L, M, N, 1, 2, 3;
• O lpr < arquivo > imprime um arquivo em segundo plano. Para verificar o
estado da fila de impressão, use lpq; para remover um arquivo da fila de
impressão, use lprm;
• Use cp -i e mv -i para ser avisado antes que um arquivo seja sobrescrito.
• Não há RENAME como no DOS; isto é, mv *.xxx *.yyy não funciona.
Você pode tentar este simples script; consulte a Seção para mais detalhes.
#!/bin/sh
# ren: renomeia múltiplos arquivos de acordo com várias regras
if [ $# -lt 3 ] ; then
echo "uso: ren \"padrão\" \"substituição\" arq..."
exit 1
fi
VELHO=$1 ; NOVO=$2 ; shift ; shift
for arquivo in $*
do
novo=`echo ${arquivo} | sed s/${VELHO}/${NOVO}/g`
mv ${arquivo} $novo
done
Cuidado! Este script não se comporta como o REN do DOS, pois usa "expres-
sões regulares", que você provavelmente ainda não conhece (a menos que tenha
lido sobre expressões regulares no Capítulo 6 deste livro). Resumidamente, se
você quiser simplesmente mudar extensões de arquivos, faça como:
ren "htm$html"*htm. Não se esqueça do $.
Para executar um programa, digite seu nome, como faria no DOS. Se o diretório
onde o programa está armazenado estiver incluso no PATH, o programa será inic i-
ado. Exceção: diferentemente do DOS, no Linux um programa localizado no dire-
tório atual não é executado a menos que seu diretório seja incluído no PATH. Para
contornar isto sendo prog o seu programa, digite ./prog.
Onde:
-s1, ..., -sn são as opções do programa,
par1, ..., parn são os parâmetros do programa.
Isto é tudo que há sobre executar programas, mas é fácil ir um passo à frente.
Um dos principais motivos para usar Linux é que é um sistema operacional mult i-
tarefa podendo 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 (v.c.), pressione <
ALT-F1 > ... < ALT-F6 >
• Para iniciar uma nova sessão no mesmo v.c. sem fechar a atual, digite su –
< nomedelogin >. Exemplo: su – root. Isto é útil, por exemplo, quando vo-
cê precisa fazer algo que só o root pode fazer.
• Para terminar uma sessão, digite exit. Se houver jobs interrompidos, você
será avisado.
• Para lançar um processo em segundo plano, adicione um '&' ao fim da li-
nha de comando:
$ nomeprog [-opções] [parâmetros] [< entrada] [> saída] &
[1] 123
• Depois de logar, inicie seu programa favorito. Desnecessário dizer que vo-
cê deve ter uma conta shell na máquina remota.
• Se você tiver X11, você pode até mesmo executar uma aplicativo X no
computador remoto, exibindo-o na tela do seu X. Seja maquina.remota.edu
o computador remoto e local.linux.box sua máquina Linux. Para executar a
partir de local.linux.box um programa X que resida em
remote.machine.edu, faça o seguinte:
• Execute o X11, inicie um xterm ou um emulador de terminal equivalente, e
digite:
$ xhost +maquina.remota.edu
$ telnet maquina.remota.edu
Linux para Usuários DOS/Windows 177
• Ao invés de DISPLAY..., pode ser que você tenha que digitar: setenv
DISPLAY local.linux.box:0.0. Depende do seu shell remoto.
• E voilà! Agora nomeprog rodará em maquina.remota.edu e será exibido na
sua máquina. Entretanto, não tente isto usando um modem, pois será lento
demais para ser usável.
Usando Diretórios
Nós vimos as diferenças entre arquivos no DOS e no Linux. Quanto aos diretórios,
no DOS o raiz é n, e no Linux é /. Analogamente, diretórios aninhados são separa-
dos por n no DOS, e por / no Linux. Exemplos de caminhos (paths):
DOS: C:\PAPERS\ GEOLOGY\MID_EOC.TEX
Linux: /home/guido/papers/geology/middle_eocene.tex
Lembre-se que o sistema não permite que você faça cd, rd, ou md para onde quiser.
Cada usuário começa no seu diretório, chamado "home", dado pelo administrador
do sistema.
MD: mkdir
RD: rmdir
DELTREE: rm -R
MOVE: mv
Exemplos:
C:\ >DIR $ ls
C:\ >DIR ARQUIVO.TXT $ ls arquivo.txt
C:\ >DIR *.H *.C $ ls *.h *.c
C:\ >DIR/P $ ls | more
C:\ >DIR/A $ ls -l
C:\ >DIR *.TMP /S $ find / -name "*.tmp"
C:\ >CD $ pwd
n/a – veja observação $ cd
idem $ cd ~
idem $ cd ~/temp
C:\ >CD \OUTRO $ cd /outro
C:\ >CD ..\TEMP \LIXO $ cd ../temp/lixo
C:\ >MD NEWPROGS $ mkdir newprogs
C:\ >MOVE PROG .. $ mv prog ..
C:\ >MD \PROGS\TURBO $ mkdir /progs/turbo
C:\ >DELTREE TEMP \LIXO $ rm -R temp/lixo
C:\ >RD NEWPROGS $ rmdir newprogs
C:\ >RD \PROGS\TURBO $ rmdir /progs/turbo.p /
Observações:
Nota: Você não pode acessar arquivos no disquete com um comando como, di-
gamos, less a:arquivo.txt! Esta é a desvantagem da maneira DOS de montar
disquetes.
À Maneira UNIX lida com dispositivos de uma forma diferente do DOS/Win. Não
há volumes separados como A: ou C:; um disco, seja um disquete ou o que quer
que seja, se torna parte do sistema de arquivos local através de uma operação cha-
mada "montagem". Quando você terminar de usar o disco, você precisa "desmontá-
lo"antes de ejetá-lo.
Você pode usar minix, vfat, dos ou outros formatos ao invés de ext2. Uma vez que
o disquete esteja preparado, monte-o com o comando:
# mount -t ext2 /dev/fd0 /mnt
Especificando o sistema de arquivos correto se você não for usar ext2. Agora você
pode se referir aos arquivos do disquete. Tudo o que você usava com A: ou B: ago-
ra é feito usando /mnt. Exemplos:
180 Linux: Sistema Operacional II
Quando você tiver terminado, antes de ejetar o disquete você deve desmontá-lo
com o comando
# umount /mnt
Obviamente, você precisa executar fdformat e mkfs somente em discos ainda não
formatados. Se você quiser usar o drive B: use /fd1H1440/ e fd1 ao invés de
fd0H1440 e fd0 nos exemplos anteriores.
$ mount /mnt/a
$ mount /mnt/cdrom
Agora, /mnt/a, /mnt/a:, e/mnt/cdrom podem ser acessados por todos os usuários.
Lembre-se que permitir que todos montem discos dessa maneira é um furo de se-
gurança, se você se importa.
Dois comandos úteis são df, que dá informação sobre os sistemas de arquivos mon-
tados, e du nomedir, que relata o espaço em disco ocupado pelo diretório.
Fazendo Backup
Há vários pacotes para lhe ajudar, mas o mínimo que você pode fazer para backup
multi-volume é (como root):.# tar -M -cvf /dev/fd0H1440 dir_to_backup/
E o Windows?
O "equivalente" ao Windows é o sistema gráfico X Window System, ou X11, ou
KDE para encurtar. Ao contrário do Windows e Mac, o KDE não foi projetado pa-
ra ser fácil de usar ou ter boa aparência (apesar de não ser tão ruim assim), e sim
para fornecer recursos gráficos para estações de trabalho UNIX.
Consulte o capítulo 9 para saber mais sobre o KDE e acompanhe em
http://www.kde.org a evolução desta excelente interface gráfica.
ARQUIVOS OBSERVAÇÕES
/etc/inittab não mexa por enquanto!
/etc/rc.d/* idem
Se o último arquivo listado existir (observe que é um arquivo oculto), será lido de-
pois do login e os comandos contidos nele serão executados.
Para todos esses, e os outros que você encontrará uma hora ou outra, LPM. Como
uma observação final, sugiro que você veja:
• Configuration HOWTO
http://sunsite.unc.edu/mdw/HOWTO/Config-HOWTO.html
Um pouco de programação
Um Shell Scripts é um arquivo .BAT com esteróides.
Se você usava arquivos .BAT para criar atalhos para longas linhas de comando (eu
usei muito), pode fazer isso inserindo linhas de apelido apropriadas (veja exemplo
anterior) em profile ou .profile. Mas, se seus .BATs eram mais complicados, você
vai adorar a linguagem de script do shell: é tão poderosa quanto QBasic. Tem vari-
áveis, estruturas como while, for, case, if... then... else, e vários outros recursos:
pode ser uma boa alternativa a uma linguagem de programação "de verdade".
Para escrever um script – o equivalente a um arquivo .BAT no DOS – tudo o que
você tem a fazer é escrever um arquivo ASCII contendo as instruções, gravá -lo, e
torná-lo executável com o comando chmod +x scriptfile. Para executá-lo, digite o
nome do arquivo.
184 Linux: Sistema Operacional II
Nota: O editor do sistema Unix chama-se vi, e na minha experiência a maioria dos
novos usuários acha-o muito difícil de usar. Veja referência básica do vi no Capí-
tulo 6 deste livro. Um bom editor para iniciantes é o pico. Veja no Capítulo 3.
Escrever scripts do bash é um assunto tão vasto que preencheria um livro, e não me
aprofundarei mais nesse tópico. Só darei um exemplo de script de shell, do qual
você poderá extrair algumas regras básicas:
#!/bin/sh
# sample.sh
# Isto é um comentário /
# não mude a primeira linha, ela precisa estar lá
echo "O sistema é: `uname -a`" # usa a saída do comando
echo "Meu nome é $0" # variáveis embutidas
echo "Você me deu os seguintes $# parâmetros: "$*
echo "O primeiro parâmetro: "$1
echo -n "Como você se chama? " ; read seu_nome
echo note a diferença: "oi $your_name" # quotando com "
echo note a diferença: 'oi $your_name' # quotando com '
DIRS=0 ; ARQS=0
for arquivo in `ls .` ; do
if [ -d ${arquivo} ] ; then # se arquivo for um diretório
DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1
elif [ -f ${arquivo} ] ; then
ARQS=`expr $ARQS + 1`
fi
case ${arquivo} in
*.gif|*jpg) echo "${arquivo}: arquivo gráfico" ;;
*.txt|*.tex) echo "${arquivo}: arquivo texto" ;;
*.c|*.f|*.for) echo "${arquivo}: arquivo fonte" ;;
*) echo "${arquivo}: arquivo genérico" ;;
esac
done
echo "há ${DIRS} diretórios e ${ARQS} arquivos"
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then # código de saída do último comando
echo "ZxY--!!!WKW não encontrado"
Linux para Usuários DOS/Windows 185
fi
echo "pront... digite 'man bash' se você \
quiser mais informações."
C
No UNIX, a linguagem do sistema é C, quer queira, quer não. Muitas outras lin-
guagens (Java, FORTRAN, Pascal, Lisp, Basic, Perl, COBOL, awk...) também es-
tão disponíveis.
Pressupondo que você conheça C, aqui estão algumas diretrizes para você que for
"estragado" pelo Turbo C++ ou algum outro do DOS. O compilador C do Linux se
chama gcc, e não tem todas aquelas "frescuras"que normalmente acompanham suas
contrapartidas do DOS: não há IDE (ambiente integrado de desenvolvimento), aju-
da on-line, depurador integrado, etc. É apenas um seco compilador de linha de co-
mando, muito poderoso e eficiente. Para compilar seu hello.c padrão, você deve
digitar:
$ gcc hello.c
Isto criará um arquivo executável chamado a.out. Para dar um nome diferente ao
executável, faça:
$ gcc -o hola hello.c
Até aqui, tudo bem. Mas, se seu programa for composto de vários arquivos fontes,
você terá que usar o utilitário make. Suponha que você tenha escrito um analisador
de expressões: seu arquivo fonte se chama parser.c e #inclui dois arquivos header,
parser.h e xy.h. Depois você quer usar rotinas de parser.c em um programa, diga-
mos, calc.c, que por sua vez #inclui parser.h. Que bagunça! O que você tem que
fazer para compilar calc.c?
Você terá que escrever um arquivo chamado makefile, que diz ao compilador quais
as dependências entre os arquivos fontes e objetos. No nosso exemplo:
186 Linux: Sistema Operacional II
Salve este arquivo como Makefile e digite make para compilar seu programa; ou sal-
ve como calc.mak, digite make -f calc.mak e, é claro, LPM. Você pode conseguir
ajuda sobre funções C, que são cobertas pelas páginas de manual. Por exe mplo:
$ man printf
Para depurar seus programas, use gdb. info gdb para aprender a usá-lo. Há várias
bibliotecas disponíveis; entre as primeiras que você vai querer usar estão ncurses,
para lidar com modo texto, e svgalib, para modo gráfico. Se você se sentir corajoso
o suficiente para abordar programação em X11, há bibliotecas como XForms, Qt,
Gtk e muitas outras, que tornam a programação em X11 uma moleza. Dê uma o-
lhada em http://www.xnet.com/~blatura/linapp6.html.
Muitos editores podem funcionar como um IDE; emacs e jed, por exemplo,
também permitem coloração por sintaxe, indentação automática e assim por
diante. Alternativamente, pegue o pacote rhide de
ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/. É um clone do IDE Borland, e é
provável que você goste.
O (1%) Restante
Mais que 1%, na verdade....
tar é usado para fazer “pacotes”; é como PKZIP mas ele não compacta, apenas em-
pacota. Para fazer um novo pacote:
$ tar -cvf <nome_do_pacote.tar> <file> [file...]
Você pode compactar arquivos usando compress, que é obsoleto e não deve ser
mais usado, ou gzip:
$ compress <file>
$ gzip <file>
gzip cria um arquivo compactado com extensão (compress) ou .gz (gzip). Esses
programas compactam apenas um arquivo de cada vez. Para descompactar, use:
$ compress -d <file.Z>
$ gzip -d <file.gz>
LPM.
Instalando Aplicativos
Primeiro, instalar pacotes é trabalho do root. A maioria dos aplicativos do Linux são
distribuídos como um archive .tar.gz, ou pacotes RPM que normalmente contêm um
diretório chamado /nomedopacote/ contendo arquivos e/ou subdiretórios. Uma boa
regra é instalar esses pacotes a partir do diretório /usr/local com o comando
# tar -zxf <archive.tar.gz>
bastará digitar make e depois make install. Obviamente, você precisará do compi-
lador gcc ou g++.
Outros pacotes devem ser descompactados a partir de /; é o caso dos arquivos .tgz
do Slackware. Outros arquivos contêm os arquivos, mas não um subdiretório.
Dicas Indispensáveis
Completamento de comando: pressionar < TAB > quando da emissão de um co-
mando, completará a linha para você. Exemplo: se você quer executar gcc es-
te_e_um_nome_longo.c;, basta digitar gcc est < TAB > . (Se você tiver outros ar-
quivos que comecem com os mesmos caracteres, forneça caracteres suficientes pa-
ra resolver qualquer ambigüidade.)
Rolagem de tela: pressionar <SHIFT + PAG UP> lhe permite rolar a tela algumas
páginas para trás, dependendo de quanta memória de vídeo você tiver.
• file < arquivo > diz o que é o arquivo (texto ASCII, executável, pacote,
etc.);
• find é um dos comandos mais poderosos e mais úteis. É usado para encon-
trar arquivos que correspondam a várias características dadas, e para de-
sempenhar ações sobre esses arquivos. O uso geral de find é:
$ find <diretório> <expressão>
LPM
• grep encontra padrões de texto em arquivos. Por exemplo,
Convertendo Arquivos
Se você precisar intercambiar arquivos texto entre DOS/Win e Linux, cuidado com
o problema do "fim de linha". No DOS, cada linha termina com CR/LF ("carriage
return"e "line feed"), enquanto no Linux termina com LF. Se você tentar editar um
arquivo texto do DOS no Linux, cada linha provavelmente terminará com um
estranho caractere ‘M’; um texto do Linux sob o DOS aparecerá como uma única e
quilométrica linha, sem parágrafos. Há um par de ferramentas, dos2unix e
unix2dos, para converter os arquivos. Há também o todos, e o utilitário tr. Se seus
arquivos contiverem caracteres acentuados, assegure-se de que eles tenham sido
feitos no Windows (com o Write ou Notepad, digamos) e não sob o DOS; caso
contrário, todos os caracteres acentuados ficarão bagunçados.
192 Linux: Sistema Operacional II
Conclusão
Parabéns! Você aprendeu um pouquinho de UNIX e está pronto para começar a
trabalhar. Lembre-se de que seu conhecimento do sistema ainda é limitado, e que
espera-se que você pratique mais com o Linux para usá-lo confortavelmente. Mas
se tudo o que você precisa fazer é pegar uma porção de aplicativos e começar a
trabalhar neles, o que eu incluí aqui é suficiente.
Tenho certeza de que você gostará de usar Linux e continuará aprendendo mais
sobre ele – com todo mundo é assim.
Copyright
Este capítulo é uma tradução livre, atualizada e adaptada do Linux HOWTO obtido
na sunsite.unc.edu via e-mail.
O KDE foi desenvolvido exclusivamente para trabalhar em ambiente Linux e ofe-
rece ao usuário:
• Um ambiente de janelas parecido com o Windows;
• Um gerenciador de arquivos poderoso e de uso simplificado;
• Configuração simples e centralizada.
Escolhi colocar aqui um tutorial rápido sobre a versão internacional do KDE 1.1.2
por ser muito comum na maioria das distribuições (incluindo Mandrake, Conectiva,
RedHat, Console e outras) e por ser base para todas elas. Desta forma, pequenas
diferenças visuais não comprometem o entendimento das versões mais novas em
função apenas do visual e do idioma, uma vez que coloquei os comandos em inglês
e sua tradução em português, o que já ajuda também a ambientar-se com os princ i-
pais significados do inglês para o português.
Operações do mouse
O KDE foi desenvolvido para ser utilizado com o mouse, o qual move um ponteiro
pela tela. O ponteiro do mouse é utilizado para ter acesso e selecionar menus, ma-
nusear textos, mover janelas, alterar o seu tamanho, iniciar e fechar aplicações.
193
194 Linux: Sistema Operacional II
Formatos do ponteiro
O formato do ponteiro do mouse varia dependendo da sua posição na tela e da ação
que está sendo executada. No KDE, o ponteiro do mouse pode assumir os seguintes
formatos:
FORMATO DO
NOME OBJETIVO
PONTEIRO
Ponteiro em forma de Formato padrão quando o ponteiro estiver sobre o
"X" fundo da tela do KDE. Indica que n ão existe, naquele
ponto da tela, nenhum objeto que possa ser clicado.
Ponteiro em forma de Formato padrão quando o ponteiro do mouse esti-
seta à esquerda ver dentro de uma janela. Indica, na maioria das
vezes, que existe, naquele ponto da tela, um objeto
que possa ser clicado.
Relógio "Espere". O relógio informa ao usuário que a ope-
ração selecionada pode demorar até ser completada.
Ponteiro em forma de Estando com o ponteiro sobre a barra de título de
cruz com setas uma janela e mantendo pressionado o botão esque r-
do do mouse, o ponteiro assume esta forma e indica
que a janela será movida.
Redimensionar l ados Quando o ponteiro se aproxima de uma das laterais
de uma janela, assume esta forma e indica que a
janela será redimensionada naquele lado.
Sobre o KDE 195
FORMATO DO
NOME OBJETIVO
PONTEIRO
Redimensionar cantos Quando o ponteiro se aproxima de um dos cantos
de uma janela, assume esta forma e indica que a
janela será redimensionada nos dois lados que fa-
zem parte daquele canto.
Redimensionar painéis Quando o ponteiro é posicionado sobre uma barra
separadora de painéis de uma mesma janela, assu-
me esta forma e indica que aquela barra separadora
será movida.
Ponteiro em forma de Ponto de inserção utilizado na edição de textos.
"I" [clique] em meio a um texto para colocar o ponto
de inserção na posição do ponteiro em forma de I.
Em alguns aplicativos, podem ser observados outros formatos. Aqueles aqui apre-
sentados são os mais comuns do KDE.
Caso a senha esteja errada, será exibida, por alguns momentos, a mensagem “Login
failed”. Aguarde o desaparecimento da mensagem e tente outra vez.
Considere as orientações descritas antes caso a sua instalação seja com ativação do
login pelo ambiente gráfico KDE. Caso seu login seja no formato texto, faça o lo-
196 Linux: Sistema Operacional II
gin como root e no prompt do shell digite o comando startx e aguarde o KDE ser
carregado. Neste caso não haverá solicitação de novo login e senha.
Para passar para outra sessão de trabalho, mantenha pressionadas as teclas Ctrl e
Alt e pressionar a tecla F1 (vai para a sessão de número 1), ou F2, ou F3, ou F4, ou
F5, ou F6, ou ainda F8. Para retornar para o KDE, mantenha pressionadas as teclas
Ctrl e Alt e pressionar a tecla F7.
Para ir de um para outro ambiente de trabalho, clique com o mouse sobre os botões
que identificam os ambientes ou use um dos seguintes comandos:
Ctrl + Tab = Alterna entre as sessões virtuais.
Ctrl + F... (onde … é o número do ambiente de 2 a 7);
Ctrl + Esc = Abre uma janela com as sessões e tarefas ativas.
Figura 9.1
Figura 9.2
Para desligar, clique no botão Shutdown, escolha a opção Shutdown e clique o botão
OK. Este botão inicia as rotinas de encerramento completo do Linux para que o com-
putador possa ser desligado com segurança. Após alguns instantes e várias linhas de
comando, será exibida a mensagem "Power down". Desligue o computador.
Caso o KDE tenha sido iniciado pelo comando startx, o processo de enceramento é
feito diretamente pelo prompt do shell conforme já mostrado no Capítulo 2, no i-
tem Desligando corretamente o Console Linux.
Para encerrar o KDE iniciado a partir do prompt do shell pressione as tecla Ctrl +
Alt + Backspace.
A figura 9.3 representa a tela inicial do KDE onde encontramos ícones e uma gran-
de barra de botões chamada painel KDE.
Figura 9.3
Ícones
São pequenas ilustrações, sensíveis ao clique do mouse, que simbolizam o coman-
do para iniciar um programa aplicativo ou utilitário. Ao invés de digitarmos uma
linha de comando para iniciar um programa, basta clicar sobre o ícone correspon-
dente. Alguns ícones são criados automaticamente quando da instalação do KDE
(ícones comuns) e outros podem ser criados pelo usuário. Existe também a possibi-
lidade de alterar a imagem exibida em um ícone.
Ícones comuns
Lixo, Modelos e Auto-Início (Trash, Templates e AutoStart). Estes ícones são con-
siderados “comuns” pelo fato de serem criados automaticamente ao final da insta-
lação do KDE.
Figura 9.4
Sobre o KDE 199
Podem-se criar ícones para facilitar o acesso aos programas mais utilizados. Estes
ícones podem ser colocados diretamente sobre o fundo de tela do KDE ou ainda
dentro do Painel KDE.
Painel KDE
O Painel KDE é inicialmente exibido no rodapé da tela e reúne o conjunto de íco-
nes e botões mais utilizados. É possível alterar a posição do painel KDE para qual-
quer uma das quatro extremidades da tela.
Figura 9.5
O Painel KDE pode ser exibido ou oculto ao clicar sobre um dos dois botões em
forma de seta que existem na sua extremidade.
Figura 9.6
Barra de Tarefas
A Barra de Tarefas é o elemento superior do Painel KDE. Pode ser exibida ou ocul-
ta, dependendo de sua preferência. A Barra de Tarefas apresenta um botão para
cada um dos programas que estiver carregado no Ambiente de Trabalho atualmente
selecionado. Clicar em um destes botões fará com que o programa correspondente
torne-se o programa ativo.
O botão "K"
O botão K, localizado na extremidade esquerda do painel equivale ao botão Iniciar
do MS-Windows e serve para abrir o menu principal do KDE.
Figura 9.7
Sobre o KDE 201
Lista de Janelas
Existe um botão no painel KDE chamado Lista de Janelas. Existe também uma op-
ção correspondente no menu principal do botão K. Qualquer um dos dois, quando
clicado, exibe a lista dos programas atualmente carregados dentro de cada um dos
ambientes de trabalho. Clicar em qualquer item desta lista, faz com que o programa
selecionado passe a ser o programa ativo. A combinação Alt + Tab serve para listar
os aplicativos do ambiente atual, permintindo acesso direto a qualquer um deles.
Figura 9.8
Figura 9.9
Arquivos Pessoais
Um dos conceitos básicos do Linux é que um usuário somente tem acesso aos ar-
quivos das pastas para as quais possui autorização. Caso vários usuários utilizem
um mesmo computador, é necessário criar uma pasta na qual cada um deles irá ar-
mazenar seus arquivos pessoais.
Figura 9.10
Sobre o KDE 203
Para ver uma lista dos seus arquivos pessoais, clique no botão Arquivos Pessoais
no Painel KDE ou escolha a opção correspondente no menu principal do botão K.
Note o ícone com o comentário “This folder contains all your personal files”.
Centro de Controle
Existe uma série de adaptações que podem ser feitas, de modo a obter um KDE
mais próximo das necessidades do usuário (caso seja canhoto, pode inverter os bo-
tões do mouse, por exemplo). Estas adaptações atingem aparência de tela, teclado,
mouse, etc. Todas estas adaptações são feitas através do Centro de Controle.
Figura 9.11
Sair
No Painel KDE (ao lado esquerdo dos botões Ambiente de Trabalho) e também no
menu principal do botão K, existe a opção Sair, para você finalizar o KDE.
Travar Tela
Caso necessite abandonar o computador por algum tempo e não queira que ninguém te-
nha acesso aos trabalhos que estava fazendo, não é necessário finalizar o KDE. A melhor
opção é travar a tela. Só poderá destravá-la quem conheça a sua senha de usuário.
204 Linux: Sistema Operacional II
Para travar a tela, clique o botão localizado abaixo do botão Sair no Painel KDE ou
escolha a opção correspondente no menu principal do botão K.
Ambientes de Trabalho
Em uma sessão KDE pode-se trabalhar com um número variável de Ambientes de
Trabalho. Uma das opções para ir para um determinado ambiente é clicar no botão
que o identifica (de dois a oito botões, localizados no centro do painel, identific a-
dos por “One”, “Two”) sendo que essa nomenclatura pode ser alterada assim como
o tamanho dos botões.
Figura 9.12
Esses botões possibilitam alternar entre os ambientes de trabalho e trabalhar com pro-
gramas em qualquer um deles. Veja os botões alterados em seu nome e tamanho.
Figura 9.13
Esta customização pode ser feita com um clique direito sobre a barra de tarefas e
escolhendo Configure. Isto abrirá o KPanel Configuration que intuitivamente per-
mitirá os ajustes desejados em alguns aspectos visuais da barra de tarefas como
tamanho dos ícones, quantidade de painéis, quantos estão visíveis, etc.
Figura 9.14
Área de Transferência
Uma das grandes facilidades que temos quando decidimos criar textos, figuras e
planilhas de cálculo através de computadores é a possibilidade de "reutilização" de
textos e/ou figuras em vários arquivos. Essa reutilização é bastante facilitada para
quem usa KDE.
O KDE permite que sejam mantidos conteúdos – textos e/ou figuras – num local de
armazenamento temporário, chamado área de transferência. Este recurso permite
que textos e figuras sejam copiados ou movidos entre arquivos.
Figura 9.15
Sobre o KDE 207
Figura 9.16
Botões comuns
As janelas do KDE possuem, na sua parte superior, uma primeira barra, chamada
"Barra de Título", na qual são exibidos uma série de botões, nas extremidades es-
querda e direita e, ao centro, o título do programa. Estes botões permitem uma série
de operações relacionadas com a janela:
Menus
Logo abaixo da Barra de Título, a maioria das janelas possui uma barra contendo
uma série de palavras-chave, tais como "File", "Edit", "Options", "Help" (podendo
apresentar pequenas diferenças em cada aplicativo).
Esta é a barra de menus, que abriga os comandos que o programa que ocupa a jane-
la está apto a receber. Cada uma destas palavras-chave é o ponto de acesso a um
dos menus da janela. Cada um dos menus abriga uma série de opções (chamados
itens de menu) relacionadas com a palavra-chave que o identifica.
Sobre o KDE 209
Figura 9.17
Barras de ferramentas
Muitas janelas possuem, além da barra de menus descrita, uma ou mais barras de
ferramentas, representadas por uma série de botões alinhados e agrupado em fun-
ções do mesmo tipo. Os botões das barras de ferramentas facilitam o acesso aos
principais comandos do programa e repetem alguns dos itens de menu.
Menus de atalho
Grande parte das janelas possui, além da barra de menus e barra(s) de ferramenta(s)
descritas, uma série de outros menus, os quais são exibidos quando clicamos o bo-
tão direito do mouse sobre algum dos elementos da janela. Estes, são os chamados
"menus de atalho" ou "menus de contexto".
O conteúdo destes menus depende de qual tipo de objeto havia sob o ponteiro do
mouse no momento em que você clicar o botão direito do mouse.
210 Linux: Sistema Operacional II
Note na figura 9.18 um menu de atalho gerado pelo clique direito sobre o objeto
Printer do KDE e outro também com clique direito sobre uma seleção feita em um
Text Editor.
Figura 9.18
Caixas de diálogo
Alguns dos itens de menu e também alguns dos itens dos menus de atalho execu-
tam comandos diretos (exemplo : EditàCopy).
Outros itens de menu e também de menu de atalho executam comandos mais com-
plexos e que requerem uma série de informações complementares. Estes itens de
menu aparecem sempre com reticências logo após o seu nome e, quando acionados,
exibem uma "caixa de diálogo". São exemplos: File àOpen... ; EditàFind...; Opti-
onsàFont... ;
Uma caixa de diálogo é uma janela que surge sobre a janela principal do programa,
na qual deve-se fornecer as informações adicionais para completar o comando soli-
citado.
Barras de deslocamento
Sempre que o conteúdo de uma janela for maior que a área visível, esta janela apre-
sentará barras de deslocamento (também chamadas barras de rolagem), na base
(barra de deslocamento horizontal) e na lateral direita (barra de deslocamento ver-
tical). Com o uso do mouse sobre estas barras, move-se o conteúdo sem alterar o
tamanho ou a posição da janela.
Administração de janelas
Existe uma série de operações que você pode fazer no sentido de melhor posic ionar
as janelas dos programas abertos na sua tela. As janelas podem ser movidas, redi-
mensionadas (desde que estejam restauradas), minimizadas, maximizadas e resta u-
radas.
Mover janelas
Pode-se mover uma janela com o mouse, arrastando-a pela Barra de Título.
Redimensionar janelas
Para redimensionar uma janela com o mouse:
Sobre o KDE 213
Ajuda do KDE
O KDE fornece um banco de dados completo de ajuda operacional e de configura-
ção do ambiente.
Para se ter acesso à base de dados da Ajuda clique no ícone que se encontra na
barra de tarefas do KDE.
Figura 9.19
A janela da figura 9.20 será exibida e pode-se então navegar pelo Help.
Isso quer dizer que ao clicar no Ajuda, uma página de Internet irá se abrir para ser
pesquisada.
Se a ajuda não estiver disponível nos arquivos internos do KDE, o sistema de ajuda irá
tentar uma conexão com a Internet para obter auxílio em sites externos ao computador.
214 Linux: Sistema Operacional II
Figura 9.20
Figura 9.21
Sobre o KDE 215
Pesquisando a ajuda
A organização do tópicos de ajuda é:
Figura 9.22
Pesquisa feita por Hyperlink. Hyperlink à Cada palavra que estiver sublinhada
representa uma pesquisa. Basta clicar. Esta palavra é um atalho para outra página.
216 Linux: Sistema Operacional II
Iniciando programas
O KDE pode executar aplicações a partir de um menu ou lista, ou a partir de um
ícone. O modo mais fácil de executar uma aplicação é a partir deste último, caso
esteja disponível. Se a aplicação não estiver representada por um ícone, ela deve
ser executada a partir de Alt + F2 ou da janela de leitura de disco no Menu File ->
Run.
Figura 9.23
Figura 9.24
Pela janela de pastas executa -se clicando uma vez sobre o arquivo desejado ou se-
lecionando o arquivo e escolhendo o menu File -> Run...
Use a tecla de atalho Alt + F2, assim que ele abrir a caixa escrita Command:
Figura 9.25
Figura 9.26
Se uma parte da janela para a qual deseja passar estiver visível, clique em qualquer
lugar dessa janela ou mantenha pressionada a tecla Alt. Ao pressionar a tecla Tab,
uma lista de aplicativos será exibida. Como ela é uma janela cíclica para cada am-
biente, pare sobre o aplicativo desejado e solte as teclas para o aplicativo ser trazi-
do para a frente.
Figura 9.27
Sobre o KDE 219
OPÇÃO DESCRIÇÃO
Clique Duplo Um simples clique duplo na barra de título de uma janela faz
com que ela trabalhe como uma cortina, que poderá ser aberta
outra vez através de outro clique duplo.
Clique Direito Para organizar as janelas clique com o botão direito do mouse
no ambiente de trabalho escolhendo Cascade windows ou Un-
clutter windows .
220 Linux: Sistema Operacional II
Fixando aplicativos
Em todas as janelas existe, ao lado direito do ícone que representa o programa, ou-
tro ícone chamado Pregar.
Figura 9.30
A figura 9.30 mostra dois aplicativos: o de cima com o prego ativado e o debaixo
com o prego desativado. Ao desativar o prego em outro ambiente de trabalho, o
aplicativo passará a fazer parte do ambiente onde estiver.
Finalizando programas
Com o mouse
Pode-se finalizar um aplicativo clicando no X ou, pelo seu menu. Clicando no íco-
ne do canto superior esquerdo, o menu é aberto e a opção Close está disponível.
O botão X se encontra no canto superior direito da janela que estiver aberta. Use o
ponteiro do mouse, com apenas um clique o programa será finalizado.
Com o teclado
Para finalizar um aplicativo pelo teclado utiliza-se Alt + F4.
Administração de discos
Conceitos gerais
Figura 9.31
Dentro do KFM fica muito fácil trabalhar com arquivos e pastas, criando, moven-
do, excluindo, copiando.
222 Linux: Sistema Operacional II
Unidade de disco
Essa unidade de disco é conhecida como HD (Hard Disk), Winchester ou Disco
Rígido.
Existe a Unidade de Disco Flexível, conhecida como Drive A: ou Unidade A:, que
utiliza disquetes de pouca capacidade de armazenamento de dados, mas que é mui-
to utilizada para levar arquivo de um computador para outro ou para fazer Backup
dos dados mais importantes.
Pastas
Local onde se organizam os arquivos. É muito importante que um usuário seja or-
ganizado na hora de salvar o seu arquivo, pois senão perderá tempo procurando.
Criar pastas
Podem-se criar novas pastas para organizar o Ambiente de Trabalho ou outras pas-
tas. As informações relacionadas são normalmente armazenadas em conjunto numa
pasta.
Renomear pastas
Pode-se mudar o nome das pastas para que representem com maior exatidão os
seus conteúdos ou para evitar conflitos entre nomes quando uma pasta é movida ou
copiada.
Mover/copiar pastas
Podem-se mover pastas para o Ambiente de Trabalho, para outra pasta ou para ou-
tra unidade. Quando se move uma pasta, também se move todas as subpastas e ar-
quivos para a nova localização.
Sobre o KDE 223
Excluir pastas
Quando se elimina uma pasta, a mesma e o seu conteúdo são movidos para a Li-
xeira.
Arquivos
Nomes de arquivos e extensões
Renomear arquivos
Mover/copiar arquivos
1. Selecione o arquivo que deseja mover/copiar.
2. Arraste como botão esquerdo sobre o arquivo que deseja mover/copiar para o
seu destino.
3. Selecione Move para mover ou Copy para copiar.
224 Linux: Sistema Operacional II
Excluir arquivos
Quando se elimina um arquivo, ele é excluído direto ou são movidos para a Lixe i-
ra (Trash).
A lixeira
Figura 9.32
Pode-se selecionar e enviar vários arquivos ou pastas de uma vez para a lixeira.
A lixeira funciona como qualquer outra pasta que armazena arquivos. Para recupe-
rar o arquivo, abra as duas janelas (lixeira e a pasta para onde irá restaurar o arqui-
vo) e mova de um lado para outro.
Limpando a Lixeira
Por padrão, a Lixeira utiliza 10% do total do disco rígido. A Lixeira deve ser es-
vaziada periodicamente, a fim de criar espaço no disco e eliminar arquivos perma-
nentemente.
File:/ exibirá pastas e arquivo. Caso queira acessar alguma pasta, clique em cima dela.
Figura 9.33
226 Linux: Sistema Operacional II
OPÇÃO DO SIGNIFICADO
MENU VIEW
Show Hidden Files Faz com que todos os arquivos que estiverem ocultos sejam
Mostrar Arquivos demonstrado. Normalmente são os arquivos de sistema.
Ocultos
Show Tree Mostra em duas colunas, do lado esquerdo uma estrutura
Mostrar Árvore de pastas e subpastas e do lado direito, o conteúdo das pas-
tas e subpastas.
Show Thumbnails Os arquivos salvos em GIF terão o seu ícone sendo de-
Mostrar Marcadores monstrado pelo seu conteúdo.
Dir info View Na barra à esquerda aparecem informações do diretório
Visão do Diretório atual.
HTML View Destaque para os arquivos HTML.
Visão HTML
Icon View Mostra os ícones em tamanho grande, um ao lado do outro.
Visão Ícone
Text View Mostra as pastas e arquivos sem ícone e suas descrições.
Modo texto
Long View Mostra tudo, o ícone e suas descriç ões.
Visualização Longa
Short View Mostras os ícones em tamanho pequeno, um ao lado do
Visão Curta outro.
Sobre o KDE 227
Figura 9.34
Adiante: Depois de voltar uma vez, o adiante fica ativo para que possa avançar o
que voltou.
Diretório do Usuário: Abre o diretório principal do usuário (root).
Recarregar: Relê o local que está trabalhando, assim não precisa fechar o KFM e
abrir outra vez.
Copiar: Usa a área de transferência para copiar um objeto.
Colar: Cola o que estiver na área de transferência dentro do local selecionado.
Ajuda: Ajuda sobre o KFM.
Para: Caso esteja fazendo alguma leitura, cancela.
Localizando arquivos
Para localizar um arquivo no KFM:
Figura 9.35
Sobre o KDE 229
Selecionando arquivos
Selecionar um só objeto
1. Na tela do KFM escolha Edit -> Select.
2. Digite o nome do arquivo que deseja. OK.
Figura 9.36
Ícones
Usando o botão direito do mouse no ambiente de trabalho escolha New -> Appli-
cation.
Figura 9.37
Assim que você der um clique em OK, irá se abrir a propriedade do aplicativo. Es-
colha o guia Execute e informe o nome do aplicativo que será o executável. Ex.:
kcalc.
Figura 9.38
Organizando
Para organizar os ícones na área de trabalho:
1. Use o ponteiro do mouse com o botão direito;
2. Escolha Arrange Icons . Uma janela pedirá a confirmação da ação. Para reor-
ganizar escolha a opção Yes.
Excluindo
1. Clique com o botão direito do mouse em cima do ícone;
2. Escolha a opção Delete.
232 Linux: Sistema Operacional II
Painel
Configurando
Pelo Painel, clique com o botão direito em uma área livre (local em que não exista
botão), escolhendo a opção Configure :
Figura 9.39
Adicionando atalhos
Essa opção permite criar, no painel, ícones de atalho para agilizar o acesso aos a-
plicativos mais utilizados.
Removendo atalhos
Para remover um atalho do painel:
• Clique com o botão direito em cima do ícone que deseja excluir do
painel;
• Selecione a opção Remove.
Figura 9.49
Configurações do Mouse
• Pelo K você acessa Default -> Settings -> Input Devices -> Mouse.
Figura 9.50
Sobre o KDE 235
Configurações do teclado
• Pelo K você acessa Default -> Settings -> Input Devices -> Keyboard.
Figura 9.51
Foi em algum dia de frio na Finlândia, no ano de 1991, que Linus Torvalds, um dos
estudantes da Universidade de Helsinque e vidrado em computadores desde os 11
anos, na época com apenas 21 anos, resolveu desafiar a si mesmo. 1
Naquela época, Linus havia adquirido o seu computador baseado em CPU Intel
386, que na época era o topo de linha, mas queria um sistema operacional capaz de
aproveitar ao máximo as características da CPU para multitarefa. Os sistemas base-
ados em Unix na época custavam em torno de US$ 5.000,00 e rodavam em compu-
tadores que custavam por volta de US$ 10.000,00 sendo muito pouco acessíveis
para estudantes como ele. Então Linus tomou a decisão de criar o seu próprio sis-
tema operacional baseado em Unix.
1
Referência em material on-line no endereço http://www.objects.com.br/pesquisa/linux.html
237
238 Linux: Sistema Operacional II
Com a inspiração pelo sistema Minix, um humilde sistema operacional Unix de-
senvolvido por Andy Tanembaum, Linus desenvolveu o Kernel (núcleo) do siste-
ma operacional do Linux – uma combinação de seu nome com Unix.
Para isso ele convocou outros programadores para embarcar com ele na aventura
de desenvolver coletivamente o programa. Respostas a favor chegaram do mundo
inteiro, e o Linux se tornou um sistema obrigatório nas universidades. Hoje distri-
buído livremente, ou adquirido em CDROM pela Internet, é considerado um dos
melhores sistemas operacionais que existe, ganhando prêmios após prêmios.
Depois de escrever o primeiro Kernel, Torvalds concluiu que, sozinho, não avança-
ria muito. Para isso ele resolveu montar uma comunidade, publicando seu apelo na
Internet, e foi à luta. Juntamente com a mensagem tipo garrafa jogada no oceano
com um pedaço de papel, foi o código fonte do sistema operacional, ou seja, ele
dava de graça o software e ainda revelava o seu funcionamento. A partir daí, Linus
começou a entrar para a história.
O Linux está atualmente disponível para quase todas as plataformas, podendo tam-
bém gerenciar os principais serviços existentes na Web.
Linus tornou-se o guru dos hippies cibernéticos. Novas atualizações do Linux po-
dem ser desenvolvidas pelos muitos desenvolvedores ao redor do mundo, mas é
somente Linus quem libera as novas versões do núcleo básico do Linux.
O que é Linux?
Dessa forma surgiram distribuições como Debian, Slackware, Red Hat, Mandrake,
SUSE e, no Brasil, Conectiva e mais recentemente, o Console Linux e outros, cada
um com as suas características próprias: maior número de aplicativos, maior facili-
dade de instalação, nível de atualização.
O Linux pode atuar como: estação de trabalho, servidor de rede, servidor de banco
de dados, servidor de comunicação, servidor de desenvolvimento, gateway, rotea-
dor, servidor Internet, servidor Intranet e muito mais.
Sim, sempre existem diversas aplicações que estão sendo incluídas nas novas ver-
sões e distribuições, mas que podem ser obtidas imediatamente pela Internet. Apre-
sentamos a seguir uma relação de alguns itens disponíveis para utilização imediata:
AOL Server, Apache HTTP Server, Firewall Toolkit, Frontpage Server Extensions,
NCSA httpd Server, Vosaic MediaServer, Stronghold, WN Server, W3C (CERN,
XS-HTTPD 2.3, Zeus Server, Netscape.
Networking Tools
Interface Gráfica
Suites
Angoss SmartWare PLUS , Applixware for Red Hat Applix (processador de textos,
planilha, gráfico e mail), Caldera Internet Office Suite Word perfect, Cliq office
suite, Corel Office for Java, CCVS Credit Card Verification System, Goldmedal
UNIX Office, Rendezvous, Star Office, TeamWave Workplace TimeClock.
Database Managers
ADABAS D, Beagle SQL, C/BASE 4GL, CQL++ SQL Database, DBIX, Empress
for Linux, Essentia Data Base, FlagShip, GNU Sql Server, JustLogic/SQL, KE
Texpress commercial high speed client/server database engine, Kubl RDBMS,
LEAP, mSQL, MySQL, Open Client/C, Oracle, Polyhedra, PostgreSQL, QDDB,
Raima Database Manager++, /rdb, Recital, SHORE Project, Solid Server, SQLkit.
Custo
Em relação aos softwares adicionais tais como TCP/IP, servidores (web) httpd,
software de administração de rede, bancos de dados SQL, software de backup, e-
mail, NFS, firewalls, estes podem ser encontrados em versões de livre distribuição,
shareware, freeware ou comerciais.
242 Linux: Sistema Operacional II
Segurança
Escalabilidade e Portabilidade
Linux oferece um claro caminho de escalabilidade: PCs Intel, DEC Alpha, Sparcs,
multiprocessados. Aplicações desenvolvidas para Linux podem ser portadas com
facilidade de/para diversas plataformas: AIX, UX, Sun-OS, Solaris, Irix, SCO, In-
teractive, Intranetware e mais.
Suporte a Hardware
Amigabilidade
Ao redor do planeta se estima que tenhamos mais de vinte e cinco milhões de usuá-
rios Linux. Como é um software de livre distribuição não há uma contagem efetiva.
Dentre esses usuários, citamos alguns mais conhecidos: NASA, Exército Americ a-
no, Governo da Itália, Governo da Califórnia, fábricas de robôs na Suécia, hospitais
na França, praticamente todas as Universidades e não pára por aí.
O futuro do Linux
No futuro do Linux, o presidente da Red Hat, Bob Young, prevê dois possíveis ce-
nários. No primeiro, que ele acha ser possível daqui a cinco anos, "Linux domina
aplicações científicas e técnicas e se torna o sistema operacional preferido para ser-
vidores Web e estações de trabalho. O mercado de compartilhamento cresce com a
ciência da computação de estudantes graduados de universidades onde Linux pos-
sui 100% de aprovação. Pelas suas vantagens de custo e performance, torna-se o
sistema padrão para os computadores desktop”.
Inicialização 6 MB 12MB
Típico 16 Mb 24 Mb
Carga 24 Mb 48 Mb
Linux Windows NT
Filesystems Suportados
Linux Windows NT
NFS Sim -
Aplicações Suportadas
Linux Windows NT
Custo Aproximado
2
Publicado pelo FirstLinux.com – Tradução: João Alexandre Lôbo Marques
247
248 Linux: Sistema Operacional II
Aplicativos de Programação
comerciais recomendados
* VisualWorks – consiste de um ambiente de desenvolvimento de aplicações orie n-
tado a objetos bastante poderoso para a construção de soluções de alta qualidade.
Inclui conectividade a bancos de dados, conectividade a bibliotecas C compartilha-
das, uma suíte com servidor e desenvolvimento para a Web, interface CORBA e
muito mais. Está disponível em versões comercial e não-comercial, não havendo li-
mitações para a versão não-comercial, que está inclusive disponível para download.
O fips se encontra no diretório dosutils no CD1 do Console Linux 1.0 (que acom-
panha este livro). Esse programa pega a tabela de partições atual do seu HD e cria
novas partições a partir do espaço disponível nas partições já criadas.
Nota: Antes de realizar o procedimento a seguir, esteja de certo que você possui
backup de todos os dados importantes do seu HD, pois qualquer erro no proce-
dimento pode causar perda de todos os dados de seu HD.
Para executar o fips, você precisa de um disco de boot de DOS com reconhecimen-
to de CD.
3
texto escrito por: Spike D em Domingo, 29 de Abril de 2001 | 12:55:24 e disponível em
http://www.console.com.br
250
Instalando o Console Linux em um HD já com o Windows Instalado 251
Para criar esse disco no Windows, chame "Meu Computador", clique com botão
direito no ícone Disco Flexível de 3½ (A:) e selecione "Formatar..." e formate o
disco copiando os arquivos de sistema (crie um disco de boot)4 .
Ao executar o fips, ele irá checar sua tabela de partições, pedirá para teclar qual-
quer tecla para continuar (Press any Key).
Após isso ele irá checar sua partição FAT e perguntará se quer fazer um backup do
setor raiz e setor de boot antes de continuar:
Do you want to make a backup copy of your root and boot sec-
tor before proceeding (y/n)?
Agora você vai escolher o espaço em disco que deseja para a nova partição (onde
você vai instalar o Linux).
Pressione Enter.
O fips irá mostrar a nova tabela de partições, agora já com a nova partição onde
será instalado o Linux e perguntará se você quer continuar ou reeditar a tabela de
partições.
4
Este disco também pode ser criado pelo Adicionar ou Remover Programas que está no Painel de Controle, em
sua guia Disco de Inicialização.
252 Linux: Sistema Operacional II
Agora vamos para o segundo estágio: instalar o Console Linux na partição que o
fips criou com o espaço livre.
Após iniciar a instalação você optará por partição manual, selecionando instalação
personalizada ou optando por partição manual ao selecionar Estação de Trabalho
ou Servidor.
A primeira partição (hda1) é onde está o Windows e a segunda, apesar de estar com
o tipo de Win95 FAT32, será apagada e criada as partições do Linux, então para
isso:
Com isso, sobrarão 2067Mb livres. Então vamos criar as partições Linux.
Clique em Adicionar e crie uma partição /boot com 40Mb e tipo Linux Native.
Clique em Adicionar e crie uma partição SWAP com o dobro da sua memória
RAM e tipo Linux Swap.
Clique em Adicionar e crie uma partição / com o tipo Linux Native e selecione
"Crescer até encher o disco?" ou "Grow to fill disk".
5
Você pode também utilizar o disco de boot gerado pelo Adicionar ou Remover Programas do Painel de Controle
na sua guia Disco de Inicialização e escolher o boot com suporte a CD e depois rodar no diretório dosutils do CD
o bat autoboot.
Instalando o Console Linux em um HD já com o Windows Instalado 253
Você também pode selecionar um ponto de montagem para sua partição do Win-
dows, por exemplo, /windows, para que a partição Windows sempre esteja dispo-
nível no Linux nessa partição.
CUIDADO: Lembre-se de que o LILO que irá gerenciar o boot será instalado no
Master Boot Record (hda) de seu HD, apagando assim qualquer outro gerencia-
dor de boot anteriormente instalado.
Após isso, prossiga com a instalação normalmente até que ela termine.
O LILO (Linux Loader) irá gerenciar o boot e decidir se irá chamar o Windows ou
o Linux.
Para mudar essas opções, você precisa configurar o LILO pelo arquivo
/etc/lilo.conf.
Faça um disco de boot do Linux (usando o 'c') e uma cópia do lilo.conf antes de
efetuar qualquer modificação no lilo.conf, pois se ocorrer algum problema, você
pode entrar no sistema usando esse disco e assim restaurar o lilo.conf orig inal.
Saber reconhecer os drives e partições no Linux é essencial para as pessoas inicia n-
tes no sistema, por isso este apêndice irá ajudar a você que está começando a entrar
no mundo maravilhoso do LINUX. 6
Para criar partições manualmente no Linux você poderá usar o fdisk do Linux, mas
muitas distribuições atualmente as criam automaticamente para você. Em ambas as
maneiras, você deve conhecer as seguintes informações sobre as partições e nomes
de dispositivos no Linux.
Os drives dos dispositivos são encontrados no diretório /dev e são usados para a
comunicação com os dispositivos em seu sistema Linux.
Aqui vai uma lista dos nomes dos drives dos dispositivos:
6
Drives e Partições no Linux – texto escrito por Linuxer em Sexta, 20 de Outubro de 2000 | 12:57:23 e disponível
em http://www.console.com.br
254
Drives e Partições no Linux 255
7
Baseado no artigo original de Elias Bareinboim disponível em http://www.uol.com.br/olinux
256
Porque o Linux é Gratuito 257
Essa é a parte final, quando já estava pronto. Isso mostra, basicamente, que o Ker-
nel do Linux é o que dá seu nome, mas na verdade devemos chamá-lo de
GNU/Linux, pois ele usa vários aplicativos GNU (conforme visto no Capítulo 5).
As pessoas, em geral, acham que isto é tudo. O Kernel por si só não é usável. O
Kernel é uma parte importantíssima (eu disse parte) do Sistema Operacional (ele
faz a interface, serve como comunicador, com a máquina em si). O Linux, como
um todo, é uma combinação do sistema operacional GNU. O sistema é basicamente
da GNU e o Linux funcionando como seu Kernel.
Existem diversas variantes dos sistemas GNU que usam o Kernel do Linux. Essas
variantes são amplamente difundidas no mundo inteiro e, em geral, são todas co-
nhecidas como Linux, mas idealmente deveriam ser chamadas de Sistemas
GNU/Linux.
Em geral, cria -se uma confusão a respeito disso. O que é o Linux então? O que é
GNU? O que é o sistema inteiro? Várias pessoas estão usando em seu computador
versões modificadas dos sistemas GNU. Sem saber disso, acham que é simple s-
mente o Linux.
Quem realmente é programador sabe que Linux é o Kernel. Quando, em geral, ou-
ve-se que todos estão usando o Linux por aí, eles lembram da história e voltam na
época em que Linus desenvolveu o Kernel. Naquela época, ele fez o Kernel e ju n-
tou com vários programas GNU para fazer o sistema como um todo. Mas todos os
programas estavam prontos do nada? Todos? Claro que não, a GNU funciona há
anos desenvolvendo programas para serem livres/abertos e os programas existiam
por causa disso. Por isso, lembre-se: o ideal é chamar de GNU/LINUX.
Exemplos de programas GNU que são usados com o GNU/Linux desde o começo e não
têm relação com sua criação (foram desenvolvidos com propósitos específicos) são:
Donald Knuth desenvolveu a linguagem de formatação TEX, que é usada por todos
os matemáticos hoje em dia.
É notável que esse tipo de programa tenha contribuído em muito para o sucesso do
GNU/Linux.
258 Linux: Sistema Operacional II
Em geral, o projeto GNU deve ser conhecido como o grande responsável pelo su-
cesso do Linux. Lógico que muitos fatores são relevantes, mas o GNU tem papel
fundamental (evidentemente que o Linus também tem).
Código Aberto
Fonte de um programa é o código dele, o que é escrito em uma linguagem de pro-
gramação. Todo programa deve ter um fonte. Ele passa por um programa que o
traduz para linguagem de máquina, a qual o computador entende. Mediante este
conhecimento, prossigamos.
Código aberto (ou Open Source, em inglês) quer dizer que o fonte é disponível pa-
ra quem deseja usar. Como isso pode? Funciona? Todos podem mexer? E se eles
fizerem coisa errada? São algumas perguntas que surgem na cabeça de quem não
tem a convivência com esse tipo de filosofia.
Bem, código aberto quer dizer que o fonte está disponível. Eu posso vê-lo, editá-lo,
fazer o que bem entender. Por exemplo:
bash:/usr/src/ 1 /arch/ 1 /kernel$ ls
Makefile head.o ioport.o mca.c setup.o time.o
apm.c i386_ksyms.c irq.c mtrr.c signal.c trampoline.S
bios32.c i386_ksyms.o irq.h process.c signal.o traps.c
bios32.o init_task.c irq.o process.o smp.c traps.o
entry.S init_task.o kernel.o ptrace.c sys_i386.c visws_apic.c
entry.o io_apic.c ldt.c ptrace.o sys_i386.o vm86.c
head.S ioport.c ldt.o setup.c time.c vm86.o
Neste diretório listado estão todos os arquivos com as funções básicas do Kernel.
Eu posso mexer à vontade, mudar, fazer o que bem entender. Só que isso não inter-
Porque o Linux é Gratuito 259
fere no Kernel que você usa em sua máquina. Qualquer um pode alterá-lo em seu
respectivo computador! Caso você seja um programador experiente e tenha domí-
nio em programação de Sistemas Operacionais pode contribuir. Basta você mudar
o que bem entender e submeter aos responsáveis.
Cada parte do Kernel tem responsáveis diretos. Linus Torvalds está melhorando a
gerência de memória, por exemplo, para ficar mais rápida. Caso você queira man-
dar um novo método que tenha descoberto, envie um e-mail para ele com as suges-
tões e os fontes. Ele fará uma análise e, se for realmente útil, colocará em prática
na próxima versão.
Caso o Alan Cox tenha feito alguma correção no Kernel e você tenha descoberto
uma forma melhor de fazê-lo, é só propor. Se realmente for superior, você terá seu
patch (correção) incorporado a ele (Linus Torvalds e Alan Cox são os dois maiores
nomes do Kernel do Linux atualmente, superacessíveis como seres humanos mor-
tais).
Isso tudo funciona para coisas que são novas, que provavelmente vão para uma
versão de testes do Linux, que não são liberadas rapidamente. Caso seja alguma
correção de algo já existente, que já tenha sido implementado (codificado), será
testado e colocado na próxima versão estável.
Isso funciona para todos os programas GNU. O exemplo do Kernel foi a título di-
dático, mas funciona da mesma forma para todos.
No caso do Kernel (acontece isso em geral com a maioria dos programas GNU), a
versão estável é aquela que já foi bem testada, está madura para o uso, não tem
problemas e não trava em condições normais. Ela demora para sair algum tempo.
260 Linux: Sistema Operacional II
Ela é designada pelo número par do 2.2.13, por exemplo. O segundo 2 quer dizer
que é estável, o 13 é a versão (release). A próxima a sair é a 2.2.14, e assim por
diante.
E como isso pode funcionar? Qual a garantia de que isso tudo continuará assim?
Bem, existe uma licença conhecida como GPL (do GNU) que garante isso. Nela
está escrito:
1) Todo programa GNU tem que vir com seu código fonte. Ou seja, não se pode
distribuir simplesmente o binário (ou executável, como queira).
2) Sempre que for usado o fonte, o autor original deve ser mencionado obrigator i-
amente.
3) Se você alterar o fonte do programa, terá que mantê-lo na licença GPL, ou seja,
o código fonte deve ser liberado também.
Software Livre
Software (programa) Livre (conhecido como Free Software, em inglês) é o ato de
disponibilizar o software sem cobrar por ele. É um ato de liberdade, não de preço.
Podemos fazer uma comparação ao direito de voz de imprensa. Todos podem falar.
Não se deve traçar uma analogia com o direito de beber um refrigerante de graça e
sim de poder falar o que se bem entender, sem censura.
Deve-se entender como direito do usuário: rodar o programa, copiar, distribuir, es-
tudar, mudar e melhorá-lo. Tirado da Fundação de Sotfware Livre:
• liberdade de rodar o programa, com qualquer objetivo.
• liberdade de estudar o funcionamento do programa, e adaptá-lo para suas
necessidades.
• liberdade de distribuir o programa para ajudar quem você acha pertinente.
• liberdade de melhorá-lo e distribuí-lo para o público, dando sua contribui-
ção para a comunidade que lhe deu esta oportunidade.
Conclusões
O GNU/Linux é um Sistema Operacional (SO) livre e aberto. Os problemas que
existem em relação a esse fato estão em nossas cabeças! Nossa formação cultural
diz que temos que pagar o software ou então piratear. Qualquer coisa que foge dis-
so, "não existe" ou "estão querendo nos passar para trás".
Outra questão a ser colocada é como as pessoas que trabalham com Softwares Gra-
tuitos/Livres sobrevivem. Como qualquer outra, trabalhando. Trabalham com cus-
tomizações, suporte, documentação e tudo que é adicional ao sistema tradicional.
Depois de muitas conversas, a Red Hat decidiu lançar a versão beta do Red Hat
Linux 7.0 baseada no Kernel antigo chamado de Pinstripe.
A RedHat tomou suas providências para não ficar para trás quando o 2.4 ficasse
pronto. Em declaração dada à imprensa por ocasião do lançamento da versão 7.0
beta do RedHat, Doug Ledford, gerente do departamento de desenvolvimento do
Kernel da Red Hat disse: "O Pinstripe foi projetado para rodar o 2.2 e o 2.4.". A
empresa vai lançar a versão final do 7.0 com o Kernel antigo e quando o novo ficar
pronto, a empresa garantiu que irá prover o 2.4 que poderá rodar no topo do
Pinstripe 2.2. Isto foi no final de 2000, e em maio de 2001 já estava disponível a
versão 7.1 do RedHat com Kernel 2.4 já homologado para rodar na distribuição
servidor daquela empresa.
8
Apêndice com dados compilados a partir dos artigos originais disponíveis em http://www.conso-
le.com.br/ver_artigo.htm?id=67, http://www.console.com.br/ver_artigo.htm?id=48 e http://www.conso-
le.com.br/ver_artigo.htm?id=34.
262
O Kernel 2.4 do Anúncio ao Lançamento 263
Finalmente o Kernel 2.4 foi lançado no dia 4 de janeiro, sem muito alarde. A nova
versão do Linux já estava sendo esperada ansiosamente, gerando até alguns
descontentamentos com a demora. Mas, segundo a filosofia Open Source, o código
só foi liberado quando Linus Torvalds achou que estava tudo em ordem.
Como este foi um lançamento de grande importância para o emprego do Linux nas
corporações, os desenvolvedores aproveitaram o tempo para refinar as interfaces de
programação (API) de aplicações já existentes na versão 2.2 e criaram estruturas
que tornaram o sistema mais coeso.
O Kernel 2.4 roda em três novas arquiteturas: ia64 (Itanium), S/390 (mainframe da
IBM) e SuperH. Também estão dentro os novos processadores MIPS de 64 bits,
lembrando que algumas plataformas serão mais eficientes que outras.
Quando Torvalds recebeu perguntas sobre detalhes do novo Kernel, não quis
responder no momento, devido à exaustão e disse com muito bom humor: "Não me
perturbem com informações sobre bugs nos próximos dias".
A palavra Kernel significa núcleo ou cerne, e essas palavras expressam muito bem
o que ele é: a parte central do sistema operacional, capaz de manter as aplicações,
dispositivos e conexões funcionando e comunicando-se entre si.
Aspectos internos
O Kernel é o núcleo do sistema operacional, mas ele em si tem também o seu pró-
prio núcleo, que são as rotinas capazes de integrar os gerenciadores de dispositivos,
oferecendo o agendamento e o seqüenciamento de tarefas, controlando a alocação
de recursos, gerenciando os sistemas de arquivos e a memória, e muito mais.
Nestes aspectos internos, uma grande mudança da versão 2.4 está relacionada à
nova implementação do gerenciamento de recursos de hardware como as IRQs e os
endereços de E/S. Isso irá facilitar a tarefa de quem desenvolve gerenciadores de
dispositivos, e em última análise aumenta bastante a possibilidade de suporte a
ainda mais hardware pelo Linux. Além disso, essa remodelagem facilitou o suporte
a placas ISA PnP como veremos posteriormente.
leitura e outro de gravação foi abandonada, e agora há um único buffer para as duas
operações, mais uma vez simplificando em muito o desenvolvimento de mais
gerenciadores de dispositivos. Além disso, o sistema ganha em eficiência e passa a
usar menos memória.
O Linux 2.4 também vai ser ainda mais compatível com padrões de mercado,
incluindo o suporte a clocks e timers do padrão POSIX, NFS versão 3 (veremos
mais sobre ele no item sobre sistemas de arquivo), e alguma compatibilização em
outras áreas como, por exemplo, o esquema de threads adotado.
Tipos binários
Desde a versão 2.2 o Kernel do Linux suporta um tipo binário chamado de "misc.",
que permite associar determinados tipos de binários a aplicações auxiliares. Assim,
você pode, por exemplo, instruir o Kernel para que, se solicitado a rodar um
arquivo .EXE (executável do Windows), ele carregue previamente (e transparente-
mente) um emulador adequado, o que sob o ponto de vista do usuário e do desen-
volvedor de aplicações é a mesma coisa que se o programa estivesse sendo
executado nativamente pelo Kernel (naturalmente isso não é verdadeiro em
aspectos como a portabilidade, suporte a algumas funções específicas, estabilidade
e performance da aplicação sendo executada).
O Linux 2.2 e o 2.0 incluíam também um sistema semelhante mas exclusivo para
aplicações em Java, que permitia que o Kernel rodasse de forma aparentemente
nativa os binários Java. O Linux 2.4 vai deixar de suportar este sistema, e os
usuários terão que portar suas aplicações para o novo método. Como esta mudança
já estava disponível e documentada desde a versão 2.2, é provável que poucos
usuários tenham problemas com isso.
266 Linux: Sistema Operacional II
Os dispositivos IDE, que são a base dos discos rígidos e unidades de CD-ROM
mais comuns no mercado, têm algumas novidades. A primeira delas é o aumento
do limite máximo de controladores IDE em uso – agora você pode ter até 10
controladores no mesmo computador, o que equivale a até 20 discos rígidos.
Sistemas de arquivos
O Linux 2.4 inclui todos os novos sistemas de arquivos apresentados no Linux 2.2,
como por exemplo o FAT/VFAT (para sistemas DOS e Windows 9x), NTFS (do
Windows NT/2000), HFS (do Mac) e muitos (muitos mesmo!) outros. Todos eles
foram reescritos ao menos parcialmente, devido ao novo sistema de cache descrito
anteriormente. Isso fará com que todos eles sejam mais eficientes do que seus
equivalentes na versão 2.2.
Usuários de OS/2 vão finalmente poder gravar em suas partições HPFS no Linux.
Usuários de NT já podem ler o NTFS, e se quiserem se arriscar, podem ativar o
suporte experimental para escrita nestas partições.
Usuários de NFS ficarão felizes ao saber que agora o Linux suporta a conexão a
servidores NFS versão 3, o que tem sido um pedido freqüente dos usuários
corporativos.
Framebuffers
O Kernel 2.4 inclui vários novos drivers para placas de vídeo e melhoramentos em
drivers previamente existentes. Mas lembre-se: este é um recurso apenas para quem
tem necessidades específicas, e a princípio você não precisa se preocupar com ele.
A grande novidade é que o Linux 2.4 irá suportar teclado e mouse conectados a
uma interface USB, como se fossem mouses seriais normais.
Pela primeira vez vai ser possível direcionar o console (normalmente direcionado
para a tela do monitor) para a porta paralela, o que vai permitir a impressão on-line
das mensagens do Kernel, serviço útil para algumas aplicações específicas.
O suporte a portas seriais não mudou muito e a maior parte das limitações do
Kernel 2.2 permanecem. Mas vai ser possível compartilhar IRQs de placas seriais
PCI – previamente isto era possível apenas com seriais ISA e on-board.
Já o suporte a portas paralelas passou por boas reformas. Foi criado um driver
genérico para portas paralelas, o que permite a abstração na comunicação com
dispositivos "desconhecidos". Isto pode vir a ser usado, por exemplo, pelos drivers
que precisam identificar a presença de um scanner plug and play conectado à porta
de impressão do seu micro. Além disso, o Kernel 2.4 incorpora suporte às caracte-
rísticas mais modernas das portas paralelas, incluindo o uso de DMA – o que pode
tornar mais rápidos os nossos serviços de impressão (não que eles fossem lentos!).
Linux já os suporte há algum tempo, finalmente este suporte foi trazido para dentro
do Kernel. Quando os gerenciadores de dispositivos passarem a fazer uso desta
característica, os periféricos PnP passarão a funcionar "automaticamente", sem a
necessidade da utilização das ferramentas quase místicas que hoje são necessárias
para configurar um simples modem plug and play.
O Universal Serial Bus (USB) também passa a ser suportado no Kernel. Esse
barramento, que é típico do iMac, tende a se tornar cada vez mais comum no
futuro, e tem muitas características técnicas interessantes. O I2O (Intelligent
Input/Output), que é uma extensão do PCI, também passa a ser suportado.
Multimídia
O Linux está adotando o papel de sistema operacional desktop e como tal deverá
apresentar suporte aos dispositivos mais comuns nos ambientes dos usuários:
placas de som, TV e rádio e seus assemelhados. O Kernel 2.4 traz algumas
mudanças nessa área, incluindo o suporte a full duplex em placas de som que
tenham esta característica.
Suporte a processadores
Rede e protocolos
O Linux 2.4 inclui muitas novidades nessa área, como novos drivers, correção de
falhas e novas funcionalidades para os drivers já existentes.
De resto, o Kernel 2.4 torna as distribuições Linux que o utilizam mais bem
adaptadas ao uso pessoal e mais eficiente aos que atuam como servidores de rede.
!INDEX.HTML. gregh@sunsite.unc.edu. SUNSITE.UNC.EDU (SUE).
ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users-guide/. 1996.
Página FTP. Internet Explorer.
-----.-----. Linux HOWTO Index (part 1/1). GREG HANKINS.
http://www.faqs.org/faqs/linux/howto/index/, 1997. Página HTML. Internet
Explorer.
-----.-----. Linux INFO-SHEET (part 1/1). MICHAEL K. JOHNSON.
http://www.faqs.org/faqs/linux/info-sheet/, 1997. Página HTML. Internet
Explorer.
-----.-----. Livros Guias e Manuais. Conectiva S.A.
http://www.conectiva.com.br/doc/livros/, 2001. Página HTML. Internet Explorer.
BASHREF.HTML. Red Hat Linux 6.2. Red Hat. /usr/doc/bash2-doc-2.03/, 2000.
Arquivo HTML. Internet Explorer.
gs.html. Matt Welsh. Specialized Systems Consultants, Inc (SSC).
http://www.ibiblio.org/mdw/LDP/gs/, 1998. Página HTML. Internet Explorer.
HOME.PT.HTML. GNU. Free Software Fundation (FSF). http://www.gnu.org/,
2001. Arquivo HTML. Internet Explorer.
INFO. Red Hat Linux 6.2. Red Hat. /usr/bin/, 2000. Arquivo script. bash.
MAN. Red Hat Linux 6.2. Red Hat. /usr/bin/, 2000. Arquivo script. bash.
271
/, 42 Administração de janelas, 212
/boot, 18 Ajuda do KDE, 213
/dev, 18 Aliases, 67
/dev/hda, 18 Alterando data e hora no Linux, 58
/dev/hdb, 18 Alt erando dono, 56
/dev/ttyS0, 14 Alterando grupo, 56
/etc, 18, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, Alterando permissões, 54
40, 41, 47, 49, 74, 89, 132, 137, 138, 142, Alternando entre programas, 217
143, 151, 153, 158, 179, 180, 182 Ambientes de Trabalho, 199, 204
/etc/ftpaccess, 36 anonymous, 36, 40
/etc/group, 34 aplicações gráficas, 2
/etc/passwd, 33 arch, 72, 73
/home, 18, 26, 33, 34, 43, 44, 45, 46, 47, 48, Área de Transferência, 200, 205, 206
49, 52, 83, 84, 89, 177, 178, 182, 189 Arquivos, 38, 52, 115, 119, 120, 121, 126,
/tmp/install.log, 19 132, 134, 137, 142, 151, 158, 166, 169, 171,
/usr, 18 181, 183, 187, 202, 203, 223, 226
/var, 18 Arquivos Pessoais, 202, 203
ash, 73
A assíncronos, 66
Atalhos para programas, 204
À Maneira do DOS, 179 Automatic Partitioning, 17
À Maneira UNIX, 179
Acessando disquetes Linux, 205
acesso remoto, 35
B
Adicionando atalhos, 232 backup, 6, 84, 135, 138, 143, 153, 170, 181
Administração de discos, 221 Barra de Tarefas, 199, 200, 217, 232
273
274 Linux: Sistema Operacional II
G
doexec, 101
domainname, 102, 130, 131, 132
DOS, 4, 6, 14, 65, 109, 118, 164, 165, 166, Gnome, 5, 14
168, 169, 170, 171, 172, 174, 176, 177, 179,
GNU, 5, 59, 60, 61, 62, 63, 64, 65, 86, 88, 93,
180, 181, 182, 183, 185, 187, 189, 191 109, 111, 117, 153
GNU C, 63
E GNU General Public License, 5
GNU/Linux, 62, 63
echo, 102, 174, 182, 184, 185, 188 grandes colaboradores, 61
ed, 102, 103, 104, 105, 106, 107, 152, 153 gzip, 126, 127, 128, 129, 130, 154, 182, 186,
Edição da linha de comando, 67 187, 191
egrep, 108, 111
H
Encerrando uma sessão KDE, 196
Endereçando Linhas, 104
Enviando arquivos para a lixeira, 224 hacker, 1
EOF, 58 Hardware Added, 21
Estrutura das permissões, 52 HD detectados, 18
estrutura de decisões, 71 hierarquia das pastas, 42
Eu preciso do Linux?, 164
Histórico dos comandos, 67
ex / view, 112 hostname, 15, 88, 101, 102, 130, 131, 136, 159
Excluir arquivos, 224 Hyperlink, 215
Excluir pastas , 223
excluir um usuário, 163
exit, 26, 116, 174, 175, 190 I
Expressão regular, 105
expressões regulares, 6, 109, 110, 111, 174, 190 IBM, V, 59
Expressões Regulares, 105, 109 Ícone, 10, 208, 226
Extensões Comuns, 191 Ícones, 197, 198, 230
Ícones comuns, 198
F
IEEE, 60
if...fi, 75
imagem de disco, 4
false, 33, 34, 116, 119, 123 inetd.conf, 31
fdformat, 168, 179, 180 informática corporativa, V
Fechando uma sessão login, 26
Iniciando programas, 216
ferramentas do KFM, 227 initlog.conf, 31
Finalizando programas, 220 instalação, VI, 3, 4, 5, 6, 7, 12, 14, 16, 17, 19,
find, 66, 69, 70, 85, 90, 91, 117, 118, 120, 168, 20, 21, 26, 29, 39, 41, 42, 54, 64, 195, 198
177, 178, 189, 190 instalar, 6, 11, 12, 14, 17, 62, 187, 188
finger, 123, 124, 125
Instalar o Linux, 3
Fixando aplicativos, 220 Install Server System, 15
formatado, 4, 179, 181 Installation to begin, 19
Formatos do ponteiro, 194 interativa, 66
FrankPCstain, 11, 12 interface, 1, 2, 5, 6, 9, 12, 14, 15, 37, 38, 64,
free, 63, 125
65, 146, 181, 197, 207
free BSD, 63 Interface, 9, 60
Fujitsu, V interface gráfica, 3, 5
full path, 44 interface orientada a caractere, 9
Funções, 38, 67 Internet, 5, 6, 7, 10, 16, 62, 201, 213, 215
276 Linux: Sistema Operacional II
Internet Intranet e Redes Corporativas, 15 ls, 30, 45, 46, 47, 49, 50, 51, 55, 56, 57, 66,
IP válidos, 16 79, 80, 83, 89, 121, 134, 138, 168, 169, 170,
171, 177, 178, 180, 182, 184, 190
J
job, 175, 176
M
make dir, 45
K Mandrake, 7, 63, 64
Memória virtual, 11
Kde, 5, 11 Menus, 208, 217, 233
KDE, 3, 6, 7, 14, 15, 165, 166, 181, 193, 194, Menus de atalho, 209
195, 196, 197, 198, 199, 200, 201, 203, 204, micro kernel, 4, 5
205, 206, 207, 208, 210, 213, 215, 216, 217, mídias de instalação, 21
220, 224, 229 mkdir, 45, 49, 50, 139, 168, 169, 178, 180
kernel, 4, 10, 11, 18, 21, 32, 60, 62, 64, 98, 99, montador, 62
101, 125, 142, 188 more, 140, 141, 172, 173, 178, 188
Keyboard Selection, 13 mount, 17, 42, 118, 141, 142, 168, 179, 180,
kill, 66, 132, 133, 175, 176 181
mount point, 42
L
Mount point, 18
Mouse Selection, 14
Movendo conteúdos, 206
last, 124, 133
Mover janelas, 212
lilo, 20, 31, 32, 47, 50
Mover/copiar pastas, 222
LILO boot, 21
mtools.conf, 32
Limpando a lixeira, 225
Multitarefa, 11, 174
linguagem de programação embutida, 66
Multitarefa real, 11
linguagens de programação, 5
mv, 143, 168, 172, 173, 174, 178
linguagens script, 5
MySQL, 11
Links Simbólicos, 170
Linux, V, VI, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12,
14, 15, 16, 17, 19, 20, 21, 26, 29, 30, 31, 32, N
33, 35, 36, 38, 39, 40, 41, 42, 43, 54, 57, 58,
59, 60, 61, 62, 63, 64, 65, 72, 76, 91, 93, 99, named.conf, 32
100, 138, 141, 144, 155, 158, 160, 164, 165, não interativa, 66
166, 167, 168, 169, 170, 171, 172, 173, 174, navegação pelas pastas, 42
175, 176, 177, 179, 181, 183, 185, 186, 187, Netscape, 11
189, 191, 192, 193, 195, 196, 197, 202, 207, netstat, 143, 144
224 Nome do arquivo, 58
Linux Loader, 20 nome do dono do arquivo, 55
list structure, 30 Nome do grupo deste arquivo, 56
Lista de Janelas, 200, 201, 218 Nomes de arquivos e extensões, 223
Lixeira, 224 nscd.conf, 32
ln, 134, 135, 170 nsswitch.conf, 32
Localizando arquivos, 228
login, 10, 21, 26, 30, 34, 36, 38, 39, 40, 43, 47,
54, 74, 99, 123, 124, 136, 137, 138, 141,
O
153, 159, 160, 165, 182, 195 O botão "K", 200
logrotate.conf, 32 o que é Linux, 60
Índice Remissivo 277
U
Saindo do Linux, 166
Samba, 11
SAVE & EXIT SETUP, 13 umount, 158, 168, 180
scripts, 3, 6, 69, 76, 94, 111, 112, 184 UNICODE, 11
sed, 151, 152, 153, 174 Unidade de disco, 222
segurança, VI, 48, 49, 166, 181, 197 Unisys, V
Selecionando arquivos, 229 Unix, V, VI, 5, 6, 8, 9, 10, 11, 14, 17, 29, 30,
Senhas, 161 35, 52, 55, 59, 60, 61, 62, 65, 66, 73, 86,
serial, 14 100, 112, 118, 119, 127, 142, 167, 171, 184
servidores de banco de dados, 2 Usando Diretórios, 177
shared libraries, 11 useradd, 160
Shell, 2, 9, 15, 26, 29, 34, 39, 43, 44, 45, 47, usuário ocasional, VI
48, 49, 50, 54, 57, 62, 65, 66, 67, 68, 69, 72, usuários corporativos, 1
73, 74, 78, 85, 89, 102, 104, 141, 183 Utilitários, 200, 201
shutdown, 27, 28, 29, 33, 36, 41, 196 utilizando a pasta, 46
Shutdown, 197
V
síncronos, 66
sistema computacional, 3
sistema livre completo, 62 validar login, 10
Sistemas Operacionais, V Variáveis, 66
smb.conf, 32 Ver informações das unidades de discos, 225
Sniffer, 11 Verificando conteúdo da pasta, 50
StarOffice, 11 vi, 5, 7, 37, 112, 113, 114, 141, 155, 168, 184
su, 153, 162, 163, 175 vim, 112, 113, 114, 115
superusuário, 16, 29, 30, 39, 43, 47, 153, 160, visualização do KFM, 226
161, 162, 163, 172
W
swap, 11, 19, 87, 89, 101, 114, 115, 125
sysctl.conf, 32
syslog.conf, 32 Web Server Apache, 11
Welcome to Red Hat Linux, 14
T who, 159
Windows, 4, 11, 15, 20, 36, 59, 61, 109, 164,
165, 169, 170, 176, 181, 191, 193, 199, 200,
tar, 36, 85, 86, 88, 153, 154, 155, 168, 169, 206, 207
181, 182, 186, 187, 191 wizards, 8
time zone, 16 Wordstar, 5
Time Zone Selection, 16
Total de links, 55
Trabalhando com "janelas", 207 Y
Travar Tela , 200, 203 yp.conf, 32
treinamento específico, 1 ypserv.conf, 32
1. Observações Gerais .................................................................................. 1
Utilização do Linux e deste livro.................................................................... 1
Visão geral sobre instalação do Linux............................................................. 3
O que acontece na instalação....................................................................... 4
O que este livro aborda .................................................................................. 6
Então para quem serve este livro?................................................................... 6
Instruções para a utilização deste livro............................................................ 7
Por que o Console Linux? .............................................................................. 7
Por que um Linux em português? ................................................................... 8
O CD que acompanha este livro ..................................................................... 8
Convenções utilizadas neste livro................................................................... 8
2. Interface .................................................................................................... 9
Vocabulário básico........................................................................................ 9
Área de trabalho...........................................................................................10
Como o Linux trabalha .................................................................................10
Qual micro aceita o Linux? ........................................................................11
Preparando o micro para receber o Linux .......................................................12
Instalando o Console Linux 1.0.....................................................................12
Etapas para instalação com interface gráfica................................................12
Regras gerais para ambientes Unix .............................................................29
X Linux: Sistema Operacional II
6. O Bash..................................................................................................... 65
O que é um Shell..........................................................................................65
Resumindo................................................................................................66
Operação do Shell .....................................................................................67
Parâmetros para scripts ..............................................................................69
Comandos acessíveis pelo Shell .................................................................72