Introduo URL de Origem http://www-linuxprev/foswiki/bin/view/Nucleo/TutorialLinux Verso r1.16 12 Aug 2013 jarbas.peixoto Gerado em 03 Jul 2014 - 18:46 Copyright 2014 DATAPREV Copyright pelos autores contribuintes. Todo material nessa plataforma colaborativa propriedade dos autores contribuintes. Idias, solicitaes, problemas com relao ao Foswiki? Nos d um retorno Qualquer outro uso sem uma autorizao por escrito da DATAPREV proibido. INDICE Introduo......................................................................................................................................................Pgina 1 O que Linux......................................................................................................................................Pgina 1 Caractersticas......................................................................................................................................Pgina 1 Distribuies Linux.............................................................................................................................Pgina 1 Console................................................................................................................................................Pgina 1 Login....................................................................................................................................................Pgina 1 O usurio root......................................................................................................................................Pgina 2 Sistema de arquivos.......................................................................................................................................Pgina 3 Diretrios padres Linux.....................................................................................................................Pgina 3 Formato de comando no ambiente Texto do Linux.............................................................................Pgina 4 Documentao.....................................................................................................................................Pgina 5 Manipulao de arquivos e diretrios..................................................................................................Pgina 5 Procura de arquivos e diretrios:.......................................................................................................Pgina 10 montagem:.........................................................................................................................................Pgina 11 Shell...............................................................................................................................................................Pgina 13 Principais Shells;...............................................................................................................................Pgina 13 Tarefas do Shell;................................................................................................................................Pgina 13 Shell Bash;.........................................................................................................................................Pgina 13 Perfis de usurio...........................................................................................................................................Pgina 14 Criao de usurios;...........................................................................................................................Pgina 14 Alterao de senha;............................................................................................................................Pgina 14 Excluso de usuarios..........................................................................................................................Pgina 14 Gerenciando grupos - groupadd/groupdel.........................................................................................Pgina 14 permisso de arquivos e diretorios....................................................................................................Pgina 15 .........................................................................................................................................................................Pgina 19 Gerenciamento de processos.......................................................................................................................Pgina 19 ps........................................................................................................................................................Pgina 19 kill......................................................................................................................................................Pgina 19 jobs.....................................................................................................................................................Pgina 20 bg.......................................................................................................................................................Pgina 20 fg........................................................................................................................................................Pgina 20 killall;.................................................................................................................................................Pgina 20 top,.....................................................................................................................................................Pgina 20 htop;...................................................................................................................................................Pgina 20 .........................................................................................................................................................................Pgina 22 Editores de texto...........................................................................................................................................Pgina 22 Vi.......................................................................................................................................................Pgina 22 .........................................................................................................................................................................Pgina 24 Agendamentos..............................................................................................................................................Pgina 24 cron;...................................................................................................................................................Pgina 24 anacron;..............................................................................................................................................Pgina 25 At;......................................................................................................................................................Pgina 25 .........................................................................................................................................................................Pgina 27 Utilitrios......................................................................................................................................................Pgina 27 Filtros:................................................................................................................................................Pgina 27 Ordenao:.........................................................................................................................................Pgina 27 Conversores:......................................................................................................................................Pgina 28 Compactadores:.................................................................................................................................Pgina 28 Empacotamento de arquivos;.............................................................................................................Pgina 29 i INDICE Utilitrios Dividindo arquivos............................................................................................................................Pgina 31 Outros................................................................................................................................................Pgina 32 .........................................................................................................................................................................Pgina 33 Impresso......................................................................................................................................................Pgina 33 Impresso direta;................................................................................................................................Pgina 33 Fila de impresso;..............................................................................................................................Pgina 33 .........................................................................................................................................................................Pgina 34 Programao em Shell.................................................................................................................................Pgina 34 Scripts shell;.......................................................................................................................................Pgina 34 Executando um programa Shell;........................................................................................................Pgina 34 Dando permisso de execuo...........................................................................................................Pgina 34 Variveis............................................................................................................................................Pgina 34 Passar e receber parmetros;..............................................................................................................Pgina 36 Instrues condicionais......................................................................................................................Pgina 37 Instrues de Loop.............................................................................................................................Pgina 41 Leitura de Dados................................................................................................................................Pgina 43 Linguagem AWK...............................................................................................................................Pgina 46 Expresses regulares;.........................................................................................................................Pgina 48 APT................................................................................................................................................................Pgina 52 apt-cdrom...........................................................................................................................................Pgina 52 apt-get................................................................................................................................................Pgina 52 apt-cache............................................................................................................................................Pgina 52 Linux em rede...............................................................................................................................................Pgina 53 Conceitos Bsicos..............................................................................................................................Pgina 53 O que uma rede de computadores?...........................................................................................Pgina 53 Cliente e servidor........................................................................................................................Pgina 53 Protocolos de rede.......................................................................................................................Pgina 53 modelo de camadas de rede.........................................................................................................Pgina 53 tipos de redes...............................................................................................................................Pgina 53 Classificao de redes de acordo com a arquitetura.............................................................Pgina 53 Ethernet..........................................................................................................................Pgina 53 Token Ring.....................................................................................................................Pgina 54 Frame Relay...................................................................................................................Pgina 54 X25.................................................................................................................................Pgina 54 DSL................................................................................................................................Pgina 54 Classificao de redes de acordo com a extenso geogrfica...............................................Pgina 54 LAN...............................................................................................................................Pgina 54 WAN..............................................................................................................................Pgina 54 Classificao de redes de acordo com a topologia...............................................................Pgina 54 Anel................................................................................................................................Pgina 54 Barramento.....................................................................................................................Pgina 54 Estrela.............................................................................................................................Pgina 54 Ponto a Ponto.................................................................................................................Pgina 54 Classificao de redes de acordo com o meio de transmisso.............................................Pgina 54 Por cabo..........................................................................................................................Pgina 54 Sem Fios.........................................................................................................................Pgina 54 hardwares de rede........................................................................................................................Pgina 54 Cabos....................................................................................................................................Pgina 54 Repetidor..............................................................................................................................Pgina 54 Transceptor...........................................................................................................................Pgina 54 Estao de trabalho...............................................................................................................Pgina 54 ii INDICE Linux em rede servidor.................................................................................................................................Pgina 55 Bridge (ponte).......................................................................................................................Pgina 55 HUB (concentrador).............................................................................................................Pgina 55 Switch (comutador)..............................................................................................................Pgina 55 Placa de rede.........................................................................................................................Pgina 55 Modem (conversor)..............................................................................................................Pgina 55 Redes TCP/IP..............................................................................................................................Pgina 55 camadas................................................................................................................................Pgina 55 Linux como cliente de uma rede TCP/IP....................................................................................Pgina 55 Configurando manualmente.................................................................................................Pgina 55 Ajustando endereo IP...................................................................................................Pgina 55 Setando o gateway.........................................................................................................Pgina 55 Configurando a resoluo DNS.....................................................................................Pgina 55 Configurando via servio DHCP..........................................................................................Pgina 55 Servios de rede.................................................................................................................................Pgina 55 DHCP..........................................................................................................................................Pgina 56 FTP..............................................................................................................................................Pgina 57 HTTP...........................................................................................................................................Pgina 58 SSH.............................................................................................................................................Pgina 58 SAMBA.......................................................................................................................................Pgina 59 Para saber mais..................................................................................................................................Pgina 60 iii Introduo O que Linux Linux um kernel de sistema operacional que um dos exemplos mais conhecido de software livre. Caractersticas Mantido pela kernel.org, com a superviso do criador do software o finlandes Linus Torvalds Deriva do Unix (minix) Multitarefa Multiusurio Suporte a multiprocessamento Disponvel para vrias plataformas de hardware, tais como: Intel e compatveis, Motorola, 68k, Power PC, Digital Alpha, Spark, Ultra Spark, Mips
Suporte a diversos protocolos e topologias de redes Distribudo sob a licena GPL Suporte a modularizao, ou seja, vrias funcionalidades podem ser adicionadas ou retiradas do software, via a utilizao
de mdulos, por exemplo: suporte a protocolos de redes, drivers para dispositivos, suporte a sistemas de arquivos, suporte a criptografia de dados, etc. Distribuies Linux O Linux, conforme dito anteriormente, o ncleo do sistema operacional. Por si s, o kernel do linux serve somente como interface e controle entre os demais softwares e o hardware. Ento, para se ter um Sistema Operacional completo se faz necessrio os aplicativos que faro uso do kernel para que o usurio possa realizar alguma tarefa. Como o Linux um software de cdigo aberto, vrias organizaes e empresas, se valendo desta caracterstica lanam suas verses do kernel mais um conjunto de aplicativos complementares, a cada verso constituda se d o nome de distribuio Linux. Algumas distribuies tem mais destaque hoje em dia, mas sempre esto surgindo novas distribuies que podem se tornar populares em curto espao de tempo. Como exemplo de distribuies de destaque podemos citar: Ubuntu, red hat, debian, suse, mandriva, gentoo, slackware. Console O linux trabalha tambm o conceito de consoles, que so as interfaces de usurio. Existem dois tipos de consoles para o Linux, a console texto, e a console grfica. A console texto(shell) por ser mais leve e mais fcil de ser acessada via rede a opo mais utilizada em servidores Linux, j a console grfica(X-window-system) mais utilizada em estaes de trabalho. Login Por sua caracterstica multiusurio, o Linux precisa de uma autenticao antes do usurio acessar qualquer das consoles (texto ou grfica). A autenticao consiste em digitar um nome de usurio e uma senha. DATAPREV Pgina 1 O usurio root O usurio root o usurio administrador do Linux, este usurio o nico que tem existncia obrigatria em qualquer verso de Linux ou Unix. com este usurio que so realizadas as tarefas administrativas do Linux, tais como configurao de servios, administrao de usurios, administrao de segurana de acesso, inicializao e finalizao de servios. TutorialLinux rea Nucleo DATAPREV Pgina 2 Sistema de arquivos Sistemas de arquivos so estruturas com as quais os sistemas operacionais organizam e armazenam informaes a respeito de arquivos e diretrios dentro de dispositivos de armazenamento, cada sistema operacional tem um sistema de arquivo nativo, assim como alguns tipos de dispositivo de armazenamento tambm tem o seu prprio sistema de arquivos. O Linux tem suporte a muitos sistemas de arquivos, entre os quais podemos citar: FAT(dos e windows 9X), NTFS(Windows NT, 200X, XP), JFS(Unix/IBM), XFS(IRIX), HPFS(OS/2) e ISO 9660(cdrom). Porm, os filesystems que implementam as caractersticas nativas do Linux so ext2, ext3, ext4 e reiserfs, sendo que cada um deles tem a mesma finalidade porm algumas diferenas em seu funcionamento interno. Os arquivos e diretrios no Linux tem as seguintes caracterticas: Os nomes dos arquivos e diretrios so case sensitive, ou seja, diferenciam maisculas de minsculas. Por exemplo, um arquivo
chamado teste.txt diferente de um outro chamado Teste.txt ou TESTE.txt Existem quatro tipos de arquivos: normais, links simblicos, diretrios e especiais. O tamanho mximo dos arquivos vai depender de qual filesystem for escolhido. O ext2, por exemplo, suporta arquivos at 2GB
j o ext3 suporta arquivos at 2 TiB As extenses dos arquivos so meramente informativas. Sendo assim, um arquivo executvel do Linux no depende de sua extenso
e sim da permisso de execuo. Existem trs nveis de segurana de acesso a arquivos e diretrios: dono, grupo e outros Arquivos ou diretrios com nome coamenando com o caracter . So considerados ocultos, e no so listados por alguns comandos
Com exceo do ext2, os sistemas de arquivos possuem suporte a journaling, que um recurso que possibilita a recuperao
rpida em caso de problemas. Diretrios padres Linux / Diretorio raiz, base para todos os demais diretrios /home Diretrio de dados de usurio, quando criamos um usurio comum debaixo deste diretrio que vo os arquivos pessoais e de configurao. Por padro os subdiretrios abaixo deste diretrio so criados com o mesmo nome dos usuarios. (por exemplo: /home/aluno) /root Arquivos pessoais do administrador (usurio root) /etc Arquivos de configurao /var Arquivos de dados de sistema /bin Arquivos executveis de programas /usr Arquivos diversos: executveis, dados, documentao DATAPREV Pgina 3 /boot Arquivos de inicializao do sistema /dev Arquivos para acesso a dispositivos /mnt /media Diretrios utilizados para montagem de dispositivos /lib Arquivos de biblioteca de funes do sistema e drivers(mdulos) /proc /sys Arquivos para visualizao de processos e configuraes de hardware /opt Diretrio para instalao de programas de terceiros /tmp Armazena arquivos temporrios Formato de comando no ambiente Texto do Linux comando [opes] [parmetros] opes, explicitam modificaes na forma padro de execuo do comando podem ser precedidas um ou dois hfens (- ou --), podem existir formatos curtos (representados por uma letra) ou longos (representados por palavras) para representar opes parmetros, valores a serem manipulados pelo comando, podem ser um ou mais arquivos ou podem tambm ser valores texto ou numricos a serem manipulados Redirecionamento de sadas Quando executamos um comando geralmente ele nos retorna todas as suas mensagens na tela, por exemplo quando executamos um ls ele nos mostra uma lista dos arquivos e diretrios na tela. Isto acontece pois a tela a sada padro para a maioria dos comandos. Quando um comando precisa de interao geralmente a entrada padro feita pelo teclado, para a maioria dos comandos a entrada padro o teclado. Quando, por algum motivo, necessitamos que a sada ou entrada dos dados para/de comandos seja um arquivo ou mesmo um outro comando, utilizamos o redirecionamento de entrada ou sada. < redireciona a entrada do comando. > redireciona a sada do comando. >> redireciona a sada do comando efetuando uma concatenao no arquivo. > redireciona mensagens de erro. 1. | atua fazendo com que a sada de um comando sirva de entrada para outro. Exemplos: # 1) Redirecionar a entrada do comando cat para ler o contedo do arquivo teste.txt: cat > teste.txt # 2) Redirecionar a sada do comando echo para o arquivo teste.txt: echo 'ola' > teste.txt # 3) Redirecionar sada de erro do comando ls e gravar no arquivo erro-ls.txt: ls abacaxi.txt 2> erro-ls.txt # 4) Adicionar outra mensagem no arquivo teste.txt: echo 'ola' >> teste.txt TutorialLinux rea Nucleo DATAPREV Pgina 4 # 5) Redirecionar sada de erro do comando ls e adiciona no arquivo erro-ls.txt: ls abacaxi.txt 2>> erro-ls.txt # 6) Redirecionar sada do comando ls para o comando more: ls | more tee Funo: Recebe a sada de um comando, a escreve num arquivo e redireciona novamente para a sada padro. tee arquivo escreve a sada em arquivo sobregravando e repete a sada na sada padro. tee -a arquivo escreve a sada em arquivo no sobregravando e repete a sada na sada padro. Exemplos: # 1) recebe a sada do comando cat, escreve no arquivo teste2.txt e exibe o resultado na tela cat teste.txt | tee teste2.txt # 2) recebe a sada do comando cat, escreve no arquivo teste2.txt e a sada redirecionada para o comando more cat teste.txt | tee -a teste2.txt | more Documentao A grande maioria do comandos Linux tem uma pgina de manual (comando man) ou uma opo help, que auxilia o usurio a obter informaes sobre a execuo do comando. Para acesso a pgina de manual do comando utlizamos o comando man. Alm disto existe o diretrio /usr/share/doc, que muitos pacotes de aplicativos utilizam para colocar documentao extra a respeito do funcionamento das aplicaes. man Funo: exibe pginas de manual para comandos Exemplos de uso: #exibir pagina de manual do comando ls man ls Manipulao de arquivos e diretrios ls Funo: listar arquivos e diretrios Exemplos de execuo: execuo sem parmetros s retorna os nomes do arquivos e diretrios ls Execuo com -l, lista alm dos nomes as outras caractersticas dos arquivos ls -l total 237600 -rw-r--r-- 1 root root 141713418 2009-06-15 11:52 arq1.txt -rw-r--r-- 1 root root 78131200 2009-06-15 11:52 arq2.txt -rw-r--r-- 1 root root 23195648 2009-06-15 11:52 arq3.txt drwxr-xr-x 2 root root 4096 2009-06-15 11:51 dir #tomando como exemplo a primeira linha retornada, podemos ver as seguintes caractersticas: -rw-r--r-- 1 root root 141713418 2009-06-15 11:52 arq1.txt | | | | | | | v | | | | | | TutorialLinux rea Nucleo DATAPREV Pgina 5 Permisses v | | | | | n de Links v v | | v Dono Grupo v | Nome do arquivo Tamanho do arquivo (bytes) v Data/hora da ltima modificao #Execuo com -lh, as opes podem ser combinadas, ou seja, a opo -l combinada com a -h (o que pode ser expresso como -lh, ou -l -h) lista os tamanhos de arquivos e diretrios em Bytes, Kilobytes, Megabytes, Gigabytes, ... ls -lh #Execuo com -a, lista inclusive arquivos ocultos (arquivos ou diretrios cujo nome comea com .) ls -a #listando arquivo(s) especfico(s) ls arq1.txt arq2.txt .oculto.txt #Listagem recursiva ls -R Uso de coringas * O comando ls tem muitas outras opes, para conhecer mais experimente executar o comando: man ls * Para sair do man ls, tecle a letra q pwd Funo: mostrar diretrio atual (tambm chamado de diretrio corrente, ou diretrio de trabalho) Exemplo de execuo: pwd /root/curso cd Funo: Mudar de diretrio Exemplos de execuo: #Ir para o diretrio HOME cd #Ir para diretrio /tmp cd /tmp Referncias em relao a diretrios Diretrio corrente . Diretrio anterior .. Diretrio HOME ~ ltimo diretrio acessado - mkdir Funo: cria diretrio(s) Exemplos de execuo: TutorialLinux rea Nucleo DATAPREV Pgina 6 #Criao de um diretrio mkdir dir2 #Criao de um ramo de diretrios: mkdir -p dir3/teste/a #Criao de mais de um diretrio ao mesmo tempo mkdir dir4 dir5 teste teste2 teste3 rmdir Funo: remove diretrio(s) Exemplos de execuo: #Remoo de um diretrio rmdir dir2 #Remoo de um ramo de diretrios: rmdir -p dir3/teste/a #Remoo de mais de um diretrio ao mesmo tempo rmdir dir4 dir5 *obs: rmdir s funciona em diretrios sem arquivos ln Funo: cria links(ligaes) em arquivos Exemplos de execuo: #Cria um novo link para o arquivo arquivo.txt ln arquivo.txt arq_lnk.txt #Cria um link simblico para o arquivo.txt ln -s arquivo.txt arq_sym.txt #Cria link simblico de diretrio ln -s temporario /tmp *obs: Existem dois tipos de links: links diretos (hard links) e links simblicos (symlinks) Links diretos fazem referncia ao inode do arquivo referenciado, j os links simblicos fazem referncia por nome aos arquivos/diretrios.
S possvel criar links simblicos para diretrios links diretos no podem referenciar arquivos em outras parties, j links simblicos podem. touch Funo: Se o arquivo no existir ele criado vazio, se o arquivo existir somente a data da alterao modificada. Exemplos de execuo: touch arquivo.txt cp Funo: Copia arquivo(s) ou diretrio(s) TutorialLinux rea Nucleo DATAPREV Pgina 7 Exemplos de execuo: #para copiar um arquivo com outro nome cp arquivo.txt bkp_arquivo.txt #para copiar para outro diretrio cp arquivo.txt teste #para copiar varios arquivos para um diretrio cp arq1.txt arq2.txt teste3 #para copiar um diretrio inteiro para outro cp -r teste /tmp #podemos utilizar coringas cp arq* teste mv Funo: move ou renomeia arquivos Exemplos de execuo: #renomeando arquivo mv teste dir_teste #movendo arquivos mv arq_lnk.txt dir_teste #mover diretrios inteiros mv teste2 /tmp rm Funo: remover arquivos Exemplos de execuo: #remover arquivo rm bkp_arquivo.txt #remover diretorio rm -R teste3 #removendo multiplos arquivos rm arq1.txt arq2.txt #usando coringas rm arq_teste* *obs.: rm -R funciona para remover diretrios mesmo se eles no estiverem vazios rm -i, faz com que o rm questione antes de remover cada arquivo rm -f, faz com que o rm no questione antes de remover cada arquivo (este o padro) cat Funo: exibe o contedo de um ou vrios arquivo(s) da primeira linha at a ltima Exemplos de execuo: TutorialLinux rea Nucleo DATAPREV Pgina 8 #Exibe o contedo de /etc/passwd cat /etc/passwd #Exibe o contedo de multiplos arquivos (concatena) cat /etc/passwd /etc/group /etc/issue #Usando coringas cat arquivo* tac Funo: exibe o contedo de um ou vrios arquivos da ltima linha at a primeira(inverso do cat) Exemplos de execuo: #Exibe o contedo de /etc/passwd tac /etc/passwd #Exibe o contedo de multiplos arquivos (concatena) tac /etc/passwd /etc/group /etc/issue #Usando coringas tac arquivo* head Funo: exibe as primeiras linhas de um ou vrios arquivos texto Exemplos de execuo: #Exibindo as 10 primeiras linhas de um arquivo (padro) head arquivo.txt #Exibindo as 5 primeiras linhas de um arquivo head -5 arquivo.txt tail Funo:Exibe as ltimas linhas de um arquivo ou vrios texto Exemplos de execuo: #Exibindo as 10 ultimas linhas de um arquivo (padro) tail arquivo.txt #Exibindo as 5 ltimas linhas de um arquivo tail -5 arquivo.txt #Exibindo as ultimas 10 linhas e continuando a exibio assim que novas linhas so apendadas ao arquivo tail -f arquivo.txt less Funo: Exibio navegvel de um arquivo texto Exemplos de execuo: less arquivo.txt more TutorialLinux rea Nucleo DATAPREV Pgina 9 Funo: Exibio navegvel de um arquivo texto Exemplos de execuo: more arquivo.txt *obs.: Tanto o more quanto o less realizam a mesma funo, a diferena a forma que a navegao realizada em cada um deles.
wc Funo: Realiza contagens de nmero de caracteres, palavras ou linhas de um arquivo texto Exemplos de execuo: #Contagem de linhas, palavras e caracteres wc arquivo.txt #Contagem de linhas wc -l arquivo.txt #Contagem de palavras wc -w arquivo.txt #Contagem de caracteres wc -c arquivo.txt Procura de arquivos e diretrios: find Funo: localizalizao de arquivos, baseados em algum(ns) critrio(s) Exemplos de execuo: #Procurar por aquivos com tamanho maior que 1Mb abaixo do diretrio /usr/share/doc find /usr/share/doc/ -size +1000k #Procurar por aquivos que tenham como dono o usurio aluno abaixo do diretrio /home find /home/ -user aluno #Procurar por arquivos que foram acessados a 10 minutros atrs abaixo do diretrio /tmp find /tmp/ amin 10 #Procurar por aquivos que tenham sido acessados a 1 dia atrs a partir do diretrio atual find . -atime 1 #O find permite ainda que seja executado algum outro comando aps a localizao do(s) arquivios(s) utilizando a opo -exec. Neste exemplo, realiza a listagem completa (ls -lah) das caractersticas dos arquivos localizados abaixo do diretrio /usr/share/doc/que tenham mais que 1000K. Repare que os caracteres {} so usados no lugar onde devem ficar os nomes dos arquivo localizados e o \; indica o fim do comando. find /usr/share/doc/ -size +1000k -exec ls -lah {} \; locate Funo: Localizao rpida de arquivos pelo nome ou por parte do nome, baseado em ndice. Exemplos de execuo: TutorialLinux rea Nucleo DATAPREV Pgina 10 #localizando arquivo que contenham a string mkdir locate mkdir updatedb Funo: Atualizar o ndice que o comando locate utiliza para encontrar arquivos. A execuo eficaz do comando locate depende da execuo peridica do updatedb, pois o ndice criado estrico e conforme so criados novos arquivos desde a ltima execuo do updatedb, estes arquivos no sero listados pelo locate at a prxima execuo do updatedb. Exemplos de execuo: %Atualizar ndices para o locate updatedb slocate Funo: locate melhorado Exemplos de execuo: #localizando arquivo(s) que contenha(m) a palavra less slocate less #atualizando base de pesquisa slocate -u whereis Funo: Funo para se encontrar a localizao do executvel, do cdigo-fonte ou da p ina de manual do comando especificado. Exemplos de execuo: Encontrando a localizao do executvel, do cdigo-fonte e da pgina de manual do comando ls whereis ls Encontrando a localizao do executvel do comando ls whereis -b ls Encontrando a localizao da pgina de manual do comando ls whereis -m ls Encontrando a localizao do cdigo-fonte do comando ls whereis -s ls which Funo: Localiza um programa na estrutura de diretrios do path. muito semelhante ao locate , mas a busca feita no path do sistema e somente so mostrados arquivos executveis. Exemplos de execuo: #localizar onde se encontra o comando ls which ls montagem: Sistemas de arquivos Cada sistema operacional, por ser encarregado de organizar os dados nos dispositivos de TutorialLinux rea Nucleo DATAPREV Pgina 11 armazenamento, tem que implementar uma maneira na qual possa guardar e restaurar as informaes armazenadas em discos, cds, pen-drives e outros, ento a estrutura criada para esta funo chamada de sistema de arquivos, normalmente cada sistema operacional tem o seu sistema de arquivos nativo, existem sistemas de arquivos inerentes a um determinado tipo de dispositivo (como o ISO9660 para cdrom de dados). No caso do Linux podemos usar mais de um tipo (ext2, ext3, ext4, reiserfs, jfs, xfs), porm o Linux suporta o acesso a outros tipos de sistemas de arquivos. Alguns exemplos de sistemas de arquivos: ext2 - Antigo sistemas de arquivos utilizado pelo UNIX/Linux, foi substitudo pelo ext3 ext3 - Atual sistema de arquivos utilizado pelo Linux reiserfs - Sistema de arquivos para Linux, similar ao ext3 iso9660 - Sistema de arquivos para CDROM de dados fat - Antigo sistemas de arquivos utilzado pelo DOS/Windows ntfs - Sistema de arquivos atual utilizado nos Windows mount Funo: montar sistemas de arquivos, ou seja, vincular um diretrio com um dispositivo ou partio. Exemplos de uso: #montando um cdrom no diretrio /mnt mount -t iso9660 /dev/cdrom /mnt umount Funo: desmonta um sistema de arquivos, ou seja, desvincula um diretrio de um dispositvo ou partio. Exemplos de uso: #desmontando um sistema de arquivo montado em /mnt umount /mnt du Funo:Utilizado para verificar o quanto est sendo utilizado em cada diretrio. Exemplos de uso: #mostra o espao ocupado (em bytes) por cada subdiretrio abaixo /etc e uma totalizao de espao na ltima linha du /etc #mostra o espao ocupado (em bytes, Kilobytes, Megabytes, ) por cada subdiretrio abaixo /etc e uma totalizao de espao na ltima linha du -h /etc #mostra o espao total ocupado pelo /etc (em bytes) du -s /etc #mostra o espao total ocupado pelo /etc (em bytes, Kilobytes, Megabytes, ) du -sh /etc df Funo: Mostra a relao de filesystems atualmente montados e a sua respectiva tax de ocupao. Exemplos de uso: #mostra a lista de filesystems montados (valores em bytes) df #mostra a lista de filesystems montados (valores em bytes, Kilobytes, Megabytes, Gigabytes, ...) df -h TutorialLinux rea Nucleo DATAPREV Pgina 12 Shell O shell fornece uma interface de texto, para que o usurio interaja com Linux, interpretando e repassando os comandos digitados pelo usurio. Principais Shells; sh - Bourne shell, shell original do ambiente Unix/Linux csh C shell, shell que possui caractersitcas da linguagem C para criao de scripts ksh korn shell, shellpadro dos Unix bash shel padro para os Linux atuais. Tarefas do Shell; * Analisar dados a partir do prompt (dados de entrada) * Interpretar comandos (caracteres curinga, aliases) * Controlar ambiente (variveis de ambiente) * Fazer redirecionamento de entrada e sada * Execuo de programas (repassa ao kernel da funo a ser executada) * Linguagem de programao interpretada (execuo de scripts) Shell Bash; Como este o shell padro para a esmagadora maioria de distribuies Linux, este ser o shell que iremos referenciar neste manual. Processo de configurao de ambiente; Quando um novo usurio adicionado no sistema, criado por padro um diretrio pessoal debaixo do diretrio /home com o prprio nome da conta adicionada. Dentro deste diretrio so criados vrios arquivos onde destacam-se: .bash_profile - este arquivo contm dados da configurao global do ambiente utilizado pelo usurio, ele interpretado todas as vezes que se faz um login. .bashrc - este arquivo interpretado todas as vezes que um shell interativo iniciado, nele so definidos os alias que podem ser utilizados. .bash_logout - este arquivo interpretado todas as vezes que o usurio efetua um logout no sistema. DATAPREV Pgina 13 Perfis de usurio Criao de usurios; adduser Funo: Adiciona usurio exemplo de uso: Opes: --home define um diretrio onde ser o diretrio pessoal do usurio. --gecos insere um comentrio na criao da conta. --gid insere o usurio em um grupo j existente. --shell define uma shell a ser usado no login. adduser aluno cria o usurio aluno Alterao de senha; passwd Funo: O comando passwd utilizado para definir ou trocar a senha dos usurios do sistema. #troca senha do usurio atual. passwd #Troca a senha o usurio aluno (quando usado como root). passwd aluno #bloqueia conta. (quando usado como root) passwd -l conta #desbloqueia conta. (quando usado como root) passwd -u conta #retira senha. (quando usado como root) passwd -d conta Excluso de usuarios Para proceder com a excluso de um usurio, usa-se o comando userdel seguindo do nome da conta a qual ser excluida. userdel aluno exclui o usurio aluno. userdel -r <conta> exclui o usurio bem como o seu diretrio pessoal com todo o seu contedo. Gerenciando grupos - groupadd/groupdel Existem no sistema diversos grupos padres, estes grupos poder ser listados a partir do arquivo /etc/group. Neste arquivo esto os grupos com os seus repectivos membros. Para adicionar um novo grupo no sistema usa-se o comando groupadd seguido do nome do grupo. groupadd turma cria um grupo chamado turma. DATAPREV Pgina 14 groupdel <grupo> remove grupo. Assim como para cada grupo criado gerada uma entrada de registro no arquivo /etc/group, para cada conta criada gerada uma entrada de registro nos arquivos /etc/passwd e /etc/shadow e tambm no /etc/group, uma vez que como j comentado anteriormente cada usurio do sistema constitui-se em um novo grupo por padro. permisso de arquivos e diretorios No Linux cada arquivo tem com uma de suas caracterstas as permisses de acesso. A cada arquivo/diretrio associado um proprietrio, um grupo e seus respectivos direitos. Ao listamos um arquivo na forma longa (ls -la), observamos o seguinte: -rwxr-r-- 36 root suporte 4096 Nov 3 14:53 teste.txt Neste exemplo observamos que o arquivo teste.txt tem como dono o usuro root e como grupo suporte. O usurio root tem os direitos de leitura (r), escrita (w) e execuo (x), o grupo suporte tem o direito de leitura (r) apenas, e os demais tambm apenas leitura(r). O primeiro caracter (-) define qual o tipo do arquivo, a saber: - arquivo regular d diretrio l link simblico b dispositivos orientados a blocos (hd, cdrom) c dispositivos orientados a caracteres (modem, porta serial) s socket (comunicao entre processos) p pipe (comunicao ente processos) Os outros caracteres (r, w e x) definem o tipo de permisso para as seguintes categorias: dono, grupo e outros. Dono o usurio que criou o arquivo ou diretrio. Grupo um conjunto de usurios, sendo que cada usurio do sistema constitui-se tantm em um grupo, podendo desta maneira liberar direitos sobre os seus arquivos e/ou diretrios para todos que fazem parte do seu grupo. Outros a categoria de usurios que no dono e nem pertence ao grupo do arquivo/diretrio. Os tipos de permisses que podem ser atribudas a cada uma destas categorias so: Permisso Arquivo Diretrio Leitura (r) Examinar contedo do arquivo Listar arquivos do diretrio Escrita (w) Modificar o contedo do arquivo Alterar diretrio Execuo (x) Executar o arquivo Pesquisar no diretrio Permisses Especiais TutorialLinux rea Nucleo DATAPREV Pgina 15 SUID (4000) - Quando um arquivo est com o bit suid ligado, o mesmo ser executado por qualquer usurio como se fosse o prprio dono que estivesse executando o mesmo. SGID (2000) Quando um diretrio est com o bit sgid ligado, qualquer arquivo criado dentro do diretrio ter o mesmo grupo do diretrio. STICKY (1000) Quando um diretrio est com o bit sticky ligado, somente o dono do arquivo poder proceder com a excluso dos arquivos criados dentro do mesmo. Permises Padro (umask) As definies de permisso de acesso de arquivos e diretrios quando da criao dos mesmos podem ser definidas utilizando o comando umask. Perceba que ao criamos um arquivo ou diretrio como um usurio comum o padro o seguinte: arquivo - 664 (-rw-rw-r--) diretrio - 775 (drwxrwxr-x) Ao criamos um arquivo ou diretrio com o usrio root o padro muda para: arquivo - 644 (-rw-r--r--) diretrio - 755 (drwxr-xr-x) Isto porque o valor de umask do root 022. Enquanto que para o demais usurios 002. chmod Funo: Permite efetuar mudanas no acesso de um arquivo/diretrio. Este comando pode ser utilizando de dois modos: simblico e octal. Modo Simblico : u usurio ou dono do arquivo g grupo do arquivo o outros usurios a todos (u, g, o) + concede permisso - remove permisso = concede somente as permisses definidas, retirando os outros direitos Modo Octal : Leitura (r) 1. Escrita (w) 1. Execuo (x) 1. TutorialLinux rea Nucleo DATAPREV Pgina 16 Neste modo voc pode definir as propriedades para dono, grupo e outros diretamente ao invs de fazer separadamente como no modo octal. Para se obter o valor referente a permisso que se deseja atribuir ao arquivo, basta fazer uma soma entre eles. Segue abaixo uma lista de permisses utilizando este modo: - Nenhuma permisso de acesso. Equivalente a -rwx 1. 1 - Permisso de execuo (x). 2 - Permisso de gravao (w). 3 - Permisso de gravao e execuo (wx). 4 - Permisso de leitura (r). 5 - Permisso de leitura e execuo (rx). 6 - Permisso de leitura e gravao (rw). 7 - Permisso de leitura, gravao e execuo. Equivalente a +rwx. Exemplos de uso: 1) Permitir que todos os usurios que pertenam ao grupo dos arquivos tenham permisses de leitura em todos os arquivos do diretrio atual: chmod g+r * 2) Retirar permisso de leitura do arquivo teste.txt para os outros usurios: chmod o-r teste.txt 3) Incluir permisso de execuo do arquivo teste.txt para o dono e outros usurios chmod uo+x teste.txt 4) Incluir permisso de execuo do arquivo teste.txt para o dono, grupo e outros chmod a+x teste.txt 5) Definir somente a permisso de leitura e gravao do arquivo teste.txt para todos os usurios chmod a=rw teste.txt chown Funo:permite ao root alterar tanto o dono como o grupo de arquivos e diretrios. Com a opo -R possvel fazer a alterao de forma recursiva. Exemplos de uso: alterar o grupo do arquivo teste.txt para users, usa-se: chown .users teste.txt; para alterar o dono do arquivo teste.txt para aluno TutorialLinux rea Nucleo DATAPREV Pgina 17 chown aluno teste.txt chgrp Funo: Permite alterar o grupo de arquivos ou diretrios. Exemplos de uso: chgrp users teste.txt TutorialLinux rea Nucleo DATAPREV Pgina 18 Gerenciamento de processos Devido a sua caracterstica multitarefa, ou seja, executar diversos processos de programas simultaneamente, o Linux prov mecanismos para gerncia de processos. Segue abaixo os principais atributos de um processo: PID identifica um processo em execuo. PPID identifica o processo pai que gerou o processo-filho UID identifica o usurio que criou o processo. GID identifica o grupo ao qual pertence o processo. Quanto execuo, os processos podem ser classificados em: foreground, background e quanto ao tipo os processos podem ser em lote e daemons. foreground processos iniciados no terminal de comando que so exibidos na tela enquanto estiverem em execuo, esse tipo de processo pode ser interrompido digitando crtl+z e terminado digitando ctrl + c. background processos tambm iniciados no terminal mas no exibem na tela nenhuma informao, processos em background so iniciados colocando o sinal & no final. lote so os processos iniciados por um agendador de tarefas (at, cron) daemons so os processos normalmente executados na inicializao do sistema (samba, dhcp, etc) ps O comando ps exibe os processos que esto sendo executados no sistema. ps mostra processos usurio atual Opes: -a mostra todos os processos independente de usurio -f mostra processos em forma de rvore. -w mostra na proxima linha o que no coube na tela -u <usuario> mostra processos de determinado <usurio> kill O comando kill utilizado, por padro, para terminar ( matar ) processos ativos. kill <PID do processo> termina o processo com o PID fornecido (o PID pode ser obtido na primeira coluna do comando ps). Opes: -9 <PID do processo> fora o trmino do processo que tem o PID fornecido. DATAPREV Pgina 19 -18 <PID do processo> continua processos. -19 <PID do processo> interrompe processos. jobs O comando jobs exibe uma lista dos processos parados ou rodando em segundo plano. bg Este comando utilizado para colocar processos parados ou em foreground para executar em segundo plano. bg % <jobs> coloca o processo que tem <jobs> fornecido (onde job nmero que aparece na primeira coluna do comando jobs) em background. fg Utiliza-se o comando fg para colocar processos em background ou parados para executar em primeiro plano. fg %<jobs> coloca o processo que tem <jobs> fornecido (onde job nmero que aparece na primeira coluna do comando job) em foreground. killall; Funo: semelhante ao killl, sua funo terminar processos, porm usando nomes ao invs de pid. Exemplos de uso: killall updatedb top, Funo: sua funo semelhante ao comando ps, porm o top cria uma interface onde possvel uma melhor visualizao dos processos, bem como sua manipulao Exemplos de uso: Exibe a interface do top top htop; Funo: semelhante ao top, porm apresenta algumas diferenas, inclusive melhor para visualizao de uso de mltiplos processadores Exemplos de uso: Exibe a interface do top htop nice; TutorialLinux rea Nucleo DATAPREV Pgina 20 Funo: Configura a prioridade da execuo de um comando, na chamada do comando. Os nveis de prioridade vo do -20 (mais prioritrio) at o 19 (menos prioritrio), sendo a prioridade 0 (zero) o nvel de prioride default. Exemplos de uso: chamando comando com prioridade alta nice -9 updatedb renice; Funo: reconfigura a prioridade de execuo um comando j em execuo, a redefinio pode ser feita sabendo-se o pid do comando, o usurio dono do comando ou o grupo Exemplos de uso: redefinindo a prioridade para -10 do comando pelo pid renice -10 99 ou renice -10 -p 99 redefinindo a prioridade para +10 do(s) comando(s) do usuario aluno renice +10 -u aluno redefinindo a prioridade para 0 dos comandos executados por usurios do grupo users renice 0 -g users nohup. Funo: 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. Exemplos de uso: executando updatedb que no poder ser cancelado por kill ou kilall nohup updatedb& TutorialLinux rea Nucleo DATAPREV Pgina 21 Editores de texto Vi. O VI o editor de textos padro em todas as distribuies Linux. Possui um certo grau de complexidade o que o faz ser um dos editores de textos com vrios recursos. Abaixo segue uma lista de exemplos de uso do editor vi. vi teste.txt abri o arquivo teste.txt vi +/telnet /etc/inetd.conf abri o arquivo /etc/inetd.conf na primeira ocorrncia da palavra telnet vi +10 /etc/inetd.conf abri o arquivo /etc/inetd.conf na linha de nmero 10. modo comando e modo edio Aps a abertura de um arquivo os seguintes comandos podem ser utilizados: G move o cursor para ltima linha. nG move o cursor para a linha especificada. H move o cursor para a primeira linha da tela. L move o cursor para a ltima linha da tela. /palavra pesquisa por palavra. n repete a pesquisa. i entra em modo de insero. <esc> termina o modo de insero. dd exclui a linha atual. ndd exclui a quantidade de n linhas especificadas. x exclui um caracter. u desfaz a ltima ao. ny copia a quantide de n linhas especificadas para o buffer. p cola o que est no buffer. :%s/palavra1/palavra2/g substitui no texto qualquer ocorrncia da palavra 1 pela palavra2. :x salva e fecha o arquivo. :w salva o arquivo. :w salva a cpia do arquivo com outro nome. :q fecha o arquivo. DATAPREV Pgina 22 : q! fecha o arquivo, e sai sem salvar. TutorialLinux rea Nucleo DATAPREV Pgina 23 Agendamentos O Linux prov dois mecanismos de agendamento de execuo de comandos: o cron e o at, para que o sistema proceda com a realizao de tarefas rotineiras. cron; O cron trabalha com agendamento repetitivo de comandos, baseado em configurao de arquivos texto. O cron precisa do programa crond ou cron estar rodando para que os agendamentos sejam efetivamente executados. Configurando o cron; Arquivo /etc/crontab podemos agendar uma execuo repetitiva de um comando, editando este arquivo, usando a seguinte sintaxe: minuto hora dia ms dia_da_semana usuario_dono comando v | | | | (0-59) v | | | (0-23) v | | (1-31) v | (1-12) v (0-7,sendo 1=segunda e 0 e 7=domingo) O caractere * significa todo O combinao */N indica execuo a cada N (minutos, horas ou dias) exemplo: Agendar execuo de um comando chamado /usr/local/bin/teste, como usuario aluno, s 07:00 horas da manh do dia 30/06 0 7 30 6 * aluno /usr/local/bin/teste Agendar execuo de um comando chamado /usr/local/bin/teste, como usuario aluno, de duas em duas horas, todos os dias do ms de Setembro * */2 * 9 * aluno /usr/local/bin/teste Agendar execuo de um comando chamado /usr/local/bin/teste, como usuario root, s 18:00, aos Sbados do ms de Setembro 0 18 * 9 6 root /usr/local/bin/teste Diretrios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly, /etc/cron.d DATAPREV Pgina 24 Estes diretrios funcionam em conjunto com o /etc/crontab para que determinados scripts rodem na periodicidade: hora em hora(/etc/cron.houly) diria (/etc/cron.daily.) semanal (/etc/cron.weekly) mensal (/etc/cron.monthly) Basta somente copiar o script a ser executado para o diretrio com a peridicidade desejada. Para saber em que momento o script ser executado, basta ver o agendamento de execuo no /etc/crontab. comando crontab; Funo:agenda tarefas particulares de cada usurio Exemplos de uso: edita o arquivo de tarefas agendadas pelo usuario atual (a sintaxe a mesma utilizada no /etc/crontab com a exceo de que no necessrio o campo de usurio dono) crontab -e lista tarefas agendadas pelo usuario atual crontab -l anacron; Funo: Semelhante ao cron, executa de forma assincrona tarefas agendadas. At; Funo: Ao contrrio do corn que repetidamente excuta tarefas agendadas, o at executa uma nica vez de um comando agendado. Exemplos de uso: agendando o script teste.sh para ser executado s 10:00 at -f teste.sh 10:00 agendando o script teste.sh para ser executado amanh s 23:00 at -f teste.sh 23:00 tomorrow agendando o script teste.sh para ser executado daqui a 30 minutos at -f teste.sh now + 30 min agendando o script teste.sh para ser executado daqui a 10 dias at -f teste.sh now + 10 days agendando o script teste.sh para ser executado s 07:00 do dia 30/06/09 TutorialLinux rea Nucleo DATAPREV Pgina 25 at -f teste.sh 07:00 06/30/09 atq comando para visualizar tarefas agendadas com at Exemploo de uso: atq comando atrm comando para remover comandos agendados com at Exemplo de uso: Para remover agendamentos, primeiro executamos o atq para obter o ID da tarefa agendada atrm ID TutorialLinux rea Nucleo DATAPREV Pgina 26 Utilitrios Filtros: grep; Funo: filtra linhas de um ou mais arquivos que tenham um determinado padro de texto Exemplos de execuo: grep aluno /etc/passwd uniq; Funo: Exibe contedo de um arquivo, descartando linhas com mesmo conteudo sucessivamente repetidas, exibindo o valor da linha repetida somente uma nica vez. Exemplos de execuo: exibe conteudo de teste_unuiq.txt, exibindo linhas repetidas somente uma nica vez. uniq teste_uniq.txt cut; Funo: extrai partes de cada linha do arquivo. De acordo com delimitadores ou posio na linha. Exemplos de execuo: extraindo do 5 caracter at o 10 caracter de cada linha do arquivo teste_uniq.txt cut -c 5-10 teste_uniq.txt extraindo do 1 caracter at o 10 caracter de cada linha do arquivo teste_uniq.txt cut -c -10 teste_uniq.txt extraindo do 4 caracter adiante de cada linha do arquivo teste_uniq.txt cut -c -10 teste_uniq.txt extraindo o segundo campo de cada linha do arquivo teste_uniq.txt, considerando ';' como separador cut -f2 -d ';' teste_uniq.txt Ordenao: sort; Funo: ordena linhas do arquivo Exemplos de execuo: realizando o ordenamento alfabtico das linhas DATAPREV Pgina 27 sort teste_sort.txt realizando ordenamento numrico das linhas sort -n teste_sort.txt realizando ordenamento alfabtico de acordo com a segunda coluna sort -k2 teste_sort.txt Conversores: tr; Funo: troca ou deleta caracteres, exibindo resultado na tela Exemplos de execuo: trocando o caracter por c no arquivo teste_tr.txt tr '' 'c' < teste_tr.txt deletando (-d) caracter # de teste_tr.txt tr -d '#' < teste_tr.txt Alterando todo o texto de teste_tr.txt para maisculas tr [:lower:] [:upper:] < teste_tr.txt Alterando todo o texto de teste_tr.txt para maisculas e gravando alterao no arquivo teste_tr_maiusculas.txt tr [:lower:] [:upper:] < teste_tr.txt > teste_tr_maiusculas.txt od; Funo: exibe conteudo de arquivos em vrios formatos (octal, hexadecimal, ASCII) Exemplos de execuo: Exibe conteudo do arquivo na forma ASCII od -c teste_od.txt Exibe conteudo do arquivo na forma octal od teste_od.txt Exibe conteudo do arquivo na forma Hexadecimal od -h teste_od.txt Compactadores: gzip, Funo: compactar um arquivo TutorialLinux rea Nucleo DATAPREV Pgina 28 Exemplos de execuo: compactando arquivo com gzip gzip teste_gzip.txt obtendo informaes (-l) de um aquivo compactado gzip -l teste_zip.txt.gz gunzip, Funo: descompactar um arquivo Exemplos de execuo: descompactando arquivo com gzip gunzip teste_zip.txt.gz bzip2; Funo: compactar um arquivo, normalmente tem uma taxa de compactao melhor que ao gzip Exemplos de execuo: compactando arquivo com bzip2 bzip2 teste_zip.txt bunzip2; Funo: decompactar um arquivo compactado com bzip Exemplos de execuo: descompactando arquivo com bzip2 bunzip2 teste_zip.txt.bz2 Empacotamento de arquivos; tar; Funo: empacota arquivo em um nico arquivo Exemplos de execuo: criando(c) um pacote com o comando tar, com o nome(f) de teste.tar, com os arquivos do diretorio /etc e o arquivo teste_tar.txt tar cf teste.tar /etc teste_tar.txt criando(c) um pacote com o comando tar, exibindo o nome dos arquivos processados(v), com o nome(f) de teste.tar.gz, com os arquivos do diretorio /etc e o arquivo teste_tar.txt, compactando com o programa gzip(z) TutorialLinux rea Nucleo DATAPREV Pgina 29 tar cvzf teste.tar.gz /etc teste_tar.txt criando(c) um pacote com o comando tar, exibindo o nome dos arquivos processados(v), em uma(f) unidade de fita(/dev/st0), com os arquivos do diretorio /etc e o arquivo teste_tar.txt, compactando com o programa gzip tar cvzf /dev/st0 /etc teste_tar.txt criando um pacote com o comando tar, com o nome de teste.tar.bz2, com os arquivos do diretorio /etc e o arquivo teste_tar.txt, compactando com o programa bzip2 tar cvjf teste.tar.bz2 /etc teste_tar.txt extraindo(x) de um pacote criado com o comando tar, de nome(f) de teste.tar, o arquivo teste_tar.txt tar xf teste.tar teste_tar.txt extraindo(x) todos os arquivos de um pacote criado com o comando tar e compactado com o programa gzip(z), de nome(f) de teste.tar.gz, exibindo o nome dos arquivos processados(v) tar xvzf teste.tar.gz extraindo(x) todos os arquivos de um pacote criado com o comando tar, de nome(f) de teste.tar, hospedado em uma fita, exibindo o nome dos arquivos processados(v) tar xvzf /dev/st0 extraindo(x) de um pacote criado com o comando tar e compactado com o programa bzip2(j), de nome(f) de teste.tar, o arquivo teste_tar.txt, exibindo o nome dos arquivos processados(v) tar xjvf teste.tar.bz2 teste_tar.txt listando(t) os arquivos de um pacote criado com o comando tar, com o nome de teste.tar tar tf teste.tar listando(t) os arquivos de um pacote criado com o comando tar, com o nome de teste.tar.gz tar tf teste.tar.gz listando(t) os arquivos de um pacote criado com o comando tar, com o nome de teste.tar.bz2 tar tf teste.tar.bz2 cpio; Funo: Semelhante ao tar, cpio tambm empacota vrios arquivo em um nico arquivo, sendo que uma das principais diferenas que o cpio precisa de um redirecionamento de entrada para saber a lista de arquivos a processar, ou seja necessrio que exista um arquivo ou comando que gere a lista de arquivos para o cpio processar. Exemplos de execuo: gerando a lista com os arquivos do diretrio /etc com find e redirecionando para o cpio criar um arquivo de pacote(-o) com o nome de bkp_etc.cpio, exibindo os arquivos que esto sendo processados(-v), find /etc |cpio -ov > bkp_etc.cpio TutorialLinux rea Nucleo DATAPREV Pgina 30 usando o arquivo lista_cpio.txt com uma lista dos arquivos a serem processados e redirecionando para o cpio criar um arquivo de pacote(-o) com o nome de bkp.cpio, exibindo os arquivos que esto sendo processados(-v), cpio -ov <lista_cpio.txt > bkp.cpio Restaurando todos os arquivo a partir de um pacote cpio, de nome bkp.cpio cpio -iv < bkp.cpio Restaurando todos os arquivo a partir de um pacote cpio, de nome bkp.cpio, restaurando tambem a estrutura de diretrios, se foram copiados diretrios e subdiretrios cpio -idv < bkp.cpio Restaurando os arquivos com extenso .conf e .allow a partir de um pacote cpio, de nome bkp.cpio, restaurando tambem a estrutura de diretrios, se foram copiados diretrios e subdiretrios cpio -idv .conf *.allow < bkp.cpio dd; Funo: Usado para cpia binria ou converso de dados de arquivos especficos ou sistemas de arquivos. Exemplos de execuo: Criando uma imagem isso de um cdrom (/dev/cdrom) dd if=/dev/cdrom of=/tmp/CD.iso bs=2048 conv=sync,notrunc criando um backup da MBR de um disco dd if=/dev/sda of=MBR.image bs=446 count=1 criando rapidamente um arquivo de 1GB dd if=/dev/zero of=Arq_1Gb bs=1024 count=1000000 Convertendo um arquivo texto para letras maiusculas dd if=teste_dd.txt of=teste_dd.txt conv=ucase *obs.: consulte a pgina de manual do comando dd para saber mais sobre outras opes e converses possveis. Dividindo arquivos split; Funo: divide um arquivo em vrios arquivos menores. Exemplos de execuo: Dividindo um arquivo grande, de nome teste_split em vrios arquivos de 20MB (-b 20m), com prefixo S_teste_split e sufixo aa, ab, ac, e assim por diante TutorialLinux rea Nucleo DATAPREV Pgina 31 split -b 20m teste_split S_teste_split Dividindo um arquivo texto, teste_split.txt, em vrios outros arquivos de 30 linhas cada(-l 30) split -l 30 teste_split.txt teste_split.txt Outros nl; Funo: numera linhas de um arquivo ou da sada de um comando Exemplos de execuo: Numerando linhas de um arquivo nl /etc/passwd Numerando linhas da saida de um comando ls /etc/*.conf | nl fmt; Funo: reformata contedo de arquivos texto, exibindo resultado na tela Exemplos de execuo: Formata texto para ser exibido em 60 colunas por linha(-w 60) fmt -w 60 arquivo.txt Formata texto para ser exibido com espaamento uniforme entre palavras e frases fmt -u arquivo.txt pr; Funo: Reformata arquivos texto para impresso Exemplos de execuo: Colocando um cabealho antes da impresso do contedo de cada arquivo pr arquivo.txt /etc/passwd TutorialLinux rea Nucleo DATAPREV Pgina 32 Impresso Impresso direta; podemos imprimir diretamente para uma impressora conectada diretamente em alguma porta local (paralela ou serial), para isto basta redirecionar a sada do comando para o arquivo dedispositivo da porta, por exemplo: para imprimir diretamente um arquivo em uma impressora de port paralela cat /etc/passwd > /dev/lp0 Fila de impresso; lpq; Funo: Verificar trabalhos na(s) fila(s) de impresso; Exemplos de execuo: Verificando trabalhos de impresso na fila padro lpq Verificando todos os trabalhos de impresso lpq -a Ipr; Funo: Enviar um arquivo para a fila de impresso; Exemplos de execuo: Imprimindo um arquivo na impressora padro lpr arquivo.txt DATAPREV Pgina 33 Programao em Shell Scripts shell; Um script shell um arquivo onde so colocados vrios comandos a serem sequencialmente executados pelo shell do linux, com o objetivo principal de automatizar certas funcionalidades que seriam executadas rotineiramente, tais como backup, monitorao e gerenciamento de sistemas que esto rodando no ambiente Linux. Uma dica interessante antes de lidarmos com arquivos de script shell, testar a execuo na prpria linha de comando e depois de testado a execuo colocar a sequncia de comandos executada em um arquivo. O shell mais utilizado pela maioria das distribuies Linux o Bash, portanto neste material ser voltado a sua utilizao para criao de shell scripts Executando um programa Shell; Criando o primeiro shell script vi hello.sh echo ola mundo o comando echo serve para imprimir mensagens na tela. Para executar este script bash hello.sh Dando permisso de execuo Para executar o hello.sh diretamente sem a necessidade de se chamar bash antes chmod hello.sh ./hello.sh Variveis O shell do Linux possui um recurso de manipulao de variveis, que nada mais so que nomes que guardam valores. Os nomes de variveis so case sensitive e devem obrigatoriamente comear com uma letra, so permitidos alm de letras, nmeros e o caractere '_', para formar o nome de uma varivel. Existem algumas varveis que o shell j inicializa por padro, porm possvel a qualquer usurio manipular as suas prprias variveis. Para acessar o valor de uma varivel basta executar o comando echo $nome_da_variavel, por exemplo: echo $HOME Variveis de ambiente Exemplos de variveis de ambiente: HOME - O diretrio HOME do usurio atual. PATH - Uma lista de diretrios separados por virgulas nos quais o shell procura por comandos PS1- Prompt primrio. DATAPREV Pgina 34 PS2 - Prompt secundrio. HOSTNAME - Nome do computador PWD o diretrio atual USER O usurio atual Criando variveis Podemos criar variveis simplesmente atribuido um valor a um NOME DE VARIVEL. Por exemplo: MINHA_VAR= valor Acima estamos criando ou atribuindo um valor para a varivel MINHA_VAR, note que no temos espaos separando o nome da varivel o sinal '=' e o valor, e que o nome da varivel no tem um '$' precedendo, utilizamos o $ somente quando queremos acessar o valor da varivel. Aspas simples, aspas duplas e crase Aspas simples e aspas duplas tem a funcionalidade de agrupar informaes de texto, principalmente quando precisamos escrever valores de texto com espaos em branco. Para entendermos a diferena entre o uso de aspas simples e aspas duplas, vamos fazer um exemplo prtico: Atribuimos uma varivel TESTE com o valor isto um teste TESTE= Isto um teste Agora podemos imprimir com o comando echo usando o valor da varivel teste, usando aspas duplas echo o valor de teste $TESTE dever ser impresso na tela: o valor de teste isto um teste O que acontece que o $TESTE substituido pelo seu valor antes da execuo do comando echo Agora usaremos o mesmo comando s que agora usando aspas simples echo 'o valor de teste $TESTE' dever ser impresso na tela: o valor de teste $TESTE O que acontece agora que pelo $TESTE estar entre aspas simples ele interpretado como sendo texto. O uso de aspas simples evita que tanto variveis ou caracteres curinga sejam substitudos antes da execuo do comando. Demonstremos com outro exemplo a diferena que pode fazer caso executemos usando um comando com caracteres curinga. Executando o seguinte comando com aspas duplas echo o valor de 4 * 4 16 Isto far com que o caratere * seja substituido pelos nomes de arquivos no diretrio atual, pois o shell antes de executar o comando echo, troca o * pelos nomes de arquivos (por isto a execuo de um ls * retorna o nome de todos os arquivos) TutorialLinux rea Nucleo DATAPREV Pgina 35 Executando o mesmo comando com aspas simples, dar o resultado esperado echo 'o valor de 4 * 4 16' Quanto s crases, elas podem ser utilizadas para que o resultado que um comando imprimiria na tela, seja utilizado para atribuir uma varivel ou para servir como parmetro para outros comandos. Por exemplo: Atribuindo a uma varivel, chamada LISTAGEM, o resultado de um comando ls LISTAGEM=`ls` Usando o resultado do comando date (que imprime a data e a hora), como parmetro a ser impresso pelo comando echo echo a data e hora atual : `date` Exportao de variveis Uma vez que as variveis tem seu valor no shell atual, quando chamamos um script para ser executado, executamos outro shell para interpretar o comando, este shell no 'enxerga' as variel criadas no shell anterior, a menos que exportemos a varivel com o comando export, usado da seguinte maneira: export varivel arrays O shell do Linux suporta a criao de variveis que armazenam mltiplos valores, chamamos a este tipo de varivel de array. Criamos um array no Linux com as seguintes sintaxes: Atribuindo os valores amarelo, azul e verde a uma varivel (array) chamada CORES CORES=(amarelo azul verde) Atribuindo os valores janeiro, fevereiro, maro a uma varivel (array) chamada MESES MESES[1]= janeiro MESES[2]= fevereiro MESES[3]= maro Para acessar os valores armazenados no array CORES, usamos ${CORES[0]} para acessar o valor amarelo, ou seja o [0] aps o nome da varivel significa que estamos tentando acessar a primeira posio(ndice) desta varivel, para acessar o valor azul usamos ${CORES[1]}, e assim sucessivamente. Para acessar os valores armazenados no array MESES, usamos ${MESES[1]} para acessar o valor janeiro, ou seja o [1] aps o nome da varivel significa que estamos tentando acessar a segunda posio(ndice) desta varivel, para acessar o valor fevereiro usamos ${CORES[2]}, e assim sucessivamente, o valor ${MESES[0]}, como no foi atribuido, retorna um valor vazio. Passar e receber parmetros; Um shell script pode receber valores como parmetros, como qualquer outro comando. Por exemplo: meu_script.sh TutorialLinux rea Nucleo DATAPREV Pgina 36 parametro1 parametro2 parametro3 parametro4 parametro5 Para gerenciar estes valores usamos as seguintes varveis de ambiente: $0 Nome do script $1 $2 $9 primeiro, segundo, , nono parmetro $* - Todos os parmetros $@ - Todos os parmetros $# - Numero de parmetros recbidos pelo script shift Como as variveis disponveis s mapeia at nove parmetros, se precisarmos acessar valores alm do nono parmetro usamos o comando shift. O shift funciona da seguinte forma, a cada execuo o valor de $1 descartado e substituido pelo valor de $2, que por sua vez substituido pelo valor de $3, e assim sucessivamente at que o $9 receba o valor do dcimo parmetro, como no exemplo a seguir: Suponha que seu script receba os seguintes parmetros teste_par.sh um dois tres quatro cinco seis sete oito nove dez onze Os valores de $1 a $9 dentro do script seriam : $1 = um, $2 = dois, $3 = tres, $4 = quatro, $5 = cinco, $6 = seis, $7 = sete, $8 = oito, $9 = nove Depois de executarmos o comando shift as variveis seriam remapeadas como: $1 = dois, $2 = tres, $3 = quatro, $4 = cinco, $5 = seis, $6 = sete, $7 = oito, $8 = nove, $9 = dez Depois de executarmos o comando shift novamente, as variveis seriam remapeadas como: $1 = tres, $2 = quatro, $3 = cinco, $4 = seis, $5 = sete, $6 = oito, $7 = nove, $8 = dez, $9 = onze O caractere ; O caractere ; server para separar comandos em uma mesma linha, ou seja, cada comando executado sequencialmente, sendo que o shell sabe separar o fim de um comando e o comeo de um novo comando pela presena do caractere ; como separador entre comandos. Por exemplo: executa um ls no diretrio atual, vai para o diretrio /tmp, lista o diretrio /tmp e retorna ao diretrio anterior ls; cd /tmp; ls; cd - Instrues condicionais If; Antes de falarmos do if, vamos apresentar uma caracterstica que todo comando Linux tem e que todo bom shell script tambm devria ter, que o cdigo de retorno. O cdigo de retorno, um valor numrico que indica que o comando foi executado com xito, o shell guarda o valor do cdigo de retorno do ltimo comando executado na varivel $? . TutorialLinux rea Nucleo DATAPREV Pgina 37 Um exemplo prtico seria: Executando um comando ls ls Verificando o valor de $?, vemos impresso na tela o valor 0, o que indica que o ltimo comando (ls) executou com sucesso.
echo $? 0 Executando um comando ls agora tentando listar um arquivo inexistente ls xxxx Verificando o valor de $?, vemos impresso na tela um valor diferente de 0, o que indica que o ltimo executou, mas deu algum
erro echo $? 2 O comando if, faz uso do retorno de um comando para tomar uma deciso, da seguinte forma: Suponha que no script tenhamos a seguinte construo: if comando; then outro_comando mais_outro_comando fi O shell executa o comando e se o cdigo de retorno do comando for 0, ento ele executa os comandos abaixo at achar a palavra fi, que indica fim do if O comando if ainda permite que seja feito outro bloco de instrues no caso do retorno do comando for diferente de 0 (else), da seguinte forma: if comando; then outro_comando mais_outro_comando else comando comando fi TutorialLinux rea Nucleo DATAPREV Pgina 38 O shell executa o comando e se o cdigo de retorno do comando for 0, ento ele executa os comandos abaixo else, caso contrrio (retorno do comando for diferente de 0) executa os comandos abaixo da palavra else at achar a palavra fi, que indica fim do if Para quem est familiarizado com outras linguagens de programao, analogamente o cdigo de retorno de um comando com valor zero significa verdadeiro e um cdigo de retorno diferente de zer significa falso comando test O comando test muito utilizado em construes do if. O test serve para realizar execues de testes simples, de acordo com a tabela categoria teste Retorna 0(zero) se TEXTO test -n STRING Tamanho da STRING no for zero TEXTO test -z STRING Tamanho da STRING for zero TEXTO test STRING1 = STRING2 STRING1 e STRING2 so Iguais TEXTO test STRING1 = STRING2 STRING1 e STRING2 so diferentes NUMRICO test INTEIRO1 -eq INTEIRO2 INTEIRO1 e INTEIRO2 forem iguais NUMRICO test INTEIRO1 -ne INTEIRO2 INTEIRO1 e INTEIRO2 forem diferentes NUMRICO test INTEIRO1 -gt INTEIRO2 INTEIRO1 for maior que INTEIRO2 NUMRICO test INTEIRO1 -ge INTEIRO2 INTEIRO1 for maior ou igual a INTEIRO2 NUMRICO test INTEIRO1 -lt INTEIRO2 INTEIRO1 for menor que INTEIRO2 NUMRICO test INTEIRO1 -le INTEIRO2 INTEIRO1 for menor ou igual a INTEIRO2 ARQUIVO test ARQUIVO1 -nt ARQUIVO2 ARQUIVO1 for mais novo que ARQUIVO2 ARQUIVO test ARQUIVO1 -ot ARQUIVO2 ARQUIVO1 for mais velho que ARQUIVO2 ARQUIVO test -e ARQUIVO ARQUIVO existe ARQUIVO test -f ARQUIVO ARQUIVO existe e comum ARQUIVO test -d ARQUIVO ARQUIVO existe e diretrio ARQUIVO test -L ARQUIVO ARQUIVO existe e link simblico ARQUIVO test -r ARQUIVO ARQUIVO existe e temos permisso de leitura ARQUIVO test -w ARQUIVO ARQUIVO existe e e temos permisso de gravao ARQUIVO test -x ARQUIVO ARQUIVO existe e e temos permisso de exeuo NEGAO test ! EXPRESSAO se EXPRESSAO deu diferente de zero COMPARAO test EXPRESSAO1 -a EXPRESSAO2 EXPRESSAO1 e EXPRESSAO2 so verdadeiras COMPARAO test EXPRESSAO1 -o EXPRESSAO2 EXPRESSAO1 ou EXPRESSAO2 so verdadeiras O comando test tem outra forma para ser chamado atravs dos caracteres []. Exemplo do uso do comando test com o if Se arquivo no existe cria o arquivo com touch if test ! -e arquivo_if.txt; then TutorialLinux rea Nucleo DATAPREV Pgina 39 touch arquivo_if.txt fi Testando se o valor da variavel $VAL maior que 10, usando a forma de colchetes do comando test if [ $val -gt 10];then echo $VAL maior que 10 fi &&; Existem situaes simples em que queremos uma simples execuo de um comando se outro comando for bem sucedido, para estes casos podemos usar o &&. Por exemplo: Emitindo mensagem caso o comando mkdir tenha sido executado com sucesso mkdir teste && echo diretrio teste criado com sucesso ||; Para situaes em que, ao contrrio do &&, queremos que algum comando seja executado em caso de falha de comando anterior. Por exemplo: caso no consiga entrar no diretrio, cria o diretrio e em seguida entra cd teste || mkdir teste; cd teste * Combinando && e || Se quisermos uma combinao entre os operadores podemos fazer conforme o exemplo: Imprime se temos permisso de escrita em um arquivo ou no [ -w arquivo.txt ] && echo "podemos escrever" || echo "no podemos escrever" case. O case serve para realizar a execuo de um conjunto de comandos, comparando o valor de uma varivel com uma ou mais strings. Por exemplo: Verificando opo passada como primeiro parmetro case $1 in listar ) COMANDO= ls PARAMETROS= -l ;; cd ) TutorialLinux rea Nucleo DATAPREV Pgina 40 COMANDO= cd ;; *) echo opo desconhecida ;; esac Neste exemplo, o case verifica o valor de $1 (primeiro parmetro) e compara com as opes, se o valor de $1 for igual a listar, ele executa os comandos no bloco do listar at encontrar o ;; que indica o final dos comandos daquele bloco, o mesmo se aplica quando o valor de $1 for igual a cd. O caractere * quando usado como opo do case serve como curinga para opo padro, ou seja, se nenhuma das opes anteriores foi igual ao valor de $1, execute o conjunto de comandos do bloco do *, o esac finaliza as opes do case. Instrues de Loop For; Para uma execuo repetitiva de comando sobre um conjunto de informaes, podemos usar o comando for. Por exemplo, Gerando arquivos(touch) numerados de 1 a 10 for SEQUENCIAL in 1 2 3 4 5 6 8 9 10; do touch arq$SEQUENCIAL.txt done outra forma de realizar o exemplo anterior usando uma sequencia de numeros gerada pelo comando seq e crases. for SEQUENCIAL in `seq 1 10`; do touch arq$SEQUENCIAL.txt done while; Como o comando for, o while executa repetidamente comandos, at que uma condiao no seja mais satisfeita. Por exemplo: Exemplo simples de gerao de sequncia de nmeros de 1 a 9 vl=0 while [ $vl -ne 10 ] do echo $vl TutorialLinux rea Nucleo DATAPREV Pgina 41 vl=$(( $vl + 1 )) done Aqui a varivel vl recebe inicialmente o valor 0, em seguida o while faz a primeira comparao: $vl(que vale 0) no igual a 10 o que resulta 0 (verdadeiro), ento entra no bloco do comando while e executa o comando echo para imprimir o valor do $vl, e em seguida incrementa o valor de vl em 1 ( vl=$(( vl + 1)) ), o detalhe aqui o operador $(( )), que realiza operaes matemticas e coloca o valor 1 em vl chegando ao done o shell sabe que chegou o fim do bloco de comandos do while ento o while faz mais uma comparao, e o processo todo se repete at que o valor de vl chegue at 10. break; Usado para sair de um comando de repetio (for ou while), este comando til caso seja detectada alguma condio que por algum motivo force a descontinuidade da repetio. Por exemplo: gerando um loop infinito que escreve a data a cada 5 segundos no arquivo /tmp/loop_infinito.txt, s parando caso seja criado um arquivo /tmp/pare while true; do echo date >> /tmp/loop_infinito.txt if[ -e /tmp/pare ]; then break fi sleep 5 done Neste exemplo, o while true gera um loop infinito pos o comando true sempre retorna 0, o comando echo date >> /tmp/loop_infinito.txt grava a data no arquivo. a condio if[ -e /tmp/pare ], testa se o arquivo /tmp/pare existe e se existir o break executado, saindo ento do loop infinito o sleep 5 faz com que o script aguarde 5 segundo para continuar a executar continue; Usado para ir para a prxima iterao do camdo de repetio (for ou while), sem que os comandos aps o continue sejam executados, este comando til caso seja detectada alguma condio que por algum motivo force que o passo atual da repetio seja interrompida e a prxima iterao seja executada. Exemplo: gerando um loop infinito que escreve a data a cada 5 segundos no arquivo /tmp/loop_monit.txt, s parando caso seja criado um arquivo /tmp/pare e parando de imprimir uma mensagem de ok se o arquivo /tmp/problema existir TutorialLinux rea Nucleo DATAPREV Pgina 42 while true; do sleep 5 echo date >> /tmp/loop_monit.txt if[ -e /tmp/pare ]; then break fi if [ -e /tmp/problema ]; then continue fi echo ok >> /tmp/loop_monit.txt done Neste exemplo, o while true gera um loop infinito pos o comando true sempre retorna 0, o sleep 5 faz com que o script aguarde 5 segundo para continuar a executar o comando echo date >> /tmp/loop_monit.txt grava a data no arquivo. a condio if[ -e /tmp/pare ], testa se o arquivo /tmp/pare existe e se existir o break executado, saindo ento do loop infinito a condio if[ -e /tmp/problema ], testa se o arquivo /tmp/problema existe e se existir o continue executado, no executando o echo ok , e indo para a prxima interao. Leitura de Dados read O read l valores a partir da entrada padro, e atribui eles a variveis. Por exemplo Imprimindo a mensagem(-p) Entre com seu nome na tela e assim que o valor digitado e a tecla Enter pressionada, o valor digitado atribudo a varivel NOME read -p Entre com seu nome NOME Imprimindo a mensagem Entre com sua senha na tela e assim que o valor digitado e a tecla Enter pressionada, o valor digitado atribudo a varivel SENHA, a diferena agora que o valor digitado no aparece na tela read -s -p Entre com sua senha SENHA A entrada dos dados pode ser realizada com o comando read lendo os dados a partir de arquivo read. TutorialLinux rea Nucleo DATAPREV Pgina 43 echo 'valores;teste;0000;' > /tmp/arq_entrada.txt while read -d ';' VALORES; do echo $VALORES; done < /tmp/arq_entrada.txt o echo gera um arquivo que ser utilizado para a entrada do read, note que os valores esto separados por ';' o comando while faz com que os valores sejam lidos a partir do arquivo (< /tmp/arq_entrada.txt), usando ';' como delimitador entre novos valores, e imprime na tela os valores lidos. A entrada dos dados pode ser realizada com o comando read lendo os dados a de um Here Document (<<) while read -d ';' TIPO; do echo $TIPO; done << FIM > 01;02;03;04; > FIM o comando while faz com que os valores sejam lidos a partir do Here document(<< FIM), que faz com que os valores sejam lidos a partir da prpria sesso, usando ';' como delimitador entre novos valores, e imprime na tela os valores lidos. Funes; Uma funo no Linux declarada da seguinte forma: nome () { comandos; }. Por exemplo vi funcao.sh quadrado () { N=$1 echo $(( N * N )) } quadrado 3 printf Sua funo , semelhante ao comando echo, exibir textos na sada padro, com possibilidade de formatao. Por exemplo: Exibindo uma mensagem com printf printf hello, %s\n hoje `date` $USER O comando printf, o %s contido na string substituido pelo valor da varivel $USER. Eval; The internal eval command interprets and expands a command line before the shell interprets and expands the line. Essentially it permits dynamically construct program or statements and then execute them. this is a feature typical for all scripting languages and one of the most powerful one. Among other thing you ca do the following: TutorialLinux rea Nucleo DATAPREV Pgina 44 Execute a command line you read using the read command. Find the value of a variable whose name is derived from the value of another variable. To repeat a stage or portion of command processing. To apply results of expansions to earlier stages of the expansion. wait; Aguarda um processo em background terminar. Por exemplo; aguardando o ltimo processo colocado em background terminar, imprimindo uma mensagem na sequncia wait && echo processo em background terminado aguardando o processo de PID 999 colocado em background terminar, imprimindo uma mensagem na sequncia wait 999 && echo processo 999 terminado trap; Captura os sinais enviado para o comando e define comando a ser executado a cada sinal. Exemplo: capturando o sinal 15 (SIGTERM) no programa teste_trap.sh e imprime mensagem. Vi teste_trap.sh #!/bin/bash # traptest.sh trap "echo sinal SIGTERM capturado!" SIGTERM echo "pid is $$" while true; do sleep 60 done getopts. while getopts ":c:sd" Option # Initial declaration. # c, s, and d are the flags expected. # The : after flag 'c' shows it will have an option passed with it. do case $Option in # w ) CMD=$OPTARG; FILENAME="PIMSLogList.txt"; TARGET="logfiles"; ;; s ) PORT=20 ;; d ) DEBUG=true ;; c ) CMD=$OPTARG ;; * ) echo "Not recognized argument"; exit -1 ;; esac done shift $(($OPTIND - 1)) TutorialLinux rea Nucleo DATAPREV Pgina 45 Linguagem AWK Awk uma linguagem com muitas funcionalidades, excelente na manipulao de strings e arquivo texto, muito til pra usar na linha de comando, em scripts, em combinao com outros aplicativos como cat, ls e etc... awk uma linguagem, simples mas poderosa, para manipular arquivos de dados (e mais). Por exemplo, sendo data.dat seu arquivo de dados multi-campos. $ awk '$2 ~ "abc" {print $1, "\t", $4}' data.dat imprime os campos 1 e 4 de cada linha de data.dat cujo segundo campo contenha "abc". O awk perfeito pra tarefas em arquivos formatados em colunas, pode usar print $X onde X a coluna a ser impressa, pode aplicar diretamente em um arquivo texto ou no resultado de comandos passado pelo pipe "|" Exemplo para imprimir o arquivo de senhas. awk '{ print $0 }' /etc/passwd Tem o mesmo resultado de: cat /etc/passwd Imprimir somente usurios com UID igual a 1.000 ou maior. awk -F: '$3 > 999 {print $0}' /etc/passwd $1 $2 ... indica o campo, onde $1 referencia ao campo 1, $2 campo 2 e assim por diante, isto depende do delimitador utilizado para separar os campos. pegar somente o campo 1 do arquivo de usurios. awk -F ":" '{print $1}' /etc/passwd cat /etc/passwd | awk -F ":" '{print $1}' Campo 1 e 3 awk -F ":" '{print $1,$3}' /etc/passwd delimitadores man awk -F fs --field-separator fs Use fs for the input field separator (the value of the FS prede- fined variable). usando _ como delimitador echo "usando_em_lugar_do_ponto_ou_espacos" | awk -F\_ '{print $5 ; }' Onde; TutorialLinux rea Nucleo DATAPREV Pgina 46 -F\_ indica o delimitador _, a barra \ funciona como escape para o shell no interpretar o _ print $5 indica para pegar a quinta ocorrencia, neste exemplo retorna "ponto", trocando por 3 (print $3) retorna lugar. Exemplo com o comando ls -la para listar somente tamanho e nome de arquivo ls -la |awk '{print $5" "$8}' 1228107776 arquivao.gdb 52428800 part_aa 52428800 part_ab 52428800 part_ac 52428800 part_ad 52428800 part_ae 30668800 part_af contar tamanho de variveis, palavras e linhas length() contar string. Retorna o nmero de caracteres do dado recebido, pode ser de uma varivel ou de arquivo, por default o espao o separador, portanto fique atento, pode retornar contagem de palavras em lugar de linhas, veja alguns exemplos abaixo e faa testes. contar bytes por coluna ou linha em arquivo Contar bytes da coluna de um arquivo, no exemplo abaixo altere $1 para o numero da coluna que deseja contar, $0 conta a linha inteira. awk '{ print length ($1)}' arquivo.txt cat arquivo.txt | awk '{ print length ($1)}' $0 conta a linha inteira, contagem por linha, retorna lista com numero de bytes por linha cat arquivo.txt | awk '{ print length ($0)}' cat arquivo.txt | awk '{print length($0)}' MVAR="contar bytes da varivel" echo $MVAR | awk '{print length($0)}' 24 Contar os bytes da segunda palavra. echo $MVAR | awk '{print length($2)}' TutorialLinux rea Nucleo DATAPREV Pgina 47 5 MVAR2=`echo $MVAR | awk '{print length($2)}'` echo $MVAR2 5 Expresses regulares; Os Metacaracteres $ # ^ $ + * {} () | ? [] . O arquivo de exemplo $ cd /etc $ cat passwd ncoras para incio de fim de linha $ grep root passwd $ grep ^root passwd $ grep bash$ passwd $ grep sh$ passwd $ grep 'sh$' passwd # proteger com aspas Aspas duplas caso use variveis $ zzz=ro $ grep "$zzzot" passwd $ grep "${zzz}ot" passwd # proteger com {} Use os colchetes para listar possibilidades para uma posio $ echo Carlos | grep 'Carlos' $ echo Carlos | grep '[Cc]arlos' $ echo carlos | grep '[Cc]arlos' $ echo harlos | grep '[Cchfg]arlos' A lista serve para lidar com acentuao tambm $ vi /tmp/acao.txt # acao, ACAO, Aao, aO, Aao, etc... $ cat /tmp/acao.txt | grep 'acao' TutorialLinux rea Nucleo DATAPREV Pgina 48 $ cat /tmp/acao.txt | grep 'a[c]ao' $ cat /tmp/acao.txt | grep 'a[c][a]o' $ cat /tmp/acao.txt | grep -i 'a[c][a]o' $ cat /tmp/acao.txt | grep '[Aa][Cc][Aa][Oo]' # todas possibilidades Como casar linhas em branco $ grep '^$' passwd Listas negadas e intervalos $ grep '^[aeiou]' passwd $ grep '^[bcdfghjklmnpqrstvwxyz]' passwd $ grep '^[^aeiou]' passwd $ grep '[^^]' passwd # negando o chapuzinho $ grep '^[a-z]' passwd # o hfen indica intervalo $ grep '^[a-]' passwd # sem letras ao redor, hfen normal $ grep '^[-z]' passwd $ grep '^[az-]' passwd $ grep '^[0-9]' passwd # linhas iniciadas por nmeros $ grep '[0-9]' passwd $ grep '[0-90-9]' passwd # errado $ grep '[0-9][0-9]' passwd # certo $ grep '[0-9][0-9][0-9]' passwd O curinga: o ponto $ grep '^[aeiou]' passwd # comea com vogal $ grep '^.[aeiou]' passwd # segunda letra vogal $ grep '^..[aeiou]' passwd # terceira letra vogal Egrep e chaves para repeties $ grep '^.......................[aeiou]' passwd $ grep '^.{25}[aeiou]' passwd # errado $ grep '^.{5}[aeiou]' passwd # errado TutorialLinux rea Nucleo DATAPREV Pgina 49 $ grep '^.\{5\}[aeiou]' passwd # deve escapar! $ egrep '^.{5}[aeiou]' passwd # ou usar o egrep $ egrep 'f{995}' passwd # 995 efes $ egrep 'f{1,995}' passwd # de 1 a 995 efes Mais sobre chaves $ egrep '^.{5}[aeiou]' passwd # sexta letra vogal $ egrep '^.{4,5}[aeiou]' passwd # quinta ou sexta letra vogal $ egrep '^.{1,5}[aeiou]' passwd # de segunda a sexta letra vogal $ egrep '^.{5,}[aeiou]' passwd # sexta (ou mais) vogal Linhas de tamanho fixo $ echo aaaaaaaaaaaaaaaa | egrep 'a{6}' $ echo aaaaaaaaaaaaaaaa | egrep '^a{6}$' $ echo aaaaaaaaaaaaaaaa | egrep '^a{6,}$' $ echo aaaaaaaaaaaaaaaa | egrep 'a{6,}' $ echo aaaaaaaaaaaaaaaa | egrep 'a{2,6}' Repetio de listas $ egrep '[aeiou]{2}' passwd # duas vogais seguidas $ egrep '^.[aeiou]{2}' passwd # segunda e terceira vogais ? * e + so atalhos para as chaves {} $ # ? {0,1} * {0,} + {1,} O opcional ? $ echo mala | egrep mala $ echo malas | egrep malas? $ echo mala | egrep malas? $ echo mala | egrep mal(as)? # erro! $ echo mala | egrep 'mal(as)?' # deve proteger com 'aspas' $ echo mal | egrep 'mal(as)?' Usando ? * e + TutorialLinux rea Nucleo DATAPREV Pgina 50 $ echo b | egrep 'a*' $ echo b | egrep 'a+' $ echo b | egrep 'a?' $ echo ab | egrep 'a+' $ echo aaaaaa | egrep 'a+' $ echo aaaaaa | egrep '^a+$' $ echo aaaaaa | egrep '^a*$' O tudo e o nada: ponto-asterisco .* $ echo aaaaaa | egrep '.*' $ echo | egrep '.*' $ echo dayukafukdfkidrifhiioyohgoyiejeoueou | egrep '.*' Ou isso ou aquilo $ egrep 'root|ftp' passwd $ egrep '^root|FTP' passwd $ egrep '^(root|FTP)' passwd $ egrep '^(root|ftp)' passwd $ egrep '^(root|ftp).*\1' passwd TutorialLinux rea Nucleo DATAPREV Pgina 51 APT O apt um gerenciador automtico de pacotes podendo dentre outras coisas instalar, remover ou atualizar pacotes. Uma grande vantagem do apt que ele resolve as dependncias entre pacotes automaticamente. Ele tambm pode fazer a atualizao de um pacote ou de at todo o sistema. O apt faz uso de repositrios rpm, esses repositrios podem estar no cdrom da distribuio, em um site na internet ou intranet. A lista com os repositrios aos quais o apt pode usar esto no arquivo /etc/apt/sources.list. Os programas mais comuns usados no apt so: apt-cdrom, apt-get e apt-cache. apt-cdrom Para utilizar o cd-rom como repositrio usa-se o comando apt-cdrom. Aps a execuo deste comando ser solicitado o cd-rom com os pacotes rpm, e ser adicionada uma linha no arquivo sources.list como mais uma linha de repositrio. Este procedimento dever ser executado para todos os cd's da distribuio. apt-get O apt-get a ferramenta usada para poder fazer a maioria da tarefas, tais como: instalao, remoo e atualizao de pacotes. Abaixo segue a lista das opes mais comumente usadas: update a tualiza o banco de dados local do apt-get. check v erifica a integridade do seu sistema. install <pacote> instala pacote. remove <pacote> remove pacote, inclusive os que dele dependem. dist-upgrade atualiza todo o sistema. clean limpa o arquivo /var/cache/apt/archives. apt-cache O apt-cache utilizado para efetuar pesquisas nas listas de pacotes. Para pesquisar os pacotes do samba, por exemplo, pode-se usar apt-cache search samba. Para exibir detalhes de um pacote pode-se usar apt-cache show samba. * Configurao de Servidores (samba, dhcp, http, ssh, ftp) * Nesta seo sero abordadas as configuraes mais comuns utilizadas em servidores Linux dentro do ambiente MPAS/DATAPREV. DATAPREV Pgina 52 Linux em rede Conceitos Bsicos O que uma rede de computadores? Rede de computadores, a conexo mais de um computador ou dispositivos de rede para que possam compartilhar recursos entre si. Exemplos de recursos podem ser: arquivos, impressoras, dados. Cliente e servidor Servidor o equipamento que fornece os servio de rede. Cliente o equipamento que acessa o servio de rede. Protocolos de rede Protocolo de rede um conjunto de padres que definem como os equipamentos iro trocar informaes entre si, a grosso modo seria a "linguagem" de comunicao entre os equipamentos. A maioria esmagadora dos sistemas operacionais modernos utiliza o protocolo TCP/IP para intercomunicao com outros equipamentos. Alguns exemplos de protocolos de rede: - TCP/IP, protocolo de rede mais utilizado no mundo, o protocolo padro da Internet - IPX/SPX, protocolo das antigas redes NOVELL - NETBIOS/NETBEUI, protocolo de comunicao netre mquinas Windows - HTTP, protocolo de acesso a pginas web - DHCP, protocolo de configurao dinmica de estaes de uma rede - SNMP, protocolo de envio de mensagens de email modelo de camadas de rede A maioria das redes de computadores se baseia num modelo de camadas, ou seja, para cada camada (ou nvel) de rede em um equipamento que origina a comunicao, so feitos protocolos que iro ser utilizados pela respectiva camada no equipamento de destino. Esta idia se baseia num conceito de rede chamado modelo ISO-OSI. tipos de redes As redes de computadores se classificam de diferentes maneiras, de acordo com a distncia abrangida(extenso geogrfica), arquitetura de rede, topologia e meio de transmisso. Classificao de redes de acordo com a arquitetura As redes de computadores podem ser classificadas de acordo com a arquitetura, ou seja, a classificao pode ser feita de acordo com a tecnologia utilizada para realizar a conexo entre os equipamentos de rede. Segue abaixo alguns exemplos de arquiteturas: Ethernet a arquitetura mais empregada em redes locais (redes que ligam computadores dentro de uma mesma edificao), baseado em cabeamento coaxial, onde os equipamentos so todos interligados num mesmo barramento ou com cabos UTP e conectores RJ45, onde cada equipamento nesta rede interligado aos demais via um HUB (concentrador) ou Switch(comutador). A comunicao entre os equipamentos ocorre por frames, que so pequenas quantidades de informao que so convertidas em pulsos eltricos, e que levam alm da informao a ser transmitida o endereo ethernet(MAC ADRESS ou endereo fsico) da placa de rede de origem e a placa de rede de destino. Os pulsos eltricos so enviados pelo meio-fisico(cabo de rede) compartilhado, e a placa de rede de destino consegue detectar que o frame para ela abrindo o endereo de destino e comparando com seu prprio endereo. DATAPREV Pgina 53 Token Ring Tambm uma arquitetura empregada em redes locais, o cabeamento tabm pode trabalhar com cabos coaxiais ligados a um hub token ring ou com cabos utp ligados tambm a um outro tipo de hub token ring, a diferena que os equipamentos ligados por este tipo de rede tem de formar um anel, ou seja, o primeiro equipamento ligado no cabeamento tambm tm de estar ligado ao ltimo equipamento. A comunicao na rede token ring tambm se baseia no envio de frames, mas a diferena se d no acesso ao meio fsico, ou seja, enquanto nas redes ethernet os frames so jogados no meio de acesso sem controle, somente com a deteco de silencio ou coliso, o token ring usa o mecanismo de token (ficha) para Frame Relay Utilizada para redes de longa X25 DSL Classificao de redes de acordo com a extenso geogrfica LAN WAN Classificao de redes de acordo com a topologia Anel Barramento Estrela Ponto a Ponto Classificao de redes de acordo com o meio de transmisso Por cabo Sem Fios hardwares de rede Cabos Repetidor aparelho para interligao de redes identicas, sua funo somente retransmitir o sinal, de forma a regenerar e amplificar o sinal transmitido no meio fsico. Transceptor aparelho que combina um recptor e um transmissor de daos para/de um meio fsico. Estao de trabalho equipamento que utiliza servios de uma rede TutorialLinux rea Nucleo DATAPREV Pgina 54 servidor equipamento que disponibiliza servios numa rede Bridge (ponte) dispositivo que serve para interligas duas redes, deixando somente passar o trfego destinado a outra rede, mantendo o trfego interno(dentro da mesma rede) das redes separado. HUB (concentrador) equipamento que interliga os equipamentos dentro de uma mesma rede. QUando um hub recebe informao a transmitir ele repete para toda as suas portas a mesma informao, fazendo com que esta chegue a todas os equipamentos. Switch (comutador) switches, assim como os hubs server para interligar equipamentos numa rede, porm os switches quando recebem informao repassam somente a porta ligada ao destino final. Placa de rede Dispositvo que permite a conexo de um equipamento em uma rede. Modem (conversor) Equipamento que permite a traduo de dados enviados pelo meio fsico em bits. Redes TCP/IP Redes TCP/IP, hoje o principal protocolo de rede em nvel mundial, principalmente pela popularizao da Internet, porm seu uso tambm se aplica a redes locais. o nome TCP/IP devido aos dois principais protocolos que formam este padro de comunicao via rede. camadas Linux como cliente de uma rede TCP/IP Configurando manualmente Ajustando endereo IP Setando o gateway Configurando a resoluo DNS Configurando via servio DHCP Servios de rede Servio de rede qualquer recurso que pode ser compartilhado via rede de computadores. Por exemplo: impressoras, arquivos, Pginas web, endereos IP(DHCP), acesso Internet, autenticao de usuario/senha e outros TutorialLinux rea Nucleo DATAPREV Pgina 55 DHCP Servio que oferece gerenciamento de endereos IP dinmicos para as estaes. Alm do IP um servidor dhcp pode ser configurado para fornecer o endereo do gateway padro da rede, do(s) servidore(s) wins, servidore(s) dns. Como a administrao dos endereos IP feita automaticamente, no existem problemas de conflito. Quando a mquina que possui um endereo IP que foi concedido pelo servidor, fica fora da rede por um perodo determinado o endereo liberado. O servidor dhcp configurado editando-se o seguinte arquivo: /etc/dhcpd.conf Segue abaixo um exemplo do arquivo dhcpd.conf: default-lease-time 60000; # Tempo mnimo em que o IP fica alugado em # segundos max-lease-time 72000; # Tempo mximo em que o IP fica alugado # em segundos option subnet-mask 255.255.255.0; # Mscara de rede option broadcast-address 10.82.6.255; # Broadcast option routers 10.82.6.250; # Roteador padro option domain-name-servers 10.0.134.223, 10.0.134.233; # Servidores DNS option domain-name "prevnet"; # Dominio padrao option netbios-name-servers 10.82.6.211, 10.0.134.223; # Servidores WINS ddns-update-style ad-hoc; # Modo de atualizao de resoluo DNS subnet 10.82.6.0 netmask 255.255.255.0 { # Rede range 10.82.6.40 10.82.6.199; # Ips disponiveis do 10.82.6.40 ao 10.82.6.199 } # # Especificando endereo ip fixo dentro do intervalo de ip's disponveis host conec { hardware ethernet 00:80:C8:80:CD:5B; fixed-address 10.82.6.40; option subnet-mask 255.255.255.0; option broadcast-address 10.82.6.255; } Os endereos que foram concedidos so registrados no arquivo /var/state/dhcpd/dhcpd.leases. As informaes sobre erros do programa ficam guardadas em /var/log/messages. TutorialLinux rea Nucleo DATAPREV Pgina 56 O servidor dhcp bem como outros servios podem ser inicializados e interrompidos utilizando o comando service da seguinte maneira: service <servio> start inicia servio. service <servio> stop interrompe servio. Service <servio> status exibe a situao atual do servio (em execuo ou parado) FTP Em uma rede tcp/ip o princial protocolo responsvel pela transferncia de arquivos, independentemente do sistema operacional. O servidor ftp implementado no Conecita Linux o Proftpd. este servidor que recebe as requisies ftp provenientes de outros servidores e/ou das estaes da rede. O servidor Proftpd configurado a partir do arquvio /etc/proftpd.conf. Segue abaixo um exemplo de configurao do proftpd: ServerName "Servidor FTP padrao" # Nome de servidor a ser exibido # para os usurios ServerType standalone # Roda o programa como daemon ScoreboardFile /var/run/proftpd/scoreboard # Arquivo para guardar informaes # de conexes DeferWelcome on # Habilita mensagem de boas vindas ServerAdmin root@localhost # E-mail do administrador SyslogFacility AUTH # Nvel de log do sistema Port 21 # Porta tcp para conexo Umask 022 # Permisso padro para gravao MaxInstances 30 # Nmero mximo de conexes User nobody # Conta dona do processo ftp Group nobody # Grupo do processo ftp <Directory /*> # Diretiva para todos os diretrios AllowOverwrite no # Permite sobregravao </Directory> # Fim da diretiva ## Configurao para habilitar usurio annimo <Anonymous /srv/ftp> # Inicio da diretiva para annimo # que funciona em /srv/ftp User ftp # Usurio para annimo TutorialLinux rea Nucleo DATAPREV Pgina 57 Group ftp # Grupo para annimo RequireValidShell off # No verifica se conta tem shell vlido UserAlias anonymous ftp # Logins que identificam usuario annimo AccessGrantMsg "Anonymous access granted for %u." # Mensagem de conexo bem # sucedida </Anonymous> # Fim da diretiva para annimo Observaes: - o diretrio padro o HOME para login com usurio vlido ou /srv/ftp (nas verses anteriores o caminho /var/ftp/public) para login annimo. - as informaes sobre os arquivos transferidos ficam guardadas em /var/log/xferlog. - as informaes sobre erros do programa ficam guardadas em /var/log/messages HTTP O servidor www implementado no Linux pelo programa Apache. Este servidor responde a requisies http provenientes de um cliente via browser. Em geral o uso do arquivo padro /etc/apache/conf/httpd.conf, suficiente para colocar um servidor web funcionando. Observaes: - o diretrio padro para publicao de pginas o /srv/www/default/html - as informaes sobre os acesso s pginas ficam registradas em /var/log/apache/access_log. - as informaes sobre os erros do programa ficam registradas em /var/log/apache/error_log. SSH O ssh um servio de conexo remota via protocolo ssh, que conhecido como secure shell. O que diferencia as conexes via ssh das conexes comuns, como telnet por exemplo, que toda a comunicao entre cliente e servidor criptografada, garantido uma transferencia segura dos dados. Alm de conexo remota, o ssh permite que se faa a transferncia de dados entre mquinas utiliando o comando scp . Exemplo: ) Enviar arquivo teste.txt da mquina A para a mquina B: 1. scp teste.txt <usuario>@<ip-mquina-B>:/home/<usuario> TutorialLinux rea Nucleo DATAPREV Pgina 58 SAMBA O samba um servio de compartilhamentos de arquivos via protocolo smb, que o mesmo utilizado para compartilhar arquivos e impressoras que utilizam o sistema windows. O arquivo de configurao do samba (/etc/samba/smb.conf) dividido em sees, parmetros e variveis, onde cada seo define um compartilhamento especfico de um diretrio. H ainda sees especiais: globals, homes, netlogon e printers que definem regras de funcionamento do servidor do samba, diretrios pessoais, e sistema de impresso, respectivamente. Uma documentao completa com a lista de todos os parmetros e variveis do samba, bem como explicaes detalhadas de como configur-lo e resolver problemas comuns pode ser acessada via web a partir do administrador / configurador web do samba, o swat . Para acessar o swat instale o pacote swat. Agora abra um browser e digite no campo de url http://<ip-servidor>:901 e acesso com a senha de root. Segue abaixo exemplo de smb.conf: [global] #workgroup diz de qual grupo esta mquina faz parte ou qual domnio controla ou faz parte workgroup = GRUPO #netbios name, ajusta o nome da mquina, se quisermos que ela no fique com o mesmo nome de nossa mquina Linux netbios name = NOME_MAQUINA #server string, comentrio que aparece no ambiente de rede das estaes windows ao lado do nome da mquina server string = SERVIDOR DE ARQUIVOS SAMBA #security, diretiva que ajusta como deve ser a autenticao #valor SHARE, ajusta autenticao por compartilhamento, semelhante a senha de compartilhamento dos windows9x #valor USER, autenticao por usuario samba #valor DOMAIN, autenticao por usuario de domnio security = SHARE #null passwords, ajusta se o samba aceita usurio sem senha ou no null passwords = Yes #log level e logfile, diretivas que ajustam o nvel de registro de eventos do samba, e qual o arquivo que armazena. log level = 1 log file = /var/log/samba/log.%m max log size = 50 #socket options, ajuste no comportamento das conexes ao servio. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #printing e printcap name, ajusta qual o subsitema de impresso a ser utilizado para o compartilhamento de impressoras printing = cups printcap name = cups #preferred master, ajusta se nosso servidor deve ser o Local Master Browser preferred master = No #domain master, ajusta se o nosso servidor ser um controlador de domnio domain logons = no #domain master, ajusta se o nosso servidor ser um Domain Master Browser domain master = No # Configurar o perfil ambulante do Windows NT/XP logon path = # Configurar o drive que ira apontar para o HOME do usuario logon drive = #[homes], compartilhamento especial que disponibiliza um mtodo para o usurio entrar no seu diretrio HOME, via #SAMBA [homes] #read only, ajusta se o compartilhamento se o compartilhamento ser somente leitura read only = No #browseable, ajusta se o compartilhamento ser visvel pelo ambiente de rede de estaes Windows browseable = No TutorialLinux rea Nucleo DATAPREV Pgina 59 #[printers], compartilhamento especial para todas as impressoras [printers] #path, indica o caminho onde ficaro armazenados os pedidos de impresso path = /var/spool/samba #read only, ajusta se o compartilhamento se o compartilhamento ser somente leitura read only = No #guest ok, indica se o acesso sem autenticao ser permitido guest ok = Yes #printable, diretiva que indica que este compartilhamento um compartilhamento de impressora printable = Yes #um exemplo de compartilhamento comum chamado dados [dados] #path, indica o diretrio do Linux a ser compartilhado path = /mnt/dados #read only, ajusta se o compartilhamento se o compartilhamento ser somente leitura read only = No #guest ok, indica se o acesso sem autenticao ser permitido guest ok = Yes #um exemplo de compartilhamento comum de impressora chamado privativo [privativo] path = /priv read only = No printable = Yes Observaes: - os usurios cadastrados no sistema necessriamente no so usurios samba , sendo assim faz-se necessrio adicion-los com o comando smbadduser, porm o usurio samba deve ser um usurio do Linux, pois do contrrio o registro do usurio samba no funcionar. - para alterar a senha de um usurio do samba utiliza-se o comando smpasswd seguido do nome do usurio. - para verificar as conexes e arquivos em uso usa-se o comando smbstatus Para saber mais http://focalinux.cipsga.org.br http://www.debian.org/doc/ Esse tpico: Nucleo > WebHome > TutorialLinux Verso do tpico: 12 Aug 2013, jarbas.peixoto Copyright pelos autores contribuintes. Todo material nessa plataforma colaborativa propriedade dos autores contribuintes. Idias, solicitaes, problemas com relao ao Foswiki? Nos d um retorno TutorialLinux rea Nucleo DATAPREV Pgina 60