Você está na página 1de 30

Trabalho de power shell

1- Introduo Nesse trabalho iremos falar de power shell tanto windows power shel como o shell do linux, baseado em varias pesquisas, da internet foi verificado muitas fontes de estudo sobre power shell. Uma das fontes est nesse contexto que iremos falar nesse trabalho. Indice 1- introduo 2- verses 3- antecedentes 4- resumo 4.1- Cmdlets 4.2- PowerShell scripts 4.3- Funes PowerShell 4.4- Programas executveis. 5- cmdlets 6- pipeline 7- script 8- hospedagem

9- PowerShell 2.0 10- O que shell linux? 11- Comandos a. Ls

b. Pwd c. Cd d. Mkdir e. Rmdir f. Rm g. Dv h. Df i. Free j. Find k. Whoami l. Who m. Hosname n. Su o. Echo p. Mount q. Umount r. Cat s. More t. Grep u. Ps v. Top w. Tar x. Pipe 12- redirecionamento 13- usando o bash 14- conceito de variaveis de shell script 15- comando de fluxo com if 16- outras alternativas 17- se aprofundando mais 18- case 19- for while 20- until 21- usando varios scripts em um s 22- variaveis especiais

23- funes 24- exemplo final 25- janelas graficas 26- conclusao 27- bibliografias

2- Verses Inicialmente, utilizando o nome de cdigo "Monad", PowerShell foi exibido publicamente na Professional Developers Conference, em setembro de 2003. Atualmente existem duas verses do PowerShell suportado pela Microsoft [6]. A verso 1.0 foi lanada em 2006 para o Windows XP SP2/SP3, Windows Server 2003 e Windows Vista. Para o Windows Server 2008, includo como um recurso opcional. A verso 2.0 est integrado com o Windows 7 e Windows Server 2008 R2 e liberado para o Windows XP com Service Pack 3, Windows Server 2003 com Service Pack 2, Windows Vista com Service Pack 1 e Windows Server 2008 [7].

3- Antecedentes Cada verso lanada do Microsoft DOS e do Microsoft Windows para computadores pessoais tenha includo uma ferramenta de interface de linha de comando (shell). Estes so COMMAND.COM (nas instalaes confiando em MS-DOS, incluindo o Windows 9x) e cmd.exe (nos sistemas operacionais Windows NT familiar). Estes so os intrpretes de comando de linha regular que o apoio de alguns comandos bsicos. Para outros fins, um aplicativo separado do console deve ser fornecida, a ser invocado a partir destes reservatrios. Incluem tambm uma linguagem de script (batch files), que pode ser usado para automatizar vrias tarefas. No entanto, eles no podem ser usados para automatizar todas as facetas da funcionalidade do GUI, em parte por causa da linha de comandos equivalentes de operaes expostas atravs da interface

grfica so limitados, ea linguagem fundamental e no permite a criao de scripts complexos. No Windows Server 2003, a situao melhorou [8], mas o apoio script foi ainda considerado insatisfatrio. Microsoft tentou abordar algumas destas deficincias com a introduo do Windows Script Host, em 1998, com Windows 98, e sua linha de comando baseado em host: cscript.exe. Ele se integra com o mecanismo de script ativo e permite que os scripts sejam escritos em linguagens compatveis, como o JScript e VBScript, alavancando as APIs expostas por aplicaes via COM. No entanto, ele tambm tem suas prprias deficincias: no integrado com o shell, sua documentao no muito acessvel, e rapidamente ganhou uma reputao como um vetor de vulnerabilidade do sistema depois de vrios vrus de computador de alto perfil explorar fraquezas em suas disposies de segurana. Diferentes verses do Windows desde vrios efeitos especiais intrpretes de linha de comando (como netsh e WMIC) com os seus conjuntos de comando prprio. Nenhum deles estava integrado com o shell de comando, nem eram interoperveis. Em 2003 a Microsoft comeou a desenvolver um novo shell chamada Monad (tambm conhecido como a Shell ou a Microsoft MSH). Mnada era para ser um novo comando shell extensvel com um novo design que seria capaz de automatizar uma ampla gama de tarefas administrativas do ncleo. A Microsoft publicou a primeira verso beta pblica sobre Mnada 17 de junho de 2005, Beta 2 em 11 de setembro de 2005, e Beta 3 em 10 de janeiro de 2006. Eles anunciaram em 25 de abril de 2006 que tinha sido rebatizada Mnada Windows PowerShell, posicionando-o como uma parte significativa das suas ofertas de tecnologia de gesto [9]. Release Candidate 1 do PowerShell foi lanado ao mesmo tempo. Release Candidate 2 do PowerShell foi lanado em 26 de setembro de 2006 e lanado para a web (RTW) em 14 de novembro de 2006. PowerShell para o Vista foi lanado em 30 de janeiro de 2007. [10] A previso de ltima tecnologia da comunidade (CTP) do Windows PowerShell v2.0 foi disponibilizado em dezembro de 2008. PowerShell v2.0 foi concludo e liberado para fabricao, em agosto de 2009, como parte integrante do Windows 7 e Windows Server 2008 R2. As verses do PowerShell para o Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008 foram liberados em outubro de 2009 e esto disponveis para download para os de 32 bits e plataformas de 64 bits [11].

4- Resumo Existem quatro tipos de comandos do Windows PowerShell pode executar: * "Cmdlets", o que so. NET programas, escritos por um desenvolvedor, compilado em uma biblioteca de vnculo dinmico e carregado por um script PowerShell, * PowerShell scripts (arquivos com o sufixo '. Ps1), * Funes PowerShell, * Programas executveis. Se um comando um programa executvel, PowerShell lana-lo em um processo separado, se ele um cmdlet, executado no processo de PowerShell. PowerShell tambm fornece uma interface de linha de comando interativo, onde os comandos podem ser inseridos e sua produo exibida. A interface do usurio, com base no console Win32, oferece a concluso de tabulao personalizados, mas no tem destaque de sintaxe. PowerShell tambm permite a criao de apelidos para cmdlets, textualmente, que so traduzidos por PowerShell em invocaes dos comandos originais. PowerShell tambm oferece suporte a parmetros nomeados e posicionais para os comandos. Ao executar um cmdlet, a tarefa de vincular o valor do argumento para o parmetro feito atravs do PowerShell em si, mas, para executveis externos, os argumentos so passados atravs do argv (ou equivalente) de matriz varivel a ser analisada pelo executvel. Outro conceito utilizado pelo PowerShell o de um gasoduto. Como Unix gasodutos, oleodutos PowerShell so usados para compor comandos complexos, permitindo a sada de um comando a ser passado como entrada para outro. Um pipeline configurado por uma tubagem de sada de um comando (ou pipeline) para outro comando, usando o operador |. Mas, ao contrrio de suas contrapartes Unix, o gasoduto PowerShell um objeto de pipeline, ou seja, os dados passados entre cmdlets so totalmente digitado objetos, ao invs de carter crregos. Quando os dados so encaminhados como objetos, os elementos que encapsulam manter a sua estrutura e tipos em todo cmdlets, sem necessidade de qualquer serializao ou anlise explcita do fluxo, como seria o personagem precisa se apenas crregos foram compartilhadas. Um objeto tambm pode encapsular determinadas funes que

trabalham sobre os dados contidos. Estes tambm ficam disponveis para o comando do destinatrio para usar. [12] [13] Para o cmdlet passado em um gasoduto, PowerShell automaticamente tubos de seu objeto de sada para o cmdlet Out-padro, que transforma os objetos em um fluxo de objetos de formato e, em seguida, torna os para a tela. [14] [15] Como todos os objetos so PowerShell. NET, eles compartilham uma. ToString (), que recupera a representao de texto de dados em um objeto. Windows PowerShell usa esse mtodo para converter um objeto de texto. Alm disso, ele tambm permite que as definies de formatao para ser especificado, para a representao do texto dos objetos podem ser personalizados, escolhendo quais os elementos de dados para exibir, e como. No entanto, a fim de manter compatibilidade com verses anteriores, se um executvel externo utilizado em um oleoduto, que recebe um fluxo de texto que representa o objeto, e no se integram com o sistema de tipo PowerShell. O PowerShell Extended Type System (ETS) baseada no tipo de sistema. NET, mas com uma semntica estendida (por exemplo propertySets e 3 de extensibilidade do partido). Por exemplo, ele permite a criao de pontos de vista diferentes de objetos, expondo apenas um subconjunto dos campos de dados, propriedades e mtodos, bem como especificar a formatao personalizada e classificao de comportamento. Estas vises so mapeados para o objeto original usando arquivos de configurao baseada em XML [16].

5- Cmdlets Cmdlets so especializados comandos no ambiente PowerShell que implementam funes especficas. Estes so os comandos nativos do PowerShell pilha. Cmdlets seguir um <verb> - <noun> padro de nomenclatura, como Get-ChildItem, ajudando a torn-las auto-descritivo [17] sada Cmdlets seus resultados como objetos ou colees de suas obras (incluindo matrizes), e opcionalmente pode receber a entrada. dessa forma, tornando-os adequados para uso como destinatrios de um gasoduto. Mas, enquanto PowerShell permite matrizes e outras colees de objetos a serem gravados para o gasoduto, cmdlets sempre objetos de processo individualmente. Para colees de objetos, PowerShell chama o cmdlet em cada objeto na coleo, em seqncia [17].

Cmdlets so especializados. NET, que o tempo de execuo PowerShell instancia e chama quando eles so executados. Cmdlets derivar a partir Cmdlet ou PSCmdlet, sendo esta ltima utilizada quando o cmdlet precisa interagir com o tempo de execuo PowerShell [17] Estas classes base especificar determinados mtodos -. BeginProcessing (), ProcessRecord () e EndProcessing () - uma das quais a execuo do cmdlet substituies para fornecer a funcionalidade. Sempre que um cmdlet executado, esses mtodos so invocados pelo PowerShell em seqncia, com ProcessRecord () sendo chamado, se ele receber input pipeline. [18] Se uma coleo de objetos encanada, o mtodo invocado para cada objeto na coleo. A classe que implementa o cmdlet deve ter um atributo NET -. CmdletAttribute - que especifica o verbo eo substantivo que compem o nome do cmdlet. Verbos comuns so fornecidos como um enum. Se um cmdlet recebe uma ou outra entrada gasoduto ou de linha de comando de entrada de parmetro, deve haver uma propriedade correspondente na classe, com uma implementao modificador. PowerShell invoca o modificador com o parmetro ou valor de entrada do pipeline, que salvo pela implementao modificador de variveis de classe. Estes valores so ento encaminhados para com os mtodos que implementam a funcionalidade. Propriedades que os parmetros mapa para linha de comando so marcadas por ParameterAttribute [19] e so definidos antes da chamada para BeginProcessing (). Aqueles que mapeiam a entrada do pipeline so tambm ladeada por ParameterAttribute, mas com o conjunto de parmetros atributo ValueFromPipeline [20]. A implementao destas classes cmdlet pode se referir a qualquer. NET API e podem ser em qualquer idioma. NET. Alm disso, o PowerShell faz certas APIs disponveis, como WriteObject (), que usado para acessar as funcionalidades especficas do PowerShell, como escrever objetos resultantes do gasoduto. Cmdlets pode usar. NET APIs de acesso a dados diretamente ou usar a infra-estrutura do PowerShell PowerShell Providers, que fazem armazena dados endereveis usando caminhos nicos. armazena dados so expostos, usando letras de unidade, e hierarquias dentro deles, tratados como diretrios. O Windows PowerShell com os fornecedores para o sistema de arquivo, registro, armazenamento de certificados, bem como os namespaces para aliases de comando, variveis e funes. [21] O Windows PowerShell tambm inclui vrios cmdlets para gerenciar vrios sistemas Windows, incluindo o sistema de arquivos, ou usando o Windows Management Instrumentation para controlar os componentes do Windows. Outras aplicaes podem se registrar

com o PowerShell cmdlets, permitindo assim que a gerenci-los e, se envolver qualquer armazenamento de dados (como bancos de dados), eles podem adicionar provedores especficos tambm. Em PowerShell V2, uma verso mais porttil do Cmdlets chamados mdulos foram adicionados. O PowerShell V2 liberao estado notas, Mdulos "permitem que os desenvolvedores e administradores de script para particionar e organizar as suas cdigo do Windows PowerShell em auto-contido, unidades reutilizveis. Cdigo de um mdulo executado em seu prprio contexto auto-suficiente e no afeta o estado fora do o mdulo. mdulos tambm permitem que voc defina um ambiente restrito espao de execuo usando um script ".

6- Pipeline PowerShell, como conchas Unix / Linux based, implementa um pipeline. Este oleoduto permite a sada de um cmdlet para ser canalizado como entrada para outro cmdlet. Por exemplo, a sada do cmdlet Get-Process pode ser canalizada para o processo de triagem de objetos (por exemplo, para classificar os objetos de contagem de identificador) e depois para o Where-Object para filtrar qualquer processo que, menos de 1 MB de paginada memria e, finalmente, para o cmdlet Selecionar Objeto para selecionar apenas os primeiros 10 (ou seja, os 10 processos com base na contagem de identificador). Enquanto Unix / Linux h muito tempo empregado o conceito de dutos, PowerShell diferente no que se passou entre as fases do pipeline. Em Unix a sada de um comando canalizada para a prxima fase do gasoduto tipicamente como texto puro. Com o PowerShell, o gasoduto consiste. NET Objects. Usando objetos elimina a necessidade de analisar a sada do texto arbitrrio de um comando para extrair dados uma vez que todos os objetos exportar uma interface consistente [22].

7- Script O Windows PowerShell inclui uma linguagem dinamicamente tipada script que pode executar operaes complexas usando os cmdlets imperativa. A linguagem de script suporta variveis, funes, ramificao (if-then-else), loops (while, do, for e foreach), erro estruturado / manipulao de exceo e encerramentos expresses / lambda, bem como integrao com o. NET. Variveis em scripts PowerShell tm nomes que

comeam com $, pois eles podem ser atribudo qualquer valor, incluindo a sada de cmdlets. Embora a linguagem no digitado, internamente, as variveis so armazenadas com os seus tipos, que podem ser tipos primitivos ou objetos. Strings podem ser delimitados por aspas simples ou aspas duplas: quando se utilizam aspas, variveis ser ampliado mesmo que estejam dentro das aspas. De acordo com a sintaxe da varivel, se o caminho para um arquivo colocado entre chaves precedidas por um cifro ($ {como em C: \ foo.txt}), refere-se ao contedo do arquivo. Se ele usado como um valor de L, qualquer coisa que lhe atribuda ser gravada no arquivo. Quando usado como um valor-R, que ser lido do arquivo. Se um objeto atribudo, serializado antes de guard-lo. Membros do objeto pode ser acessado usando. notao, como na sintaxe C #. PowerShell fornece variveis especiais, tais como $ args, que uma matriz de todos os argumentos de linha de comando passados para uma funo na linha de comando, e $ _, que se refere ao objeto atual no pipeline [23]. PowerShell tambm fornece matrizes e matrizes associativas. A linguagem de script PowerShell tambm avalia expresses aritmticas entrou na linha de comando imediatamente, e ele analisa as abreviaes comuns, como GB, MB e KB. Usando a palavra-chave function, PowerShell prev a criao de funes, que podem aceitar parmetros. Um problema comum para pessoas que PowerShell que os argumentos da funo so separadas por espaos, e no vrgulas: 1. <function> <param1> <param2>: Chama a funo com dois argumentos. (Estes argumentos podem ser vinculados a parmetros declarados na definio da funo ou acessado pela posio do array $ args). 2. <function> (<param1>, <param2>): Chama a funo com um nico argumento, uma matriz de dois elementos. PowerShell permite que qualquer mtodo a ser chamado de NET, fornecendo os seus espaos entre parnteses ([]), e em seguida, usando um par de dois pontos. (:) Para indicar o mtodo esttico [24] Por exemplo, [System.Console].: : WriteLine ("PowerShell"). Os objetos so criados usando o cmdlet New-Object. Chamando mtodos de objetos. NET realizado usando o regular. notao [24]. Para o tratamento de erros, PowerShell fornece uma. Mecanismo de manipulao NET baseado exceo. Em caso de erros, os objetos que contenham informaes

sobre o erro (objeto de exceo) so lanados, que so pegos usando a palavrachave armadilha. No entanto, a ao ou de erro configurvel, em caso de erro, o PowerShell pode ser configurado para continuar a execuo em silncio, sem aprisionamento de exceo [25]. Os scripts escritos usando o PowerShell pode ser feita para persistir ao longo das sesses em um arquivo. Ps1. Mais tarde, tanto o script inteiro ou funes individuais no script pode ser usado. Scripts e funes so usadas de forma anloga com os cmdlets, na medida em que podem ser usados como comandos nos oleodutos, e os parmetros podem ser vinculados a eles. Pipeline objetos podem ser passados entre as funes, scripts e cmdlets perfeitamente. No entanto, a execuo do script desativado por padro e deve ser ativado explicitamente [26]. Scripts PowerShell pode ser assinado para verificar sua integridade, e esto sujeitas Code Access Security. A linguagem de script PowerShell suporta a notao de prefixo binrio semelhante notao cientfica apoiada por muitas linguagens de programao C na famlia.

8- Hospedagem Outro uso do PowerShell est sendo incorporado em um aplicativo de gerenciamento, que usa o runtime PowerShell para implementar a funcionalidade de gesto. Para isso, PowerShell fornece uma API de hospedagem gerenciada. Via as APIs, a aplicao pode instanciar um espao de execuo (uma instanciao do tempo de execuo PowerShell), que ser executado no processo do aplicativo e exposto como um objeto de espao de execuo. [2] O estado do espao de execuo encerrada em um objeto sessionState. Quando o espao de execuo criado, o Windows PowerShell runtime inicializa a instanciao, inicializao, incluindo os prestadores e enumerando os cmdlets, e atualiza o objeto sessionState conformidade. O espao de execuo, em seguida, deve ser aberto para qualquer processamento sncrono ou assncrono processamento. Depois disso ele pode ser usado para executar comandos. Para executar um comando, um oleoduto (representada por um objeto de pipeline) deve ser criado e associado com o espao de execuo. O objeto de pipeline ento preenchida com os cmdlets que compem o duto. Para operaes seqenciais (como em um script PowerShell), um objeto de Pipeline criado para cada afirmao e aninhado dentro de outro objeto de Pipeline. [2] Quando criado um gasoduto, o

Windows PowerShell invoca o processador pipeline, o que resolve os cmdlets em suas respectivas assemblias (o processador de comando) e adiciona uma referncia a eles para o gasoduto, e associa-los com um, InputPipe Outputpipe ErrorOutputPipe e objetos, para representar a conexo com o gasoduto. . Os tipos so verificados e os parmetros vinculados usando reflexo [2] Uma vez que o gasoduto esteja configurado, o apresentador chama o mtodo invoke () para executar os comandos, ou seu equivalente assncrona - InvokeAsync (). Se o gasoduto tem o cmdlet write-host no final do gasoduto, que escreve o resultado na tela do console. Se no, os resultados so entregues ao host, que pode ser aplicado tanto a processamento posterior ou exibi-lo em si. As APIs de hospedagem so utilizadas pelo Microsoft Exchange Server 2007 para fornecer a sua gesto GUI. Cada operao exposta na interface do usurio mapeado para uma seqncia de comandos do PowerShell (ou gasodutos). O host cria o gasoduto e executa-los. Na verdade, o PowerShell console interativo em si um host PowerShell, que interpreta os scripts entrou na linha de comando e cria os objetos necessrios Pipeline e invoca-los.

9- PowerShell 2.0

Windows PowerShell ISE, com vrias sesses abertas PowerShell (espaos de execuo) no Windows PowerShell 2,0 A Microsoft lanou o PowerShell 2.0 com o Windows 7 e Windows Server 2008 R2. Windows PowerShell 2.0 est instalado por padro no Windows Server 2008 R2 e Windows 7. [27] Para plataformas mais antigas que est disponvel atravs do Windows Management Framework [28]. PowerShell V2 inclui alteraes para a linguagem de scripting e API de hospedagem, alm de incluir mais de 240 novos cmdlets. [29] [30] Uma lista no exaustiva dos novos recursos includos no PowerShell V2 : [31] [32[33] * PowerShell Remoting: Usando o WS-Management, PowerShell 2.0 permite que os scripts e os cmdlets para ser chamado em uma mquina remota ou a um grande conjunto de mquinas remotas. * Background Empregos: Tambm chamado de PSJob, permite que uma sequncia de comandos (script) ou por oleoduto para ser chamado de forma assncrona. Os

trabalhos podem ser executados no computador local ou em vrios computadores remotos. Um cmdlet interativa em blocos PSJob a execuo do trabalho at a entrada do usurio fornecido. * Transaes: cmdlet Enable e desenvolvedores de provedor para executar operaes transacionais. PowerShell 2.0 inclui cmdlets transao para a partida, cometendo, e reverso de uma PSTransaction bem como recursos para gerenciar e dirigir a operao para o cmdlet participantes e as operaes do provedor. O PowerShell provedor Secretaria oferece suporte a transaes. * ScriptCmdlets: Estes so os cmdlets escrito usando a linguagem de script PowerShell. NOTA: O nome preferido para cmdlets script est agora Funes Avanadas. SteppablePipelines *: Isso permite que o usurio controle quando o BeginProcessing (), ProcessRecord () e EndProcessing () funes de um cmdlet so chamados. * Mdulos: Este script permite que desenvolvedores e administradores de organizao e de partio de scripts PowerShell em auto-contido, unidades reutilizveis. Cdigo de um mdulo executado em seu prprio contexto autosuficiente e no afeta o estado fora do mdulo. Os mdulos podem definir um ambiente restrito espao de execuo usando um script. Eles tm um estado persistente, bem como os membros pblicos e privados. * Dados Idioma: Um subconjunto de domnio especfico da linguagem de script PowerShell, que permite a definio dos dados dever ser dissociada dos scripts e permitir que recursos seqncia localizada a ser importado para o script em tempo de execuo (Script Internacionalizao). * Script Debugging: Ela permite que os pontos de interrupo a ser definido em um script PowerShell ou funo. Breakpoints podem ser definidas em linha linhas, e colunas, comandos e ler ou escrever acesso de variveis. Ele inclui um conjunto de cmdlets para controlar os pontos de interrupo via script. * Evento: Este recurso permite que ouvir, encaminhar e actuar em eventos de gesto e de sistema. Eventos PowerShell permite hosts para ser notificado sobre as mudanas de estado s suas entidades geridas. Ele tambm permite que os scripts do PowerShell para assinar ObjectEvents, PSEvents e WmiEvents e process-los de forma sncrona e assncrona. * Windows PowerShell Integrado Scripting Ambiente (ISE): PowerShell 2.0 inclui uma interface grfica baseada em host PowerShell (anteriormente conhecido como grfico do Windows PowerShell) que fornece depurador integrado, sintaxe destacando, preenchimento de guias e at 8 PowerShell habilitado para Unicode

consoles (espaos de execuo) em uma interface com abas, bem como a habilidade de executar somente as partes selecionadas em um script. * Rede de Transferncia de Arquivo:. Suporte nativo para a transferncia de prioridade, estrangulado, e assncrona de arquivos entre mquinas usando o Background Intelligent Transfer Service (BITS) [34] * Novo Cmdlets Incluindo: Out-GridView que exibe dados tabulares no objeto GridView WPF. * Novos operadores:-Split, Join-e splatting (@) operadores. * Exceo com Try-Catch-Finally:. Ao contrrio de outros idiomas NET, isso permite que mltiplos tipos de exceo de um nico bloco catch. * Aqui Nestable-Strings: PowerShell Aqui-Cordas foram melhorados e agora pode ninho [35]. * Comentrios Bloco: PowerShell 2.0 suporta comentrios em bloco usando <e #> como delimitadores [36]. * Novas APIs: A gama de novas APIs de entregar mais controle sobre o analisador PowerShell e tempo de execuo para o acolhimento, a criao e gerenciamento de coleo de espaos de execuo (RunspacePools), bem como a capacidade de criar espaos de execuo restrita que s permite um subconjunto configurado de PowerShell ser invocado. As novas APIs tambm apoiar a participao em um Windows PowerShell conseguiu transao.

10- O que Shell linux?

Relembrando os artigos de "Linux mais a fundo" , shell um programa que permite ao usurio iteragir com o sistema operacional atravs de comandos digitados do teclado. No DOS o shell era o command.com, que permitia executar alguns comandos como: cd, dir, ... O shell mais famoso de Linux o Bash, pois o mesmo oferece vrios recursos que facilitam a vida do usurio. O mais bsico o sh. Em todos estes possvel criar scripts (mini-programas) que executam sequncias de comandos, como se estivessem sidos digitados pelo usurio.

Lembremos que para um usurio normal, o shell aparece com o smbolo $ . J para o root, o smbolo o # . 11- Comandos Qualquer dvida em um dos comandos abaixo, rode o man. Por exemplo, se estiver com dvida no comando ls : $ man ls LS O ls o comando mais bsico de um shell. Ele serve para listar o contedo de um diretrio, mostrando os arquivos que esto no mesmo. Exemplos: Listar o diretrio atual: $ ls Listar o diretrio /etc: $ ls /etc Listar o diretrio atual mostrando todos os detalhes dos arquivos: $ ls -l Mostrar arquivos ocultos (que comeam com . (ponto final)): $ ls -a Combinando os dois ltimos comandos acima: $ ls -la PWD O pwd mostra o diretrio atual: $ pwd CD CD vem de C hange D irectory (mudar de diretrio) e serve justamente para mudar o diretrio atual. Exemplo: $ pwd /home/luke

$ cd / $ pwd / MKDIR O mkdir cria diretrios: $ mkdir tmp RMDIR O rmdir apaga diretrios vazios (como o tmp acima): $ rmdir tmp RM O rm serve para apagar arquivos: $ rm imagem.jpg Para apagar diretrios e seu contedo: $ rm -rf tmp DU O comando du verifica o tamanho de diretrios e seus subdiretrios: $ du /etc DF O df verifica o quanto voc tem disponvel nas suas parties e o quanto foi gasto: $ df Para visualizar melhor (em MegaBytes): $ df -h FREE O free mostra quanto voc tem de memria RAM e swap, gastos e livres: $ free FIND O find procura por arquivos em um diretrio e seus subdiretrios. Neste exemplo vou procurar arquivos JPG a partir do diretrio atual: $ find . -name *jpg Agora vou procurar arquivos MPG no diretrio do CDROM: $ find /cdrom -name *mpg

WHOAMI O whoami retorna o usurio logado no momento (que executou este comando): $ whoami WHO O who mostra os usurios logados no sistema: $ who HOSTNAME O hostname retorna o nome do computador (na rede, ou no) que se est usando: $ hostname SU O su muda para o root ou para outro usurio: $ su Passwd: ou $ su baptista Passwd: $ ECHO O echo escreve um conjunto de caracteres na tela: $ echo "OLinux um bom site!" OLinux um bom site! MOUNT O mount monta (ativa) devices: $ mount /floppy UMOUNT O umount desmonta (desativa) devices: $ umount /floppy CAT O cat imprime arquivos na tela: $ cat README

MORE O more imprime arquivos a tela, porm para esperando um retorno do teclado a cada tela cheia: $ more README GREP O grep uma ferramenta muito poderosa, principalmente para programadores. GREP = Generalized Regular Expression Parser. Facilitando para entender, ele procura por um texto dentro de uma arquivo. Neste exemplo procuro por "autor" dentro do "README": $ grep autor README PS O ps mostra todos os processos (programas) que esto rodando na memria. Vendo os processos do usurio: $ ps Vendo todos os processos do sistema (de todos os usurios): $ ps aux TOP O top mostra todos os processos que esto rodando com vrias outras informaes do sistema: $ top TAR O tar server para compactar e descompactar arquivos no formato .tar.gz (tar e gzip). Compactando: $ tar cvfz arquivo.tar.gz [arquivos|diretrio] Descompactando: $ tar xvfz arquivo.tar.gz Pipe Podemos usar o smbolo especial | para fazer o que chamamos de pipe, que nada mais do que a conexo da sada de dois programas. Neste exemplo, eu vou procurar em todos os processos do sistema pelo que contm o texto "init": $ ps aux | grep init

Ou seja, a sada de ps aux funciona como o arquivo para o grep init . como fazer ps aux e gravar sua sada num arquivo chamado teste , por exemplo. E depois fazer grep init teste . S que o pipe faz tudo automtico, conectando a sada do ps com a entrada do grep neste exemplo (sem a necessidade de um arquivo intermedirio). Outro exemplo: $ ls -l | more Neste exemplo a sada do ls usada pelo more . Ou seja, o ls -l impresso na tela pausadamente, como se fosse um arquivo usado pelo more . 12- Redirecionamento Alm do pipe, podemos usar o redirecionamento. Para isso, usamos os smbolos < e > , significando entrada e sada respectivamente. Vamos a um exemplo. Imagine que eu queira guardar o resultado do ls na tela. Ento faria assim: $ ls > teste O arquivo teste foi criado com o que o ls imprimiria na tela. 13- Usando o Bash Agora vamos ver algumas facilidades do bash. O bash possui histria, ou seja, cada vez que apertamos a tecla que representa uma seta para cima, temos um comando j executado anteriormente. Se apertamos uma vez, temos o ltimo comando executado. Se apertamos duas vezes, temos o penltimo comando executado. E assim por diante. Quando estamos digitando um diretrio ou arquivo, ao apertarmos a tecla TAB, nos aparece o nome do arquivo todo. Ou seja, ele completado automaticamente para voc. Caso no seja, o bash emite um som via speaker. Se voc apertar o TAB e sair este som, aperte de novo o TAB que ele ir lhe mostrar as opes de complemento de nome. Por exemplo, imagine que no diretrio atual eu tenho dois arquivos: teste1.txt e teste2.txt . Agora digito (sem apertar ENTER): $ cat t Agora aperto TAB e ele completa o nome e emite o som:

$ cat teste Ento aperto TAB novamente e me aparecem as opes (pois ele no sabe qual eu quero): $ cat teste teste1.txt teste2.txt Basta eu digitar mais um caractere (1 ou 2): $ cat teste1 E apertar TAB novamente: $ cat teste1.txt ENTER

ou variaes como o bash. O ue muita gente no sabe que o sh ou o bash tm uma poderosa linguagem de script embutido nelas mesmas. Diversas pessoas utilizam-se desta linguagem para facilitar a realizao de inmeras tarefas administrativas no Linux, ou at mesmo criar seus prprios programinhas. Patrick Volkerding, criador da distribuio Slackware, utiliza esta linguagem para toda a instalao e configurao de sua distribuio. Voc poder criar scripts para automar as tarefas dirias de um servidor, para efetuar backup automtico regularmente, procurar textos, criar formataes, e muito mais. Para voc ver como esta linguagem pode ser til, vamos ver alguns passos introdutrios sobre ela. Interpretadores de comandos so programas feitos para intermediar o usurio e seu sistema. Atravs destes interpretadores, o usurio manda um comando, e o interpretador o executa no sistema. Eles so a Shell do sistema Linux. Usaremos o interpretador de comandos bash, por ser mais extenso que o sh, e para que haja uma melhor compreenso das informaes obtidas aqui, bom ter uma base sobre o conceito de lgica de programao. Uma das vantagens destes shell scripts que eles no precisam ser compilados, ou seja, basta apenas criar um arquivo texto qualquer, e inserir comandos ele. Para dar este arquivo a definio de shell script, teremos que incluir uma linha no comeo do arquivo (#!/bin/bash) e torn-lo executvel, utilizando o comando chmod. Vamos seguir com um pequeno exemplo de um shell script que mostre na tela: Nossa! Estou vivo!:
#!/bin/bash echo 'Nossa! Estou vivo!'

A primeira linha indica que todas as outras linhas abaixo devero ser executadas pelo bash (que se localiza em /bin/bash), e a segunda linha imprimir na tela a frase Nossa! Estou vivo!, utilizando o comando echo, que serve justamente para isto. Como voc pde ver, todos os comandos que voc digita diretamente na linha de comando, voc poder incluir no seu shell script, criando uma srie de comandos, e essa combinao de comandos que forma o chamado shell script. Tente tambm dar o comando file arquivo e veja que a definio dele de Bourne-Again Shell Script (Bash Script).

Contudo, para o arquivo poder se executvel, voc tem de atribuir o comando de executvel para ele. E como citamos anteriormente, o comando chmod se encarrega disto:
$ chmod +x arquivo

Pronto, o arquivo poder ser executado com um simples ./arquivo.

14- Conceito de Variveis em shell script


Variveis so caracteres que armazenam dados, uma espcie de atalho. O bash reconhece uma varivel quando ela comea com $, ou seja, a diferena entre palavra e $palavra que a primeira uma palavra qualquer, e a outra uma varivel. Para definir uma varivel, utilizamos a seguinte sintaxe:
variavel="valor"

O valor ser atribudo a varivel . Valor pode ser uma frase, nmeros, e at outras variveis e comandos. O valor pode ser expressado entre as aspas (), apstrofos () ou crases (). As aspas vo interpretar as variveis que estiverem dentro do valor, os apstrofos lero o valor literalmente, sem interpretar nada, e as crases vo interpretar um comando e retornar a sua sada para a varivel. exemplos:
$ variavel="Eu estou logado como usurio $user" $ echo $variavel Eu estou logado como usurio cla $ variavel='Eu estou logado como usurio $user' $ echo $variavel Eu estou logado como usurio $user $ variavel="Meu diretrio atual o `pwd`" $ echo $variavel Meu diretrio atual o /home/cla

Se voc quiser criar um script em que o usurio deve interagir com ele, possvel que voc queira que o prprio usurio defina uma varivel, e para isso usamos o comando read, que dar uma pausa no script e ficarar esperando o usurio digitar algum valor e teclar enter. Exemplo:
echo "Entre com o valor para a varivel: " ; read variavel (O usurio digita e tecla enter, vamos supor que ele digitou 'eu sou um profissional em linux') echo $variavel eu sou um profissional em linux

15- Controle de fluxo com o if


Controle de fluxo so comandos que vo testando algumas alternativas, e de acordo com essas alternativas, vo executando comandos. Um dos comandos de controle de

fluxo mais usados certamente o if, que baseado na lgica se acontecer isso, irei fazer isso, se no, irei fazer aquilo. exemplo:
if [ -e $linux ] then echo 'A varivel $linux existe.' else echo 'A varivel -eq igual $linux no existe.' -ne diferente fi -gt maior -lt menor -o ou O que este pedao de -d se for um diretrio cdigo faz? O if testa -e se existir a seguinte expresso: -z se estiver vazio Se a varivel $linux -f se conter textos existir, ento (then) -o se o usurio for o dono ele diz que que existe -r se o arquivo pode ser lido com o echo, se no -w se o arquivo pode ser alterado (else), ele diz que -x Se o arquivo pode ser executado no existe. O operador -e que usei pr-definido, e voc pode encontrar a listagem dos operadores na tabela:

16- Outras alternativas


Existem inmeros comandos no Linux, e para explicar todos, teramos de publicar um verdadeiro livro. Mas existem outras possibilidades de aprendizado desta lngua, que tambm usado em todas as programaes. Primeiro de tudo voc pode dar uma olhada na manpage do bash (comando man bash), que disponibilizar os comandos embutidos no interpretador de comandos. Uma das coisas essencias para o aprendizado sair coletando exemplos de outros scripts e ir estudando-os minuciosamente. Procure sempre

comandos e expresses novas em outros scripts e em manpages dos comandos. E por ltimo, mas no o menos importante, praticar bastante! Na tabela a seguir, voc pode encontrar uma listagem de comandos para usar em sua shell script: echo read exit sleep clear stty tput if case for Whil Imprime texto na tela Captura dados do usurio e coloca numa varivel Finaliza o script Da uma pausa em segundos no script Limpa a tela Configura o terminal temporariamente Altera o modo de exibio Controle de fluxo que testa uma ou mais expresses Controle de fluxo que testa varias expresses ao mesmo tempo Controle de fluxo que testa uma ou mais expresses Controle de fluxo que testa uma ou mais expresses

17- Se aprofundando mais Falamos sobre o conceito da programao em Shell Script, e demos o primeiro passo para construir nossos prprios scripts. Agora vamos nos aprofundar nos comandos mais complicados, aprendendo a fazer programas ainda mais teis. Nestes comandos esto inclusos o case e os laos for, while e until. Alm disso, vamos falar de funes e, por ltimo, teremos um programa em shell script.

18- Case
O case para controle de fluxo, tal como o if. Mas enquanto o if testa expresses no exatas, o case vai agir de acordo com os resultados exatos. Vejamos um exemplo:
case $1 in parametro1) comando1 ; comando2 ;; parametro2) comando3 ; comando4 ;; *) echo "Voc tem de entrar com um parmetro vlido" ;; esac

Aqui aconteceu o seguinte: o case leu a varivel $1 (que o primeiro parmetro passado para o programa), e comparou com valores exatos. Se a varivel $1 for igual parametro1, ento o programa executar o comando1 e o comando2; se for igual parametro2, executar o comando3 e o comando4, e assim em diante. A ltima opo (*), uma opo padro do case, ou seja, se o parmetro passado no for igual a nenhuma das outras opes anteriores, esse comando ser executado automaticamente. Voc pode ver que, com o case fica muito mais fcil criar uma espcie de menu para o shell script do que com o if. Vamos demonstrar a mesma funo anterior, mas agora usando o if:
if [ -z $1 ]; then

echo "Voc tem de entrar exit elif [ $1 = "parametro1" ]; comando1 comando2 elif [ $1 = "parametro2" ]; comando3 comando4 else echo "Voc tem de entrar fi

com um parmetro vlido" then then

com um parmetro vlido"

Veja a diferena. muito mais prtico usar o case! A vantagem do if que ele pode testar vrias expresses que o case no pode. O case mais prtico, mas o if pode substitu-lo e ainda abrange mais funes. Note que, no exemplo com o if, citamos um comando no visto antes: o elif que uma combinao de else e if. Ao invs de fechar o if para criar outro, usamos o elif para testar uma expresso no mesmo comando if.

19- For
O lao for vai substituindo uma varivel por um valor, e vai executando os comandos pedidos. Veja o exemplo:
for i in * do cp $i $i.backup mv $i.backup /usr/backup done

Primeiramente o lao for atribuiu o valor de retorno do comando * (que equivalente a um ls sem nenhum parmetro) para a varivel $i, depois executou o bloco de comandos. Em seguida ele atribui outro valor do comando * para a varivel $1 e reexecutou os comandos. Isso se repete at que no sobrem valores de retorno do comando *. Outro exemplo:
for original in *; do resultado=`echo $original | tr '[:upper:]' '[:lower:]'` if [ ! -e $resultado ]; then mv $original $resultado fi done

Aqui, o que ocorre a transformao de letras maisculas para minsculas. Para cada arquivo que o lao l, uma varivel chamada $resultado ir conter o arquivo em letras minsculas. Para transformar em letras minsculas, usei o comando tr. Caso no exista um arquivo igual e com letras minsculas, o arquivo renomeado para o valor da varivel $resultado, de mesmo nome, mas com letras minsculas. Como os exemplos ilustram, o lao for pode ser bem til no tratamento de mltiplos arquivos. Voc pode deix-los todos com letras minsculas ou maisculas sem precisar renomear cada um manualmente, pode organizar dados, fazer backup, entre outras coisas.

20- While
O while testa continuamente uma expresso, at que ela se torne falsa. Exemplo:
variavel="valor" while [ $variavel = "valor" ]; do comando1 comando2 done

O que acontece aqui o seguinte: enquanto a $variavel for igual a valor, o while ficar executando os comandos 1 e 2, at que a $variavel no seja mais igual a valor. Se no bloco dos comandos a $variavel mudasse, o while iria parar de executar os comandos quando chegasse em done, pois agora a expresso $variavel = valor no seria mais verdadeira.

21- Until
Tem as mesmas caractersticas do while, a nica diferena que ele faz o contrrio. Veja o exemplo abaixo:
variavel="naovalor" until [ $variavel = "valor" ]; do comando1 comando2 done

Ao invs de executar o bloco de comandos (comando1 e comando2) at que a expresso se torne falsa, o until testa a expresso e executa o bloco de comandos at que a expresso se torne verdadeira. No exemplo, o bloco de comandos ser executado desde que a expresso $variavel = valor no seja verdadeira. Se no bloco de comandos a varivel for definida como valor, o until pra de executar os comandos quando chega ao done. Vejamos um exemplo para o until que, sintaticamente invertido, serve para o while tambm:
var=1 count=0 until [ $var = "0" ]; do comando1 comando2 if [ $count = 9 ]; then var=0 fi count=`expr $count + 1` done

Primeiro, atribumos varivel $var o valor 1. A varivel $count ser uma contagem para quantas vezes quisermos executar o bloco de comandos. O until executa os comandos 1 e 2, enquanto a varivel $var for igual a 0. Ento usamos um if para atribuir o valor 0 para a varivel $var, se a varivel $count for igual a 9. Se a varivel $count no for igual a 0, soma-se 1 a ela. Isso cria um lao que executa o

comando 10 vezes, porque cada vez que o comando do bloco de comandos executado, soma-se 1 varivel $count, e quando chega em 9, a varivel $var igualada a zero, quebrando assim o lao until.

22- Usando vrios scripts em um s


Pode-se precisar criar vrios scripts shell que fazem funes diferentes, mas, e se voc precisar executar em um script shell um outro script externo para que este faa alguma funo e no precisar reescrever todo o cdigo? simples, voc s precisa incluir o seguinte comando no seu script shell:
. bashscript2

Isso executar o script shell bashscript2 durante a execuo do seu script shell. Neste caso ele ser executado na mesma script shell em que est sendo usado o comando. Para utilizar outra shell, voc simplesmente substitui o . pelo executvel da shell, assim:
sh script2 tcsh script3

Nessas linhas o script2 ser executado com a shell sh, e o script3 com a shell tcsh. 23 - Variveis especiais $0 $1-$9 $# $? $$ Nome do script que esta sendo executado Parmetros passados a linha de comando Numero de parmetros passado Valor de retorno do ultimo comando em todo o shell script Nmero do PID (Process ID)

Voc tambm encontra muitas variveis, j predefinidas, na pgina de manual do bash (comando man bash, seo Shell Variables).

24- Funes
Funes so blocos de comandos que podem ser definidos para uso posterior em qualquer parte do cdigo. Praticamente todas as linguagens usam funes que ajudam a organizar o cdigo. Vejamos a sintaxe de uma funo:
funcao() { comando1 comando2 ... }

Fcil de entender, no? A funo funcionar como um simples comando prprio. Voc executa a funo em qualquer lugar do script shell, e os comandos 1, 2 e outros sero executados. A flexibilidade das funes permite facilitar a vida do programador, como no exemplo final.

25- Exemplo Final


Agora vamos dar um exemplo de um programa que utilize o que aprendemos com os artigos.
#!/bin/bash # Exemplo Final de Script Shell Principal() { echo "Exemplo Final sobre o uso de scripts shell" echo "------------------------------------------" echo "Opes:" echo echo "1. Trasformar nomes de arquivos" echo "2. Adicionar um usurio no sistema" echo "3. Deletar um usurio no sistema" echo "4. Fazer backup dos arquivos do /etc" echo "5. Sair do exemplo" echo echo -n "Qual a opo desejada? " read opcao case $opcao in 1) Transformar ;; 2) Adicionar ;; 3) Deletar ;; 4) Backup ;; 5) exit ;; *) "Opo desconhecida." ; echo ; Principal ;; esac } Transformar() { echo -n "Para Maisculo ou minsculo? [M/m] " read var if [ $var = "M" ]; then echo -n "Que diretrio? " read dir for x in `/bin/ls` $dir; do y=`echo $x | tr '[:lower:]' '[:upper:]'` if [ ! -e $y ]; then mv $x $y fi done elif [ $var = "m" ]; then echo -n "Que diretrio? " read dir for x in `/bin/ls` $dir; do y=`echo $x | tr '[:upper:]' '[:lower:]'` if [ ! -e $y ]; then mv $x $y fi done fi } Adicionar() { clear echo -n "Qual o nome do usurio a se adicionar? " read nome adduser nome Principal } Deletar() {

clear echo -n "Qual o nome do usurio a deletar? " read nome userdel nome Principal } Backup() { for x in `/bin/ls` /etc; do cp -R /etc/$x /etc/$x.bck mv /etc/$x.bck /usr/backup done } Principal

26- janelas graficas Nos dois topicos anteriores, vimos algumas coisas bsicas e lgicas de programao em shell no Linux. Agora para completar, darei aqui dicas de como usar janelas grficas em seus shell-scripts. Isso mesmo, janelas que rodam no ambiente grfico, utilizadas facilmente em seu shell-script. Com esse recurso, vai ser possvel deixar o seu programa bem amigvel. No vai ser preciso saber muita coisa de programao em shell, pois muito simples. Atravs do programa Xdialog, voc poder criar os mais variados tipos de janelas para o programa: caixas de texto, selees, radios, etc. O Xdialog uma idia que vem do dialog/cdialog, um programa para console que gera janelas no console (aquelas da instalao do Slackware) usando a biblioteca ncurses. O Xdialog ao invs de usar a biblioteca ncurses, usa a Xlib para criar as janelas no ambiente grfico. Primeiro de tudo ser necessrio voc obter o Xdialog no seu sistema. No comum o Xdialog estar incluso nas distribuies, ento voc ter de pegar e compilar o programa. Obtenha o programa no CD da Revista ou visite o endereo oficial do Xdialog, que http://xdialog.free.fr. Aqui eu peguei o arquivo Xdialog-1.4.5.tar.bz2, e agora vamos aos passos bsicos para instalar ele. Primeiro descompacte-o com o comando bunzip2 Xdialog-1.4.5.tar.bz2, e logo em seguida tar xpvf Xdialog-1.4.5.tar. Um diretrio chamado Xdialog-1.4.5 ser criado, e entrando nele voc estar pronto para compil-lo e instal-lo. Para fazer isso use os comandos ./configure, depois make e por ltimo make install. No passo do make install, o binrio do Xdialog ser colocado em /usr/local/bin. Pronto, agora voc j poder utilizar o Xdialog atravs de qualquer shellscript. E agora vamos ao! Como aprendemos nos artigos anteriores, em shell-script s colocar o comando dentro do arquivo que ele j vai ser executado quando o script for executado. Ento s o que temos de aprender aqui como usar o Xdialog. Vamos ver um primeiro exemplo:
#!/bin/bash Xdialog --title "Exemplo nmero 1!" --center --stdout --yesno \ "Isto legal?" \ 0 0 echo $?

Como voc pde ver, o programa Xdialog gerou uma janela com ttulo Exemplo nmero 1!, perguntando Isto legal? e com opes de Sim e No. Note que a \ (barra) serve para indicar shell para continuar o comando da linha seguinte, ento estas trs linhas so que nem uma s. Como ltimo comando do exemplo dado, temos o echo $?, que eu coloquei apenas para indicar qual foi o retorno da pergunta. Caso o usurio apertou em Sim, o retorno vai ser 0, e se apertou em No, vai ser 1. Podemos usar este retorno para controlar o que o usurio escolher. Vejamos um exemplo:
Xdialog --title "Exemplo nmero 2!" --center --stdout --yesno \ "Neste exemplo, vamos ver o que voc quer fazer. Voc deseja continuar com o programa?" \ 0 0 if [ $? = "0" ]; then echo "Que bom! Voc continuou o programa! Parabns!" elif [ $? = "1" ]; then echo "Voc saiu do programa..." fi

Viu como funciona? Agora vamos ver outros recursos que o Xdialog pode oferecer. Eu vou dar vrios exemplos aqui e sair comentando cada opo. Voc precisar praticar bastante e conhecer as vrias opes. Primeiro vamos gerar uma simples mensagem pro usurio ver:
Xdialog --title "Aviso" --center --stdout --msgbox \ "Este programa apenas um exemplo para voc ver como o Xdialog \ \nfunciona. Apropsito, se voc praticar bastante pode criar \ \nprogra mas incrveis e facilmente, que daria muito mais \ \ntrabalho fazendo em outras linguagens." \ 0 0

O usurio aperta Ok e o shell-script continua normalmente. No primeiro exemplo eu usei a opo yesno que gerava o sim e no. Agora usei o msgbox. Mas e se voc quiser que o usurio digite algo e isto seja gravado em um arquivo por exemplo? Vamos ver este exemplo:
Xdialog --title "Que Anime que voc mais gosta?" --center --inputbox \ "Se voc sabe o que Anime, e gosta, qual o seu preferido?\n \ Sua resposta ser gravada no arquivo resposta." \ 0 0 2> resposta

Depois que o usurio preenche o campo e d Ok, a resposta que este usurio digitou ser gravada no arquvio resposta. Isto ocorreu pelo fato de eu ter colocado o direcionador 2> para o arquivo resposta. Se eu colocasse a opo stdout na linha de comando do Xdialog, a resposta do usurio apareceria na tela. Tente voc. Vamos ver agora seleo de itens, que uma das coisas mais importantes num programa. Desta vez usaremos a opo menubox para gerar um menu com os itens a serem selecionados. Mais uma vez, vamos ao exemplo:
Xdialog --title "Exemplo de Menu" --center --stdout --menubox \ "Qual sua distribuio Linux favorita?" \ 20 50 0 \ 1 "Slackware" \ 2 "Debian" \

3 "Red Hat" \ 4 "Conectiva Linux" \ 5 "Eu tenho minha prpria distribuio"

Viu como fcil? O que o usurio escolher vai aparecer como resultado no console (por causa da opo stdout). Se eu colocasse o redirecionador 2>, poderia ir para um arquivo como no exemplo anterior. Vamos esclarecer uma coisa aqui tambm Depois do texto Qual sua distribuio Linux favorita?, h 2 nmeros. Estes dois nmeros correspondem altura e comprimento da janela. Nos exemplos anteriores eu coloquei 0 0 pois a o Xdialog dimensiona automaticamente o tamanho da janela. Ento j sabe, se quiser mudar o tamanho da janela, s mudar estes dois nmeros. Agora como ltimo exemplo, vamos criar uma janela em que o usurio poder escolher uma ou mais opes. Isto chamado de checklist, e pode ser visto no exemplo a seguir:
Xdialog --title "ltimo exemplo - checklist" --center --checklist \ "Como se pronuncia Linux?" \ 0 0 0 \ "Opo 1" "Linucs" off \ "Opo 2" "Lenocs" off \ "Opo 3" "Lincs" off \ "Opo 4" "Lnucs" on \ "Opo 5" "GNUUU/Linux" off

Veja agora a diferena entre esta checklist e o menu do exemplo anterior. Verifique que depois de cada opo h o on e o off. O on indica que esta opo dever j estar marcada, e o off que no dever estar marcada. Se o usurio escolher 3 opes, as mesmas sero o resultado. Bem fcil criar uma interface amigvel para suas shell-scripts. Se voc pensa que isto tudo, ainda tem muito mais por trs do Xdialog. Para no ter que ficar comentando cada opo, vou dar uma lista de parmetros e a descrio de suas funes. O que voc dever fazer sair testando todas as opes e se impressionar :) yesno msgbox infobox inputbox rangebox textbox editbox menubox checklist radiolist treeview gauge tailbox fselect dselect calendar Uma janela com opes de Sim ou No Apenas mostra um texto informativo Mesmo que msgbox, s que desaparece automaticamente em um determinado tempo O usurio preenche um campo Escolhe um nmero entre X e Y, com uma barra de rolagem Mostra o contedo de um arquivo numa caixa de texto Edita o contedo de um arquivo numa caixa de texto Cria um Menu de opes, onde se seleciona um item Mesmo que menubox, s que pode-se selecionar vrios itens Mesmo que menubox, mas agora em outro estilo Opes organizadas em forma de rvore (interessante) Um indicador de processo Mostra o contedo de um arquivo Abre uma janela de seleo de um arquivo Abre uma janela de seleo de um diretrio Mostra um calendrio para escolher uma data

timebox

Mostra uma janela para edio de horrio

26 - Concluso Concluimnos que O Powershell basicamente uma linguagem de scripting criada pela Microsoft para administradores de sistemas, a sua syntax um misto de perl,c++ e c#. O Powershell distrbuido livremente e tem como grande objectivo a substituio de vbscript e batch scripting. Windows Powershell um ambiente para cmdlets, funes, filtros, executveis e aliases. Bibliografias: http://wiki.portugal-a-programar.org/revistaprogramar_arquivo:19_edicao:powershell

http://technet.microsoft.com/pt-br/library/bb978526.aspx http://en.wikipedia.org/wiki/Windows_PowerShell#References
http://www.vivaolinux.com.br/artigo/Uma-introducao-ao-shell-%28parte-1%29