PowerShell
One day I discovered that there was a Windows App called “PowerShell” while searching on my Windows 10 installation. I did not pay much attention to it even if I stumbled upon it a few times since. It seems that the early versions were present already in Windows 7, so in that sense it is not new at all. In fact it started in 2002.
But now I got curious and even more when just finding out that PowerShell is also available for Mac and Linux. If you are curious as well here are a few useful, selected links:
Learning PowerShell
- Installing and getting started (Contains a summary table converting
bash
to PowerShell for some basic commands.) - PowerShell Beginner’s Guide
3 easy videos
These 3 videos are a good way to see PowerShell in action.
- Learn and use PowerShell with just three commands 13:25min
- 15 Useful PowerShell Commands for Beginners | Learn Microsoft PowerShell. 9:30min
- 10 Basic PowerShell Commands and how to output data to CSV formatting 28:17 min (Caveat for this video: the command “
Get-Service
” is Windows-only.)
PowerShell format
The format of all commands is a set of 2 words connected with a dash: the first word is always a verb (hence some ‘action’) and the second word is a a noun (the object of the action.)
Two useful commands therefore are:
Get-Command
: provides a list of all commands availableGet-Verb
: provides a shorter list of about 100 verbs that are used to construct commands.
While PowerShell is available on all 3 major platforms, the command Get-Service
related to “services” (what programs are running) and all commands “*-Service
” are only available for Windows.
PowerShell vs bash
The above video “15 Useful PowerShell Commands for Beginners | Learn Microsoft PowerShell” convinced me that for now I’ll stick with bash
as I find PowerShell extremely “wordy.” For example let’s look at the command to move a file:
PowerShell example from the video
Move-Item –Path c:\test\testfile2.txt –Destination c:\Test3
Equivalent bash
version:
mv /test/testfile2.txt /Test3
It also seems from searching the web that PowerShell is most useful for IT managers and Windows users that have use of writing (automated maintenance) scripts.
Alternate use: PowerShell as a Terminal
The above links are useful to learn the PowerShell language, which, it seems, is most useful for IT administrators than casual users.
On the other hand, the PowerShell App included with current Windows (10) installations can be a good candidate to be used as a “dumb terminal” as they used to be called. Indeed the PowerShell App works well to connect to a remote (Linux) computer such as the Biochemistry Compute Cluster (BCC) or the UW-Madison Center for High Throughput Computing (CHTC) using the ssh
command (secure shell remote connection.)
In that capacity the PowerShell App is easier to use than the old cmd application even for simply copy/paste of text.
PowerShell or cmd
Quoting from this Blog: Windows PowerShell vs Command Prompt (cmd): Which to Choose:
…if you’re used to using cmd, you don’t need to feel any urgency in switching to PowerShell. In fact, most commands from cmd work fine in the PowerShell environment — Microsoft wanted to simplify the lives of system administrators, so it created command prompt aliases in PowerShell that enable it to interpret old DOS commands as new PowerShell commands.
o find out how old cmd commands map to the newer PowerShell cmdlets, use the Get-Alias command:
Get-Alias cd, dir, ls, man
CommandType Name
----------- ----
Alias cd -> Set-Location
Alias dir -> Get-ChildItem
Alias ls -> Get-ChildItem
Alias man -> help
(Note: On MacOS it complains that there is no alias for both ls
and man
which are both native commands on these systems! Therefore there is big doubt in my mind that the cross-platform claim is truly operational!)
Note: DOS = Disk Operating System
Image Credit: PowerShell screen pasted onWindows PC illustration.