But maybe that's just a result if it being so new. 'ls' has been around for almost 50 years...
What it really feels like is a complete programming language inside of notepad.exe because of the historically terrible windows command prompt.
But maybe that's just a result if it being so new. 'ls' has been around for almost 50 years...
What it really feels like is a complete programming language inside of notepad.exe because of the historically terrible windows command prompt.
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadLineOption -ShowToolTips
Also note that you can get in-console help on most commands without having to go out to a web browser. On the ones I've tried, examples are also included which help output too.
Help will also list available commands; eg:
help json
Shows me the three commands available from my shell: ConvertFrom-Json, ConvertTo-Json and Test-Json.
There is also Get-Command, which you can filter for command discovery, ie:
Get-Command | where Name -Like "Json"
The advantage to PowerShell being object-based here is that if you press <TAB> after typing where, the list of completions you get will include the properties that are in the object returned as the result of Get-Command.
I also use Cmder for a much nicer console than cmd.exe. I haven't tried the latest version of the new Windows Terminal but I hear it's also nice.
This surprises me as I feel exactly the opposite.
I may not know how to manage X via PowerShell, but I know those pre-approved verbs like Get/Set/New/Test/Convert etc. Then I know commands from same module usually start with some abbreviation like Get-Net.... Then I can tab throguth commands.
Or just Get-Module (to see loaded/available modules) and then Get-Command -ModuleName x or just help tcp. And if "help Get-NetTCPSetting -Full" won't help, yeah, fallback to google.
Example. Now how would I set an IP address for an interface not having an idea? (where you see italicized, actually there are star-wildcard around the word)
1. help ip (ohh, too much results)
2. help set-ip - alright, Set-NetIPAddress
3. help Set-NetIPAddress -Examples (seems I need to specify some interface. It is probably at Get-NetIPInter<TAB> - ahh, gives me Get-NetIPInterface, here you are.)
4. Get-NetIPInterface
5. Set-NetIPInterface -<TAB><TAB><TAB> (autocompletes arguments and I choose which I would like to set or not)
It takes loads of reading and trial and error to become competent in any command line.
PS: the ISE (Integrated Scripting Environment) helps when writing scripts.
Even so, I don't think we can use that excuse given that it was released over 13 years ago...