Está en la página 1de 11

Filosofía UNIX/Linux

Escribir programas que hagan una sola cosa pero que lo


hagan bien
Escribir programas que trabajen en conjunto
Escribir programas para manejar "text streams", porque
es la interfaz universal

- Práctico y basado en la experiencia


- No se espera que este basado en métodos oficiales o
estándares pero si en la “habilidad” que la cultura Unix
transmite
- Bottom – Up y no Top – Down
- Minimalista: “Menos es Mas”

Frases Celebres

“La salida de un programa es la entrada de otro programa”

“No dudar en rehacer de nuevo secciones de código y


reconstruir todo de nuevo”

“Unix es básicamente un sistema operativo simple, pero


tienes que ser un genio para entender su sencillez
(simplicidad)”

“Unix nunca dice, Por favor”

“Aquellos que no entienden UNIX están condenados a


reinventarlo pobremente”
Conclusión:

“UNIX y C el fundamento de TODO”

¿Qué es PowerShell?

Windows PowerShell™ es un nuevo shell de línea de


comandos de Windows que se ha diseñado expresamente
para los administradores de sistemas

Windows PowerShell tiene 2 diferencias fundamentales:

• No procesa texto, sino objetos de la plataforma .NET.


• Ofrece comandos integrados que permiten seguir
utilizando las herramientas tradicionales de Windows,
como ipconfig, route, netstat, etc.

Primeros pasos

Comandos:

• Los comandos ejecutan una sola función y son


conocidos como command-lets o cmdlets
• Los cmdlets siguen el patrón: verbo-sustantivo

Verbos usados: get, set, write, start, stop, remove, add, etc

get (recuperar datos), set (establecer o fijar datos)

• Ejemplos de cmdlets: get-help, get-service, get-process


• Los cmdlets tienen “Alias” con nombres de comandos
de UNIX y CMD, además de tener alias reducidos
(abreviación del cmdlet)

Formato:

[cmdlet]
[cmdlet] -[parametro]
[cmdlet] -[parametro] –[parametro] [argumento]
[cmdlet] -[parametro] –[parametro] [argumento1],
[argumento2]

Parámetro: variable que puede ser aceptado por un comando


Argumento: valor asignado aun parámetro

Cmdlets básicos:

Get-Help
Get-Command
Get-Help [cmdlet]

Get-help [cmdlet] –detailed

Get-Alias
Get-Childitem

Clásicos:

CMDLET Alias

Get-Childitem dir
Get-Location pwd
Set-Location cd

Administración:

Get-Service
Get-Process
Stop-process
Salida standard:

Write-host

Salida a un archivo:

Get-help > salida.txt

Política de ejecución:

Get-ExecutionPolicy
Set-ExecutionPolicy

Mas ejemplos...

Get-Help Get-Service –examples


Get-Help Get-Service –parameter name

Pipes

Get-Process | Get-Member
Get-Process | Sort-Object
Formateo de Salida

Format-List Formatea la salida, en la cual cada


propiedad aparece línea por línea
Format-Table Formatea la salida como tabla
Select-Object Selecciona un propiedad especifica de un
objeto o objetos

Ej.

Get-Command | Format-table Name, CommandType


Get-Command | Format-list Name, CommandType
Get-Command | Select-Object Name, CommandType

Expresiones:

35 * 7
(200/6.9)

Variables:

Variables en Powershell tienen el prefijo $

Ej.

$ps = Get-Process
$ps
$ps[0]

$CambioDolar = 35*6.97
$CambioDolar

Variables Pre-definidas:

Set-Location variables:
Get-ChildItem

Variables especiales:

• $Error Contiene el “mensaje de error” en la sesión


actual
• $_ Contiene el objeto actual dentro de un “pipe”

Ej.

Get-Service | where-object {$_.name –eq “tlntsvr”}

Set-Location c:\noexiste
$Error

Uso de propiedades y métodos:

Get-Member Obtiene información de objetos y


colección de objetos

(Get-Service tlntsvr).DisplayName
(Get-Service tlntsvr).get_status( )

$wincmd = Get-Process | where-object {$_.name –match


“wincmd”}
$wincmd.id
$wincmd.kill( )

$ps = Get-Process; $ps[$ps.count-1]; $ps[$ps.count-1].kill( )

Get-Service | ForEach-Object {write-host $_.DisplayName,


" : ", $_.get_status()}

Get-Process | Where-Object {$_.name -match "wincmd"} |


ForEach-Object {$_.kill()}

Comparaciones:

-lt <
-le <=
-gt >
-ge >=
-eq Equal to
-ne !=
-like
-notlike
-match

Ej.

Get-Process | Where-Object {$_.name -like "s*"}


Get-Process | Where-Object {$_.name -match "explorer"}
Get-Process | Where-Object {$_.name -match "^s"}
Get-Process | Where-Object {$_.name -match "m$"}
Get-Process | Where-Object {$_.cpu -gt 40}

Procesando Archivos
Leer/Agregar contenido a archivo de texto:

Get-Content C:\boot.ini

$archivo = Get-Content C:\boot.ini


$archivo[0]

Get-Content C:\boot.ini | Measure-Object -line -word -


character

Agregar Contenido a Archivo de Texto:

Add-Content c:\ejemplo.txt –value “Hola”

Crear Archivos & Directorios:

New-Item -path . -name test1.txt -type file


New-Item –path c:\testdir –type directory

Nota: mkdir tambien crea directorios

Copiar/Mover/Remover

Copy-Item –path c:\test –recurse c:\nuevo


Move-Item –path c:\test –recurse
Remove-Item c:\test –recurse

Listar recursivamente

Get-ChildItem c:\test\ -recurse


Mostrar todos los archivos
Get-ChildItem –force | Format-Table name, attributes, mode

Agrupar Elementos:

Get-Command -CommandType all | group-object


CommandType

Exportando la salida a un archivo

Get-Process | out-file c:\borrame.txt

Get-Process | Export-Csv c:\borrame.csv

Get-Process | Export-Clixml c:\borrame.xml

Get-Process | ConvertTo-Html > c:\test\test.html

Get-Service | ConvertTo-html -Property Name, Status >


c:\test\algo.htm

Procesos/Servicios

Stop-Process [ID]
Start-Service –name [nombre servicio]

Registro de Windows

Acceder al registro:
Set-Location Registry::
Get-Ch ildItem

Acceder a una localización especifica del registro

Set-Location
HKLM:\software\microsoft\windows\CurrentVersion

Listar claves:

Set-Location
HKLM:\software\microsoft\windows\CurrentVersion\run
Get-ItemProperty .

Set-Location
HKLM:\software\microsoft\windows\CurrentVersion\
Get-ItemProperty run

Agregar Clave:

Set-Location
HKLM:\software\microsoft\windows\CurrentVersion\
Set-ItemProperty -path . -name "PSInfo" -type "string" -
value "Agregado desde PowerShell"

Renombrar Clave:

Set-Location
HKLM:\software\microsoft\windows\CurrentVersion\
Rename-ItemProperty -path . -name PSInfo -newname
"PowerShell"

Get-ItemProperty .

Modificar Valor:

(Get-ItemProperty
HKLM:\software\microsoft\windows\CurrentVersion\Run).p
owershell = "Modificado desde Powershell"

Borrar Clave:

Remove-ItemProperty –path
HKLM:\software\microsoft\windows\CurrentVersion\Run –
name PowerShell

Log del sistema

Listar logs:

Get-EventLog -list

Listar contenido:

Get-EventLog system

También podría gustarte