PowerShell Vs Bash

This topic contains 4 replies, has 4 voices, and was last updated by Profile photo of Arie H Arie H 8 months, 1 week ago.

  • Author
    Posts
  • #37199
    Profile photo of Graham Beer
    Graham Beer
    Participant

    I read with interest like many about Bash coming to Windows 10. Now this might not be the best place but thought I`d ask.
    Is there an advantage in learning bash when I heavily use Windows systems? Does knowing PowerShell make learning bash easier? There does seem to be fair amount of cross over between the two. People with bash experience do you prefer it to PowerShell? Am I better investing my time in PowerShell? I just passed my SCCM exam and I interested to look into the DevOps world, just a huge place to start! Wondered if Bash experience along with PowerShell would be good.

    Thanks all.

  • #37202
    Profile photo of Dave Wyatt
    Dave Wyatt
    Moderator

    If you're managing only Windows systems, then there is little to no benefit to using Bash. There are some utilities in there that make manipulating text a bit easier (things like sed), but otherwise, PowerShell is where it's at. (The reason PowerShell exists at all is that the old Services for Unix package, quite similar to Bash now, just wasn't that useful for managing Windows machines.) Remember, before Microsoft started working on PowerShell in its current form, they tried porting Unix command-line tools to Windows with the old "Services for Unix" package. They found that it was great for managing text files, but that wasn't enough to really manage a whole Windows system (where so much of it is accessed via APIs, not files.)

    Microsoft added Bash mainly for developers who were already skilled on Linux, and possibly had a collection of shell scripts / etc for their builds and whatnot, to make their lives easier when developing code on a Windows machine.

  • #37207
    Profile photo of Arie H
    Arie H
    Participant

    To add to that. From following Build and reading the official blogs, Bash will only be available inside the Ubuntu image. Not outside of it.
    You would still use powershell for windows and you will not use powershell inside Ubuntu but maybe they will add a control way so you can use powershell to relay commands or parameters to internal Ubuntu tools..at least until MS comes up with powershell port based on .net core which will then be used inside Linux generally.

    So learn powershell and learn bash, you'll need them both. Learn nuget and learn npm/apt-get you'll use them both.
    If at some point in the distance we do get a powershell.core implementation, the knowledge and experience will give you the tools to decide if you want to use it or not based on you everyday workload.

    As Dave said, and as I feel was the general theme of Build is to make Windows the best OS to develop everything, in every technology, for every OS and every device.

  • #37208
    Profile photo of Graham Beer
    Graham Beer
    Participant

    Thanks Gents. Am i better off focusing on PowerShell ?
    Would you say Bash is easy to pickup knowing PowerShell ?

  • #37221
    Profile photo of Arie H
    Arie H
    Participant

    If what you do is mostly managing windows environments then yes focus on PS

    BUT and its a big one,
    Sooner or later you will have Linux is one form or another for various reasons in your network. In todays changing IT world, understanding how both Windows and Linux and their tools work, and how you can maximize their potential to give you the best results will be highly valued.

    As for easy to pickup, id say you cant really link the two. Each was made for a specific purpose and specific OS. If you understand the concepts of file manipulation, then how it is done, via Bash or via Powershell wouldn't matter.Each has its own powers and own quirks to learn and adjust, I dont see in the future a one shell to rule them all but I do see a lot more variation and exploring new ideas and that's what ultimately will help the ecosystem flourish.

You must be logged in to reply to this topic.