I Was DEFINITELY Using The Wrong Terminal Shell
HTML-код
- Опубликовано: 12 окт 2024
- ✅ Zero To KNOWING Kubernetes in Under 90 Minutes:
learn.omerxx.c...
✅ Build a Second Brain With Neovim in Under 90 Minutes: learn.omerxx.c...
At some point in my terminal journey I found out I completely missed out of fish...
⌨️ Tech I use: kit.co/omerxx/...
8:30 *Always* use /usr/bin/env in your shebang statements! There are plenty of systems where /bin/bash does not exist.
heh I also got ticks when he wrote something else than /usr/bin/env
Super important. Thanks!
@@codeman99-dev yea. like nix.
When the fish feature out of the box moves to a POSIX shell, it is game changing. all developers will use it.
Excellent video with some awesome tips I didn't know!
Sup nerd 🤓
When u gonna be Nixed? 😂
❤️
1:28, I don't think the result code is 0 due to echoing 0 but rather the echo statement executed sucessfully
100% correct. my bad ;)
I've been using Fish for years simply because it is so fully-featured out of the box and easy to use. If it was POSIX-compliant, nobody would use anything else tbh. Nushell looks interesting too though, maybe you should have included it in your video ;-)
There is a posix compliant version of fish
@@keaneplayingmbae2852what's it?
@@riufq there are many but most of them are not actively managed. nsh and fizsh are the main two I know but it's just better to use bass instead
@@keaneplayingmbae2852 okay thanks
I started using fish a few years ago, I have known about it longer, but I kept seeing people using zsh and so I thought maybe Fish was missing something and I didn't have time to check it out fully. When I did have time I realised I wasn't missing out using Fish and that it was saving me time if I had to re-setup so I just figured I would default it. This was a great explanation you did tho was nice to watch
Thanks! and I agree with every word
I keep seeing people say to use zsh too but I tried fish like 15 years ago and every time I get on a machine with zsh I just hate it. I'd rather just use bash than zsh.. if I have a choice though, fish
Another modern alternative shell is `NuShell` which is a modern shell. try that out. (it's cross paltform too)
Nutshell is fantastic!
does it support braazilin nuts though?
@@plaintext7288
Sorry, that’s still in beta. Macadamia, Walnut, and pistachio though are supported.
As soon as they implement history substring search by pressing the up arrow I’ll start using it.
If you like nu check out elvish. It's still in early days but I really enjoy the workflow
With any other shell, i'd still keep bash as my login shell. And with that, using any other shell as my interactive shell would mean managing two environments. SSH Agents don't carry over or unlock on Login, Paths need to be managed in two places etc. For me, managing a second shell on top of bash was just to much stuff for what little benefit they gave me. With fzf i get all the completion and history in bash as well. I can also whip up a fancy prompt with git integration etc. And since many of my shells are in emacs, i get vim mode "for free".
Why would you keep bash as your login shell, though? Seems to me that you're just listing the reasons why you shouldn't do that instead of reasons not to switch shell.
I use ohmyzsh but really only feel like I take advantage of the completion and appreciate the coloration. I agree that it's bloated for my needs. I would love to see a video about going from ohmyzsh to simply zsh with control over which plugins a user might want. Cheers!
You include the plugins you need in zshrc though?
check out the video I made with starship! I'm a big starship fan and I still use it!
my config is here - dotfiles.omerxx.com
"the valuable dev" has a really good series of blogs on how to set up zsh without any frameworks.
the valuable dev has a really good blog series on how to set up zsh without any frameworks
i tried fish tho sometimes it does get annoying when you want to quickly export a variable or if you want to use a tool that doesn't support fish
Check bass, which is a fish plugin that let's you run bash commands
There is also a posix complaint version of fish if bass sucks for you
@@keaneplayingmbae2852can you just tell the name?
Yeah this was my experience. Fish was really cool but I didn't feel like doing any extra work getting other stuff working (didn't want to figure out bass)
What doesn’t work for you? `set` isn’t exactly arduous to type.
I've been using fish for long time, no config, more features out of the box.
To edit a long command in bash emacs mode (like at 2:23) type C-x C-e. You still need backslashes to break a command across multiple lines.
Hopefully that api key isn’t valid anymore…
I made sure of it but thanks 😅
definitely curious about Fish programming. I'm also curious about the difference between vi mode in Bash and Fish, particularly since vi mode in Bash is like a superpower
Also have a look into "zle" vi mode from zsh. It has more vi features compared to bash.
Your "Part 2: Differences from Bash" would be the most important part IMHO. I never bothered with fish because of non-posix-compliancy. I watched this video expecting to learn "how bad is it really?". So waiting for part 2. Also thought nushell would be a part of a video in 2024 covering shells. The big question I want to answer by watching all this: Is nushell worth breaking with posix, but fish is not? That is my current working assumption that I want to test.
Thanks for the mention to local atuin - will set this up eventually.
There's an atuin video i made recently if you want it as well :)
And yeah, I'll get to the other modern options soon enough! thanks
For your terminal shell there is very little advantage to being posix compliant. You need posix compliance if you write scripts for other people to run, but that’s not your interactive shell. The only disadvantage comes when you have to “source” some script written by someone else or when installing some piece of software involves a complex addition to your configuration file. An example of the former is activating a python virtual environment.
@@teeesen I'm not just a single user. I want to answer the question: should the whole team and in extension the whole company move to nushell for ALL shell scripting?
I don't care much about my personal scripts. Currently I use #!/bin/zsh to execute them, because even those scripts aren't compatible with bash. Doing a lot of executing background jobs lately, where the zsh syntax has some advantages, where bash is just plain confusing. I'm just faster in zsh. Still, it's pretty close to bash, unlike nushell. But my gut feeling is, that nushell might actually be worth it. But it would be a bold move to make it the default and leave bash behind.
Great video! I’ve been using fish shell for about a year now and never knew about the fish_config command.
You really should try Nushell
There is also csh, so using "zed shell" might be less confusing.
I love fish, but I still end up writing my scripts in bash so that others can use it
I mean, why not? you've got the interpreter always there. the shabang does it's job and you can choose your language freely
Man your videos are so calming and interesting, also I learned about setting vim mode in bash, though I have always used bash, but hey, thanks for the motivation!
🙏
trust me. use nushell or powershell unless you want to have to use python/js for anything more than a couple lines.
testing it as well!
Definitely interested in how fish differs from bash thanks….
Have you tried Nu Shell?
Best shell ever !
on it!
Of course it is easy to assume zsh replaced bash on macos, but in fact it didn't. The previous default shell on Mac was tcsh :)
😮
I use bash with blesh and starship, and I have mostly all the features you talked about.
Yep, legit! My only claim here is that fish does most of it out of the box. That's why I was shocked
Bro, I really wanna have my setup on NixOS and am currently on arch. But it seems like a rabbithole. I know there are resources like docs and vimjoyer videos, but I'd love if u give a full setup tutorial. 🥺
It's not that hard
@@md.taufikkhan6832 It's overwhelming...
There is a lot.
I actually did make a video, one that covers the basics from scratch to a running flake and then another for mac users. check them out!
it is a rabbit hole though... so watch out ;)
One of my favorite things about fish that you havent yet mentioned, is fish saving directory a command is run in
this gives fish directory specific history. meaning for some directories where i run a couple commands, all i have to do is press up and everything is handled
Totally! I'm so used to Atuin by now (it comes with the feature) that I missed it
@@devopstoolbox you gave me a reason to keep using nushell
@@devopstoolbox you just gave me a reason to keep using nu shell
I used fish for many years but came back to zsh. Reason, there are a few things that I can’t do in fish, such as expanding ** with tab as part of fzf. Also, here and there there are instructions for something that would work in either bash or zsh but not in fish, so would have to spend time tweaking those instructions to fish. But otherwise, fish is great.
1. Makes total sense
2. It feels like those who'd feel the "edges" of fish are power users like yourself, which are also likely to go deeper into fish.
You should take a look at nushell !
yep!
What about nushell?
on it :)
I switched to fish a few months ago. I'm not going back.
echo 0 isnt equivalent to true. The truthiness of a command is its return code, not what it prints to stdout
hmm yep. I guess I should have stressed that out. thanks
Nice video, but still prefer zsh over fish, due to at work we only use bash and zsh.
Can you tell us what browser you’re using? It looks like safari but I’m not sure how you get the transparent background.
It's Arc, the transparency is just a video edit trick... (sorry 😉)
What's the symbol thingy above your prompt ? Is it starship ? It looks like that it stays in place. First time seeing this.
This is tmux :) I have the tmux bar show on top to separate from nvim and it works better IMO.
Here's my tmux vid: ruclips.net/video/GH3kpsbbERo/видео.htmlsi=ZNrqeVGZITN0MR7I (upgraded since - more videos on the channel with the new setup)
I also have a video going through the entire terminal setup if you want.
and my dotfiles: dotfiles.omerxx.com
You didn't go into any plugins or vi commands for fish. I'm also having fish_config crashing and not sure how to turn off things like showing me my branch of git when in projects. I don't like that feature. I'm playing around with it atm to see how it works overall. I do like not having to install 20 plugins to get things working but not sure how to tweak things without fish_config working.
I didn't have issues, and I get your point (add starship on top?) but it takes a bit of config to start with but then you're off.
You might want to check nushell
It's coming up a lot in the comments! On it.
I'm too comfortable zsh already, so if fish every became THE thing I'll have to join the party late. But wow the config GUI looks amazing. Is that not possible with zshrc or bashrc?
What a feature huh?!
And no, not that I know of...
Is ZShell the standard on Mac or something? Why would most people be using zsh and not bash, by default? (I've heard good thing about zsh and OhMyZsh, I just had no idea the majority of people used it)
So yea, it's default on macs now (someone in the comments mentioned it didn't actually replace bash on mac, but tcsh).
It's just better, comes with more features, easier to config and nicer to use.
If I'm honest, they can both enjoy one framework or another (like oh my zsh for example) and becomes infinitely better
fish is nice...do you have a nix config to look at? Are you exclusively fish now?
everything's here: dotfiles.omerxx.com (although I don't think I made any special changes this time around).
I wouldn't say I'm 100% but I'm definitely trying, just for the learning experience and then maybe it'll stick
For fish and zsh, they have their own prompts Tide and Powerlevel10k respectively. They both provide the same features as starship but with much more optimization. For example, they both have async git status, which starship can't implement.
How tide and powerlevel are more optimized than starship?
@@aquepaique also powerlevel10k has been archived
@@aquepaique async git prompt and shell specific hacks. When your project has only 1 supported shell and not basically every shell in use, you have time to spend on optimization.
I must say, I've been a powerlevel10k user for a VERY long time. works great, but not as lean and fast as starship IMO...
what terminal he uses? such a beautiful design
Thanks! the video was made with wezterm and I'm now testing Ghostty (video soon), that said, you won't feel the different, at least not visually. All my config is here: dotfiles.omerxx.com and you can find a video I made a couple months back going through the entire setup!
vi mode seems redundant when you have a programmable keyboard. Home row navigation keys changed the game.
commands like diw di( di" proove your statement is wrong. Why would I program the keyboard for such tasks, when zle vi mode (zsh) exists? Not sure if your keyboard is even more programmable then mine, but ofc I use home row navigation on a different layer. I wouldn't program advanced text editing functions though into the keyboard itself. Just think of "f" to go to a character in a long command. Vi mode is anything but redundant. And if your keyboard makes this redundant, please send me a link.
can't say that I agree. I'm not a home row fan as the latency bothers me a lot. found some other solutions, but vim motions are a muscle memory to me and having them inline is a game changer for me!
@@devopstoolbox 👍 whatever's fastest. I love that we can all use what works for us. I retrain when I find better layouts.
Is the latency from holding home row keys to activate an arrow? I have my full nav layer triggered by a thumb key so there's no latency there
@@devopstoolbox What do you mean by latency on the home row?
how do you make browser transparent, I would love you to make a video if't too comlicated.
The unfortunate answer is that it's a video editing trick. And, even if it was real, don't you think it'd be distracting as hell? 😅
Fish is great... its the default of the freeBSD OS
It isn't. The default shell on FreeBSD is ash, a Bourne shell implementation, and formerely tcsh for the root user.
api key leak alert 🚨
haha, was waiting for someone to notice ;) it's been rotated, but give it a go 😅
thanks for the "v" to open cmd in editor. Didnt knew that! how can we set this to nvim for example?
Set your EDITOR variable to nvim. He shows his at 2:33
@@leif_p missed that part! but doens't seem to work for wsl (atleast for me, for whatever reason)
export EDITOR=
(or "set" in fish)
Am I right that you not only presume your audience using Linux (or Mac, I cannot tell and you just won't) but require that as setup for your videos? If I'm mistaken, what do I miss here? I love your content and try to make sense of it as a Windows user.
Well, in a way, yeah. I'm using mac and lots of Linux in my line of work, but since windows and bash are friends now I guess you can get the same.
That said, I definitely didn't try any of it on windows machines... (sorry)
@@devopstoolbox No need to be sorry 🤗 I just wish you'd bring some less demanding, noob-compatible content I could follow up on. I'm especially fond of your nvim notetaking approach but wasn't able to get anything substentially out of it (Yeah, I have a macbook as well). Thank you anyway for your inspiring top-notch content.
fish gang 🐟
I feel like you haven't experimented enough with ZSH... You felt oh-my-zsh bloated but fish with all those features were not? ZSH has auto completion too
I've been running zsh for ~7 years, moved from oh my zsh to startship to manage my prompt, this killed 90% of the bloating. That said, fish defaults are mind blowing to me.... comes with so many built ins, and this turns my config to near-zero compared to earlier...
Meh may have to give fish a try a boring bash type of guy tho
No nushell??
Fish, modern? I don't think so. They say themselves they are 30 years out of date. Of course, with the unstated implication that its main competitors belong even further in the past.
It's all relative. I agree that there are WAY more modern options which I intend to get to, but theses are the leaders, and of the three, fish feels like the cool kids option
nushell ?
NuShelllllllllllllllllllllllllllllllllllllll👌
nushell video please
on it!
"You can now pick your nushell"..... wait you didn't explain nushell!
I've tried all of these shells and they are great. But I have a requirement these don't meet of a full cross platform support.
Powershell 7 is my true shell love! It's FOSS, and it's powerful!
The thing I really love about powershell is an oop pipeline instead of just text pipeline.
Proficiency in powershell doesn't require other programs for basic tasks like parsing to and from json or xml.
The language itself is so much more friendly too!
You can even write modules in C# or F# to create lightning fast configs! Or load native dlls and run pretty much anything.
I get it, but I'm far from windows-based working environments... that said, working on exploring and covering nushell!
I still don't get the hype about all these terminals and bash alternatives..
Not a fan of too fancy features that might break at inconvenient times, or which is incompatible at inconvenient times...
I am staying with alacrity and bash for now.
I must be honest - there's a huge difference between zsh / fish and the smaller ones like nushell etc. These are battle tested for real. Maybe not around as long as bash but definitely not new.
"ok, let's move on to the real reason we're here" at 2/3 of the video runtime 😂
UwUbuntu got hyprland in 24.10 ☠️
(First btw)
No doubt fish is good but I bet you will come back with a video soon stating back to zsh !!! By the way Very nicely presented as always
Thanks!
And you may be right 🤷
I use the even better fizsh
Thanks for making videos.
I might be the only person here with this take but I really want to listen to the content; However, something about the typing is really off putting asmr.
"Your $500 keyboard sound is off putting asmr" is the most 1st-world-problem I've heard today.
IMO zsh is best balance between bash and fish, so it's zsh for me!
bash us please with tips
Wrong. bash is all you need, the rest are just bloat and FIsh is the worst as its not POSIX complaint so some things done work.
Well, like many things, it's not about wrong and right, it's about what works for you...
ymmv you know
Finally
skill issue
😉
check out nushell
ON IT!
Man dash is the best 🥸