Hi all I have a quick question. Is it better for my zsh shell to be in /usr/bin/zsh or /bin/zsh. I remember reading that one of them would mess up the whole system since zsh is not posix compliant. I believe that szh shouldn’t be set as the root shell. I now have it in /usr/bin/zsh, is that good? So now when I drop into a root shell I don’t get they autocompletion feature that zsh has. I’d also lose that fancy theme. Does that mean my root shell is still bash? Thanks

    • On my machine /bin/env, /usr/bin/env, and /usr/sbin/env are all hard-linked to the same file. Probably because every distro puts it some place else and the Manjaro folks just like to be compatible :)

        • Sure, things usually put env in /usr/bin, but there’s no guarantee for that. All standards like POSIX guarantee is that the standard PATH contains certain binaries.

          Hardcoding /usr/bin/env is probably your best bet, but hardcoding any path is making assumptions that POSIX complaint shells don’t guarantee.

          That’s why #!env is probably your best bet, but people hate shebangs without absolute paths.

          • _cnt0@lemmy.villa-straylight.social
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Sure, things usually put env in /usr/bin, but there’s no guarantee for that.

            There is even less guarantee for it to be anywhere else.

            Hardcoding /usr/bin/env is probably your best bet

            Because it is the convention.

            That’s why #!env is probably your best bet

            It definitely isn’t. That might work in your user space instance of bash in the desktop, but will likely fail in a script invoked during boot, and is guaranteed to fail on several non-gnu/non-linux systems.

            #!/usr/bin/envis the agreed convention and there is no probably or but about that. If that does not work on a system it is a bug (looking at you BusyBox containers 🤨).