Você está na página 1de 10

Comandos do Linux

Comandos para manipulao de arquivos

SISTEMAS OPERACIONAIS

cd ls mkdir rmdir cp mv rm ln cat file

Navegar entre os diretrios Listar arquivos Criar um diretrio Remover um diretrio vazio Copiar arquivos e diretrios Mover arquivos e diretrios Apagar arquivos e diretrios Linkar arquivos Exibir o contedo de um arquivo ou direcion-lo para outro Indicar tipo de arquivo

cd - Navegar entre os diretrios cd [nome_do_diretrio] Este comando mudar o diretrio atual de onde o usurio est. H tambm algumas abreviaes de diretrios no Linux para a facilitao, estes so:

LINUX Comandos Bsicos UNIBAN 2008


Material de Apoio Sistemas Operacionais Marcos H.Sandrini FONTE: GUIA FOCA LINUX http://focalinux.cipsga.org.br/

Abreviao . (ponto) .. (dois pontos) ~ (til) / (barra) - (hfen)

Significado Diretrio atual Diretrio anterior Diretrio HOME do usurio Diretrio Raiz ltimo diretrio

Por exemplo, se eu quero ir para o meu diretrio /home, fao o seguinte: $ pwd /usr/games $ cd ~ $ pwd /home/nome_usuario Ou seja, eu estava no diretrio /usr/games, e com um simples cd para o diretrio ~, fui para o meu diretrio home (/home/usuario). Quando voc deseja saber o caminho completo do diretrio em que voc est, utilize o comando pwd. Se voc deseja ir para um diretrio que est na raiz diretamente, voc usa o / antes, exemplo: $ pwd /usr/local/RealPlayer7/Codecs $ cd /etc/rc.d $ pwd /etc/rc.d $ cd $ pwd /usr/local/RealPlayer7/Codecs O usurio estava no diretrio /usr/local/RealPlayer7/Codecs e foi para o diretrio etc/rc.d que est na raiz. Depois usando o hfen (-) ele volta para o ltimo diretrio em que o usuario estava localizado.

ls - Listar arquivos ls [opes] [arquivo/diretrio] Este comando lista os arquivos. Qunado executado sem parmetros (apenas o ls) ir mostrar em tela todos os arquivos existentes no diretrio atual. Abaixo seguem os parmetros para este comando: Parmetro -l -a -h -R Significado Lista os arquivos em formato detalhado. Lista os arquivos ocultos (que comeam com um .) Exibe o tamanho num formato legvel (combine com -l) Lista tambm os subdiretrios encontrados

rmdir - Remover diretrio vazio rmdir <nome_do_diretorio> Apaga um diretrio que esteja vazio. Exemplo: $ rmdir /tmp/lixo Isto apagar o diretrio /tmp/lixo apenas se ele estiver vazio. Para apagar um diretrio com seu contedo, refira-se ao comando rm. cp - Copiar arquivos e diretrios cp [opes] <arquivo_origem> <arquivo_destino> O comando cp copia arquivos e diretrios. Como opes dele, podemos ver:

Exemplo de uma listagem detalhada: $ ls -l total 9916 drwxrwxr-x -rw-r--r--rw-r--r--rw-r--r--

5 root root 1302 Aug 16 1 root root 122631 Jul 12 1 root root 2172065 Jul 12 1 root root 2023315 Jul 12

10:15 08:20 08:20 08:20

CursoC_UFMG Database.pdf MySQL.pdf PHP3.pdf

Parmetro -i -v -R Exemplos:

Significado Modo interativo Mostra o que est sendo copiado Copia recursivamente (diretrios e subdiretrios)

Podemos tambm usar no ls os wildcards, ou seja, caracteres que substituem outros. Exemplo: eu quero listar todos os arquivos que tm a extenso .txt, fao o seguinte: $ ls *.txt debian-install.txt manual.txt named.txt plip.txt seguranca.txt ipfw.txt mouse.txt placa_de_video.txt rede.txt sis.txt O wildcard o "*", que representa "todos os arquivos".txt. Existem outros wildcards, exemplo disso o ponto de interrogao (?), que substitui apenas 1 caractere, exemplo: $ ls manual?.txt manual1.txt manual2.txt manual3.txt manualx.txt manualP.txt Existe outro wildcard, que envolve os colchetes. Por exemplo: $ ls manual[3-7].txt manual3.txt manual4.txt manual6.txt manual7.txt Lista todos os arquivos que tiverem como manual?.txt, onde o ? pode ser substitudo por 3, 4, 5, 6 e 7. mkdir - Criar um diretrio mkdir <nome_do_diretrio> Cria um diretrio. Exemplo: $ mkdir ~/paginas Este comando criar o diretrio paginas no seu diretrio home.

Quero copiar brasil.txt para livro.txt, com a opo de modo interativo. $ cp -i brasil.txt livro.txt cp: sobrescrever `livro.txt'? Como o arquivo livro.txt j existia, ele pergunta se quer sobrescrever, responda y (yes) ou n (no). Agora para copiar o diretrio /home/ftp com tudo dentro (at seus subdiretrios) para /home/ftp2, fao o seguinte: $ cp -R /home/ftp /home/ftp2

mv - Mover arquivos e diretrios mv <arquivo_origem> <arquivo_destino> Este comando simplesmente move algum arquivo para outro lugar. Ele tambm usado para renomear um arquivo. Por exemplo, se eu quero renomear o industria.txt para fabrica.txt, eu fao o seguinte: $ mv industria.txt fabrica.txt Se eu quiser mover o industria.txt para /home/usuario com o mesmo nome, fao: $ mv industria.txt /home/usuario

rm - Apagar arquivos e diretrios rm [opes] <arquivo>

O cat tambm tem outras funes, como tocar sons. Para fazer isso simples, o cat direciona o arquivo de som para o dispositivo de udio (que no Linux representado por um arquivo), exemplo: cat som-dumau.au > /dev/audio

Este comando apaga definitivamente o arquivo ou diretrio. Exemplo: file Indicar tipo de arquivo $ rm arquivo.bin file <arquivo> Para apagar um diretrio com todo seu contedo, usa-se a opo -r, assim: $ rm -r /tmp/lixo ln - Linkar arquivos ln -s <arquivo_origem> <link simblico> Este comando usado para gerar links simblicos, ou seja, que se comportam como um arquivo ou diretrio, mas so apenas redirecionadores que mandam seu comando para outro arquivo ou diretrio, por exemplo: $ ln -s /manual /home/linux-manual Este comando criar o link /home/linux-manual, usando o comando ls -l voc ver que o diretrio /home/linux-manual est apontando para /manual. Entrando no diretrio /home/linux-manual, na verdade estar no /manual, mas como um link, no h diferena. cat - Exibir contedo de um arquivo ou direcion-lo para outro cat <arquivo> Este comando existe para mostrar o contedo de um arquivo, ou para fazer a cpia deste arquivo, ou uma juno. Vejamos um exemplo, se eu quiser mostrar o contedo de /home/usuario/contato, eu digito: $ cat /home/usuario/contato Aparecer o contedo do arquivo contato: Universidade Bandeirante de So Paulo contato@uniban.br http://www.uniban.br/ Este comando pode tambm servir de direcionador para outro arquivo. Indicadores so usados para isso: Indicador ">" - faz uma cpia do arquivo, exemplo: $ cat contato1 > contato2 Indicador ">>" - Acrescenta um arquivo ao outro, exemplo: $ cat contato1 >> contato2 Este comando identifica o tipo de arquivo ou diretrio indicado pelo usurio conforme os padres do sistema operacional. H varios tipos de retorno, vamos aqui ver alguns mais importantes: ASCII text C Program source directory ELF-Executable data Bourn-again shell-script Apenas um exemplo deste comando: $ file linux.txt ASCII Text

Comandos de Processos
ps kill killall w ps - Listar processos ps [opes] Quando um programa executado no sistema, ele recebe um nmero de identificao, o chamado PID (Process Identification). Este comando lista esses processos executados, e apresenta o seu PID. Alm do PID, ele tambm mostra o comando executado (CMD) e tambm o STAT (status atual do processo executado, veja nota abaixo), alm de outros. O status do processo identificado por letras, aqui segue uma tabela com as definies de cada letra: Letra 0 S R I Z T W Definio No existente Descansando, fora de funcionamento (Sleeping) Rodando (Running) Intermediando (Intermediate) Terminando (Zumbi) Parado (Stopped) Esperando (Waiting) Listar processos Matar um processo Matar processos pelo nome Listar os usurios logados

Agora um exemplo para este comando:

$ ps aux USER PID %CPU %MEM VSZ root 1 0.0 0.0 1120 root 2 0.0 0.0 0 root 3 0.0 0.0 0 root 4 0.0 0.0 0 root 1004 0.0 0.0 0820 root 1007 0.0 0.0 2852 root 1074 0.0 0.0 1736 root 1263 0.0 0.0 1632 root 1271 0.0 0.0 2304 root 1275 0.0 2.4 4312 root 2461 0.0 0.0 1636 root 9618 0.9 4.9 5024

RSS 52 0 0 0 48 0

TTY STAT START TIME ? S Dec25 0:05 ? SW Dec25 0:00 ? SW Dec25 0:00 ? SW Dec25 0:00 ? SN Dec25 0:00 ? SW Dec25 0:00 0 tty1 SW Dec25 0 tty1 SW Dec25 0 tty1 SW Dec25 1360 tty1 S Dec25 0 tty1 SW 07:09 2688 pts/1 S 09:56

COMMAND init [kflushd] [kupdate] [kpiod] [mysqld] [smbd] 0:00

Com este comando, possvel voc ver quais usurios esto atualmente logados no seu sistema, alm de informaes como "O que ele est fazendo", "aonde est fazendo", "desde quando est logado", etc. Vejamos um exemplo aqui da minha mquina: [root@servidor root]$ w 10:37am up 13:45, 4 users, load average: 0.85, 0.70, 0.71 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 Mon 8pm 25.00s 34:16 0.09s -bash root tty2 10:37am 5.00s 0.27s 0.14s top root tty3 10:37am 11.00s 0.25s 0.13s vi cmpci.c root tty4 10:37am 22.00s 0.23s 0.12s BitchX

0:00 0:06

vim Comandos de Gerncia de Processos Um processo ou programa pode ser executado de duas formas: Primeiro Plano - Tambm chamado de foreground. Quando voc deve esperar o trmino da execuo de um programa para executar um novo comando. Somente mostrado o aviso de comando aps o trmino de execuo do comando/programa. Segundo Plano - Tambm chamado de background. Quando voc no precisa esperar o trmino da execuo de um programa para executar um novo comando. Aps iniciar um programa em background, mostrado um nmero PID (identificao do Processo) e o aviso de comando novamente mostrado, permitindo o uso normal do sistema. O programa executado em background continua sendo executado internamente. Aps ser concludo, o sistema retorna uma mensagem de pronto acompanhado do nmero PID do processo que terminou. Para iniciar um programa em primeiro plano basta digitar seu nome normalmente. Para iniciar um programa em segundo plano, acrescente o caracter "&" aps o final do comando. Mesmo que um usurio execute um programa em segundo plano e saia do sistema, o programa continuar sendo executado at que seja concludo ou finalizado pelo usurio que iniciou a execuo (ou pelo usurio root). Exemplo: # find / -name boot.b &

Este parmetro (aux) fez o ps listar todas as informaes sobre todos os processos executados. kill - Matar um processo kill [-SINAL] <PID> O comando kill muito conhecido (principalmente pelos usurios do Netscape), ele serve para matar um processo que est rodando. Matar? Terminar este processo, finalizar natoralmente! Para matar um processo, temos de saber o PID dele (veja o comando ps), e ento executar o kill neste PID. Vamos killar o Netscape: $ ps aux | grep netscape root 2461 0.0 0.0 1636 0 tty1 $ kill -9 2461

SW 07:09 0:00 [netscape]

E o processo do Netscape foi morto! Vivas! O sinal -9 significa para forar e matar natoralmente mesmo. Uma lista de sinais pode ser encontrada com o comando: man 7 signal killall - Matar processos pelo nome killall [-SINAL] <comando> Faz a mesma coisa que o kill, s que a vantagem aqui que voc no precisa saber o PID do processo, e sim o nome. A desvantagem que se tiver dois processos com o mesmo nome, os dois so finalizados. Seguindo o exemplo do comando kill: $ ps aux | grep netscape root 2461 0.0 0.0 1636 0 tty1 $ killall -9 netscape w - Listar os usurios logados w

O comando ser executado em segundo plano e deixar o sistema livre para outras tarefas. Aps o comando find terminar, ser mostrada uma mensagem. Executando programas em sequncia. Os comandos podem ser executados em seqncia (um aps o trmino do outro) se os separarmos com ; (ponto e vrgula). Por exemplo: # echo primeiro; echo segundo; echo terceiro Comando ps Algumas vezes til ver quais processos esto sendo executados no computador. O comando ps faz isto, e tambm nos mostra qual usurio executou o programa, hora que o processo foi iniciado, etc. Sua sintaxe : ps [opes]

SW 07:09 0:00 [netscape]

Onde: a x u m f e w --sort:[coluna] Mostra os processos criados por voc e de outros usurios do sistema. Mostra processos que no so controlados pelo terminal. Mostra o nome de usurio que iniciou o processo e hora em que o processo foi iniciado. Mostra a memria ocupada por cada processo em execuo. Mostra a rvore de execuo de comandos (comandos que so chamados por outros comandos). Mostra variveis de ambiente no momento da inicializao do processo. Mostra a continuao da linha atual na prxima linha ao invs de cortar o restante que no couber na tela. Organiza a sada do comando ps de acordo com a coluna escolhida. Voc pode usar as colunas pid, utime, ppid, rss, size, user, priority.

Controle de execuo de processos Abaixo so apresentados alguns comandos e mtodos teis para o controle da execuo de processos no GNU/Linux. Interrompendo a execuo de um processo Para cancelar a execuo de algum processo rodando em primeiro plano, basta pressionar as teclas CTRL+C. A execuo do programa ser cancelada e ser mostrado o aviso de comando. Voc tambm pode usar o comando kill, para interromper um processo sendo executado. Parando momentaneamente a execuo de um processo Para parar a execuo de um processo rodando em primeiro plano, basta pressionar as teclas CTRL+Z. O programa em execuo ser pausado e ser mostrado o nmero de seu job e o aviso de comando. Para retornar a execuo de um comando pausado, use fg. O programa permanece na memria no ponto de processamento em que parou quando ele interrompido. Voc pode usar outros comandos ou rodar outros programas enquanto o programa atual est interrompido. Comando jobs O comando jobs mostra os processos que esto parados ou rodando em segundo plano. Processos em segundo plano so iniciados usando o smbolo "&" no final da linha de comando ou atravs do comando bg. O nmero de identificao de cada processo parado ou em segundo plano (job), usado com os comandos fg. Comando fg Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Voc deve usar o comando jobs para pegar o nmero do processo rodando em segundo plano ou interrompida, este nmero ser passado ao comando fg para ativa-lo em primeiro plano. # fg [nmero] Onde nmero o nmero obtido atravs do comando jobs. Caso seja usado sem parmetros, o fg utilizar o ltimo programa interrompido (o maior nmero obtido com o comando jobs). Exemplo: # fg 1100

Pode ser especificada uma listagem em ordem inversa especificando --sort:[-coluna]. Para mais detalhes e outras opes, veja a pgina de manual (usando o comando man do Linux). As opes acima podem ser combinadas para resultar em uma listagem mais completa. Voc tambm pode usar pipes | para filtrar a sada do comando ps. Ao contrrio de outros comandos, o comando ps no precisa do hifen - para especificar os comandos. Isto porque ele no utiliza opes longas e no usa parmetros. Exemplos: # ps, ps ax | grep inetd, ps auxf, ps auxw.

Comando top [opes] Mostra os programas em execuo ativos, parados, tempo usado na CPU, detalhes sobre o uso da memria RAM, Swap, disponibilidade para execuo de programas no sistema, etc. O top um programa que continua em execuo mostrando continuamente os processos que esto rodando em seu computador e os recursos utilizados por eles. Para sair do top, pressione a tecla q (de quit=sair). Onde: -d [tempo] -s -i -c Atualiza a tela aps o [tempo] (em segundos). Diz ao top para ser executado em modo seguro. Inicia o top ignorando o tempo de processos zumbis. Mostra a linha de comando ao invs do nome do programa.

A ajuda sobre o tpico pode ser obtida dentro do programa pressionando a tecla h ou pela pgina de manual (man top). Abaixo algumas teclas teis: <barra espao> CTRL+L h i q k Atualiza imediatamente a tela. Apaga e atualiza a tela. Mostra a tela de ajuda do programa. mostrado todas as teclas que podem ser usadas com o top. Ignora o tempo ocioso de processos zumbis. Sair do programa. Finalizar um processo - semelhante ao comando kill. Voc ser perguntado pelo nmero de identificao do processo (PID). Este comando no estar disponvel caso esteja usando o top com a opo -s. Mudar o nmero de linhas mostradas na tela. Se 0(zero) for especificado, ser usada toda a tela para listagem de processos.

Comando bg Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, necessrio primeiro interromper a execuo do comando com CTRL+ Z, ser mostrado o nmero da tarefa interrompida, use este nmero com o comando bg para iniciar a execuo do comando em segundo plano. # bg [nmero] Onde nmero o nmero do programa obtido comando jobs. pressionando-se as teclas CTRL+Z ou atravs do

10

Comando kill # nohup find / -uid 0 >/tmp/rootfiles.txt &. Permite enviar um sinal a um comando/programa. Caso seja usado sem parmetros, o kill enviar um sinal de trmino ao processo sendo executado. # kill [opes] [sinal] [nmero] Onde: nmero sinal Comando nice Configura a prioridade da execuo de um comando/programa. nice [opes] [comando/programa] Onde: comando/programa Opes: -n [numero]

o nmero de identificao do processo obtido com o comando ps. Sinal que ser enviado ao processo. Se omitido usa -15 como padro.

Comando/programa que ter sua prioridade ajustada

Opes: Envia um sinal de destruio ao processo ou programa. Ele terminado imediatamente sem chances de -9 salvar os dados ou apagar os arquivos temporrios criados por ele. necessrio ser o dono do processo ou o estar logado como root para termin-lo ou destru-lo. Podemos verificar se o processo foi finalizado atravs do comando ps. Exemplo: # kill 500 # kill -9 500

Configura a prioridade que o programa ser executado. Se um programa for executado com maior prioridade, ele usar mais recursos do sistema para seu processamento, caso tenha uma prioridade baixa, ele permitir que outros programas tenham preferncia. A prioridade de execuo de um programa/comando pode ser ajustada de -19 (a mais alta) at 19 (a mais baixa).

Exemplo: # nice -n -19 find / -name apropos

Comando fuser Comando killall Permite identificar e fechar os processos que esto utilizando arquivos e soquetes no sistema. Permite finalizar processos atravs do nome. fuser [opes] [nome] killall [opes] [sinal] [processo] Onde: processo sinal Opes: -i -l -q -v -w Exemplo: killall -HUP inetd Comando killall5 Comando tload Envia um sinal de finalizao para todos os processos sendo executados. Representa de forma grfica a carga do sistema. killall5 [sinal] tload [opes] Comando nohup Executa um comando ignorando os sinais de interrupo. O comando poder ser executado at mesmo em segundo plano caso seja feito o logout do sistema. nohup [comando que ser executado] As mensagens de sada do nohup so direcionadas para o arquivo $HOME/nohup.out. Exemplo: Opes: -s [nmero] -d [nmero] Mostra uma escala vertical com espaamento especificado por [nmero]. recomendvel o uso de nmeros entre 1 e 10 para melhor visualizao da escala. Especifica o intervalo entre atualizaes, em segundos. Onde: nome Nome do processo que deseja finalizar Sinal que ser enviado ao processo (pode ser obtido usando a opo -i). Opes: -k Especifica um nome de processo, diretrio, arquivo, etc.

Pede confirmao sobre a finalizao do processo. Lista o nome de todos os sinais conhecidos. Ignora a existncia do processo. Retorna se o sinal foi enviado com sucesso ao processo. Finaliza a execuo do killall somente aps finalizar todos os processos.

-i -l -m [nome]

-signal [nmero] -u -v

Finaliza os processos acessando o arquivo especificado. O sinal desejado deve ser especificado com a opo -signal [num], ou o sinal -9 ser enviado como padro. No possvel matar o prprio processo fuser. Pergunta antes de destruir um processo. Ser ignorada caso a opo -k no seja especificada. Lista todos os nomes de sinais conhecidos. Especifica um arquivo em um sistema de arquivos montado ou dispositivo de bloco que est montado. Todos os processos acessando aquele sistema de arquivos sero listados. Diretrios so mostrados seguidos de uma / Usa o sinal especificado ao invs de -9 (SIGKILL) quando finalizar processos. Acrescenta o nome do dono de cada processo ao PID. Os processos so mostrados em um estilo idntico ao ps.

11

12

Comando vmstat Mostra estatstica sobre o uso da memria virtual do sistema. vmstat [intervalo] [contagem] Onde: intervalo contagem

Comando pstree Mostra a estrutura de processos em execuo no sistema em forma de rvore. pstree [opes] [pid] Onde: pid Opes: -a -c -G -h -H [pid] -l -n -p -u -U

Nmero especificado em segundos entre atualizaes. Nmero de vezes que ser mostrado.

Nmero do processo que ter sua rvore listada. Se omitido, lista todos os processos.

Se no for especificado nenhum parmetro, o vmstat mostra o status da memria virtual e volta imediatamente para a linha de comando. A descrio dos campos do vmstat so as seguintes:

PROCESSOS r Nmero de processos aguardando execuo b Nmero de processos em espera no interrompveis w Nmero de processos extrados do arquivo de troca ou caso contrrio em execuo MEMRIA swpd quantidade de memria virtual usada em Kb free Quantidade de memria livre em Kb buff Quantidade de memria usada como buffer em Kb Memria Virtual si Quantidade de memria gravada para o disco Kb/s so Quantidade de memria retirada do disco em Kb/s Entrada/Sada (I/O) bi Blocos enviados para um dispositivo de bloco (medido em blocos por segundo) bo Blocos recebidos de um dispositivo de bloco (em blocos por segundo) Sistema in Nmero de interrupes por segundo, incluindo o clock cs Nmero de mudanas de contexto por segundo Porcentagem do total de tempo da CPU us Tempo do Usurio sy Tempo do Sistema id Tempo Ocioso

Mostra opes passadas na linha de comando. Mostra toda a estrutura (inclusive sub-processos do processo pai). Usa caracteres grficos no desenho da rvore de processos. Destaca o processo atual e seus antecessores. Destaca o processo especificado. No faz quebra de linha Classifica pelo nmero PID ao invs do nome. Mostra o nmero PID entre parnteses aps o nome do processo. Mostra tambm o dono do processo. Usa o conjunto de caracteres Unicode para o desenho da rvore.

Fechando um programa quando no se sabe como sair: Muitas vezes quando se esta iniciando no GNU/Linux podemos executar um programa e talvez no saber como fech-lo. Isto pode tambm ocorrer com programadores que esto construindo seus programas e por algum motivo no programam uma opo de sada, ou ela no funciona!. No exemplo vamos supor que executamos um programa em desenvolvimento com o nome contagem que conta o tempo em segundos a partir do momento que executado, mas que o programador esqueceu de colocar uma opo de sada. Siga estas dicas para finaliz-lo: Normalmente todos os programas UNIX (o GNU/Linux tambm um Sistema Operacional baseado no UNIX) podem ser interrompidos pressionando-se as teclas <CTRL> e <C>. Tente isto primeiro para finalizar um programa. Isto provavelmente no vai funcionar se estiver usando um Editor de Texto (ele vai entender como um comando de menu). Isto normalmente funciona para comandos que so executados e terminados sem a interveno do usurio. Caso isto no funcione, vamos partir para a fora: Mude para um novo console (pressionando <ALT> e <F2>), e faa o login como usurio root. Localize o PID (nmero de identificao do processo) usando o comando: ps ax , aparecero vrias linhas cada uma com o nmero do processo na primeira coluna, e a linha de comando do programa na ltima coluna. Caso aparecerem vrios processos podemos usar: ps ax | grep contagem , neste caso o grep far uma filtragem da sada do comando ps ax mostrando somente as linhas que tem a palavra "contagem". Feche o processo usando o comando kill PID, lembre-se de substituir PID pelo nmero en-contrado pelo comando ps ax acima. O comando acima envia um sinal de trmino de execuo para o processo (neste caso o programa contagem). O sinal de trmino mantm a chance de o programa salvar seus dados ou apagar os arquivos temporrios que criou e ento ser finalizado, isto depende do programa. Alterne para o console onde estava executando o programa contagem e verifique se ele ainda est em execuo. Se ele estiver parado mas o aviso de comando no est disponvel, pressione a tecla <ENTER>. Freqentemente acontece isto com o comando kill, voc finaliza um programa mas o aviso de comando no mostrado at que se pressione <ENTER>.

Comando pidof Retorna o PID (Process IDentification) do processo especificado. pidof [opes] [nome] Onde: nome Opes: -s -x -o [PID] Nome do processo que seja obter o nmero PID

Retorna somente o primeiro PID encontrado. Retorna o PID do do shell que est executando o script Ignora o processo com aquele PID. O PID especial %PPID pode ser usado para nomear o processo pai do programa pidof, em outras palavras O programa pidof um link simblico ao programa killall5. Cuidado ao executar o killall5 pois as funes e opes so muito diferentes dependendo da forma como chamado na linha de comando. Exemplo: # pidof -s init

13

14

Caso o programa ainda no foi finalizado, repita o comando kill usando a opo -9: kill -9 PID. Este comando envia um sinal de DESTRUIO do processo, o fazendo terminar "na marra". Uma dica: Todos os programas estveis (todos que acompanham as boas distribuies GNU/Linux) tem sua opo de sada. Lembre-se que quando finaliza um processo todos os dados do programa em execuo podem ser perdidos (principalmente se estiver em um editor de textos), mesmo usando o kill sem o parmetro -9.

Utilizando o RPM Para instalar um pacote, usa-se a opo -i (i = install): # rpm -i pacote.rpm Voc tambm pode utilizar as opes -v e -h combinadas com a -i para uma mostragem mais agradvel. Se voc j tem o pacote.rpm e deseja atualizar para uma verso mais recente da mesma, voc utiliza a opo -U ao invs da -i, exemplo: # rpm -Uvh pacote-atualizacao.rpm

Eliminando caracteres estranhos As vezes quando um programa mal comportado finalizado ou quando voc visualiza um arquivo binrio atravs do comando cat, possvel que o aviso de comando (prompt) volte com caracteres estranhos. Para fazer tudo voltar ao normal, basta digitar reset e teclar ENTER. No se preocupe, o comando reset no reiniciar seu computador (como o boto reset do seu computador faz), ele apenas far tudo voltar ao normal. Note que enquanto voc digitar reset aparecero caracteres estranhos ao invs das letras. No se preocupe. Basta digitar corretamente e pressionar <ENTER> e o aviso de comando voltar ao normal.

Isso ir atualizar os arquivos do pacote. Se voc quer retirar o pacote do seu sistema, voc utiliza a opo -e, assim: # rpm -e pacote Caso este pacote gere dependncias com outros pacotes, e mesmo assim voc queira remov-lo, voc pode utilizar a opo --force, que como o nome diz, fora a remoo do mesmo: # rpm -e pacote --force

Comandos de pacotes (instalao/desinstalao/consulta)


O que so pacotes? No Linux, geralmente os aplicativos vem em forma de cdigo-fonte. Os pacotes servem justamente para facilitar o trabalho do usurio, dando a ele um arquivo empacotado com o cdigo j compilado. Existem diversos gerenciadores de pacotes.O formato de pacotes RPM (RedHat Package Manager) usado por vrias distribuies como o RedHat, SUSE, Conectiva e Mandrake. Exite tambm o DEB (Debian Packages) usado pela distribuio Debian e Corel Linux (que baseada no Debian). Temos tambm o pacoteamento do Slackware (TGZ). Alm de empacotar o cdigo-fonte compilado, os gerenciadores de pacotes tambm armazenam as informaes de instalao em um banco de dados, para depois o usurio ter informaes sobre a instalao, e para desinstalar o pacote do sistema. E no h apenas pacotes com cdigo-fonte compilado, tambm h pacotes que contm o cdigo-fonte sem compilar, mas empacotado.

Agora uma caracterstica muito importante tambm para o usurio a capacidade de consulta que o RPM traz. Por exemplo, se voc quer listar todos os pacotes instalados no sistema, voc utiliza o comando: $ rpm -qa Isto ir gerar a listagem dos pacotes. Veja que a opo -q (query) a opo de consulta, e seguida de outra letra ela faz tarefas. Combinando o comando anterior com o comando grep, podemos ver se um certo pacote est instalado no sistema: $ rpm -qa | grep BitchX BitchX-75p3-8cl E se voc quer saber informaes sobre um pacote? Ento usa-se a opo -i. Vejamos um exemplo: $ rpm -qi BitchX Name : BitchX Relocations: (not relocateable) Version : 75p3 Vendor: conectiva Release : 8cl Build Date: qua 16 fev 2000 01:28:59 BRST Install date: dom 10 set 2000 19:33:23 BRT Build Host: mapinguari.conectiva.com.br Group : Aplicaes/Internet Source RPM: BitchX-75p3-8cl.src.rpm Size : 2812352 License: GPL URL : http://www.bitchx.org Summary : Cliente IRC para o console do Linux Description : O BitchX um cliente de IRC com suporte a cores para o console do Linux. Ele incorpora vrias caractersticas que normalmente requereriam um script, e a sua interface mais colorida, e simples de trabalhar que a do ircII :) Para ver quais pacotes fazem dependncia com um certo pacote, utilizamos a opo -R:

Utilizando o PKGTOOL (Slackware) O gerenciamento de pacotes nas distribuies Slackware mais simples. Os pacotes tm extenso .tgz (diferente de .tar.gz), e alm de conter os arquivos, contm scripts de ps-descompactao tambm. Existe uma interface muito amigvel para o gerenciamento dos pacotes .tgz, e se chama pkgtool. Tente executar o pkgtool no console e ver no que d. Mas tambm existem os comandos individuais: Comando installpkg X.tgz removepkg X makepkg O que faz Instala o pacote X.tgz Desinstala o pacote X Cria um pacote

15

16

$ rpm -qR pacote E para verificar a qual pacote um certo arquivo pertence, utilize a opo -f, assim: $ rpm -qf /diretorio/arquivo Ou o contrrio, se voc quiser listar todos os arquivos pertencentes um pacote, faa assim: $ rpm -ql pacote

Shell Scripts
Antes de saber o que um script em shell importante saber antes o que um Shell. Na linha de comandos de um shell podemos utilizar diversos comandos um aps o outro, ou mesmo combin-los numa mesma linha. Se colocarmos diversas linhas de comandos em um arquivo texto simples teremos em mos um Shell Script, ou um script em shell, j que Script uma descrio geral de qualquer programa escrito em linguagem interpretada, ou seja, no compilada. Outros exemplos de linguagens para scripts so o php, perl, python, javascript e muuuitos outros. Podemos ento ter um script em php, um script perl e assim em diante. Uma vez criado, um ShellScript pode ser reutilizado quantas vezes for necessrio. Seu uso, portanto, indicado na automao de tarefas que sero realizadas mais de uma vez. Todo sistema Unix e similares so repletos de scripts em shell para a realizao das mais diversas atividades administrativas e de manuteno do sistema.

Outros tipos de comandos (compactao/descompactao)


Descompactar arquivos Extenso .tar.gz Extenso .tar Extenso .gz Extenso .tar.bz2 Extenso .bz2 Extenso .zip Compactar arquivos Empacotar um diretrio em .tar Empacotar um diretrio em .tar.gz Compacta um arquivo para .gz Compacta um arquivo para .bz2 Espao em disco df h du hs Mostra o espao em disco das parties montadas Mostra o espao ocupado pelo diretrio atual tar cvf diretorio/ tar zcvf diretorio/ gzip arquivo bzip2 arquivo tar zxpvf arquivo.tar.gz tar xpvf arquivo.tar gunzip arquivo.gz bunzip2 arquivo.tar.bz2 ; tar xpvf arquivo.tar bunzip2 arquivo.bz2 unzip arquivo.zip

Os arquivos de lote (batch, arquivos *.bat) do windows so tambm exemplos de ShellScripts, j que so escritos em linguagem interpretada e executados por um Shell do Windows, em geral o command.com ou hoje em dia o cmd.exe. Os Shells do Unix, porm, so inumeras vezes mais poderosos que o interpretador de comandos do windows, podendo executar tarefas muito mais complexas e elaboradas. Os scripts shell podem ser agendados para execuo atravs da tabela crontab, entre outras coisas. So uma ferramenta indispensvel aos administradores de sistemas Unix. O Shell mais comum e provavelmente o que possui mais scripts escritos para ele, tambm um dos mais antigos e simples, o sh. Este shell est presente em todo o sistema operacional Unix, inclundo o Linux, FreeBSD, IBMAIX, HP-UX, OpenBSD, SUN-Solaris, NetBSD, Irix, etc. Por ser o shell nativo mais comum natural que se prefira escrever scripts para ele, tornando o script mais facilmente portvel para outro sistema. Os Shells no esto diretamente associados a um ou outro tipo de Unix, embora vrias empresas tenham suas prprias verses de Shell. No software livre o Shell utilizado em um sistema em geral exatamente o mesmo utilizado em outro, por exemplo, o bash encontrado no Linux o mesmo shell bash encontrado no FreeBSD e pode tambm ser instalado no Solaris ou outros sistemas Unix comerciais para passar a ser utilizado como interface direta de comandos ou como interpretador de scripts. O mesmo acontece com o tcsh e vrios outros shells desenvolvidos no modelo de Software Livre.

Tipos de Shell: sh csh ksh tcsh bash Bourne Shell C Shell Korn Shell Tenex / Tops C Shell Bourne-Again Shell (GNU)

Informaes do sistema date cal uptime free top uname -a Mostra a data e hora atual Mostra um calendrio Mostra quanto tempo seu sistema est rodando Exibe a memria livre, a usada, e os buffers da memria RAM Mostra os processos que mais gastam memria Mostra informaes de verso do kernel

Caractersticas: Os shell scripts podem conter estruturas de programao tais como:


estruturas de deciso (if) estruturas de repetio (for) (while) funes etc.

Programas (no terminal/console do sistema modo texto) vi pico pine mutt lynx links Editor de texto Editor de texto Leitor de E-Mail Leitor de E-Mail Navegador Web (modo texto) Navegador Web (modo texto) Exemplo de uso: Apagar periodicamente arquivos mais velhos que 30 dias do diretrio /tmp: #!/bin/sh cd /tmp find . -type f -mtime +30 -delete

17

18

Este seria o contedo de um shell script que sempre que fosse executado apagaria arquivos com data de modificao maior que 30 dias a partir do diretrio /tmp do sistema de arquivos. Ele nada mais do que uma associao de 2 comandos (cd e find) em um arquivo para facilitar a repetio da tarefa. Este poderia ser, por exemplo, o contedo do arquivo /bin/limpatmp.sh e poderamos chamar este script pela linha de comandos sempre que desejssemos repetir esta ao:

$ limpatmp.sh
Onde o smbolo $ representa o prompt de comandos. Do ponto de vista do usurio este seria mais um comando disponvel para uso. Os scripts em shell so tambm muito empregados junto inicializao do sistema (para autoiniciar tarefas) ou como mini-aplicativos, que facilitam tarefas dos usurios, tais como montagem de dispositivos, menus de ajuda, etc. Sua primeira linha obrigatoriamente comea com um #! (que no se deve confundir com um comentrio qualquer, pois realmente uma exceo), informando diretamente ao kernel qual interpretador ele dever usar, juntamente com seu caminho, de acordo com a necessidade de cada caso. Exemplo:

#!/bin/bash
Em seguida, so adicionados os comandos, um por linha, ou separados por ; (ponto e vrgula):

mount -t reiserfs /dev/hda1 /mnt/hda1 ls /mnt/hda1 cp -r /mnt/hda1/* /home/user/backup umount /dev/hda1


Por fim, d-se a permisso de execuo a este arquivo de texto simples

chmod +x arquivo

Variveis de ambiente do Bash


Variveis de ambiente so informaes, gerada pelo sistema operacional ou por um usurio, que definem parmetros necessrios ao funcionamento do prprio sistema e dos diversos programas. Essas variveis podem sofrer mudana de contedo, de usurio para usurio, uma vez que elas fornecem ao sistema e aos programas informaes diversas sobre o usurio logado.

Echo Exibe o valor de uma varivel de ambiente, sintaxe echo $<varivel>. Exemplo: # echo $PATH printenv PATH MANPATH LONGNAME HOME TERM SHELL HISTSIZE OSTYPE HOSTTYPE MAIL Exibe a lista de variveis de ambiente. Indica os locais onde o bash deve procurar os programas executveis. Indica os diretrios onde o comando man procura paginas de manual. Contem o nome do usuario. Contm o diretorio /home dos usurios. Indica o tipo de terminal em uso. Exibe o shell em uso. Para alterar o shell em uso, usamos o comando chsh Define o numero maximo de comandos a ser mantido pelo comando history Indica o Sistema Operacional em uso. Indica a arquitetura do sistema onde o bash est em uso Indica o diretorio de correio do sistema

19

20

Você também pode gostar