this post was submitted on 05 Mar 2025
55 points (92.3% liked)

Linux

50883 readers
764 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
 

I've done something similiar to this over the years for organization purposes and not having to change much between shells except add a path. You can also add cases that check your shell and do something slightly different if needed.

you are viewing a single comment's thread
view the rest of the comments
[–] CsXGF8uzUAOh6fqV@lemmy.world 28 points 1 day ago (4 children)

I like fish abbreviations. They are like aliases but expand when you press space or enter. That way you can edit it, and also still see the full command so you are less likely to forget it when you don't have your aliases. Of course I have some scripts as well.

[–] markstos@lemmy.world 3 points 18 hours ago

And: Fish implements aliases as scripts! When you use alias —save, fish creates as script with a function in it.

[–] Asparagus0098@sh.itjust.works 3 points 19 hours ago

I actually use both in fish. I use aliases for some longer commands. For example I have la as an alias for eza -la --icons=auto --group-directories-first because I don't really want to see it every time I run la. I use abbreviations for some shorter commands. For example systemctl abbreviated to sys and systemctl --user abbreviated to sysu.

[–] Fisch@discuss.tchncs.de 3 points 1 day ago (4 children)

I use ZSH with plugins but back when I switched away from bash, I also looked at fish. I didn't use it back then because people say it doesn't follow the POSIX standard but is that really an issue? It probably only extends it instead of taking things away, right?

[–] deadcream@sopuli.xyz 7 points 22 hours ago

All POSIX compatible shells have their quirks and differences because the common POSIX part is rather small, so you will need to learn them anyway when switching from one to another. Fish is not that different from them (to much less extent than something like nushell) and it benefits from having less ancient baggage.

[–] CsXGF8uzUAOh6fqV@lemmy.world 9 points 23 hours ago (1 children)

Unless you have a particular reason for sticking to POSIX, who cares? I'll take the user experience improvement without worry.

[–] Ferk@lemmy.ml 4 points 6 hours ago* (last edited 6 hours ago)

The thing is that, if you are not sticking to POSIX, you might as well use more widely available alternative scripting languages like perl or python, which are often included in most workspaces by default, so I'd say it's more useful to get experienced in those than to get experienced in fish.

[–] exu@feditown.com 7 points 23 hours ago (1 children)

I still write most scripts for bash, but for interactive use fish is just so much better out of the box.

[–] nycki@lemmy.world 3 points 21 hours ago (1 children)

this is my sticking point with fish. I still need to know bash for writing portable scripts, so its hard to justify scripting in fish.

[–] logging_strict@lemmy.ml 1 points 5 hours ago

that's actually a really good argument for not using either.

Taking a step back discussing shells seems like a never ending hell loop.

Sometimes the only way to win is not to play the game.

Use python and stop being stuck in the distant past.

[–] jokro@feddit.org 1 points 18 hours ago* (last edited 18 hours ago)

No issues except that if you want to source files to set env vars you might have to use a plugin (foreignenv in my case)

I still write scripts in bash. But fish's command completion is incredible. Idk, maybe other shells can be that good as well, but fish does out of the box.

Edit: Also some people used to bash wondered what that nice shell is on a server we administrate together. They had no problems using it coming from bash.

And sticking with POSIX is good if you want to stay portable, but my shell mustn't be portable. It should be friendly and reduce mental load.

[–] lemmeBe@sh.itjust.works 0 points 22 hours ago

Thanks for this info! Didn't know about it! 😃

I use zsh with aliases, and Atuin which I find very convenient.

I'll definitely try out fish abbr in combo with aliases. Logic in aliases is great.