this post was submitted on 19 Jan 2023
22 points (100.0% liked)

Linux

48083 readers
785 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
 
  1. Fish Shell

  2. Nushell

  3. Dune

  4. Xonsh

  5. Hilbish

  6. Elvish

  7. Oh

  8. Solidity

  9. Yash

all 20 comments
sorted by: hot top controversial new old
[–] yuu@group.lt 6 points 2 years ago* (last edited 2 years ago) (1 children)

I use nushell for my terminal/console (alacritty). For POSIX compability, mksh; I set it as SHELL so programs, which expect/assume POSIX, use it instead of nu. This is the way to have best of both worlds.

[–] binarypie@lemmy.ml 2 points 2 years ago (1 children)

I've been eyeing nushell but it's such a departure from posix that it just never sticks. How did you make the switch?

[–] yuu@group.lt 4 points 2 years ago* (last edited 2 years ago) (1 children)

It is because it departs from POSIX that it is good; I recognize the syntax for some functionality is cumbersome and hard to remember though. There are similarities like command names and piping still...

I use NixOS and home-manager, so for switching I just

  home-manager.users.yuu = {
    programs.nushell = {
      package = pkgs-update.nushell;
      enable = true;
      configFile.source = ../../config/nushell/config.nu;
      envFile.source = ../../config/nushell/env.nu;  
    };
  };

The config.nu and env.nu is basically the default just with a customized prompt.

Then in my alacritty.ylm I set shell to the nu binary

shell:
  program: /etc/profiles/per-user/yuu/bin/nu

Also learned from official resources https://www.nushell.sh/book. When I have doubts, I ask either on Nushell's GitHub discussions or https://matrix.to/#/#nushell:matrix.org

And to keep a POSIX shell

{
  environment = {
    systemPackages = with pkgs; [
      mksh
    ];

    sessionVariables = rec {
      TERM = "alacritty";
      TERMINAL = "alacritty";
      SHELL = "${pkgs.mksh}/bin/mksh";
    };

  environment.shells = [
    "${pkgs.mksh}/bin/mksh"
  ];
}
[–] SrEstegosaurio@lemmy.ml 3 points 2 years ago (1 children)

I'm a simple person, I see Nix I upvote.

Thanks for the comment, I may copy some stuff. :p

[–] yuu@group.lt 3 points 2 years ago (1 children)

You're a person of culture as well I see; I upvote comments of culture yes📠

I remember talking with you at the NixOS matrix; nice to see you here as well💖✨✨✨🌠

[–] SrEstegosaurio@lemmy.ml 3 points 2 years ago

It's true! Sometimes the internet seams really smoll.

[–] yogthos@lemmy.ml 6 points 2 years ago (1 children)

I've been using fish for years, and highly recommend it. In particular, I find that fish has excellent contextual completion based on folder as well as great highlighting.

[–] Kajika@lemmy.ml 3 points 2 years ago (1 children)

I tried and liked it a lot years ago. But the piping wasn't asynchronous so you have to wait the full completion of the first command for the next.

I'm not sure about the current state but if that is fixed I would happily fully switch.

[–] yogthos@lemmy.ml 0 points 2 years ago

Looks like the latest version streams output from one command to the other. For example, when I run for i in (seq 1 5); sleep 1; echo $i; end | cat I see the numbers show up one at a time.

[–] dressupgeekout@lemmy.ml 5 points 2 years ago (3 children)

Maybe one day I will actually understand the appeal of all these super fancy shells. They seem kinda cool on the surface but I also feel like I'd never use any of their actual features.

[–] serenity@jeremmy.ml 4 points 2 years ago* (last edited 2 years ago)

If Bash is your default shell, you can install Fish to try its superb auto suggestions and the tab key, while leaving Bash as your default shell. These auto suggestions do not only work for your command line history but also for file names even when your first letters you type are in different order in the file name (For example, I know that I want to edit a file with the word work in it and start typing the word work and press tab key, but it turns out that the word does start instead with the word personal, Fish is still able to suggest the real file name to edit : personal_and_work_todo.txt). Fish has saved me a lot of typing time. And if you need Bash for a moment (Fish will complain about certain * usage), then temporarily exiting Fish or typing bash is an option.

After installing Fish, run the fish_config command to configure it via a local session in your web browser.

https://fishshell.com

[–] winnie@lemmy.ml 3 points 2 years ago (2 children)

But have you tried them?

I've actually used Fish on my old system. I didn't use it as daily driver. Now I've installed Manjaro, and it uses ZSH by default. And now I can compere them, and oh my, Fish auto-completion is way better. it's interactive, showing command names and help on them. and allow to select completion by arrows, not [Tab].

Only downside of fish is that it is incompatible with Bash. In Zsh you could copy-paste bash commands from tutorials and they would just work, but in Fish you need ot alter them, for example $(cmd) is just (cmd) in Fish.

[–] Ordoviz@lemmy.ml 3 points 2 years ago (1 children)

Fish is slowly adding more POSIX syntax, e.g. $(cmd), export ENV_VAR=1 and CFLAGS=-02 make now work as you would expect.

[–] winnie@lemmy.ml 2 points 2 years ago

WOW! Gotta install it again. I was actually planing on it. But was lazy.

[–] dressupgeekout@lemmy.ml 2 points 2 years ago

Truthfully, I've not tried them.

I was about to make a comment along the lines of "I've already learned how to do command line things, my OS already comes with a few shells, why SHOULD I take the time to learn a new shell?"


but then I reflected on this and realized something: it's the same thing as saying "Windows comes with Explorer/Edge, why SHOULD I go through the trouble to pick up a new web browser?" And yet, I unquestioningly download Firefox first thing when I install a new OS, hmm.

You've made me think :]

[–] SrEstegosaurio@lemmy.ml 5 points 2 years ago

I used dash as my /bin/sh due to it being a lot lighter & faster than bash.

Right now I'm trying out ion as my interactive shell and so far it works great.

Fish is cool tho.

[–] anders@venera.social 4 points 2 years ago

@lemmyreader I can recommend Fish shell.

[–] jokeyrhyme@lemmy.ml 4 points 2 years ago

I'm a huge fan of nushell

[–] erpicht@lemmy.ml 2 points 2 years ago

None of these pique mine interest enough to try them, but I was surprised that the oil shell didn't make an appearance. Besides fish and nushell, it was the only alternative shell I'd heard of.