this post was submitted on 21 Jun 2024
129 points (97.1% liked)

Linux

48041 readers
769 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

What's your favourite to use? Mine is Fish due to its ease of use and user friendly approach.

Bash is the pepperoni of shell tools being reliable in every field no matter what but I've moved to Fish as I wanted to try something different.

So what's your shell of choice?

top 50 comments
sorted by: hot top controversial new old
[–] MyNameIsRichard@lemmy.ml 76 points 4 months ago (1 children)
[–] pezhore@lemmy.ml 23 points 4 months ago (1 children)

Plus oh-my-zsh and the powerline 10k theme - this is my go-to shell.

load more comments (1 replies)
[–] lengau@midwest.social 62 points 4 months ago (2 children)

Bash

Not because it's the best or even my favourite. Just because I create so many ephemeral VMs and containers that code switching isn't worth it for me.

[–] smeg@feddit.uk 13 points 4 months ago

Exactly, I choose the one that's always there on every machine I access!

[–] Technus@lemmy.zip 13 points 4 months ago (1 children)

Seconded. Having an awesome Fish setup doesn't help at all when you're constantly having to shell into other machines unless you somehow keep your dotfiles synced, and that sounds like a total hassle.

I'd rather my muscle memory be optimized for the standard setup.

load more comments (1 replies)
[–] dinckelman@lemmy.world 47 points 4 months ago

Definitely fish. It does everything i need out of the box. To achieve the same with zsh, i needed a dozen plugins on top of a plugin manager. Here, in satisfied with just Starship as custom prompt.

That said, i’ve been trying nushell recently. Don’t really think it’s for me, but it is pretty interesting

[–] UntouchedWagons@lemmy.ca 34 points 4 months ago

Zsh + oh-my-zsh

[–] DmMacniel@feddit.de 33 points 4 months ago

Uh. Whatever my distro comes with per default.

[–] brenticus@lemmy.world 27 points 4 months ago (2 children)

Honestly? Bash. I tried a bunch a few years back and eventually settled back on bash.

Fish was really nice in a lot of ways, but the incompatibilities with normal POSIX workflows threw me off regularly. The tradeoff ended up with me moving off of it.

I liked the extensibility of zsh, except that I found it would get slow with only a few bits from ohmyzsh installed. My terminal did cool things but too slowly for me to find it acceptable.

Dash was the opposite, too feature light for me to be able to use efficiently. It didn't even have tab completion. I suffered that week.

Bash sits in a middle ground of usability, performance, and extensibility that just works for me. It has enough features to work well out of the box, I can add enough in my bashrc to ease some workflows for myself, and it's basically instantaneous when I open a terminal or run simple commands.

load more comments (2 replies)
[–] ReluctantMuskrat@lemmy.world 24 points 4 months ago (4 children)

I know I'm a heretic but I'm a huge powershell fan. Once you work with an object-oriented shell you'll wonder why you've dealt with parsing text for so long. Works great on Linux, MacOS and Windows, it's open source, reads and writes csv, json and xml natively, native web and rest service support, built-in support for remote computing and parallel processing and extensive libraries for just about anything you can think of. It takes a little getting used to but it's worth it.

[–] Telorand@reddthat.com 6 points 4 months ago (2 children)

TBH, I use Powershell on my Windows install, and they've made some good improvements over the years. I forget that it also works on Linux.

Shame v1.0 ships with new installations, and you have to manually go out and install the latest versions to get the benefits. Dunno why MS doesn't just automatically update it with everything else.

load more comments (2 replies)
load more comments (2 replies)
[–] 7uWqKj@lemmy.world 22 points 4 months ago (1 children)

bash is so ubiquitous that I never considered anything else.

load more comments (1 replies)
[–] SnotFlickerman@lemmy.blahaj.zone 20 points 4 months ago (3 children)

Wait, I'm supposed to choose my favourite of the three shells?

Is that how they work??

[–] everett@lemmy.ml 8 points 4 months ago

Ctrl+F'd for this.

load more comments (2 replies)
[–] rotopenguin@infosec.pub 19 points 4 months ago

Fish for an interactive shell, and I'll often drop back to bash for writing a script. I can never remember how to do basic program flow in fish. Bash scripting is not great, but you can always find an example to remind you of how it goes.

[–] Asudox@lemmy.world 18 points 4 months ago
[–] bloodfart@lemmy.ml 17 points 4 months ago

Bash is fine. Zsh on Macs is fine too. I can’t stress how useful it is to learn busybox if you end up with a shell on an embedded device.

All these crazy shells people talk about are kinda like race car controls. I’m not driving a race car, I’m driving a box truck with three on the tree.

[–] MXX53@programming.dev 17 points 4 months ago

My job is working with a ton of servers over ssh. Bash is the most convenient balance between features and not needing to do any setup.

[–] eric@lemmy.ca 16 points 4 months ago

Bash or ZSH. Whatever is default.

[–] topherclay@lemmy.world 15 points 4 months ago (1 children)

The PEPPPERONI of tools!? that's not a thing right? why pepperoni??

[–] Tekkip20@lemmy.world 8 points 4 months ago

Because pepperoni rocks

[–] chrash0@lemmy.world 15 points 4 months ago

nushell is excellent for dealing with structured data. it’s also great as a scripting language.

[–] ArcaneSlime@lemmy.dbzer0.com 14 points 4 months ago (1 children)

Soft shell tacos are my favorite. Hard shell is ok but there's nothing like a double wrapped soft taco.

Oh and I just use bash.

load more comments (1 replies)
[–] wwwgem@lemmy.ml 13 points 4 months ago (3 children)

I've explained my choice for zsh here

Nicely configured it's so convenient that I spend most of my time in the terminal and don't even use a file explorer anymore. It can also be expanded with some plugins for specific use-cases.

load more comments (3 replies)
[–] yogthos@lemmy.ml 13 points 4 months ago

I really like fish because it has excellent contextual autocomplete based on the folder you're in. I haven't used any other shell that was as good at it.

[–] rodbiren@midwest.social 13 points 4 months ago (1 children)

Fish, less config and super easy to set things like path, colors, and the support for dev environments and tooling is better than it was. Used to be a Zsh user, but moved since I distro hop so dang much. Less time to get going.

load more comments (1 replies)
[–] lnxtx@feddit.nl 13 points 4 months ago

Former zsh user. fish works for me.
For scripts I use bash tho.

[–] Coelacanthus@lemmy.kde.social 12 points 4 months ago

zsh, because of highly customizable.

[–] JohnBon@discuss.tchncs.de 10 points 4 months ago (2 children)
load more comments (2 replies)
[–] hanna@lemmy.blahaj.zone 9 points 4 months ago

Eshell because it is consistent cross platform and I switch often for work/etc. Sometimes I’ll use bash when I really want a native shell.

I used fish before eshell and I really like it, the auto complete is nice, but eshell has autocomplete and since aliases and other configurations are in my emacs config, they sync cross platform too.

[–] WarpedCarrot@discuss.tchncs.de 9 points 4 months ago

Fellow Fish user here! 👋🏻

[–] cbarrick@lemmy.world 8 points 4 months ago

Zsh

No plugin manager. Zsh has a builtin plugin system (autoload) and ships with most things you want (like Git integration).

My config: http://github.com/cbarrick/dotfiles

[–] smaximov@lemmy.world 7 points 4 months ago

I really like nushell, which has more of a feel and ergonomics of a modern programming language without the idiosyncrasies of traditional shells (so it's obviously not POSIX shell compatible).

One major downside is that it's not yet stable, so breaking changes between releases are expected.

[–] redxef@feddit.de 7 points 4 months ago

Bash, not because its my favourite but because it's nearly ubiquitous. I don't want to have to think about which shell I'm using.

[–] MonkderDritte@feddit.de 7 points 4 months ago

POSIX shell. No, seriously. Works everywhere.

After that Python for usability.

[–] thepiguy@lemmy.ml 7 points 4 months ago

Fish shell. I switched to fish ages ago, back when I didn't know much bash scripting. Now I am just so used to it that I don't wanna switch back. Plus it just works.

[–] poki@discuss.online 6 points 4 months ago (2 children)
load more comments (2 replies)
[–] surrealpartisan@lemmy.world 6 points 4 months ago

Xonsh. For basic use (running CLI programs with arguments) it works like any other shell, and for other uses it has nice Python syntax (and libraries!). For example, I like not needing a separate calculator program, as I can do maths directly in the shell with an intuitive syntax.

[–] Magister@lemmy.world 6 points 4 months ago

I went through sh->csh->tcsh->bash

[–] Skydancer@pawb.social 6 points 4 months ago

Favorite would be a highly customized zsh.

fizsh (not fish) is what I actually end up using, as I can't be bothered to copy that config around and retune it for each machine. Gives me the syntactic sugar of zsh with common default options on by default, an OK default prompt, and doesn't break POSIX assumptions like fish. Also Installs quickly from the package manager without needing to run through the zsh setup each time - unlike oh-my-zsh. And if I still need customization, all the zsh options are still there.

[–] ssm@lemmy.sdf.org 6 points 4 months ago* (last edited 4 months ago)

OpenBSD's default public domain kornshell fork on OpenBSD, oksh (portable OpenBSD ksh clone) on Linux/MacOS/Other Unix. It has far fewer extensions than something like Bash (which I consider a positive) while being much faster (tested with hyperfine), and the extensions it does have are all useful (arrays, coprocesses, select, .* not expanding to . or .., pattern blocks, suspending of the whole shell).

[–] Sonotsugipaa@lemmy.dbzer0.com 6 points 4 months ago (4 children)

Zsh, because unlike Bash using arrays in Zsh doesn't make me want to perform percussive maintenance on the nearest Von-Neumann machine

load more comments (4 replies)
[–] Nibodhika@lemmy.world 5 points 4 months ago (6 children)

I've recently migrated to nushell, I don't straight up recommend it because it's not POSIX compliant, so unless you're already familiar with some other she'll I would not use it.

That being said, it's an awesome shell if you deal with structured data constantly, and that's something I do quite often so for me it's a great tool.

load more comments (6 replies)
[–] j4k3@lemmy.world 5 points 4 months ago (1 children)

Slowly trying to learn sh while using mostly bash. Convenience is nice and all, but when I encounter something like OpenWRT or Android, I don't like the feeling of speaking a foreign language. Maybe if I can get super familiar with sh, then I might explore prettier or more convenient options, but I really want to know how to deal with the most universal shell.

[–] atzanteol@sh.itjust.works 5 points 4 months ago

This is a good approach. I've always found it beneficial to learn "the standard things" than relying on a customized setup.

I've seen some people absolutely lost when they login to a system without 500 custom aliases on it..

load more comments
view more: next ›