Jump to content

User:Rudxain/Unix: Difference between revisions

From Consumer Rights Wiki
Rudxain (talk | contribs)
"Usage" section; POSIX spec link
Rudxain (talk | contribs)
re-link Microslop "properly" lol
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Welcome to my page about [[wikipedia:Unix-like|anything Unix]]! Here you can learn about [[wikipedia:Linux|Linux]], [[Android]], and maybe even [[wikipedia:RedoxOS|Redox]] and [[wikipedia:Berkeley_Software_Distribution|BSD]].
Welcome to my page about [[wikipedia:Unix-like|anything Unix]]! Here you can learn about [[wikipedia:Linux|Linux]], [[Android]], and maybe even [[wikipedia:RedoxOS|Redox]] and [[wikipedia:Berkeley_Software_Distribution|BSD]].


The purpose of this page is to raise awareness about [[wikipedia:Operating_system|OSes]] that respect their users, and to propose them as alts for [[Microsoft Windows|Microslop Winbloats]] and [[Apple macOS|Crapintosh]]. I know there are non-*nix systems that also honor their users, but "Unices" are more standard (both in practice, and [[wikipedia:POSIX|in theory]]), so it's more pragmatic to recommend *nix.
The purpose of this page is to raise awareness about [[wikipedia:Operating_system|OSes]] that respect their users, and to propose them as alts for [[User:Rudxain/Microslop|Microslop]] [[Microsoft Windows|Winbloats]] and [[Apple macOS|Crapintosh]]. I know there are non-*nix systems that also honor their users, but "Unices" are more standard (both in practice, and [[wikipedia:POSIX|in theory]]), so it's more pragmatic to recommend *nix.


==Why Unix?==
==Why Unix?==
Line 23: Line 23:
While I agree that recommending [[wikipedia:Linux_Mint|Mint]] to beginners is fine (it'd be better if it wasn't based on [[Ubuntu]]; though [[wikipedia:Linux_Mint#LMDE|LMDE]] seems promising), please DO NOT even imply that "[[wikipedia:Debian|Debian]] is hard". I might be biased, but installing and using Debian as a daily-driver is easier than ever.
While I agree that recommending [[wikipedia:Linux_Mint|Mint]] to beginners is fine (it'd be better if it wasn't based on [[Ubuntu]]; though [[wikipedia:Linux_Mint#LMDE|LMDE]] seems promising), please DO NOT even imply that "[[wikipedia:Debian|Debian]] is hard". I might be biased, but installing and using Debian as a daily-driver is easier than ever.


With that out of the way, keep in mind that Linux gives you the freedom to install any [[wikipedia:Desktop_environment|desktop-environment]] (DE) you want! So if you care more about the system GUI than pre-installed apps, just choose one of the following:
With that out of the way, keep in mind that Linux gives you the freedom to install any [[wikipedia:Desktop_environment|desktop-environment]] (DE) you want! So if you care more about the system [[wikipedia:Graphical_user_interface|GUI]] than pre-installed apps, just choose one of the following:


*Debian: the big daddy/momma of all popular distros. If outdated packages are a concern, install [https://wiki.debian.org/DebianTesting Testing] rather than Stable. See [https://www.debian.org/doc/user-manuals#faq the FAQ about anything remotely related to Debian] (multi-language).
*Debian: the big daddy/momma of all popular distros. If outdated packages are a concern, install [https://wiki.debian.org/DebianTesting Testing] rather than Stable. See [https://www.debian.org/doc/user-manuals#faq the FAQ about anything remotely related to Debian] (multi-language).
Line 32: Line 32:


===Android===
===Android===
If you need Android but your [[List of phones that do not allow bootloader unlock|BL is perma-locked]], you can install [[wikipedia:Termux|Termux]], as it's more lightweight than a [[wikipedia:Virtual_machine|VM]]. If your [[Bootloader unlocking|BL is unlocked]], then try installing a [[wikipedia:List_of_custom_Android_distributions|custom "ROM"]] (I hate that term so much. It's clearly a [[wikipedia:Misnomer|misnomer]]). List of suggestions:
If you need Android but your [[List of phones that do not allow bootloader unlock|BL is perma-locked]], you can install [[wikipedia:Termux|Termux]], as it's more lightweight than a [[wikipedia:Virtual_machine|VM]]. If your [[Bootloader unlocking|BL is unlocked]], then try installing a [[wikipedia:List_of_custom_Android_distributions|custom "ROM"]] (I hate that term, it's clearly a [[wikipedia:Misnomer|misnomer]]). List of suggestions:


*[[GrapheneOS|Graphene]]
*[[GrapheneOS|Graphene]]
Line 38: Line 38:
Note that you might not need a ''real'' Android device: you can install [[wikipedia:Waydroid|Waydroid]] on a regular distro.
Note that you might not need a ''real'' Android device: you can install [[wikipedia:Waydroid|Waydroid]] on a regular distro.


== Usage ==
==Choosing a DE==
Your distro (and most installed packages) should have docs available locally as [[wikipedia:Man_page|<code>man</code>-pages]] or in <code>/usr/share/doc/</code>. Most DEs have a "Welcome" app that auto-starts on first login, so you should be good to go.
There are 2 major options:
 
*If you prefer non-[[wikt:clutter|cluttered]] [[wikipedia:User_interface|UIs]], choose [[wikipedia:GNOME|GNOME]]
*If you prefer [[wikt:versatile|versatility]] and [[wikipedia:Ergonomics|ergonomics]], choose [[wikipedia:KDE_Plasma|KDE Plasma]]
 
Everything else is "less standard", but still worth trying:
 
*[[wikipedia:COSMIC_desktop|COSMIC]], which looks promising!
*[[wikipedia:Cinnamon_(desktop_environment)|Cinnamon]] is the default on Mint
*There's also [[wikipedia:Xfce|Xfce]], if you want less bloat, but I've read that nowadays its [[wikipedia:Memory_footprint|memory footprint]] is in the same [[wikipedia:Guesstimate|ballpark]] as Plasma and GNOME.{{Citation needed}}
 
==Choosing a shell==
<blockquote>Um acshually 🤓, "[[wikipedia:Shell_(computing)|shell]]" can refer to any kind of UI, not just text interfaces</blockquote>Yes, but for the purposes of this page, "shell" will refer to [[wikipedia:Read–eval–print_loop|REPL]] and [[wikipedia:Command-line_interface|CLI]] programs.
 
Let's be honest, [[wikipedia:Bash_(Unix_shell)|Bash]] and [[wikipedia:GNU_Readline|Readline]] have '''terrible defaults'''. No wonder [[wikipedia:Z_shell|Zsh]] and [[wikipedia:Fish_(Unix_shell)|Fish]] are so popular. HOWEVER, let me be clear that Bash can approximate the ergonomics of Zsh ''really well'', given that you configure it properly.<ref>https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.config/inputrc</ref><ref>https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.config/sh/rc#L24-L28</ref><ref>https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.bashrc#L5-L10</ref>
 
I haven't tried Fish, because it looks bloated. However, I'd recommend it over Zsh,<ref>{{Cite web |last=Evans |first=Julia |title=Reasons I still love the fish shell |url=https://jvns.ca/blog/2024/09/12/reasons-i--still--love-fish/ |url-status=live |archive-url=https://web.archive.org/web/20260304110218/https://jvns.ca/blog/2024/09/12/reasons-i--still--love-fish/ |archive-date=2026-03-04 |access-date=2026-04-19}}</ref>(source correction: Bash has [[wikipedia:Bracketed-paste|bracketed-paste]] by default) simply because Zsh is too similar to Bash. If you use a non-POSIX shell, why not go all the way and enjoy the benefits? ;) (the Zsh condition [https://pointersgonewild.com/2024/04/20/the-alternative-implementation-problem/ is sad])
 
Since we're talking about "anti-POSIX", maybe try [https://www.nushell.sh/ Nushell]? It's too "[[wikipedia:PowerShell|PowerShelly]]" for me, lol.
 
==Usage==
Your distro (and most installed packages) should have docs available locally as [[wikipedia:Man_page|<code>man</code>-pages]] or in <code>/usr/share/doc/</code>. Most DEs have a "Welcome" app that auto-starts on first login, so you should be good to go. If you encounter a compressed text file, such as <code>README.md.gz</code>, you can open it in any [[wikipedia:Terminal_pager|pager]]-like program (including text-editors, like [https://helix-editor.com/ Helix]) by running a command like <code>zcat README.md.gz | less</code>.


And please:
And please:


* Don't be afraid of the [[wikipedia:Terminal_emulator|terminal]]! Terminals are your friend. Don't let Big <s>Brother</s> Tech tell you otherwise.
*Don't be afraid of the [[wikipedia:Terminal_emulator|terminal]]! Terminals are your friend. Don't let Big <s>Brother</s> Tech tell you otherwise.
* Don't be afraid of [[wikipedia:Command-line_interface|CLI]] apps! Except <code>rm</code>, that one is dangerous unless you add <code>[https://pubs.opengroup.org/onlinepubs/9799919799/utilities/rm.html#:~:text=%2Di,-Prompt -i]</code>. See [https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#I-used-rm-to-remove-a-file_002e-How-can-I-get-it-back-now_003f how to recover deleted files].
*Don't be afraid of CLI apps!<ref>https://github.com/you-dont-need/You-Dont-Need-GUI</ref><ref>https://github.com/jlevy/the-art-of-command-line</ref> Except <code>rm</code>, that one is dangerous unless you add <code>[https://pubs.opengroup.org/onlinepubs/9799919799/utilities/rm.html#:~:text=%2Di,-Prompt -i]</code>. See [https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#I-used-rm-to-remove-a-file_002e-How-can-I-get-it-back-now_003f how to recover deleted files].
* Don't be afraid of [[wikipedia:Unix_shell|shells]]! except [[wikipedia:Bash_(Unix_shell)|Bash]], that one is a menace.<ref>https://mywiki.wooledge.org/BashPitfalls</ref><ref>https://github.com/anordal/shellharden/blob/1e629728e37d2e78dd3a06ed69cd54e2f66b87b0/how_to_do_things_safely_in_bash.md</ref><ref>https://github.com/oils-for-unix/oils/wiki/Shell-WTFs</ref><ref>https://github.com/koalaman/shellcheck/issues/3067</ref> I use Bash daily but I recommend [https://oils.pub/ Oils].
*Don't be afraid of [[wikipedia:Unix_shell|shells]]! except Bash, that one is a menace.<ref>https://mywiki.wooledge.org/BashPitfalls</ref><ref>https://github.com/anordal/shellharden/blob/1e629728e37d2e78dd3a06ed69cd54e2f66b87b0/how_to_do_things_safely_in_bash.md</ref><ref>https://github.com/oils-for-unix/oils/wiki/Shell-WTFs</ref><ref>{{Cite web |date=2024-10-05 |title=Feature suggestion: Warnings regarding (automatic) recursive indirection/eval within \[\[ (( and $(( blocks |url=https://github.com/koalaman/shellcheck/issues/3067 |url-status=live |archive-url=https://web.archive.org/web/20260420003136/https://github.com/koalaman/shellcheck/issues/3067 |archive-date=2026-04-20 |access-date=2026-04-19 |website=GitHub}}</ref> I use Bash daily but I'd recommend [https://oils.pub/ Oils] ([[wikipedia:Shill|shill]] alert!).
It's fine if you're not used to [[wikipedia:Text-based_user_interface|TUIs]], don't feel pressured. Depending on the distro you choose (e.g. Mint), TUIs aren't required at all.
 
Like many things in life, it might take you time to get comfortable with a different way to do things, this would be the case if you've been using TUIs your entire life and encountered a GUI. Arguably, GUIs tend to be more intuitive (on average) for most tasks, but TUIs can sometimes be more user-friendly than GUIs!
 
IMO, the "holy war" of GUI vs TUI is pointless, both excel at different things. I typically use this example:<!-- Please suggest better examples, lol -->
 
*A camera app is clearly better as a GUI. Real-time photo-previews are one of the main reasons why digital cameras made film-based cameras "obsolete".
*A calculator app is better as a TUI (unless it's a graphing-calc), because you're not limited by a custom keyboard (unless you're using a tiny touchscreen, because custom keyboards have bigger keys). Also, most TUI calculators (such as <code>[[wikipedia:Bc_(programming_language)|bc]]</code>) support looping and conditional constructs. And you're dealing with mostly-alphanumeric data anyways, so a GUI would feel "forced" and inconsistent.
 
Personally, I have a preference for TUIs, simply because they tend to not be bloated. But I love GUIs when they're implemented properly!


==External links==
==External links==

Latest revision as of 03:15, 26 April 2026

Welcome to my page about anything Unix! Here you can learn about Linux, Android, and maybe even Redox and BSD.

The purpose of this page is to raise awareness about OSes that respect their users, and to propose them as alts for Microslop Winbloats and Crapintosh. I know there are non-*nix systems that also honor their users, but "Unices" are more standard (both in practice, and in theory), so it's more pragmatic to recommend *nix.

Why Unix?

[edit | edit source]

This is the part where I sell you the benefits of *nix systems. Imagine a salesman voice, lol:

  • Tired of getting your data collected, sold, and leaked?
  • Tired of over-hyped AI being forced onto everything?
  • Frustrated by lack of transparency and documentation? (and meaningless error messages?)
  • Tired of being treated like a toddler?
  • Don't have patience to deal with bloat?

Oh dear, do I have a deal for you! *nix is what you need:

  • Private and secure: No telemetry by default.
  • No AI, unless you want to run a self-hosted model.
  • Open-source (better than source-available!): naked internals; freedom to modify and redistribute (depends on license)
  • Lightweight and blazing-fast ⚡: install only what you want; wanna remove the bootloader? sure you can!
  • File oriented: wanna see battery temperature? just cat its file; wanna flash a USB? just cp the image to the raw device! No need for special tools.

Choosing a distro

[edit | edit source]

While I agree that recommending Mint to beginners is fine (it'd be better if it wasn't based on Ubuntu; though LMDE seems promising), please DO NOT even imply that "Debian is hard". I might be biased, but installing and using Debian as a daily-driver is easier than ever.

With that out of the way, keep in mind that Linux gives you the freedom to install any desktop-environment (DE) you want! So if you care more about the system GUI than pre-installed apps, just choose one of the following:

  • Debian: the big daddy/momma of all popular distros. If outdated packages are a concern, install Testing rather than Stable. See the FAQ about anything remotely related to Debian (multi-language).
  • Arch (BTW): cutting-edge packages; low (not minimal) bloat; nice documentation.
  • Nix: most popular immutable distro; easily roll-back any problematic upgrades (unlike Arch).[1]
  • Bazzite (see also SteamOS): for gaming.
  • PMOS: for smartphones and tablets.

Android

[edit | edit source]

If you need Android but your BL is perma-locked, you can install Termux, as it's more lightweight than a VM. If your BL is unlocked, then try installing a custom "ROM" (I hate that term, it's clearly a misnomer). List of suggestions:

Note that you might not need a real Android device: you can install Waydroid on a regular distro.

Choosing a DE

[edit | edit source]

There are 2 major options:

Everything else is "less standard", but still worth trying:

Choosing a shell

[edit | edit source]

Um acshually 🤓, "shell" can refer to any kind of UI, not just text interfaces

Yes, but for the purposes of this page, "shell" will refer to REPL and CLI programs.

Let's be honest, Bash and Readline have terrible defaults. No wonder Zsh and Fish are so popular. HOWEVER, let me be clear that Bash can approximate the ergonomics of Zsh really well, given that you configure it properly.[2][3][4]

I haven't tried Fish, because it looks bloated. However, I'd recommend it over Zsh,[5](source correction: Bash has bracketed-paste by default) simply because Zsh is too similar to Bash. If you use a non-POSIX shell, why not go all the way and enjoy the benefits? ;) (the Zsh condition is sad)

Since we're talking about "anti-POSIX", maybe try Nushell? It's too "PowerShelly" for me, lol.

Usage

[edit | edit source]

Your distro (and most installed packages) should have docs available locally as man-pages or in /usr/share/doc/. Most DEs have a "Welcome" app that auto-starts on first login, so you should be good to go. If you encounter a compressed text file, such as README.md.gz, you can open it in any pager-like program (including text-editors, like Helix) by running a command like zcat README.md.gz | less.

And please:

It's fine if you're not used to TUIs, don't feel pressured. Depending on the distro you choose (e.g. Mint), TUIs aren't required at all.

Like many things in life, it might take you time to get comfortable with a different way to do things, this would be the case if you've been using TUIs your entire life and encountered a GUI. Arguably, GUIs tend to be more intuitive (on average) for most tasks, but TUIs can sometimes be more user-friendly than GUIs!

IMO, the "holy war" of GUI vs TUI is pointless, both excel at different things. I typically use this example:

  • A camera app is clearly better as a GUI. Real-time photo-previews are one of the main reasons why digital cameras made film-based cameras "obsolete".
  • A calculator app is better as a TUI (unless it's a graphing-calc), because you're not limited by a custom keyboard (unless you're using a tiny touchscreen, because custom keyboards have bigger keys). Also, most TUI calculators (such as bc) support looping and conditional constructs. And you're dealing with mostly-alphanumeric data anyways, so a GUI would feel "forced" and inconsistent.

Personally, I have a preference for TUIs, simply because they tend to not be bloated. But I love GUIs when they're implemented properly!

[edit | edit source]

References

[edit | edit source]
  1. https://github.com/0atman/noboilerplate/blob/bbbc16c32d6f4f69b0ba50c4199179c7e5b0ff62/scripts/38-nixos.md
  2. https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.config/inputrc
  3. https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.config/sh/rc#L24-L28
  4. https://github.com/Rudxain/dotfiles/blob/d02045700129609f2c6dfa91ebf9a54a9d81b012/.bashrc#L5-L10
  5. Evans, Julia. "Reasons I still love the fish shell". Archived from the original on 2026-03-04. Retrieved 2026-04-19.
  6. https://github.com/you-dont-need/You-Dont-Need-GUI
  7. https://github.com/jlevy/the-art-of-command-line
  8. https://mywiki.wooledge.org/BashPitfalls
  9. https://github.com/anordal/shellharden/blob/1e629728e37d2e78dd3a06ed69cd54e2f66b87b0/how_to_do_things_safely_in_bash.md
  10. https://github.com/oils-for-unix/oils/wiki/Shell-WTFs
  11. "Feature suggestion: Warnings regarding (automatic) recursive indirection/eval within \[\[ (( and $(( blocks". GitHub. 2024-10-05. Archived from the original on 2026-04-20. Retrieved 2026-04-19.