Piping objects is better than parsing text.
Piping objects is better than parsing text.
While I'm at it, another thing I didn't understand was why they chose to copy Bash's behavior of having anything printed or returned un-suppressed inside a function be part of its return value. That makes it harder to refactor and clean up your code.
I've written some trivial things in powershell and found the complexity grows at functionality squared. Wouldn't go near it for anything complex.
- 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 ?
https://hodgkins.io/ultimate-powershell-prompt-and-git-setup
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#.
God yes. Windows shell folk use ConEmu the same way everyone on OS X uses iTerm - see pheouk's link below.
- 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.
[1] http://www.hanselman.com/blog/Windows10GetsAFreshCommandProm...
[2] http://lifehacker.com/replace-powershell-with-the-command-pr...
[3] http://www.drdobbs.com/windows/building-gui-applications-in-...
I should have specified that my last experience using it was with Windows 8.1, I don't think I have tried yet on 10.
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.
get-packagesource -provider chocolatey
install-package openssh
It's beta but I use it as a daily driver.One interface (text) is better than N interfaces, so no, piping objects is worse, because non .NET languages cannot participate in its API.