O Powershell é uma maneira perfeita para um novo programador iniciar o Windows. Powershell é uma ferramenta de linha de comando e linguagem de script de partes iguais. Ele permite que você automatize seu computador usando os mesmos comandos usados para administrá-lo. Prompt de comando versus Windows PowerShell: Qual é a diferença? Prompt de comando versus Windows PowerShell: qual é a diferença? Usuários do Windows podem obter sem usar o Prompt de Comando ou o PowerShell. Mas com o Windows 10 e novos recursos ao virar da esquina, talvez seja hora de aprendermos. Consulte Mais informação . Se você tem um sistema Windows moderno, você já tem o Powershell. A maioria de seus usos são centrados no Windows, mas você pode instalar o Powershell em uma máquina Mac ou Linux Como instalar e usar o PowerShell no Linux Como instalar e usar o PowerShell no Linux Em 2016, a Microsoft lançou o PowerShell e estreou uma iteração entre plataformas . Neste artigo, vou mostrar como instalar, executar e usar o PowerShell no Linux! Leia mais também.
Trabalhando com o PowerShell
Existem duas maneiras de usar o Powershell. Existe a janela de linha de comando básica, que é usada para executar comandos ou invocar scripts pré-escritos. Depois, há o ISE, que combina a janela CLI com um ambiente de desenvolvimento básico. Usando isso, você pode escrever e testar seus scripts.
O ISE tem uma lista pesquisável de comandos e você pode usar sua Janela de Terminal sem abrir um arquivo. A lista de comandos permite que você construa seu comando e insira-o. Se você estiver fazendo um desenvolvimento mais avançado, instale o código do Visual Studio da Microsoft. Código inclui suporte para o controle de versão do Git 10 Dicas Essenciais de Produtividade para o Visual Studio Code 10 Dicas Essenciais de Produtividade para o Visual Studio Code O Visual Studio Code explode editores de texto de programação fora da água. É gratuito, de código aberto, rápido e cheio de recursos de produtividade. Leia mais e outras línguas.
Powershell é único porque é construído inteiramente de comandos, a Microsoft chama de Cmdlets. Esses comandos são os mesmos se você estiver trabalhando via linha de comando ou escrevendo scripts complexos. Então, ao usar esses comandos, você pode pensar em como agrupá-los para criar seus primeiros scripts.
Noções básicas: Get-Command, Get-Help, Get-Member
Todos os comandos do Powershell tomam a forma de Verb-Noun. Os verbos geralmente são: Get, Set e New .
Get-Command permite que você veja todos os comandos disponíveis. Ao executar o comando Get-Command, você verá que há vários comandos que começam com eles.
Indo mais longe apenas dos nomes dos cmdlets, você começa a ver que todos eles têm uma estrutura semelhante. Você invoca-os pelo nome, assim como você fez com o Get-Command. Usando parâmetros altera as informações que você recebe. No entanto, se você só usou o comando com opções padrão, como descobrir como usar os parâmetros avançados?
O uso do cmdlet Get-Help com Get-Command mostra mais informações sobre o cmdlet. Usamos o cmdlet com a seguinte sintaxe:
Get-Help Get-Command
Você então vê as informações básicas sobre os parâmetros. Se você quiser ver os detalhes dos parâmetros e alguns exemplos de uso, adicione o parâmetro -Full.
Se você quiser apenas ver os exemplos, você pode executar:
Get-Help Get-Command -Examples
Este cmdlet retorna apenas os exemplos do arquivo de ajuda. Esses exemplos são bastante úteis porque incluem descrições. Este texto de ajuda explica o que o cmdlet e os parâmetros fazem quando são executados.
Se você quiser abrir o arquivo de ajuda em uma janela separada, poderá usar -ShowWindow . Então, se você correr:
Get-Help Get-Command -ShowWindow
Powershell abre uma janela com o arquivo de ajuda completo. Você não precisa usar o parâmetro Full aqui, pois a janela puxa o artigo completo.
À medida que você se torna mais avançado com o Powershell, descobrirá que usa o Get-Member com mais frequência. É uma maneira fácil de ver quais campos estão disponíveis a partir dos dados retornados, bem como outros métodos que você pode executar. Geralmente, os cmdlets terão um parâmetro -Property para permitir que você os chame.
Trabalhando com arquivos: Get-ChildItem, Remove-Item, Move-Item, Copy-Item
Agora que você tem uma ideia de como os cmdlets funcionam e como obter ajuda, vamos fazer alterações. Você pode obter o conteúdo de qualquer pasta usando o comando Get-ChildItem . Por exemplo, você pode obter os arquivos de uma unidade inteira usando a letra da unidade. Entrar:
Get-ChildItem E:\
Qual é a abreviação de:
Get-ChildItem -Path E:\
Quando você executa este comando, você obtém uma lista de arquivos com seu Last Last Time, tamanho sob a propriedade Length, Name e Mode. O modo é os atributos de um arquivo ou pasta AttributeMagic Free: modificar as propriedades do arquivo no Windows AttributeMagic Free: modificar as propriedades do arquivo no Windows Leia mais. As entradas possíveis são:
- Somente leitura
- Escondido
- Sistema
- Diretório
- Arquivo
- Dispositivo
- Normal
- Temporário
- SparseFile
- ReparsePoint
- Comprimido
- desligada
- NotContentIndexed
- Criptografado
Se você deseja obter o conteúdo de todos os subdiretórios em um caminho, use o parâmetro -Recurse . Então corra:
Get-ChildItem -Path E:\ -Recurse
Seus arquivos, em seguida, saem como listas separadas para cada pasta no caminho.
Para limitar os dados retornados, você pode usar alguns parâmetros diferentes: -File, -Hidden e -ReadOnly . Se você estiver procurando filtrar os nomes do arquivo, poderá usar curingas no parâmetro Path. Para retornar todos os arquivos .doc em um diretório, digite:
Get-ChildItem -Path E:\*.doc
Novamente adicione -recurse se você quiser tudo das subpastas também.
Se você quiser excluir um arquivo, use:
Remove-Item -Path E:\OldFile.txt
Para pular a confirmação de cada arquivo, adicione o parâmetro -Confirm $ false (o Powershell tem duas constantes para valores booleanos: $ true e $ false). Para forçar a remoção de arquivos somente leitura ou ocultos, use o parâmetro -Force .
Movendo arquivos é tão fácil. Para mover tudo da sua unidade flash para a unidade local em uma pasta, use:
Move-Item -Path E:\* -Destination C:\FlashDriveArchive
Você também pode nomear um único arquivo em -Path para mover apenas esse arquivo. Para copiar o arquivo em vez de movê-lo, use a mesma sintaxe com o cmdlet Copy-Item .
Monitorando e trabalhando com processos e serviços
Todos os usuários do Windows conhecem o Gerenciador de Tarefas 5 Alternativas Poderosas ao Gerenciador de Tarefas do Windows 5 Alternativas Poderosas para o Gerenciador de Tarefas do Windows O Killer Task seria um nome melhor para o Gerenciador de Tarefas nativas do Windows, pois só o abriríamos para matar processos que não respondem. Os gerenciadores de tarefa alternativos permitem que você realmente gerencie seus processos. Consulte Mais informação . No entanto, existe uma maneira mais rápida de ver os processos atualmente em execução no Powershell, Get-Process . Se você quiser saber o que significam todas as entradas nesta tabela, envie o comando para Get-Member . Digite o cmdlet:
Get-Process | Get-Member
Get-membro exibe uma lista de métodos e propriedades associados ao Get-Process. As informações no topo são o que você está interessado. Você vê os vários tipos de memória têm aliases.
Também podemos ver nesta saída que podemos obter a propriedade Product para obter um nome mais amigável para os processos. Vamos mudar a saída, então ela tem melhores informações para nós trabalharmos com:
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending
(Há mais informações sobre Select-Object e Sort-Object na próxima seção.)
Agora que você tem o ID do comando Get-Process, é possível pará-lo usando o cmdlet Stop-Process. Portanto, se você descobrir que um processo do Chrome está destruindo todos os seus recursos, encontre o ID no comando anterior. Então corra:
Stop-Process -ID 45960
Substitua 49560 com o ID do seu operador de recursos.
Usando o caminho do arquivo, você pode iniciar um processo usando o Powershell. Para iniciar o Chrome, execute o seguinte comando:
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe"
(Você precisa ter aspas ao redor do caminho do arquivo devido aos espaços). O parâmetro -ArgumentList permite que você passe opções de linha de comando para o aplicativo. No caso do Chrome, você pode forçá-lo a iniciar no modo anônimo usando o sinalizador –incognito . O cmdlet inteiro é:
Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
Você pode fazer a maioria dessas coisas com serviços Como Controlar Serviços em Execução com o Comando SC [Windows] Como Controlar Serviços em Execução com o Comando SC [Windows] Uma das coisas que eu me vejo fazendo com mais frequência desde que mergulhei na TI está monitorando e verificando o status dos serviços em execução nos computadores que estão sendo executados na empresa. Há ... Leia mais. Get-Service mostra uma lista de todos os serviços em execução no seu computador. Mesmo com os serviços Starting and Stopping, você pode usar Start-Service e Stop-Service .
Trabalhando com Dados: Sort-Object, Select-Object, Where-Object
Quando você está trabalhando com os dados de um cmdlet, pode nem sempre ser a ordem desejada. Nesses casos, você deseja usar o Sort-Object . Você pode chamar Sort-Object em uma variável que você criou, mas principalmente ela é usada pela canalização de outro cmdlet. Como no exemplo acima, canalizamos a saída de um objeto para outro e classificamos. Vamos criar um array de três números aleatórios e canalizá-lo para Sort-Object.
Qualquer coisa entre parênteses é executada primeiro. Crie um array simples com:
$(Get-Random), $(Get-Random), $(Get-Random)
Certifique-se de notar as vírgulas que separam os valores. Então, para ver os números aleatórios classificados, execute:
$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object
O cmdlet envia os números do menor para o maior, se você quiser inverter, adicione -Descending .
Quando você canaliza cmdlets para Get-Member, há mais propriedades do que a saída padrão. Você seleciona propriedades específicas usando Select-Object .
Assim como Sort-Object, você usa Select-Object por meio de um cmdlet canalizado. Por exemplo, para gerar uma tabela de serviços e seu uso de status:
Get-Service | Select-Object DisplayName, Status
Embora a saída de todos esses dados seja legal, e se você quiser apenas ver dados específicos? Get-ChildItem tem alguma filtragem interna, mas a maioria dos comandos não. Nesses casos, você usa Where-Object .
Voltando aos serviços novamente, desta vez você só terá serviços em execução. Digite o cmdlet:
Get-Service | Where-Object Status -eq "Running"
Que- eq na comparação é Powershell para = . Em Powershell, você realiza comparações com combinações de letras:
- eq: é igual
- ne: não é igual
- lt: menos do que
- gt: maior que
- ge: maior que ou igual a
- le: menor ou igual a
- como: use como em comparações com curingas
Ajuda de formatação: Format-Table e Format-List.
Para esses vários cmdlets, a maior parte da saída estava nos formatos de tabela. Isso exibe os dados em linhas e colunas com cabeçalhos. Para exibir entradas listadas com suas propriedades individualmente, canalize o cmdlet para Format-List .
Às vezes você tem uma saída que fica muito ampla para a janela do Powershell. Quando isso acontece, o Powershell o força para uma saída de lista. Para certificar-se de que você mantê-lo no formato de tabela canalizar sua saída para Format-Table .
Da linha de comando ao script: próximas etapas
Quando estiver confortável, o script é uma questão de inserir os cmdlets Aumente sua produtividade com os scripts do Windows PowerShell Aumente sua produtividade com os scripts do Windows PowerShell E se você pudesse trazer a produtividade do Linux para o Windows? A maioria das distribuições Linux vem com o poderoso shell Bash. O PowerShell é um terminal igualmente poderoso para o Windows. Leia mais em um arquivo de texto e salvá-lo. Se você está nervoso em tentar escrever scripts, não fique. A Microsoft tem uma quantidade enorme de documentação em todos os cmdlets. Isso está acima e além da já longa documentação de ajuda, então não deixe de conferir o Technet.
Se você está aprendendo Powershell, deixe-nos saber nos comentários o que você está mais animado para fazer. Se você tem um pouco mais de experiência, gostaríamos de ouvir sobre tópicos mais avançados que você gostaria de ver abordados.