Every time I fired up powershell to give it a try, I'm always immediately turned off by:
- How sluggish it feels. A remote bash shell on a raspberry pi feels more responsive to me than a local PS on a beefy PC.
- The way it is opened as a command prompt, in an unresizeable window (unless you fiddle with the settings every time), with no possibility of using shortcuts for copy/paste.
- Also, the default color scheme and font is horrible. I'm aware that it is trivial to fix it in the settings, but why turn off immediately first time users ?
For a normal user (not an IT admin) what are the benefits of learning Powershell for normal day use ?
What would be the best place to start, are there some good tutorials ?
I've tried and failed to dig PowerShell as well - I had someone explain to me once that it really only "feels good" when you're constantly doing stuff that's directly in its wheelhouse. If you're more developer than sysadmin and you only occasionally need to script something, it'll never feel very comfortable.
My "scripting" needs don't involve sysadmin-flavored work or distributing scripts to be run on different machines or environments, so I use Linqpad pretty much as a pseudo-shell and scripting environment on my own box and couldn't be happier with it. F# is good for short scripts as well; I've been trying to use it more but it's slow in Linqpad, and I'm addicted to my productivity in C#.
> The way it is opened as a command prompt, in an unresizeable window (unless you fiddle with the settings every time), with no possibility of using shortcuts for copy/paste.
God yes. Windows shell folk use ConEmu the same way everyone on OS X uses iTerm - see pheouk's link below.
Long time powershell lover here, many of us used to just always have an ISE instance running for its flexibility, but recently I found this post and have not looked back since.. my prompt is a Ctrl + ~ away :)
If you think powershell is slow, try powershell ISE; it's even slower.
Speaking of remote, the whole mechanism of PS remoting has never made sense to me either. It should work like SSH: encrypted interactive session across a well-defined port.
It only opens as a command prompt if you open a command prompt; you can launch powershell.exe directly. Also, as of Win10:
- CTRL+A, CTRL+C and CTRL+V shortcuts work (as does CTRL+C as a BREAK command--it understands by the context of whether or not you have text selected)
- There are a bunch of new shortcuts[1]
- If you edit the properties of the Powershell terminal once, it should stay resizable (I think--correct me if I'm wrong, please)
- If you right-click on the Taskbar and edit the properties, you can make the Win+X menu replace its Command Prompt and Command Prompt (Admin) with Powershell Prompt and Powershell Prompt (Admin) [2]
- If the terminal isn't to your liking, you can try using the Powershell ISE (Integrated Scripting Environment) that comes with Windows. The Powershell ISE has debugging, syntax highlighting, and support for multiple tabs.
- Pretty much anything you see in a new Windows 8/8.1/10-style window (e.g. the Settings menu that has largely supplanted the Control Panel) is, under the hood, written in Powershell... So anything that they do, you can do with Powershell.
- You can make GUI applications relatively easily [3]
Most of the benefits of Powershell are the same benefits of any other CLI--you get repeatable, powerful commands that can run locally or remotely and that will function basically the same on any two given systems (assuming same version of Powershell and same Execution Policy setting).
Powershell is relatively verbose, but that means that everything is pretty clearly named to indicate its purpose and function. The commandlets have excellent documentation, complete with description, usage instructions, examples, and links to additional online resources/articles. Also, it has tab-autocompleting out the wazoo. And you can use wildcards with the Get-Help command--want a Powershell command for manipulating Services settings but don't know if such a thing even exists? `Get-Help service`. Want to see a list of every Powershell alias, commandlet, etc? `help *` (help is an alias of Get-Help).
If you're accustomed to BASH, you can enjoy the default aliases that Powershell makes for BASH commands (e.g. cd is mapped as an alias of the Powershell command Set-Location).
OH! And you can browse the registry as a filesystem! Try `cd HKLM:\` to access the Registry HKEY_LOCAL_MACHINE.
- How sluggish it feels. A remote bash shell on a raspberry pi feels more responsive to me than a local PS on a beefy PC.
- The way it is opened as a command prompt, in an unresizeable window (unless you fiddle with the settings every time), with no possibility of using shortcuts for copy/paste.
- Also, the default color scheme and font is horrible. I'm aware that it is trivial to fix it in the settings, but why turn off immediately first time users ?
For a normal user (not an IT admin) what are the benefits of learning Powershell for normal day use ?
What would be the best place to start, are there some good tutorials ?