# Command Detail - H

## head

The PowerShell equivalent of the \*nix `head` is:

```
gc file.txt | select-object -first 10
```

## history

The Powershell equivalent of `history` is:

```
get-history
```

There is a built in alias `history`

It's worth noting that history doesn't persist across PowerShell sessions, although if you search online there are a couple of published techniques for making it persistent.

It's also perhaps worth noting that Powershell gives you a couple of extra bits of information, if you want them:

```
get-history | gm -MemberType Property


   TypeName: Microsoft.PowerShell.Commands.HistoryInfo

Name               MemberType Definition                                                                 
----               ---------- ----------                                                                 
CommandLine        Property   string CommandLine {get;}                                                  
EndExecutionTime   Property   datetime EndExecutionTime {get;}                                           
ExecutionStatus    Property   System.Management.Automation.Runspaces.PipelineState ExecutionStatus {get;}
Id                 Property   long Id {get;}                                                             
StartExecutionTime Property   datetime StartExecutionTime {get;}
```

## history | egrep -i ls

There is no direct equivalent of the shell functionality you get with `set -o vi` sadly. You can up- and down- arrow by default, but if you want to search through your history then you need to do something like this

```
history | select commandline | where-object {$_.commandline -like '*ls*'}
```

## hostname

There is a windows `hostname` which does much the same thing as the Unix `hostname`, but it's not Powershell. It's a standard-ish Windows executable that on my machine lives in c:\windows\system32

Details are here: <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/hostname>

You can get the server name through PowerShell like this:

```
get-wmiobject -class win32_operatingsystem | select __SERVER
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://devops-collective-inc.gitbook.io/a-unix-person-s-guide-to-powershell/commands-detail-h.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
