Gerenciamento, suporte e comandos mais utilizados em
ambientes Linux e Solaris
Instrutor.:
Frank S. Fernandes Bastos ([email protected])
Foco.:
Adiquirir conhecimento preparatório para Concurso
referente itens do conteúdo Linux e Solaris
Público.:
Estudantes de concurso específico
Local.:
Sala de aula
Número Slides.: 166 (incluindo este)
OBJETIVOS
Transpor as barreiras no aprendizado para adquirir
conhecimento suficiente para preparação e prova de
concurso específico, Módulo Sistemas Operacionais
Linux e Solaris.
Breve Histórico
Entre os vários sistemas operacionais existentes, o Unix é um exemplo
vivo de maturidade e eficiência. Um de seus maiores pontos fortes é a
confiabilidade e por isso, durante mais de trinta anos tem sido utilizado
universalmente nas mais diversas aplicações e plataformas de
hardware.
Ao longo dos anos, várias versões do unix surgiram, tanto comerciais
como Solaris, IRIX, HP-UX, AIX, e livres, como FreeBSD e Linux.
Sendo o último objeto alvo deste treinamento.
Cronologia
Década de 1960 e início de 1970. Marcado pela era dos grandes
computadores, caros e de difícil acesso à pessoas comuns. Com a
crescente demanda por pesquisa era imprescindivel desenvolver um
sistema operacional multi-usuário e multi-tarefa, que pudesse ser
convertido para diferentes plataformas de hardware. Neste momento
fora criado a primeira distribuição UNIX.
Principais características agregadas.: Facilidade e praticidade na
manipulação de objetos avançados de rede, facil administração de
cotas de disco, FTP, e-mail, WWW, DNS, e o principal, baixo custo de
implantação.
Cronologia
Dentre os principais criadores, destacam-se o grupo da universidade
católica da Califórnia, em Berkeley, que em 1975 licenciou a versão 6
da AT&T que após aprimoramentos relançou-se como UNIX BSD
Em 1980, o surgimento das versões baseadas em workstations onde
as primeiras versões comeciais foram liberadas (SunOS, Solaris) e
outros.
Até meados da década de 80, o unix ainda não possuia uma interface
gráfica própria, neste momento, associados ao instituto MIT
(Massachusets Institute of Technology) fora desenvolvido o padrão X
windows System utilizado como base até os dias de hoje.
Cronologia
Algumas datas importantes.:
1969, Ken Thompson cria o Unix
1971, É lançada a versão 1 do unix escrita em Assembly
1973, primeiro compilador C para Unix (Ritchie e Thompson)
1974, AT&T autoriza a distribuição do código-fonte Unix para
universidades
1975, Lançada a versão 6 do unix
1978, Lançada a versão 7 do unix, agora com cobrança de licença
Cronologia
Algumas datas importantes.:
1979, AT&T lança o Unix System III
1983, AT&T lança o Unix System V e a Universidade da Califórnia lança
o BSD Unix 4.2 (Sun utiliza o kernel como base para o SUNOS)
1984, Servidor X Window começa a ser desenvolvido no MIT
(Massachusets Institute of Technology)
1986, Primeira implementação comercial do XWindows, utilizava VAX
1987, AT&T Lança o Unix System V release 3. É lançado o BSD 4.3.
Neste momento a SUN e a AT&T concordam em fundir o BSD UNIX e
Unix System V
Cronologia
Algumas datas importantes.:
1988, Criação do X Consortium, organização aberta que garante a
evolução do X. Lançado o X11R3.
1990, AT&T lança o Unix System V Release 4, e a fusão com SUN
coloca no mercado o MINIX através da internet.
1992, Lançamento do Solaris e do Linux 0.99pl5.
1992/1993, Lançada a primeira distribuição linux em CD-ROM
(Yggdrasil)
1994, Lançada a versão livre do Xwindow, o XFree86, Microsoft lança o
NT 3.5, dois anos depois, a versão NT 4.0
Cronologia
Clone absoluto do Unix, criado como alternativa barata e funcional para
quem não está disposto a pagar o alto preço de um sistema unix
comercial ou não tem um computador suficientemente rápido.
Em 1983, Richard Stallman fundou a Free Software Foundation, cujo
projeto, GNU, tinha por finalidade criar um clone melhorado e livre do
sistema operacional UNIX.
O Linux
Linus Benedict Torvalds, aluno da
Universidade de Helsinque,
Finlândia, no final de 1980. Percebeu
que o Intel 80386 era o único
microprocessador disponível na
época capaz de executar um clone
do unix. Sua opção por este
processador garantiu a ele,
posteriormente, o grande número de
voluntários que tornou o
desenvolvimento do linux viável até
hoje.
Cronologia do Linux
1969, Criação do Unix na AT&T.
1974, Distribuição do Unix para universidades.
1983, Richard Stallman cria a Free Software Foundation
1984, X window é criado no MIT.
1988, Criação do MINIX
1990, Linus Torvalds assiste à sua primeira aula de linguagem C.
1991, Linus Torvalds inicia o desenvolvimento do Linux.
1992, Versão 0.01 é discutida na internet. Lançada a versão 0.95 do
Linux
Cronologia do Linux
1993, A Yggdragil libera a produção da distribuição Linux
1994, Xfree86 e 0.99pl15 do linux são lançados. RED-HAT, Slackware
e outras distribuições surgem em CD-ROM.
1995, primeira versão modularizada do linux
1996, Caldera lança a versão 1.0 com netscape incluso
1998, Conectiva Lança primeira distribuilção brasileira do linux baseada
no RedHat.
Licenciamento
A licença GPL (GNU Public Licence) garante que o linux não seja um
software de domínio público, mas licenciado á ele.
Como vários grupos pelo mundo tem trabalhado conjuntamente para o
desenvolvimento contínuo do LINUX, fez-se necessário a normatização
e implantação do controle padrão de licenças.
O linux segue o modelo de desenvolvimento aberto e, por isso mesmo,
a cada nova versão liberada ao público, é considerado um “produto de
qualidade”.
CopyRight e Numeração de versões
Versões r.x.y, onde x é um número par
São versões estáveis e, enquanto o y é incrementado, apenas as
correções de bugs são efetuadas. Assim, da versão 2.0.2 para o 2.0.3
houveram apenas correções de bugs e nenhuma característica nova.
Versões r.x.y, onde x é um número impar
São versões beta, destinadas apenas a desenvolvedores, podem ser
instáveis e falhar, estão sujeitas a alterações por tempo indeterminado.
Distribuições
Diversas empresas e organizações de voluntários decidiram juntar os
programas do Linux em “pacotes” próprios aos quais elas fornecem
suporte. Esses “pacotes” são chamados de distribuições e, entre as
mais famosas e utilizadas, destacam-se.: Red Hat, Mandrake,
Conectiva (brasileira), Debian, SlackWare, SuSE e Caldera.
LSB (Linux Standard Base), é um conjunto de padrões cujo objetivo é
compatibilizar e padronizar as diversas distribuições Linux, permitindo
assim que qualquer software escrito para linux seja executado em
qualquer distribuição desenvolvida de acordo com o LSB.
www.linuxbase.org;
O que o Linux e o Solaris oferecem?
O Linux oferece diversas vantagens para quem o utiliza. Entre elas,
destacam-se:
• Sistema multi-tarefa e multi-usuário de 32 ou 64 Bits
• Sistema Gráfico XWindow
• Suporte a linguagens (java, c, c++, pascal e outros)
• Memória virtual gerenciável.
• Código-fonte do kernel
• Centenas de programas em GPL, incluindo compiladores
• Estabilidade, segurança e Crescimento crescente.
Termos utilizados
Kernel
Núcleo do sistema operacional, a parte mais próxima do nível físico (hardware).
Composto de chamadas ao sistema, de acesso aos dispositivos de entrada e
saída e de gerência de recursos.
Shell
Nome genérico de uma classe de programas que funcionam coo interpretador
de comandos e linguagem de programação script (interpretado) no Unix.
Mais populares.: bash, csh, ksh e zsh
Script
Script nada mais é que um arquivo que contém comandos shell, em uma
situação normal podem ser executados pelo prompt.
Gerenciamento de memória
O linux é um sistema operacional com memória virtual paginada, isto
quer dizer que podemos ter programas em execução cujo tamanho seja
maior que a memória física disponível para executá-los.
Com isso, o sistema passa a preocupar-se em manter em memória
RAM apenas os programas que estão realmente em uso ou que
possuem prioridade.
Gerenciamento Gráfico
Assim como vários outros sistemas operacionais, o linux também
possui um bom ambiente gráfico.
O ambiente gráfico do linux basea-se em um conceito chamado
gerenciador de janelas, este, por sua vez, consiste em um software,
rodando sob o X Windows System, que é responsável pelas funções de
ajuste de tamanho de uma janela, minimização, maximização, etc.
Dentre os gerenciadores de janelas mais utilizados, estão.: KDE,
GNOME, XFCE, Enlightenment, Window Maker, AfterStep, Fvwm, e
outros...
Cabe lembrar que o uso de mouse é indispensável em ambientes
gráficos no linux.
Gerenciamento de arquivos
Todas as informações utilizadas pelo linux e unix são baseadas em
filesystem e arquivos. Estes podem conter textos, informações de
programação, scripts, e qualquer outro tipo de informação.:
Algumas informações.:
No MS-DOS, os dispositivos de armazenamento são representados por
unidades A:, B:, C: por exemplo. No linux, eles são representados por
diretórios e filesystens cuja hierarquia é definida no momento de
montagem.
Existe diferenciação obrigatória entre letras maiúsculas e minúsculas
(case sensitive) e não há bloqueio para inserção de espaços em nomes
de arquivos e diretórios.
Sistema de arquivos
Os caracteres ( ! @ # $ % ^ & * ( ) { } [ ] ‘ “ ? | ; < > ` + - = \ / .. ) não
podem ser utilizados em nomes de arquivos
Não há extensões compulsórias como .COM e .EXE para programas e
outras extensões conhecidas nos sistemas operacionais microsoft.
Sistema de arquivos
Tipos de arquivos do linux e solaris
• Arquivos comuns, Texto, Dados, Scripts, binários e outros...
• Diretórios, são arquivos de índice que contém os nomes de arquivos
que serão armazenados ou organizados como um grupo
• Links, Um arquivo que faz referência a outro arquivo ou diretório.
• Device Files, arquivos utilizados para representar dispositivos de
hardware. Ex.: /dev/hdc, /dev/lp1
• Sockets, São arquivos utilizados para comunicação entre processos.
• Pipes, Arquivos também utilizados para comunicação entre processos
e residem também no diretório /dev
Mapeamento de arquivos para disco
Existem vários sistemas de arquivos UNIX (Minix, ext, ext2, ext3, JFS,
XFS, ReiserFS, UFS, FFS, entre outros). O Ext2 (sistema de arquivos
estendido 2) é o sistema de arquivos padrão utilizado pelo Linux. No
entanto, o Linux é capaz de utilizar vários sistemas de arquivos além do
ext2, Minix (primeiras versões do linux), ext (estendido original), ext3
(ext2 melhorado com recuperação rápida de dados em caso de
desligamento anormal), MS-DOS, VFAT, NTFS eo ISO9660 (para CDROM)
Mapeamento de arquivos
Quando o Disco Rígido é formatado com um sistema de arquivos
padrão UNIX/LiNUX é criado nele uma estrutura de dados chamado
iNODE. O bloco 0 é o bloco que contém o sistema operacional.
O bloco 1, é o superbloco que contém informações sobre o sistema de
arquivos, como o número de iNODES, número de iNODES livres,
Número de blocos do disco, etc.. A eventual destruição do superbloco
provoca a falha de leitura dos arquivos do sistema.
Depois dos superblocos estão os iNODES, elementos essenciais ao
sistema de arquivos do linux.
Mapeamento de arquivos para disco
Quando o usuário cria um arquivo, um iNODE é alocado para ele.
Estes são numerados de 1 até algum número máximo definido na
formatação de acordo com o tamanho do disco.
Cada iNODE tem 64 Bytes e contém informações sobre um arquivo.:
UID (Identif. De usuário dono do arquivo) e GID (identif. De grupo)
Tipo do arquivo (comum, diretório, etc, ou 0 se o iNODE não estiver
sendo utilizado
Permissões, Data e Hora de criação, acesso e última utilização,
número de links, tamanho e localização dos blocos
iNODE não contém o nome do arquivo, essa informação está
armazenada em um arquivo de diretório.
iNODES e Mapeamento do disco
Um arquivo de diretório contém várias entradas. Cada entrada contém
o nome de um arquivo e o seu iNODE. Para abrir um arquivo em um
diretório, o sistema operacional simplesmente lê o diretório,
comparando o nome do arquivo a ser encontrado com cada uma das
entradas, até que o nome seja encontrado.
Se o arquivo estiver no diretório, o S.O. obterá seu iNODE e esta
identificação será colocada em uma área que se chama tabela de
iNODES, estrutura esta pertencente ao Kernel. Quando esse iNODE é
lido, é obtida a localização dos blocos onde está armazenado o arquivo
desejado e logo após este é lido.
Divisão de blocos
Bloco de
boot
Superbloco
Tabela de iNODES
Blocos de dados
Estrutura básica do sistema de arquivos
/
- Diretório Raiz
/boot
- Kernel do sistema
/proc
- Sistemas de arquivos virtual de informações do kernel e proc.
/dev
- Arquivos de dispositivos de hardware
/tmp
- Arquivos temporários
/etc
- Arquivos de configuração do sistema
/lib
- Bibliotecas compartilhadas essenciais e módulos do kernel
/mnt
- Ponto de montagem temporária de sistemas de arquivos
/opt
- Pacotes de software opcionais
Estrutura básica do sistema de arquivos
/root
- Diretório do superusuário root
/home - Diretórios dos usuários
/bin
- Comandos essenciais do sistema.
/sbin
- Comandos essenciais de administração do sistema.
/usr
- Hierarquia secundária.
/var
- Dados variáveis
Complemento de aula
Navegação entre diretórios
1. Uso da estrutura / para referenciar a hierarquia de diretórios
2. Uso do . (ponto) e .. (dois pontos) para representação de posição
Complemento de aula
Permissões e Segurança de Arquivos
1. Totalmente baseado em Leitura, escrita e execução
2. Orientado ao Dono, Grupos e Outros
3. Pode-se atribuir pelos métodos numérico e literal
Complemento de aula
Entrada e Saída Padrão
Todo shell em um sistema operacional precisa comunicar-se com o
usuário por meio de dispositivos de entrada e saída. Da mesma forma,
os programas normalmente se utilizam de serviços do sistema
operacional para a comunicação com o usuário.
No Linux, todo programa (incluindo o shell) possuir pelo menos três
dispositivos associados:
• Entrada-padrão de dados (stdin)
• Dispositivo pelo qual os programas obtêm dados de entrada para
executar suas tarefas. Na maior parte teclado do terminal.
Entretanto atrávés do shell podemos associar parametros ou
arquivos por direcionamento.
Entrada e Saída Padrão
• Saída-padrão de dados (stdout)
• Dispositivo pelo qual os programas normalmente enviam seus
resultados. Em geral, monitor de vídeo do terminal é o padrão.
Comandos de redirecionamento do shell podem associar arquivos
como saída.
• Saída-padrão de erros (stderr)
• Dispositivo para o qual mensagens e dados decorrentes de erros
são enviados. Idem ao anterior podem ser desviados para arquivos
ou vistos no monitor do terminal.
Entrada e Saída Padrão
Descritor
Nome
Abreviação
Dispositivo
0
Entrada-Padrão
Stdin
Teclado
1
Saída-Padrão
Stdout
Vídeo
2
Saída-Padrão de erros
Stderr
Vídeo
Complemento de aula
Redirecionamentos
O redirecionamento é um recurso bastante interessante e útil que
permite aos dados de saída serem armazenados em arquivos ou
impressos, bem como dados de entrada que sejam obtidos de um
arquivo em vez do teclado.
Pipping é um recurso que permite conectar a saída de um comando na
entrada de outro, sem limitação do número de conexões entre
comandos, mas desde que cada um deles leia e escreva na saídapadrão.
Redirecionamentos
Redirecionador ou pipe
Função
Comando > arquivo
Redireciona a saída padrão
Comando < arquivo
Redireciona a entrada padrão
Comando >> arquivo
Concatena a saída padrão
Comando << arquivo
Concatena a entrada padrão
Comando 2> arquivo
Redireciona a saída de erro padrão
Comando 2>> arquivo
Concatena a saída de erro padrão
Comando1 | comando2
Pipe de comandos
Redirecionamentos
Exemplos.:
$ cat > arquivo1.txt
Teste de inclusao de dados
<ENTER>
<CTRL> + < D >
$ more arquivo1.txt
Shell
Introdução
Shell é o nome genérico de uma classe de programas que funcionam
como interpretador de comandos e linguagem de programação script
(interpretada) no Unix ou Linux. Os shells mais populares são bash,
csh, tcsh, ksh e zsh.
O shell padrão do linux é o bash objeto alvo deste treinamento.
Este shell é executado em um ambiente (environment) controlado por
variáveis de ambiente, que são definições e valores que o shell e
outros programas utilizam para configuração no momento em que é
realizado o login.
Arquivos de configuração
Arquivo /etc/passwd e /etc/shadow
Ambos os arquivos estão diretamente ligados às políticas de segurança
dos ambientes unix e linux.
passwd – Arquivo conteúdo de dados relacionados com usuários e
associação a seus grupos.
shadow - Armazenamento de senhas criptografadas.
Arquivos de configuração
Arquivo /etc/shells
Contém os shells e programas que podem ser escolhidos pelo
comando chsh.
# cat /etc/shells
/bin/bash
/bin/bash2
/bin/sh
/bin/ash
....
Arquivos de configuração
Arquivo /etc/profile
Define as variáveis de ambiente para todos os usuários. É executado
automaticamente no login.
Complemento de aula
Shell script
Quoting
A função do quoting é evitar a substituição de variáveis ou remover o
significado dos caracteres especiais e palavras reservadas do shell,
permitindo que estes sejam utilizados literalmente. Os caracteres ‘
(aspas simples), “ (aspas duplas) e \ (barra invertida) são usados para
quoting.
Shell script
Quoting
CONTINUAÇÃO
É importante saber.:
Qualquer string entre aspas simples é considerada literalmente, mas a
substituição de parametros não é permitida.
Qualquer string entre aspas duplas é considerada literalmente, mas a
substituição de parametros é permitida.
Qualquer caractere seguinte a \ é considerado literalmente.
Shell script
Quoting
CONTINUAÇÃO
Exemplos.:
$ echo “você tem ‘ls | wc –l’ arquivos em ‘pwd’ “
$ echo ‘isto e um teste \”simples\”? ‘
$ export x=100
$ echo “o valor de \$x é $x”
Shell script
Formas de comandos (Execução)
Forma
Definição/Exemplos
;\
Executa comandos múltiplos em linhas separadas
# comando1 ;\
Comando2
Comando &
Executa em segundo plano
Comando1;comando2
Executa múltiplos comandos em sequencia
$cd;ls
(comando1;comando2)
Subshell; trata os comandos como um grupo
$(date;who) > arquivo1.txt
Comando1 | comando2
Pipe; utiliza a saída do comando 1 como entrada para o
comando 2
Shell script
Formas de comandos (Execução)
Forma
Definição/Exemplos
Comando1 ‘comando2’
Substituição de comandos; utiliza a saída do comando2 como
argumento para o comando1
$ vi ‘grep –l ifdef *.c’
Comando1 $(comando2)
Substituição de comandos
Comando1 && comando2
Executa o comando2 se o comando1 for bem sucedido.
Comando1 || comando2
Executa o comando2 se o comando1 falhar
{comando1;comando2}
Executa os comandos no shell corrente.
Complemento de aula
Shell script
Operadores
Os operadores lógicos e aritméticos utilizados pelo shell bash são
informados a seguir, em ordem decrescente de precedência.:
Shell script
Operadores
Operador
Descrição
!,~
Negação lógica, complemento de 1 (utilizado em operações com bits)
* /,%
Multiplicação, divisão, módulo
+,-
Adição, subtração
<< , >>
Deslocamento de bit à esquerda, deslocamento de bit à direita
<= , >=
Menor que ou igual, maior que ou igual
<,>
Menor que, maior que
== , !=
Igualdade, desigualdade
&
AND
^
Exclusive OR
|
OR
&&
AND lógico
||
OR lógico
Shell script
Variáveis Especiais
Operador
Descrição
$#
Número de parâmetros passados
$-
Opções fornecidas ao shell
$?
Valor de retorno do último comando do script
$$
Número do processo do shell script em execução
$!
Número do último processo executado em background
$n
Argumento na linha de comando, onde n varia de 1 até 9, da esquerda para a
direita
$0
O nome do programa ou shell em execução
$*
Todos os parâmetros separados por espaços em branco.
$@
O mesmo que o anterior
Complemento de aula
Shell script
Substituição de parâmetros
Operador
Descrição
$parâmetro
Substitui parâmetro pelo conteúdo da variável.
${parâmetro}
O mesmo que o anterior
${#parâmetro}
Mostra o número de caracteres do parâmetro
${parâmetro=}
O parâmetro torna-se nulo
${parâmetro-padrão}
Se nenhum valor foi atribuído ao parâmetro, então utilizará padrão
${parâmetro=padrão}
Se nenhum valor foi atribuído ao parâmetro, então utilizará padrão e
novo valor.
${parâmetro+valor_novo}
Se algum valor foi atribuído ao parâmetro, então utilizará valor_novo.
${parâmetro?mensagem}
Se nenhum valor foi atribuído ao parâmetro, então exibe mensagem.
Shell script
Substituição de comandos
O resultado da execução do comando é colocado no lugar do
parâmetro. Pode ser demonstrada de duas formas.: $ (comando) ou
´comando´ .
Exemplos.:
$ echo o caminho para more é which more
$ echo o caminho para more é `which more`
$ echo o caminho para find é $(which find)
Shell script
Expansão de chaves
É a combinação de todos os elementos entre as chaves, separados por
vírgulas. Veja que em {,s}, o primeiro parâmetro é nulo, mas a vírgula é
necessária.
Exemplos.:
$ echo {a,o}{,s}
Shell script
Expansão aritmética
O bash permite a realização de aritmética com números inteiros
Exemplos.:
$ echo $((4*7))
Complemento de aula
Shell script
Entrada interativa
Read <linha>
Lê uma linha da entrada-padrão
Exemplos.:
$ echo –n “Digite seu nome.:”
Read NOME SOBRENOME
Echo “Prazer $NOME !”
Processo INIT
O que é?
O processo init é o primeiro programa executado pelo kernel de
qualquer sistema operacional Linux/Unix na sua inicialização.
Durante o boot, após ler o MBR do disco e saber como deverá ser o
processo de inicialização do sistema, o próximo passo do linux é
montar o / (barra ou raiz) e inicializar seu primeiro processo, o INIT,
este por sua vez é o único processo do linux que não pode ser
abortado pelo usuário. Este é o processo pai de seu sistema
operacional.
Níveis de inicialização
SysV init
Os níveis de execução definem como o sistema operacional
inicializará.
Nível
Funcionalid. acordo com Red Hat, Solaris, Suse
0
halt
1
Monousuário
2
Multiusuário, sem NFS
3
Multiusuário, com NFS
4
Reservado
5
X11
6
Reboot
Processo de INIT
Localização
Os scripts de inicialização do linux estão localizados no diretório
/etc/rc.d (ou, dependendo da distribuição, em etc como o Debian por
exemplo).
Neste diretório são encontrados os scripts de inicialização.:
Rc.sysinit,
Rc
Rc.serial
Rc.local
E diretórios.: init.d, rc0.d, rc1.d, rc2.d .... Rc6.d
Níveis de inicialização
Localização
O init.d contém vários scripts de inicialização. Já os diretórios rc0.d e os
demais possuem links simbólicos para os scripts contidos em init.d.
Cada script do diretório /etc/rc.d/init.d é concebido de forma a receber
como argumento parametros de start, stop, restart e status.
Sequência de inicialização
Sequência de inicialização SysV init
1. O arquivo /etc/inittab é lido e assim, definido o nível em que o
sistema iniciará
2. Init executa o script /etc/rc.d/rc.sysinit
3. O processo init executa o script /etc/rc.d/rc que recebe o nível de
execução como parâmetro.
4. O script /etc/rc.d/rc executa os scripts de um dos diretórios
/etc/rc.d/rc?.d de acordo com o nível escolhido.
5. Init executa o script /etc/rc.d/rc.local
6. Init executa o processo mingetty para configurar os terminais.
Editando scripts de inicialização
Entendendo os links contidos em /etc/rc.d/rc?.d
O padrão descrito abaixo é padrão na maioria das distribuições linux.
•
Se um link for iniciado com uma letra K (kill), quer dizer que o
serviço será interrompido naquele nível de execução.
•
Se um link é iniciado com a letra S (start), quer dizer que o serviço
será iniciado naquele nível.
•
São executados primeiro os links com as letras K e depois com S,
a ordem depende dos números posteriores as letras, se iguais, são
executados em ordem alfabética.
Complemento de aula
Comandos básicos
halt / shutdown / poweroff
Desliga o computador
Exemplo.:
$ halt
Comandos básicos
reboot
Reinicializa o computador
Exemplo.:
$ reboot
Comandos básicos
Init [Sinal]
Envia sinais para o terminal, será abordado melhor mais a diante no
treinamento.
Sinal é um valor inteiro; 6 – fecha todos os programas e reinicia em
modo normal.
Exemplo.:
$ init 6
Configurando serviços
chkconfig <opção> <serviço>
Gerencia os scripts de inicialização dos serviços e seus links
simbólicos localizados nos vários diretórios de inicialização.
# chkconfig 2345 60 50 lpd
O script será executado nos níveis 2,3,4 e 5 e com prioridade de start
60 e de stop 50.
--add
Adiciona um serviço
--del
Remove um serviço
--levels <n> <s> <off | on> Especifica os níveis de execução onde (n) é
o nível e (s) o serviço.
Editando scripts de inicialização
Drives e arquivos de dispositivo
Aos drives e partições do linux são dados nomes diferentes aos seus
correspondentes em outros sistemas operacionais.
Estes arquivos de dispositivos são encontrados no diretório /dev e são
utilizados para a comunicação com os dispositivos em seu sistema
(discos, mouse, etc.)
Editando scripts de inicialização
Exemplos de dispositivos de disco
Dispositivo
Descrição
/dev/hda
IDE Primária Master
/dev/hda1
Partição 1 da IDE Primária Master
/dev/hda2
Partição 2 da IDE Primária Master
/dev/hdb
IDE Primária Slave
/dev/hdb1
Partição 1 da IDE Primária Slave
/dev/hdb2
Partição 2 da IDE Primária Slave
/dev/hdc
IDE Secundária Master
/dev/hdc1
Partição 1 da IDE Secundária Master
/dev/hdc2
Partição 2 da IDE Secundária Master
/dev/hdd
IDE Secundária Slave
/dev/hdd1
Partição 1 da IDE Secundária Slave
/dev/hdd2
Partição 2 da IDE Secundária Slave
...
...
Montando volumes automaticamente
Montando automaticamente o sistema de arquivos /etc/fstab
O arquivo /etc/fstab contém as entradas dos dispositivos e/ou partições
que contém sistemas de arquivos existentes no linux. É possível
adicionar mais dispositivos e/ou partições editando cuidadosamente
esse arquivo.
Montando volumes automaticamente
Montando automaticamente o sistema de arquivos /etc/fstab
1ª coluna
Dispositivo
2ª coluna
Ponto de montagem
3ª coluna
Tipo do sistema de arquivos (ext2, ext3, vfat, ...)
4ª coluna
Opções de montagem
Defaults – montagem padrão do dispositivo
exec,noexec – Permite/Não execução de programas
Auto,noauto – Monta/Não automaticamente
user,nouser – Permite/não usuários comuns acessar
rw, ro – Monta para leitura/gravação ou leitura somente
Montando volumes automaticamente
Montando automaticamente o sistema de arquivos /etc/fstab
5ª coluna
Dump do dispositivo
0 Não faz o dump
1 Faz o dump
6ª coluna
Verificação de reparo
0 Não faz
1 Faz verificação e reparo do dispositivo.
Complemento de aula
Arquivos de configuração
Arquivo /etc/HOSTNAME
Armazena o nome do computador.
Exemplo.: cat /etc/HOSTNAME
Linux.site
Arquivos de configuração
Arquivo /etc/hosts
Contém uma lista de endereços IP e nomes de computadores da rede
local.
Exemplo.: cat /etc/hosts
127.0.0.1
localhost.localdomain
localhost
192.168.1.1
testelinux.linux.org.br
servidor
Arquivos de configuração
Arquivo /etc/resolv.conf
Nesse arquivo é configurado o cliente de DNS, que contém o nome do
domínio do servidor DNS e o seu endereço IP.
Exemplo.: cat /etc/resolv.conf
Search linux.org.br
Nameserver 192.168.1.2
Arquivos de configuração
Arquivo /etc/sysconfig/network/*
Neste diretório são encontrados os script´s que possuem informações
sobre as interfaces de rede.
O padrão de nomenclatura dos arquivos são.: ifcfg-<INTERFACE>
Seu conteúdo pode variar mas geralmente são usados os campos.:
DEVICE=eth0
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
Complemento de aula
Tipos de comandos
Comandos internos
São comandos que estão dentro de um shell interpretador de
comandos. Quando o shell é carregado em memória, seus comendos
ficam residentes nela. A principal vantagem destes comandos é a
velocidade, pois, não precisamos acessar o disco para procurar e
executar os mesmos, exemplos.: cd, alias, kill e logout
Tipos de comandos
Comandos externos
São comandos que estão localizados em diretórios específicos no
disco rígido, como /bin e /sbin. O linux precisa consultar o disco rígido
sempre que um desses comandos é solicitado. A maioria dos
comandos deste sistema operacional são externos. Exemplos.: ls, cp,
rm, mv, mkdir e rmdir.
Convenções
• Quando o prompt que preceder o comando for o simbolo $, o
comando poderá ser executado por qualquer usuário;
• #, Somente pelo root
• [TEXTO] sintaxe opcional
• <TEXTO> sintaxe obrigatória
• <nome_tecla>, tecla a ser precionada
• <nome_tecla> + <nome_tecla2>, precionar simultaneamente.
Comandos básicos
Login
Cancela a sessão atual e inicia uma nova sessão de usuário
Exemplo.:
$ login
Comandos básicos
Logout ou <CTRL> + <D>
Termina a sessão do usuário
Exemplo.:
$ logout
Comandos básicos
Exit
Encerra o shell de comandos corrente.
Exemplo.:
$ exit
Comandos básicos – Ajuda online
Man [opções] [seção] <comando>, para sair digite a tecla <Q>
Consulta os manuais on-line do sistema operacional
Opção
Descrição
-a
Exibe todas as páginas do manual
-h
Exibe uma mensagem de ajuda
-w
Exibe a localização de páginas do manual a exibir
Exemplo.:
$ man ls
Comandos básicos – Ajuda online
info
Exibe informações de um comando do sistema
Opção
Descrição
-d <nomedir>
Adiciona um diretório à lista de diretórios a ser
procurada para arquivos.
-f <arqinfo>
Especifica o diretório a ser utilizado pelo comando info
-h
Exibe uma mensagem de ajuda.
Exemplo.:
$ info ls
Comandos básicos – Ajuda online
Whatis <palavra-chave>
Consulta manuais on-line do sistema a apartir de um banco de dados.
O usuário deve atualizar este banco de dados periodicamente com o
comando makewhatis (root), para ajuda, digite makewhatis -?
Exemplo.:
$ whatis find, para sair tecle <Q>
Comandos básicos – Ajuda online
Apropos <palavra-chave>
Exibe informações sobre um assunto específico apartir de um banco de
dados. Esse comando utiliza o mesmo banco de dados do comando
whatis.
Exemplo.:
$ apropos directory, para sair tecle <Q>
Comandos básicos – Navegação
cd [diretório]
Muda, entra, no diretório de trabalho escolhido
Exemplo.:
$ cd /etc
Comandos básicos – Navegação
pwd
Exibe o diretório corrente
Exemplo.:
$ pwd
Comandos básicos – Navegação
Tree [opções][diretório]
Exibe a árvore de diretórios. Por padrão exibe arquivos e diretórios.
Opções
Descrição
-d
Exibe somente diretórios
-l
Segue links simbólicos
Exemplo.:
$ tree /var/lib
Comandos básicos – Navegação
Ls ou dir [opções][diretório] – Atenção.: DIR (exclusivo linux)
Exibe o conteúdo dos diretórios
Opções
Descrição
-a
Exibe arquivos ocultos
-l
Exibe a listagem utilizando o formato longo de nomes
-i
Inclui na exibição o número do iNODE
-t
Ordena por data de alteração
-r
Reverte a ordenação (ordem inversa)
-R
Recursivo
Comandos básicos – Navegação
Find [caminho] [opções] <nome_arquivo>
Procura arquivos no disco rígido.
Opções
Descrição
-name
Localiza arquivos cujos nomes sejam iguais ao especif.
-follow
Processa diretórios incluídos por meio de links
-maxdepth <n> Restringe buscas a n níveis de diretórios.
-ctime <n>
Combina arquivos modificados exatamente n dias atrás
-mtime <n>
Combina arquivos não modificados n dias atrás
-atime <n>
Arquivos não utilizados n dias atrás
Comandos básicos – Navegação
Grep (UNIX), fgrep, egrep (LINUX) [opções] <padrão> <arquivos>
Procura em um ou mais arquivos por linhas que contenham o padrão.
Opções
Descrição
-F
Utiliza expressões sem metacaracteres
-E
Padrão é uma expressão regular
-e <expr>
Procura pela expressão regular expr.
-n
Exibe o número da linha que contém padrão.
-c
Exibe apenas o número de linhas (quantidade)
-f <arquivo>
Lê o padrão a partir do arquivo
Comandos básicos
Strings [opções] <arquivo>
Procura texto em arquivos binários.
Opções
Descrição
-a
Procura strings em todo o arquivo e não somente nos
segmentos de texto e dados dos arquivos.
-f
Imprime o nome do arquivo antes de cada string
Exemplo.:
$strings /usr/games/sdoom | grep DOOM
Comandos básicos
Whereis [opções] <comando>
Localiza o arquivo binário. O código-fonte e a página do manual para
um comando.
Opções
Descrição
-b
Localiza apenas arquivos binários
-s
Apenas código-fonte
-m
Apenas páginas de manual
Exemplo.:
$whereis rpm
Comandos básicos – Navegação
Which <comando>
Procura por um comando em diretórios e na variável de ambiente
PATH.
Exemplo.:
$which clear
Comandos básicos – Navegação
Touch [opções]<arquivo>
Atualiza a última data de acesso ao arquivo. Caso o arquivo não exista,
será criado vazio por padrão.
Opções
Descrição
-c
Não cria o arquivo caso ele não exista.
-m
Atualiza somente a hora da modificação.
-a
Atualiza somente a data de acesso.
Exemplo.:
$touch arquivo1.doc
Comandos de Manipulação de arquivos
Rm [opções]<arquivos>
Remove arquivos.
Opções
Descrição
-f
Não exibe mensagens de confirmação para eliminar
-i
Pede confirmação antes de eliminar.
-r
Apaga recursivamente
-v
Exibe o nome de cada arquivo antes de eliminá-lo.
Exemplo.:
$rm arquivo1.doc
Comandos de Manipulação de diretórios
mkdir [opções]<nome_diretório>
Cria diretórios.
Opções
Descrição
-p
Cria os diretórios pai se ainda não existirem.
-m <modo>
Cria um diretório com o modo de acesso modo. Vide
chmod
--verbose
Mostra o nome de cada diretório criado.
Exemplo.:
$mkdir dir1
Comandos de Manipulação de diretórios
rmdir [opções]<nome_diretório>
Remove diretórios.
Opções
Descrição
-p
Remove os diretórios intermediários se vazios.
--verbose
Mostra o nome de cada diretório removido.
Exemplo.:
$rmdir dir1
Comandos de Manipulação de diretórios
mv [opções] <fonte> <destino>
Move ou renomeia arquivos e diretórios.
Opções
Descrição
-b
Faz backup de arquivos que estão sendo movidos ou
renomeados
-f
Remove arquivos existentes, sem confirmação
-i
Pede confirmação antes de mover um arquivo.
-v
Exibe o nome do arquivo antes de movê-lo.
Exemplo.:
$mv arq1 arq2
Comandos de Manipulação de diretórios
cp [opções] <caminho_origem> <caminho_destino>
Copia um ou mais arquivos.
Opções
Descrição
-a
Preserva todos os atributos de arquivo.
-b
Faz backup antes de copiar
-d
Copia um link, mas não o arquivo apontado por este.
-i
Pede confirmação antes de sobrescrever arquivos.
-l
Cria links diretos em vez de copiar arquivos
-p
preserva propriedade, permis.e
time stamp.
Comandos de Manipulação de arquivos
Ln [opções] <caminho> <nome_link>
Cria links para arquivos e/ou diretórios.
Opções
Descrição
-s
Cria link simbólico
-d
Cria link direto para diretório.
-f
Força a criação do link
-b
Faz backup de cada arquivo de destino existente.
-i
Pede confirmação antes de remover arquivo.
Exemplo.: $ln –s /exercicios/temp link
Comandos de terminal
clear
Limpa a tela do terminal virtual corrente.
Exemplo.:
$ clear
Comandos de terminal
Echo [opções] <mensagem>
Envia mensagem para o terminal.
Opções
Descrição
-n
Não imprime mudança de linha após a mensagem
-e
Habilita a interpretação de caracteres de escape na
mensagem.
Exemplo.:
$ echo ´alo pessoal´
Comandos de terminal
Mesg [opções]
Controla o recebimento de mensagens pelo terminal. Sem argumentos,
mostra o estado atual.
Opções
Descrição
Y
Ativa o recebimento de mensagens
N
Desativa o recebimento de mensagens
Exemplo.:
$ mesg y
Comandos de sistema
Uname [opções]
Exibe informações sobre o sistema operacional e o hardware
Opções
Descrição
-a
Exibe todas as opções
-m
Exibe o nome da plataforma
-n
Exibe o nome da máquina
-s
Exibe o nome do sistema operacional
-v
Exibe a data de lançamento do sistema operacional
-r
Exibe a versão do sistema operacional
Comandos de paginação
Cat [opções] <arquivo>
Utilizado para visualizar o conteúdo dos arquivos.
Opções
Descrição
-A
Exibe todos os caracteres especiais
-b
Numera apenas as linhas não vazias.
-n
Numera todas as linhas na saída
-v
Exibe caracteres não passíveis de impressão (controle)
-e
Exibe final de linha (como $)
-t
Exibe caracteres de tabulação como ^I
Comandos de paginação
More [opções] arquivo
Exibe arquivos de texto.
Opções
Descrição
+n
Exibe o arquivo começando na linha específica
-s
Reduz múltiplas linhas em branco a uma única
Exemplo.:
$ more /etc/mtools.conf
Comandos de filtragem
Head [opções] <arquivo>
Exibe na saída-padrão uma quantidade de linhas de texto a partir do
início do arquivo.
Opções
Descrição
-n
Exibe as n primeiras linhas do arquivo
-b n
Exibe os n primeiros blocos do arquivo
-c n
Exibe os n primeiros caracteres (bytes) do arquivo
Exemplo.:
$head -5 /etc/mtools.conf
Comandos de filtragem
Tail [opções] <arquivo>
Exibe na saída-padrão uma quantidade de linhas de texto a partir do
final do arquivo.
Opções
Descrição
-n
Exibe as n últimas linhas do arquivo
-b <n>
Exibe os n últimos blocos do arquivo
-c <n>
Exibe os n últimos caracteres (bytes) do arquivo
-f
Deixa em espera pelas últimas linhas.
Exemplo.:
$tail –f erros.log
Comandos de filtragem
Wc [opções] <arquivo>
Conta palavras da entrada-padrão ou de um arquivo e apresenta o
resultado na saída-padrão.
Opções
Descrição
-l
Conta as linhas
-w
Conta as palavras
-c
Conta os caracteres
Exemplo.:
$wc –l /etc/mtools.conf
Comandos de filtragem
Tr [opções] [str1 [str2]]
Substitui caracteres da entrada-padrão presentes em str1 por seus
correspondentes em str2.
Opções
Descrição
-c
Efetua a troca de todos s caracteres que não estejam
especificados em str1
-d
Elimina ocorrências de caracteres de str1 na entrada
-s
Elimina repetições de caracteres de str2 na saída
Exemplo.:
$ ls | tr ‘a-z’ ‘A-Z’
Comandos de filtragem
Sort [opções] <arquivo>
Ordena os dados recebidos da entrada-padrão ou de um arquivo,
escrevendo-os na saída-padrão.
Opções
Descrição
-m
Intercala dois arquivos já ordenados, escrevendo a
intercalação na saída padrão
-r
Inverte a ordem da classificação, de ascendente para
descendente.
-t <separador> Utiliza separador como caractere de separação de
campos
Exemplo.: $ sort teste.txt
Comandos de filtragem
Cut [opções] <arquivo>
Seleciona trechos de cada linha de texto recebido da entrada-padrão
ou de um arquivo, apresentando o resultado na saída-padrão.
Opções
Descrição
-b <bytes>
Seleciona bytes
-c <caracteres> Seleciona caracteres
-f <campos>
Seleciona listas de campos, onde estas podem ser
números separados por vírgulas ou faixas de números como n1-n2, ou
ainda combinações de ambos.
-d <c>
Especifica o deliminatador c
Exemplo.: $ cut –f 1,5 –d: /etc/passwd
Comandos de filtragem
Paste [opções] <arquivo>
Exibe lado a lado o conteúdo de arquivos.
Opções
Descrição
-s
Exibe as linhas de um arquivo em série em vez de uma
linha abaixo da outra
-d <c>
Especifica o delimitador de campos como sendo o
caractere c
Exemplo.: $ paste –d, arquivo1.txt arquivo2.txt
Comandos de filtragem
Tee [opções] <arquivo>
Exibe a saída de um programa e a escreve em um arquivo
simultaneamente.
Opções
Descrição
-a
Concatena o arquivo em vez de sobrescreve-lo
-i
Ignora interrupções.
Exemplo.:
$ ftp ftp.suse.com | tee ftp.out
Comandos de filtragem
Diff [opções] <arquivo1> <arquivo2>
Exibe na tela as diferenças entre dois arquivos-texto (ou todos os
arquivos com mesmo nome em dois diretórios).
Opções
Descrição
-a
Considera todos os arquivos do tipo texto
-b
Ignora sequencias de espaços e caracteres de
tabulação
-d
Tenta localizar um conjunto menor de modificações
-f
Gera saída similar à da opção –e, mas de interpretação
mais facil
-i
Não distingue maisculas e minusculas
Comandos de compactação e fracionamento
Tar [opções] <arquivos_ou_diretórios> [arquivo_tar]
Armazena ou extrai vários arquivos e diretórios dentro de um único
arquivo ou dispositivo.
Opções
Descrição
-c
Cria um novo arquivo .tar e adiciona a ele os arquivos
especificados
-x
Retira os arquivos agrupados no arquivo .tar
-f
Indica que o destino é um arquivo em disco e não uma
fita magnética
-t
Lista o conteúdo do arquivo .tar
-v
Exibe o nome de cada arquivo proces.
Comandos de compactação e fracionamento
Split [opções] <arquivo [prefixo]>
Divide um arquivo em partes. Para reunir as partes, utilize o comando
cat.
Opções
Descrição
-b n[k|m]
Especifica o número de bytes de cada parte. Os
modificadores k (kilobytes) e m (megabytes) podem ser
utilizados.
[prefixo]
Especifica o prefixo a ser usado no nome de cada
parte do arquivo original (default=x)
Exemplo.:
$ split –b1400k teste.txt part
Comandos de compactação e fracionamento
Compress [opções] <arquivos>
Compacta um ou mais arquivos utilizando a compactação Lempel-Ziv.
Opções
Descrição
-c
Grava o arquivo compactado na saída-padrão e retém
o arquivo original
-d
Descompacta o arquivo.
-r
Compacta recursivamente arquivos em todos os
subdiretórios
-v
Exibe uma mensagem conforme cada arquivo é
compactado.
-V
Exibe a versão do comando.
Comandos de compactação e fracionamento
UnCompress [opções] <arquivos>
Descompacta um ou mais arquivos compactados com compress.
Opções
Descrição
-c
Grava o resultado na saída-padrão e retém o original
-r
Descompacta recursivamente
-v
Exibe uma mensagem conforme cada arquivo é
descompactado.
-V
Exibe a versão do comando.
Exemplo.: $ uncompress documentos.tar.Z
Comandos de compactação e fracionamento
Gzip [opções] <arquivos>
Compacta um ou mais arquivos.
Opções
Descrição
-c
Grava o arquivo compactado e retém o original
-d
Descompacta arquivo
-f
Sobrescreve existentes
-h
Exibe mensagem de ajuda
-l
Lista o conteúdo de um arquivo compactado.
-t
Testa a intregridade do arquivo compactado.
Comandos de compactação e fracionamento
gunzip [opções] <arquivos>
Descompacta arquivos compactados pelos comandos gzip e compress.
Utiliza as mesmas opções de gzip.
Exemplo.:
$ gunzip documentos.tar.gz
Dicas
Manipulação de arquivos com espaços em nomes
Em alguns momentos, caracteres especiais ou espaços em nomes de
arquivos atrapalham rotinas ou acessos aos mesmos.
Para tal, observa-se a inclusão de aspas nos acessos aos mesmos
como no exemplo abaixo.
Exemplo.:
$ mkdir “Meus Documentos”
$ cd “linux teste”
Pacotes
Gerenciadores de pacotes (package managers)
As várias distribuições do linux possuem formas diferentes de
instalação de pacotes, as distribuições RedHat, Debian e Slackware
possuem gerenciadores de pacotes (package managers) para a
instalação de programas. A enfase na maioria das vezes se dá em cima
do RPM (Red Hat Package Manager) que utiliza estes pacotes .rpm e é
o gerenciador de pacotes mais utilizado nas distribuições linux.
Pacotes
Rpm [opções] <nome_pacote>
Gerenciador de pacotes da Red Hat
Opções
Descrição
-i
Instalação simples
-v
Exibe detalhes da instalação
-h
Mostra o caractere # como progresso da instalação
-U
Atualização de programa de uma versão anterior para
uma atual.
--nodeps
Não procura dependências (útil para instalar vários
pacotes relacionados, a ordem de instalação
dos pacotes não importará).
Pacotes
Dpkg [opções] <nome_pacote>
Gerenciador de pacotes do Debian (.deb)
Opções
Descrição
-i
Instalação simples
-r
Desinstala o pacote (exceto arq. De configuração)
-P
Desinstala o pacote (Todos os arquivos)
-l
Exibe os pacotes que estão instalados.
-S
Exibe o pacote do qual o arquivo faz parte.
-L
Exibe os arquivos que fazem parte de um pacote
instalado
Pacotes
Installpkg [opções] <nome_pacote>
Principalmente o slackware faz uso do programa pkgtool para instalar e
desinstalar pacotes do sistema. Além dele, existem outros como o
installpkg (instalador de pacotes binários do slackware).
-warn
Somente gera um relatório do que aconteceria se um
pacote fosse instalado.
-m
Faz um pacote do diretório corrente e seus
subdiretórios como um pacote com o nome
especificado.
-r
Instala o conteúdo do diretório corrente e seus
subdiretórios como um pacote com nome especificado.
Exemplos.: $ installpkg tree-1.3-1cl.i386.tgz
Pacotes
removepkg [opções] <nome_pacote>
Removedor de pacotes
Opções
Descrição
-warn
Somente gera um relatório do que aconteceria se um
pacote fosse desinstalado.
-keep
Salva os arquivos temporários criados.
Exemplos.:
$ removepkg tree-1.3-1cl.i386.tgz
Pacotes
Instalação customizada
Esta é a forma mais difícil e menos usual de instalar um pacote, pois,
esses arquivos são o programa fonte propriamente dito de forma
compactada.
A primeira ativida consiste na descompactação do pacote.:
$ tar –xvzf <nome_arquivo>
Após descompactado, entre no diretório e execute o script de
configuração, compilação e instalação.
$ ./configure
$ make
$ make install
Pacotes
Pkgadd [nome pacote]
Instalador de pacotes padrão do solaris
Pkgadd solaris-ed-kb22123.pkg
Pacotes
Apt-get [opções] <comando> [pacote]
Utilitário para manipulação de pacotes.
Opção
Descrição
-d
Faz download de pacotes, mas não os instala
-f
Repara um sistema com dependencias quebradas
-h
Exibe uma mensagem de ajuda
-v
Exibe a versão do comando
Pacotes
Apt-get [opções] <comando> [pacote]
CONTINUAÇÃO
Utilitário para manipulação de pacotes.
Comando
Descrição
Update
Atualiza banco de dados do apt-get com arquivos
Install <pct>
Instala um novo pacote
Source <pct>
Faz o download do pacote rpm fonte para o diretório
Remove <pct> Remove um pacote
Upgrade
Procura por pacotes desatualizados e atualiza
Dist-upgrade
Semelhante à upgrade, instala novos se necessário
Clean
Remove arquivos de /var/cache/apt/archives
Comandos de edição
O Editor vi
O vi é um editor de textos que possui dois modos de interação com o
usuário: o modo de comando e o modo edição. Quando iniciado, o vi
trabalha em modo comando. O modo edição pode ser acessado
teclando-se um dos comandos de tecla como <I> (inserção) e o modo
comando teclando-se <esc> e o comando pertinente.
Exemplo.:
$ vi
$ vi arquivo.txt
Comandos de edição
Vi <arquivo>
CONTINUAÇÃO
Editor de textos
Comando
Ação
<:>+<q>
Sai do vi sem salvar
< : > + < q! >
Sai do vi forçadamente sem salvar
< : > + < qw >
Sai do vi salvando o arquivo corrente
<:>+<w>
Salva o arquivo corrente
< : > + < w arq> Salva o arquivo corrente com o nome arq
< : > + < e arq> Abre o arquivo arq
< : > + < r arq> Insere o arquivo arq no ponto.
Variáveis
Variáveis de ambiente
• Variáveis de ambiente locais
• Disponíveis somente para o shell corrente, não sendo acessadas
pelos subprocessos.
• Variáveis de ambiente globais
• Disponíveis tanto para o shell corrente como para os
subprocessos que venham fazer uso delas.
Variáveis, atribuição
Export <variável_ambiente> [=valor]
Torna global o valor de uma variável de ambiente.
Exemplo.:
$ EDITOR=/usr/bin/pico
$ export EDITOR
Ou
$ export EDITOR=/usr/bin/pico
Variáveis, atribuição
set
Verifica lista de variáveis e valores das variáveis carregadas.
Exemplo.:
$ set
Variáveis, atribuição
Unset <variável_de_ambiente>
Exclui o valor de uma variável de ambiente.
Exemplo.:
$ unset EDITOR
Variáveis, atribuição
printenv
Exibe a lista de variáveis de ambiente. As variáveis de ambiente são
tradicionalmente escritas em letras maiúsculas, embora isto não seja
obrigatório
Exemplo.:
$ printenv
Variáveis, Valores
PATH
Indica os lugares onde o bash deverá procurar programas executáveis.
Quando for necessário executar programas que estejam fora do PATH
deve-se incluir na frente do nome do executável “. /<programa>”
Exemplo.:
$ echo $PATH
Variáveis, Valores
SHELL
Exibe o shell em uso corrente. Para alterar o shell corrente, use o
comando chsh.
Exemplo.:
$ echo $SHELL
Shell
Chsh [opções] [usuário]
Alterar o shell default que é iniciado no login.
Opção
Descrição
-l
Lista os shells disponíveis
-s <shell>
Especifica o nome do shell executável a ser utilizado (o
shell pode ser qualquer programa listado no arquivo
/etc/shells, como /bin/bash e /bin/csh
Exemplo.:
$ chsh -l
Variáveis, Valores
DISPLAY
Indica qual é o terminal gráfico corrente. Só funciona quando executado
sob o X window.
Exemplo.:
$ echo $DISPLAY
Variáveis, Valores
PS1 e PS2
São os prompts (níveis 1 e 2) que serão mostrados pelo bash, para lhe
requisitar uma linha de comando.
Código
Descrição
\!
Exibe o número de histórico do comando corrente.
\#
O número desse comando.
\$
Use $ como prompt para todos os usuários, exceto o
usuário root, que tem # como seu prompt.
\w
Diretório de trabalho corrente.
\[
Inicia a sequencia de caracteres não
passíveis de impressão
Variáveis, Valores
PS1 e PS2
CONTINUAÇÃO
São os prompts (níveis 1 e 2) que serão mostrados pelo bash, para lhe
requisitar uma linha de comando.
Código
Descrição
\u
Exibe o nome do usuário
Exemplos.:
$ PS1=“Data: \d Tempo.: \t->”
Histórico de comandos
History [opções]
Exibe o histórico de comandos.
Opção
Descrição
-r
Utiliza o arquivo .bash_history como histórico, em vez
da lista de histórico de trabalho.
-w
Reescreve o arquivo .bash_history.
Exemplo.: $ history
Comandos (sinônimos)
Alias [sinonimo=“comando”]
Exibe e define sinônimos de comandos Unix e Linux. Os sinônimos
permitem criar novos “comandos” que correspondem a qualquer linha
de comando válida do shell
Exemplo.:
$ alias zera=“clear”
Comandos (sinônimos)
unalias [sinonimo]
Desfaz um sinônimo existente.
Exemplo.:
$ unalias zera
Shell script
Shell Scripts
Podemos escrever programas de shell criando arquivos script contendo
séries de comandos de shell. A primeira linha do arquivo script deve
começar com #!<caminho_shell>, que indica ao kernel que o arquivo
script é executável. Para o shell bash, a primeira linha será da seguinte
forma.:
#!/bin/bash
Outra importante atividade é determinar as permissões para o script.:
# chmod u+x <shell_script>
Shell script
Editor de fluxo SED (Stream Editor)
Efetua operações de procura, substituição, inserção e apagamento em
arquivos de texto, sendo muito utilizado em programação shell.
[<endereco1>, [<endereço2>]] <função> [argumento]
Exemplos.:
# sed ‘s/bash/csh/g’ /etc/passwd
Substitui a palavra bash por csh no arquivo /etc/passwd
# sed ‘3,5d’ arquivo1
Apaga as linhas 3, 4 e 5 do arquivo 1
Shell script
Linguagem awk
É uma linguagem interpretada e poderosa. Em programação shell é
muito utilizada para separar campos. É mais flexível que o comando
cut.
Exemplo.:
# cat /etc/passwd | awk –F : ‘{print $1}’
Imprime a primeira coluna do arquivo /etc/passwd
# echo 192.168.0.1 | awk –F . ‘{print $4 “.” $3 “.” $2 “.” $1}’
Imprime o endereço IP ao contrário
Shell script
Let <expressão>
Realiza aritmética com números inteiros.
Exemplos.:
$ echo –n “Digite dois números.:”
Read A B
Let C=0
Let C=A+B
Echo $(( C ))
Shell script – Estruturas condicionais
if
Execução de blocos de comandos condicionais.
If <expressão> then
[[ comandos ]]
Elif <expressão> then
[[ comandos ]]
Else
[[ comandos que serão executados se nenhum acima for
verdadeiro ]]
fi
Shell script – Estruturas condicionais
if
Exemplo.:
#!/bin/bash
Echo –n “digite sua idade:”
Read i
If [ $i < 20 ] then
echo voce é novo (a)
Else
echo voce é velho (a)
fi
Shell script – Estruturas condicionais
case
Testa o valor com os parâmetros descritos em cada condição, caso
nenhum seja atendido executará o contido no parâmetro *.
Case <valor> in
param1)
comando;;
param2)
comando;;
*)
comando;;
esac
Criação de menus
Select
CONTINUAÇÂO
Criação de menus
#!/bin/bash
Select NOME in frank.txt teste.txt outro.txt
Do
vi $NOME
Done
Exit
Shell script – Loop
for
Executa um loop enquanto condição não atingir o topo.
For <variável> in <valores>
Do
<comandos>
done
Shell script – Loop Condicional
While
Executa loop enquanto condição verdadeira.
#!/bin/bash
While [ $# -gt 0 ]
Do
echo $1
shift
Done
Partições
Fdisk [opções] [dispositivo]
Cria partições no disco rígido.
Opção
Descrição
-l
Exibe as partições e sai.
-s
Exibe o tamanho da partição, não para MS-DOS.
Se utilizado o menu do fdisk, devemos especificar o dispositivo.:
Exemplo.: fdisk /dev/sda1
Editando scripts de inicialização
Mkfs [opções] <dispositivo>
Cria um sistema de arquivos em um dispositivo de armazenamento
(formata logicamente o dispositivo)
Opções
Descrição
-v
Exibe as operações que o comando mkfs executa.
-c
Verifica a existência de blocos ruins
-t <tipo>
Determina o tipo, pode ser ext2, ext3, reiserfs ou
msdos
Exemplo.: mkfs –t ext2 /dev/hdb1
Formatando um disquete
Formatando um disquete – fdformat [opções] <disp> <tipo>
Efetua formatação de baixo nível em um disco flexivel sem criar um
sistema de arquivos.
Opções
Descrição
-n
Não faz verificação após formatação
tipo
H1200 = Drive 5 ¼ 1.2Mb
H1440 = Drive 3 ½ 1.44 Mb
Exemplo.: fdformat /dev/fd0H1440
Verificando espaço em disco
Verificando espaço em disco – df [opções] [dispositivo]
Verificar espaço em disco.
Opções
Descrição
-i
Mostra os valores em inodes
-k
Mostra os valores em kilobytes
Exemplos.: df /dev/sda1
Verificando espaço ocupado
Du [opções] [arquivo ou diretório]
Informa o espaço ocupado pelos arquivos ou diretórios.
Opções
Descrição
-a
Exibe os dados dos diretórios e arquivos
-b
Exibe os dados em bytes
-m
Exibe os dados em megabytes
-s
Exibe apenas o espaço total ocupado
Exemplo.: du /usr
Recuperação de FileSystem
Fsck [opções] <dispositivo>
Verifica e repara um sistema de arquivos de um dispositivo de
armazenamento.
Opções
Descrição
-A
Verifica todos os sistemas de arquivos da fstab
-C
Mostra barra de progresso (so para ext2/ext3)
-N
Mostra apenas o que seria feito
-a
Repara automaticamente todos os sistemas de arquivo
-r
repara interativamente o sistema de arquivos
-t <tipo_sist>
Especifica o tipo de sistema
Criando discos de boot
Mkbootdisk [opções] <versão_kernel> (REDHAT)
Cria um disquete de inicialização com o LILO. Obrigatoriamente devese estar utilizando o LILO para tal.
Mkbootdisk -- verbose –device /dev/fd0 2.4.18-3
Identificação de hardware
Reconhecimento de hardware
No linux e solaris, todo reconhecimento de hardware é feito por
softwares especialistas que fazem a interação com sistema operacional
para obter as informações necessárias.
Identificação de hardware
Pnpdump [opções] > [arquivo]
Procura dispositivos plug & play ISA no computador.
Opção
Descrição
-d
Exibe o conteúdo de todos os registradores das placas
-c
Configura as placas plug & play ISA removendo conflito
Exemplo.: pnpdump –c > /etc/isapnp.conf
Identificação de hardware
isapnp <arquivo>
Configura placas plug & play a partir do arquivo gerado pelo comando
pnpdump. É chamado pelo arquivo /etc/rc.d/rc.sysinit quando o linux é
inicializado.
Exemplo.: isapnp /etc/isapnp.conf
Identificação de hardware
Lspci [opções]
Exibe informações sobre os dispositivos PCI conectados ao
computador.
Opções
Descrição
-v
Exibe informações detalhadas sobre os dispositivos
PCI conectados ao computador.
Exemplo.: lspci -v
Contato
Frank S. F. Bastos
E-MAIL.: [email protected]
MSN.: [email protected]
Skype.: frankbastos
Download

Comandos básicos