Fish rules
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
Switching to dash
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
I really like Fish but for simple stuff like youtube-dl you always have to put quotation marks around the YouTube video’s address because Fish thinks the question mark is an operator. So annoying.
-
I really like Fish but for simple stuff like youtube-dl you always have to put quotation marks around the YouTube video’s address because Fish thinks the question mark is an operator. So annoying.
Fixed in fish 4.0
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
Non English speaker here . don’t you mean “non POSIX compliant” instead of “POSIX non compliant” ?or is it a hint at the fact that it is designed to actually be non compliant?
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
I just switched to fish for the pretty colors and quality of life features. Anything I should keep in mind while using it as a Linux noob? I don’t even know who POSIX is lol.
-
I just switched to fish for the pretty colors and quality of life features. Anything I should keep in mind while using it as a Linux noob? I don’t even know who POSIX is lol.
I HIGHLY recommend using bash and zsh as posix-compliant shells at the beginning, then if you want something different; you can use whatever the hell you want. Nushell, fish, etc.
-
Non English speaker here . don’t you mean “non POSIX compliant” instead of “POSIX non compliant” ?or is it a hint at the fact that it is designed to actually be non compliant?
“non-POSIX compliant” = compliant with non-POSIX (whatever “non-POSIX” may be)
“POSIX non-compliant” = not compliant with POSIX
The best way to say what OP did would be a simple “not POSIX compliant”. Looking back, that’s exactly what was said in the post. The meme itself is, unfortunately a different story.
Posix non-compliant was used in the meme because the author wanted to save on words in the puchline. “Using a shell not POSIX compliant” lacks a few words and is syntactically incorrect. “Using a POSIX non-compliant shell” saves on words, and is syntactically correct, but makes the sentence more complex.
All in all, the “non-” prefix is a bit finicky in english and can usually be avoided.
-
Fixed in fish 4.0
Fixed in fish 4.0
*reinstalling Fish right now*
-
“non-POSIX compliant” = compliant with non-POSIX (whatever “non-POSIX” may be)
“POSIX non-compliant” = not compliant with POSIX
The best way to say what OP did would be a simple “not POSIX compliant”. Looking back, that’s exactly what was said in the post. The meme itself is, unfortunately a different story.
Posix non-compliant was used in the meme because the author wanted to save on words in the puchline. “Using a shell not POSIX compliant” lacks a few words and is syntactically incorrect. “Using a POSIX non-compliant shell” saves on words, and is syntactically correct, but makes the sentence more complex.
All in all, the “non-” prefix is a bit finicky in english and can usually be avoided.
Wouldn’t it be more like “non POSIX-compliant”? That’s how I would understand it, though I’m not a native speaker
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
using nushell is my little rebellion against POSIX tyranny
-
I HIGHLY recommend using bash and zsh as posix-compliant shells at the beginning, then if you want something different; you can use whatever the hell you want. Nushell, fish, etc.
WIll I be able to take my shell with on to every other computer I meet ? I mean, these things are tiny, but how portable are shells ?
I don’t want to learn a bunch of useful custom commands and then become frustrated to do anything on every computer other than mine.That’s why I have a qwerty keyboard, I don’t want to become useless whenever I have to use a keyboard that isn’t my keyboard…
-
fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
Nah, fuck that. I’m using yash.
-
WIll I be able to take my shell with on to every other computer I meet ? I mean, these things are tiny, but how portable are shells ?
I don’t want to learn a bunch of useful custom commands and then become frustrated to do anything on every computer other than mine.That’s why I have a qwerty keyboard, I don’t want to become useless whenever I have to use a keyboard that isn’t my keyboard…
Shell configs are hard to move. Some in $HOME/.config , some in .[idk]rc files, etc.
It’s messy. Unless you write everything you modify. If you did not do that up to now…good luck moving shell configs.
-
Fixed in fish 4.0
*reinstalling Fish right now*
reinstalling Fish right now
Alright:
> /usr/bin/fish --version fish, version 4.0.1
For whatever reason openSUSE doesn’t ship 4.0.2 despite the fact that it’s in its development repo since months. Oh well, could be worse.
-
I HIGHLY recommend using bash and zsh as posix-compliant shells at the beginning, then if you want something different; you can use whatever the hell you want. Nushell, fish, etc.
I HIGHLY recommend using bash and zsh as posix-compliant shells at the beginning
Why? All the usual shell scripts don’t use Fish as interpreter.
-
Shell configs are hard to move. Some in $HOME/.config , some in .[idk]rc files, etc.
It’s messy. Unless you write everything you modify. If you did not do that up to now…good luck moving shell configs.
I have no shell configs of any kind
because it seemed like everytime I used another computer, I would not have them and I would end up having the re-learn everything.So instead I google every command every time or ask chatgpt, like this
I find it very annoying there’s isn’t a reliable way to use alias or shells, functions and stuff.
-
WIll I be able to take my shell with on to every other computer I meet ? I mean, these things are tiny, but how portable are shells ?
I don’t want to learn a bunch of useful custom commands and then become frustrated to do anything on every computer other than mine.That’s why I have a qwerty keyboard, I don’t want to become useless whenever I have to use a keyboard that isn’t my keyboard…
Fish is not the worst in this regard, because:
- The defaults are pretty good, so you don’t typically need a config file for it to be usable.
- As of version 4.0, Fish is (experimentally) available as a single executable for download from their GitHub page. So, even on hosts where you can’t install anything, you may still be able to copy that executable file onto there and use it.
But there may still be situations where it’s annoying, like if you’re working in a container, then you likely don’t want to mount your
fish
executable every time.But I also have to say I don’t find it too big of a deal.
I still use Bash for scripting (just throw a#!/bin/sh
or#!/bin/bash
at the top of your script, like you should anyways), and then for interactive use, not that much of the shell syntax comes into play anyways.
And if I ever do need to copy a complex Bash command into an interactive shell, I can just runbash
, then run the command in there and thenexit
back out. -
I have no shell configs of any kind
because it seemed like everytime I used another computer, I would not have them and I would end up having the re-learn everything.So instead I google every command every time or ask chatgpt, like this
I find it very annoying there’s isn’t a reliable way to use alias or shells, functions and stuff.
I have no shell configs of any kind because it seemed like everytime I used another computer, I would not have them and I would end up having the re-learn everything.
What I do is store my dotfiles in a git repository, and leave symlinks to the files in that repository. Then, when I move to another computer, pulling over all my configuration consists of doing a
git pull
to pull the git repo over and then running a command to set up the symlinks on that new computer. I can also make changes and selectively push things in. Some things need to be specific to a computer, and those don’t go in.I use a homebrew script to set up the symlinks. A number of people use GNU stow for this.
kagis for an example of someone using stow
https://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html?round=two
If you edit the symlinks in emacs (and I imagine vim), it picks up on the fact that they’re symlinks into a git repository and that they’re version-controlled.
So, like:
-
Have a bare git repository on home machine, the “master” copy.
-
Every machine with an account has a non-bare dotfiles git repository checked out and symlinks pointing into that repo.
-
Make any changes on a given machine like you normally would, then git commit them to the local non-bare dotfiles git repo and push them to the master repository.
-
If setting up on a new machine, pull the git repository, and then run the command to set up the symlinks.___
-
-
Wouldn’t it be more like “non POSIX-compliant”? That’s how I would understand it, though I’m not a native speaker
This is the way I see it too. Treat “POSIX-compliant” as an adjective and negate it.