- 18 hours
When I installed freeBSD for the first time, I was so confused when !! didn’t work.
- 1 day
I use fish because it was the default in cachyos and decided to give it a fair shake. I like the built in syntax highlighting and fancy autocomplete but I miss bash scripting and built in commands that replace standard commands can be weird sometimes. I have not tried scripting fish, to lazy to learn yet another scripting language, especially if bash is the (almost) de-facto standard.
- 12 minutes
I’ve been using it for awhile now for the same reason, and think I’m going to switch back to sh as it has too many suggestions which I read and it interrupts my thoughts and slows me down.
- 2 hours
I like having fish as an option, but don’t think I’d ever use it as my default.
If I have a long command that uses long filenames, or I don’t remember the syntax of something, I can just type “fish” and it’ll open up a fish shell.
- ferret@sh.itjust.worksEnglish1 day
You can always just continue using bash scripting, with a bash shebang in your scripts, if you miss it
That’s what I do. Fish is great as interactive shell, scripts don’t benefit that much from it and I can use what’s familiar.
Mwa@thelemmy.clubEnglish
1 dayi am using ZSH cause Fish is not POSIX compliant,which made it annoying to run scripts without rewriting them.
JackbyDev@programming.devEnglish
2 hoursWhen is this a problem? What scripts don’t use a shebang and/or why does using
shcall fish instead of bash or dash?I have a mild dislike of fish because a few substitutions are different enough that my muscle memory isn’t there. (But I also haven’t put in serious effort to learn them.)
Mwa@thelemmy.clubEnglish
1 dayhow about if its not in a sh file,its common for scripts to use sh or bash instead. but am just gonna stick to ZSH anyways
- 1 day
Linux doesn’t generally use extensions to decide what shell to use, so it doesn’t matter if it’s an sh file or not.
If it uses bash of course you can substitute #!/bin/bash
And of course you can use whatever shell you want, just saying that POSIX-compliance is not really relevant since the script can specify what shell it needs.
- 1 day
The file extension doesn’t matter much on Linux. If you’ve got a shebang at the top, the shell you’re running from will invoke the correct shell according to the shebang.
In some situations, you may want to use something like
bash <your-script>, but that would only be when you’ve got a script that doesn’t have a shebang, but not having one is bad practice and you really should be using them. Fish isn’t the only non-POSIX shell you’re going to encounter on a Linux system. Python, Perl, and probably some others will be there, and using a shebang ensures no shenanigans. So whether or not you use Fish, you should always use shebangs.
The Web site for fish reads:
Finally, a command line shell for the 90s
I love them and always will.
- 1 day
Unironically though. It takes time because it’s structurally different than python but it’s fun when you figure it out
Powershell is probably simultaneously the best and worst thing Microsoft has ever created
- 1 day
I remember powershell being extremely slow to start on my laptop and sometimes slow to catch up to my typing (and I’m a slooow typist).
tbf it was the win 8.1 days, dunno if it’s better now.
Really liked using it tho. At least it used my actual keyboard layout, unlike cmd.
- Overspark@piefed.socialEnglish2 days
Then give nushell a go. It’s basically a modern implementation of some of the better ideas Powershell had.
-
Types.
You explode lists manually into items when calling commands on a variable list of arguments instead of “quoting variables” to prevent them from exploding.
Who came up with the bullshit idea that exploding strings into words is such a common use case that this footgun is preferable to have an “explode lists” syntax?
-
Errors. No more
set -euo pipefail; shopt -s lastpipeto beat some semblance of sanity into bash
- kn33@lemmy.worldEnglish19 hours
One of the things I really like about PowerShell is the “verb-noun” convention. It makes things a lot easier when learning by examples. Wtf is a
sedor anawk? ButNew-Item -Type Directoryoh yeah that makes sense. JackbyDev@programming.devEnglish
2 hoursTo be fair, the comparison there is
mkdirwhich means make directory, but I don’t doubt there are better examples.
-
- 1 day
Honestly it’s pretty good, but it’s very verbose in its commands and output.
The default settings are irritating but it takes only minor tweaks to make it tolerable (mainly fixing the tab completion)
It’s nicely consistent with its object handling.
As a windows shell it is head and shoulders above cmd.exe. I’ve thought about using it on Linux but there I like fish better.
heliotrope@retrofed.comEnglish
1 dayThompson shell (predates Bourne)

scsh (Scheme shell) and closh (Clojure shell)

sash (stand-alone shell)

gash (Guile shell)

ash (Almquist shell)

dash (Debian Almquist shell)

eshell (Emacs shell)

Shells I couldn’t think of images for:
- bosh (from SchilyTools)
- tclsh (Tcl shell)
- ion (from Redox OS)
- 18 hours

In case you don’t know how to crop an image… but yeah, me too. This is peak.- 3 hours
LOL what the heck is the source of this, it’s so surreal, people just chilling shooting hoops in the background XD
- Dagnet@lemmy.worldEnglish2 days
imo fish is the best out of the box for me, but I just use bash cause its everywhere
- 2 days
Yeah, that’s where this meme fails. BASH is the default and has been for decades. Most people are not Gigachad.
I’ll accept FISH as being for babies, Zsh as being for Emo types or extra nerdy people. SH being for white beards makes sense.
BASH is:

elephantium@lemmy.worldEnglish
2 daysI used a macbook for work for a while with zsh in the terminal. IDK whether I qualify as emo, but I am nerdy. I only think of myself as regular nerdy, though, not extra nerdy.
- 2 days
Was zsh the default at the time? Or did you switch to zsh? AFAIK the new default is BASH, but it was zsh for a while.
IMO, your level of nerdiness is much higher if you change the default shell.
elephantium@lemmy.worldEnglish
1 dayI had to go back and check. Apple says that the default changed from bash to zsh in Catalina (10.15). I seem to recall a message coming up on the machine about zsh. I definitely remember poking around at config files and looking at iTerm2 vs. the default terminal app at the time.
Does that make me extra nerdy? IDK. I can tell you that I was more focused on “What’s going to be comfortable to work with” vs. nerding out on shell differences.
I do miss homebrew now that I’m working on a Windows laptop.
- 13 minutes
I do miss homebrew now that I’m working on a Windows laptop.
wingetm’boy - 23 hours
Maybe I remember wrong, but my memory is that at one point MacOS had zsh as the default and then switched to BASH, and then maybe back to zsh again. But, since Internet search is broken these days, I can’t find anything about that.
elephantium@lemmy.worldEnglish
9 hoursAll I can really tell you is that I remember seeing a message about the new default being zsh, and that was back in 2020 or maybe 2021. So it def switched from something else to zsh, but whether it was bash -> zsh or zsh -> bash -> zsh…shrug
I just wish fish would accept standard bash syntax in addition.
Like, if you can warn me that “this is not how we set vars in fish, do this instead!” then you could also just, you know, do it.
EponymousBosh@feddit.onlineEnglish
15 hoursOur last apartment had a microwave that insisted that the off/cancel button was ONLY for the microwave part and NOT the timer part, and if you tried to use it to turn off the timer, would display a message saying “push timer button to turn timer off” (or smth to that effect). I found it infuriating. I told my wife, “if they can program it to sass me, they can program it to turn the damn timer off.”
Anyway. I get it.
- 21 hours
No, I’m really happy with fish in general and use its syntax. The only times are things like e.g. a coworker sending me a 3-line script and then not being able to just copy, paste, enter.
- 2 days
yea but the posix sh set syntax is atrocious so not supporting it is doing you a favor
- 1 day
It’s Stockholm syndrome
I mean who doesn’t like putting mandatory quotes around all variables (though exceptions, like in
[[ ... ]], apply)?Or keywords like
fiandesacor worrying about $IFS
- 2 days
I just wish my local restaurant would accept burger orders in addition.
Like, if you can warn me that “this is a Chinese noodle restaurant, we don’t do burger here. Order one of these instead!” then you could also just, you know, make me a burger!
That analogy only holds if they cook the burger for you, hold it in front of you, and go “we don’t make this”, then throwing it out
- 1 day
No, it’d be like, when you asked them do you know what a burger is? They pointed at a picture of a burger on the wall (they put this picture on the wall because for whatever reason people kept asking them to make burgers), and told you, of course we know what a burger is, we don’t make them, now order noodles or get out!
- 23 hours
Okay, you know what… That’s actually better than what I said. Defeat acknowledged.
(However, it still seems a bit silly to me.
name="value"will prompt you to enterset name "value", with your exact name/value prefilled. As far as I know, it really is just syntax substitution; or am I wrong here? Are there semantic differences that can’t be translated?)- 23 hours
i think it could be a slippery slope thing. things like
name="value"are easy to parse and implement, but then what if people keep asking for a little bit more, and a little bit more again? bash’s syntax is very very complex, there will be no winners if fish has a half-assed implementation of what bash does, it’s better to not even start.
- 2 days
I’m not learning shit that can’t run on everything.
Source : I got a fistfull of salesforce certs in order to toe the line in my previous job, and I am currently looking for work.
FedX@quokk.auEnglish
2 daysYeah, I agree. It’s quirky, its syntax is annoying, and a good ZSH setup is probably better… but I don’t have the time to do an actual ZSH setup.
- 2 days
A good zsh setup is not better. That’s why I switched off of zsh after years, because it was slower, more bloated, and less intuitive than fish. And bash is ten times worse than zsh.
FedX@quokk.auEnglish
2 daysHuh, the more you know. My only experience with ZSH is when I briefly used Manjaro, and it seemed fine at the time… but now that I say that I think about it, “Manjaro defaulting to it,” might have been a bit of a red flag…
- 2 days
Yeah to get the same setup in zsh you have to install a plugin manager and then quite a number of plugins. Most people default to omz (oh my zsh) but that’s the slowest way. If you pick through all the managers you can get a decent one, but even without a manager the overhead of loading plugins is just slower than building it in like fish does. Fish just is better. And I don’t think I’ve ever once needed posix syntax. If I need to run a script and it doesn’t have a shebang at the start then I just run > bash and start the script there.
daggermoon@piefed.worldEnglish
2 daysI remember making that joke on Lemmy and someone calling me immature lol.
- mosspiglet@lemmy.worldEnglish1 day
The creator of kornshell thought it was funny http://kornshell.com/fun/
Sometimes I think I’m the only linux user who doesn’t care about their terminal emulator. I use whatever came installed. I assume it’s bash? I don’t know, but anything i want to do is supported by all of them.
- four@lemmy.zipEnglish2 days
Akchually, those are shells, not terminal emulators.
Which I guess confirms that you really don’t care. Whatever works for you, works for you :)
- sem@piefed.blahaj.zoneEnglish2 days
What’s the difference.
How does the virtual terminal factor in.
Why are some shells not login shells
What is a terminal these days and why does it mess up keypresses
The terminal emulator is the window displaying the text. That used to be a physical screen called a terminal. The program that decides what text to show is the shell.
A terminal emulator (such as xterm, tmux, or emacs) is responsible for displaying a pseudoterminal in a different context (such as an x server, another terminal, or an emacs buffer respectively). Terminals are divided into three types: virtual terminals (on boot or as presented by [C-]A-F<N>), ‘true’ terminals (exposed on serial ports), and pseudoterminals (controlled by other programs). Essentially, you have a virtual terminal running X running Xterm which controls a pseudoterminal with tmux attached controlling another pseudoterminal.
Login shells are a special flag set when launching shells, sometimes. They typically read different settings (e.g. Bash reads ~/.bash_profile instead of ~/.bashrc). Most shells will launch as a login shell if their command name (argv[0]) begins with a hyphen; Bash also allows explicit
bash -lto run a login shell.
Yesh, I’m a not spending time configuring (and fixing) the shell.
If I want something hairy I’ll use Python (or even C/C++).



































