gerenciamento, suporte e comandos mais utilizados em ambientes linux e solaris frank s. fernandes...
TRANSCRIPT
Gerenciamento, suporte e comandos mais utilizados em Gerenciamento, suporte e comandos mais utilizados em ambientes Linux e Solarisambientes Linux e Solaris
Instrutor.: Frank S. Fernandes BastosFrank 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)
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.
OBJETIVOSOBJETIVOS
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.
Breve HistóricoBreve Histórico
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.
CronologiaCronologia
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.
CronologiaCronologia
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
CronologiaCronologia
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
CronologiaCronologia
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
CronologiaCronologia
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.
CronologiaCronologia
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.
O LinuxO 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.
Cronologia do LinuxCronologia do Linux
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”.
LicenciamentoLicenciamento
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.
CopyRight e Numeração de versõesCopyRight e Numeração de versõ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;
DistribuiçõesDistribuições
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.
O que o Linux e o Solaris oferecem?O que o Linux e o Solaris oferecem?
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.
Termos utilizadosTermos utilizados
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 de memóriaGerenciamento de memória
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 GráficoGerenciamento Gráfico
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.
Gerenciamento de arquivosGerenciamento 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 arquivosSistema 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
Sistema de arquivosSistema de arquivos
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 CD-
ROM)
Mapeamento de arquivos para discoMapeamento de arquivos para disco
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 arquivosMapeamento de arquivos
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.
Mapeamento de arquivos para discoMapeamento de arquivos para 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.
iNODES e Mapeamento do discoiNODES e Mapeamento do disco
Bloco de boot
Superbloco Tabela de iNODES Blocos de dados
Divisão de blocosDivisão de blocos
/ - 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 arquivosEstrutura 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
Estrutura básica do sistema de arquivosEstrutura básica do sistema de arquivos
Complemento de aulaComplemento de aula
Navegação entre diretóriosNavegaçã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 aulaComplemento de aula
Permissões e Segurança de ArquivosPermissõ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 aulaComplemento de aula
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ãoEntrada 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ãoEntrada 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
Entrada e Saída PadrãoEntrada e Saída Padrão
Complemento de aulaComplemento de aula
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ída-padrão.
RedirecionamentosRedirecionamentos
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
RedirecionamentosRedirecionamentos
Exemplos.:
$ cat > arquivo1.txt
Teste de inclusao de dados
<ENTER>
<CTRL> + < D >
$ more arquivo1.txt
RedirecionamentosRedirecionamentos
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.
ShellShell
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çãoArquivos 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çãoArquivos de configuração
Arquivo /etc/profile
Define as variáveis de ambiente para todos os usuários. É executado automaticamente no login.
Arquivos de configuraçãoArquivos de configuração
Complemento de aulaComplemento de aula
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 scriptShell 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 scriptShell 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 scriptShell 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 scriptShell 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.
Shell scriptShell script
Complemento de aulaComplemento de aula
Operadores
Os operadores lógicos e aritméticos utilizados pelo shell bash são informados a seguir, em ordem decrescente de precedência.:
Shell scriptShell 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 scriptShell 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
Shell scriptShell script
Complemento de aulaComplemento de aula
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 scriptShell 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 scriptShell 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 scriptShell script
Expansão aritmética
O bash permite a realização de aritmética com números inteiros
Exemplos.:
$ echo $((4*7))
Shell scriptShell script
Complemento de aulaComplemento de aula
Entrada interativa
Read <linha>
Lê uma linha da entrada-padrão
Exemplos.:
$ echo –n “Digite seu nome.:”
Read NOME SOBRENOME
Echo “Prazer $NOME !”
Shell scriptShell script
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.
Processo INITProcesso INIT
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
Níveis de inicializaçãoNíveis de inicialização
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
Processo de INITProcesso de INIT
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.
Níveis de inicializaçãoNíveis 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.
Sequência de inicializaçãoSequência 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.
Editando scripts de inicializaçãoEditando scripts de inicialização
Complemento de aulaComplemento de aula
halt / shutdown / poweroff
Desliga o computador
Exemplo.:
$ halt
Comandos básicosComandos básicos
reboot
Reinicializa o computador
Exemplo.:
$ reboot
Comandos básicosComandos 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
Comandos básicosComandos básicos
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.
Configurando serviçosConfigurando serviços
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çãoEditando 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
... ...
Editando scripts de inicializaçãoEditando scripts de inicialização
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 automaticamenteMontando volumes automaticamente
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 automaticamenteMontando 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.
Montando volumes automaticamenteMontando volumes automaticamente
Montando automaticamente o sistema de arquivos /etc/fstab
Complemento de aulaComplemento de aula
Arquivo /etc/HOSTNAME
Armazena o nome do computador.
Exemplo.: cat /etc/HOSTNAME
Linux.site
Arquivos de configuraçãoArquivos 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çãoArquivos 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çãoArquivos 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
Arquivos de configuraçãoArquivos de configuração
Complemento de aulaComplemento de aula
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 comandosTipos 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.
Tipos de comandosTipos de comandos
• 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.
ConvençõesConvenções
Login
Cancela a sessão atual e inicia uma nova sessão de usuário
Exemplo.:
$ login
Comandos básicosComandos básicos
Logout ou <CTRL> + <D>
Termina a sessão do usuário
Exemplo.:
$ logout
Comandos básicosComandos básicos
Exit
Encerra o shell de comandos corrente.
Exemplo.:
$ exit
Comandos básicosComandos básicos
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 onlineComandos 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 onlineComandos 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 onlineComandos 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 – Ajuda onlineComandos básicos – Ajuda online
cd [diretório]
Muda, entra, no diretório de trabalho escolhido
Exemplo.:
$ cd /etc
Comandos básicos – NavegaçãoComandos básicos – Navegação
pwd
Exibe o diretório corrente
Exemplo.:
$ pwd
Comandos básicos – NavegaçãoComandos 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çãoComandos 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çãoComandos 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çãoComandos 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 – NavegaçãoComandos básicos – Navegação
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ásicosComandos 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ásicosComandos básicos
Which <comando>
Procura por um comando em diretórios e na variável de ambiente PATH.
Exemplo.:
$which clear
Comandos básicos – NavegaçãoComandos 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 básicos – NavegaçãoComandos básicos – Navegação
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 arquivosComandos de Manipulação de arquivos
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óriosComandos 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óriosComandos 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óriosComandos 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 diretóriosComandos de Manipulação de diretórios
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 Manipulação de arquivosComandos de Manipulação de arquivos
clear
Limpa a tela do terminal virtual corrente.
Exemplo.:
$ clear
Comandos de terminalComandos 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 terminalComandos 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 terminalComandos de terminal
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 sistemaComandos de sistema
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çãoComandos 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 paginaçãoComandos de paginação
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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos 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 filtragemComandos de filtragem
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 fracionamentoComandos 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 fracionamentoComandos 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 fracionamentoComandos 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 fracionamentoComandos 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 fracionamentoComandos 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
Comandos de compactação e fracionamentoComandos de compactação e fracionamento
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”
DicasDicas
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.
PacotesPacotes
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á).
PacotesPacotes
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
PacotesPacotes
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
PacotesPacotes
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
PacotesPacotes
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
PacotesPacotes
Pkgadd [nome pacote]
Instalador de pacotes padrão do solaris
Pkgadd solaris-ed-kb22123.pkg
PacotesPacotes
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
PacotesPacotes
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
PacotesPacotes
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çãoComandos 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.
Comandos de ediçãoComandos de edição
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áveisVariáveis
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çãoVariáveis, atribuição
set
Verifica lista de variáveis e valores das variáveis carregadas.
Exemplo.:
$ set
Variáveis, atribuiçãoVariáveis, atribuição
Unset <variável_de_ambiente>
Exclui o valor de uma variável de ambiente.
Exemplo.:
$ unset EDITOR
Variáveis, atribuiçãoVariá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, atribuiçãoVariáveis, atribuição
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, ValoresVariáveis, Valores
SHELL
Exibe o shell em uso corrente. Para alterar o shell corrente, use o comando chsh.
Exemplo.:
$ echo $SHELL
Variáveis, ValoresVariáveis, Valores
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
ShellShell
DISPLAY
Indica qual é o terminal gráfico corrente. Só funciona quando executado sob o X window.
Exemplo.:
$ echo $DISPLAY
Variáveis, ValoresVariá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, ValoresVariá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->”
Variáveis, ValoresVariáveis, Valores
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
Histórico de comandosHistórico de comandos
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)Comandos (sinônimos)
unalias [sinonimo]
Desfaz um sinônimo existente.
Exemplo.:
$ unalias zera
Comandos (sinônimos)Comandos (sinônimos)
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 scriptShell 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 scriptShell 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 scriptShell 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 scriptShell script
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 condicionaisShell 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 condicionaisShell 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
Shell script – Estruturas condicionaisShell script – Estruturas condicionais
Select CONTINUAÇÂO
Criação de menus
#!/bin/bash
Select NOME in frank.txt teste.txt outro.txt
Do
vi $NOME
Done
Exit
Criação de menusCriação de menus
for
Executa um loop enquanto condição não atingir o topo.
For <variável> in <valores>
Do
<comandos>
done
Shell script – LoopShell script – Loop
While
Executa loop enquanto condição verdadeira.
#!/bin/bashWhile [ $# -gt 0 ]Do
echo $1shift
Done
Shell script – Loop CondicionalShell script – Loop Condicional
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
PartiçõesPartições
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
Editando scripts de inicializaçãoEditando scripts de inicialização
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
Formatando um disqueteFormatando um disquete
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 em discoVerificando espaço em disco
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
Verificando espaço ocupadoVerificando espaço ocupado
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
Recuperação de FileSystemRecuperação de FileSystem
Mkbootdisk [opções] <versão_kernel> (REDHAT)
Cria um disquete de inicialização com o LILO. Obrigatoriamente deve-se estar utilizando o LILO para tal.
Mkbootdisk -- verbose –device /dev/fd0 2.4.18-3
Criando discos de bootCriando discos de boot
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 hardwareIdentificaçã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 hardwareIdentificaçã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 hardwareIdentificaçã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
Identificação de hardwareIdentificação de hardware
Frank S. F. Bastos
E-MAIL.: [email protected]
MSN.: [email protected]
Skype.: frankbastos
ContatoContato