PowerShell might be okay script syntax for people with uncorrected sight issues and the elderly who’s heart might not handle bash without set -e but to be useful as a CLI shell prompt that is your primary way of interacting with the computer like it can be on Linux it needs to be so so so much shorter. I’ll be dead by the time I type out half the shit it’d be like 4 key presses total on Linux.
And that’s before you get to the issues of it being a whole object oriented and typed programming language with .NET whereas shell is nice universal text everywhere that can be piped around however you want.
There are even those absolute mad lads who unironically use PowerShell on Linux.
Learning the absolute basics of how to use tmux, vim, sed, awk and grep and pipes and redirects and the basics of handling stdin and stdout genuinely made me feel like all my life I was an NPC in the matrix and now I’m Neo just because passing around bits of text is so powerful when everything works on that basis.
Yea, when I switched to Linux, at first I installed PowerShell to get something familiar, but quickly realized that contrary to Windows, terminal on Linux is actually usable on it’s own out of the box.
Re: length of commands, PS commands are longer, but they also have tab completion so realistically you never type the whole thing, only enough to be unambiguous and press tab. I’ll grant it’s still longer than the equivalent bash, but not by as much as it appears.
PowerShell doesn’t stop on errors either by default. And of course a significant number of tools you need aren’t available in PowerShell, only cover partial functionality or are an exe you need to call so even if it did stop on error, doesn’t work for those tools by default.
You can use tmux, vim, sed, awk or whatever binary you want from PowerShell. Those are binaries, not shell commands.
You can use pipes, redirects, stdin and stdout in PowerShell too.
I personally don’t regularly use any object oriented features. But whenever I search how to do something that I don’t know what to do, a clear object-oriented result is much easier to understand than a random string of characters for awk and sed.
Mixing the two philosophies of coreutils and unix bins and whatever is happening in PowerShell seems even more unholy to me than the phrase “object oriented result”, but different strokes.
I gave up on PowerShell on Windows as a plausible alternative to Bash on Linux the minute I realized there’s no real equivalent tocat, there’s type or if you hate yourself - Get-Content which is aliased as cat but doesn’t really work the same way.
If I can’t even very basically list a file irregardless of what’s in it, it’s just dead out of the gate.
On Linux, I once sent myself an MP3 from my server to my laptop with cat song.mp3 | base64 -w0 > /dev/tcp/10.10.10.2/9999 because I cba to send ssh keys.
I’ll give modern windows a few points - the new terminal emulator application is sweet, and having ssh makes it easy to login to remotely.
PowerShell is a strange programming language that makes me wish I was just writing C#.
Bash is a shell language. At its heart it’s a CLI, emphasis on the I, it’s the primary way of interacting with a computer, not a way to write programs. Even awk is arguably better suited.
That’s why it neither needs to be verbose nor readable for complete beginners, you memorize it the same way you memorize where buttons are on a keyboard or what items you can expect in a right click context menu on Windows.
Most bash scripts people write are far too complex for it and could stand a rewrite in perl or python or heck, what I think actually works amazing as a “scripting language” - C.
In PowerShell most common cmdlets for basic operations have aliases by default. And funnily enough you can use both Windows (cmd.exe) and Unix shell names for these. (copy vs cp, del vs rm, etc.)
AFAIK The cmdlets that you use only by Verb-Noun convention are mostly used in scripts, or in some administration tasks.
I also think that some poeple miss the point of PowerShell, as it’s not supposed to be worked with like with Unix shells, since it’s more object-oriented than string-oriented.
This is me. I’m taking the L on this one and I’ve (at least occassionally) used Unix-like systems professionally for 15 years. I’m all self-taught on Linux and didn’t figure out Tab until I was doing some awful Grub troubleshooting and it spells out that tab autocompletes. So I tried it in terminal and then smirked at the camera like Jim
" i shouldn’t have to memorize commands"
the up arrow:
The commands: ls cp mv…
Meanwhile you get Windows people who memorize things like Get-AllUsersHereNowExtraLongJohn
Get-ListOfFunnyPowershellReferences++
(Seriously…
ExtraLongJohn
is damn funny)Get-command -noun <string[]>
Handy AF
Versus:
man $commamd
PowerShell might be okay script syntax for people with uncorrected sight issues and the elderly who’s heart might not handle bash without
set -e
but to be useful as a CLI shell prompt that is your primary way of interacting with the computer like it can be on Linux it needs to be so so so much shorter. I’ll be dead by the time I type out half the shit it’d be like 4 key presses total on Linux.And that’s before you get to the issues of it being a whole object oriented and typed programming language with .NET whereas shell is nice universal text everywhere that can be piped around however you want.
There are even those absolute mad lads who unironically use PowerShell on Linux.
Learning the absolute basics of how to use tmux, vim, sed, awk and grep and pipes and redirects and the basics of handling stdin and stdout genuinely made me feel like all my life I was an NPC in the matrix and now I’m Neo just because passing around bits of text is so powerful when everything works on that basis.
Yea, when I switched to Linux, at first I installed PowerShell to get something familiar, but quickly realized that contrary to Windows, terminal on Linux is actually usable on it’s own out of the box.
Re: length of commands, PS commands are longer, but they also have tab completion so realistically you never type the whole thing, only enough to be unambiguous and press tab. I’ll grant it’s still longer than the equivalent bash, but not by as much as it appears.
PowerShell doesn’t stop on errors either by default. And of course a significant number of tools you need aren’t available in PowerShell, only cover partial functionality or are an exe you need to call so even if it did stop on error, doesn’t work for those tools by default.
It is still a shock to me that some genius aliased curl to
Invoke-WebRequest
and thatcurl.exe
is what you actually want.I’m one of those that use PowerShell on linux.
You can use tmux, vim, sed, awk or whatever binary you want from PowerShell. Those are binaries, not shell commands.
You can use pipes, redirects, stdin and stdout in PowerShell too.
I personally don’t regularly use any object oriented features. But whenever I search how to do something that I don’t know what to do, a clear object-oriented result is much easier to understand than a random string of characters for awk and sed.
Mixing the two philosophies of coreutils and unix bins and whatever is happening in PowerShell seems even more unholy to me than the phrase “object oriented result”, but different strokes.
I gave up on PowerShell on Windows as a plausible alternative to Bash on Linux the minute I realized there’s no real equivalent to
cat
, there’stype
or if you hate yourself -Get-Content
which is aliased ascat
but doesn’t really work the same way.If I can’t even very basically list a file irregardless of what’s in it, it’s just dead out of the gate.
On Linux, I once sent myself an MP3 from my server to my laptop with
cat song.mp3 | base64 -w0 > /dev/tcp/10.10.10.2/9999
because I cba to send ssh keys.I’ll give modern windows a few points - the new terminal emulator application is sweet, and having ssh makes it easy to login to remotely.
PowerShell is a strange programming language that makes me wish I was just writing C#.
Bash is a shell language. At its heart it’s a CLI, emphasis on the I, it’s the primary way of interacting with a computer, not a way to write programs. Even
awk
is arguably better suited.That’s why it neither needs to be verbose nor readable for complete beginners, you memorize it the same way you memorize where buttons are on a keyboard or what items you can expect in a right click context menu on Windows.
Most bash scripts people write are far too complex for it and could stand a rewrite in
perl
orpython
or heck, what I think actually works amazing as a “scripting language” - C.In PowerShell most common cmdlets for basic operations have aliases by default. And funnily enough you can use both Windows (
cmd.exe
) and Unix shell names for these. (copy
vscp
,del
vsrm
, etc.)AFAIK The cmdlets that you use only by Verb-Noun convention are mostly used in scripts, or in some administration tasks.
I also think that some poeple miss the point of PowerShell, as it’s not supposed to be worked with like with Unix shells, since it’s more object-oriented than string-oriented.
Long long maaaaan
Just wait until they learn about ctrl-R haha
I’ve seen people not realize tab autocompletes.
I learned that tab=autocomplete when I first played minecraft in grade school haha. I just assumed that it was common knowledge but apparently not…
Oof, my back.
I’ll save you a spot at the bingo table
This is me. I’m taking the L on this one and I’ve (at least occassionally) used Unix-like systems professionally for 15 years. I’m all self-taught on Linux and didn’t figure out Tab until I was doing some awful Grub troubleshooting and it spells out that tab autocompletes. So I tried it in terminal and then smirked at the camera like Jim
These people would be mind-blowing if they try fish.
holy hell
old response dropped
actual Redditors
Holy shit
Wait until you learn about fzf - a replacement for ctrl-r that offers fuzzy search with a nice tui
I’m completely familiar with fzf!
I also generally tap in the first few letters of a command then use pgUp (on my system) to autocomplete. Or use the ol’ !<command#>.
But I have somehow never friggin heard about Ctrl+r.
Huh, interesting, I never used fzf outside of ctrl-r!
I’m the type to spend 10 minutes going through my previous commands, rather than 5 seconds typing it.
I’ve got
h
aliased tohistory | grep
and it’s been revolutionaryAlternatively, ctrl+r
Sounds like you should try fzf to get a better ctrl+r experience.
What about ctrl+r to reverse search?
Up arrow about 400 times for that one command*
See also: atuin - a shell history tool that records your shell history to sqlite.
Seamless sync across shell sessions & machines, E2EE + trivially self-hostable sync server, compatible with all major shells, interactive search, etc.
GNU Terry Pratchett
Well, now I know they use gruvbox for the demo/screenshots, I guess I have to see if it can be a replacement for Mcfly.
“Alias? What is that?”