User:Rudxain/Unix: Difference between revisions
m link EFI Stub |
re-link Microslop "properly" lol |
||
| (26 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]]. | |||
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| | 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 12: | Line 12: | ||
*Don't have patience to deal with [[Bloatware|bloat]]? | *Don't have patience to deal with [[Bloatware|bloat]]? | ||
Oh dear, do I have deal for you! *nix is what you need: | Oh dear, do I have a deal for you! *nix is what you need: | ||
*Private and secure: No telemetry by default. | *Private and secure: No telemetry by default. | ||
| Line 18: | Line 18: | ||
*Open-source (better than [[wikipedia:Source-available_software|source-available]]!): naked internals; freedom to modify and redistribute (depends on license) | *Open-source (better than [[wikipedia:Source-available_software|source-available]]!): naked internals; freedom to modify and redistribute (depends on license) | ||
*Lightweight and blazing-fast ⚡: install only what you want; wanna remove the [[wikipedia:Bootloader|bootloader]]? sure [https://wiki.archlinux.org/title/EFI_boot_stub you can]! | *Lightweight and blazing-fast ⚡: install only what you want; wanna remove the [[wikipedia:Bootloader|bootloader]]? sure [https://wiki.archlinux.org/title/EFI_boot_stub you can]! | ||
*File oriented: wanna see battery temperature? just <code>cat</code> [[wikipedia:Sysfs|its file]]; wanna flash a USB? just <code>cp</code> the image to the [[wikipedia:Device_file|raw device]]! No need for special tools. | |||
==Choosing a distro== | ==Choosing a distro== | ||
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/ | *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). | ||
*[[wikipedia:Arch_Linux|Arch]] ([https://www.urbandictionary.com/define.php?term=i%20use%20arch%20btw BTW]): cutting-edge packages; low (not minimal) bloat; nice documentation. | *[[wikipedia:Arch_Linux|Arch]] ([https://www.urbandictionary.com/define.php?term=i%20use%20arch%20btw BTW]): cutting-edge packages; low (not minimal) bloat; nice documentation. | ||
*[[wikipedia:NixOS|Nix]]: most popular immutable distro; easily roll-back any problematic upgrades (unlike Arch). | *[[wikipedia:NixOS|Nix]]: most popular immutable distro; easily roll-back any problematic upgrades (unlike Arch).<ref>https://github.com/0atman/noboilerplate/blob/bbbc16c32d6f4f69b0ba50c4199179c7e5b0ff62/scripts/38-nixos.md</ref> | ||
*[[wikipedia:Bazzite_(operating_system)|Bazzite]] (see also [[SteamOS]]): for | *[[wikipedia:Bazzite_(operating_system)|Bazzite]] (see also [[SteamOS]]): for gaming. | ||
If you need | *[[wikipedia:PostmarketOS|PMOS]]: for smartphones and tablets. | ||
===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, it's clearly a [[wikipedia:Misnomer|misnomer]]). List of suggestions: | |||
*[[GrapheneOS|Graphene]] | |||
*[[wikipedia:LineageOS|Lineage]] | |||
Note that you might not need a ''real'' Android device: you can install [[wikipedia:Waydroid|Waydroid]] on a regular distro. | |||
==Choosing a DE== | |||
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: | |||
*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 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 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== | ||
*[https://pubs.opengroup.org/onlinepubs/9799919799/ POSIX spec]. It also serves as <code>man</code>-pages. | |||
*[https://github.com/offa/android-foss/blob/42ba335a7e8b80b2d885b072f2f81a4ef1486707/doc/OpenAndroidProjects.md Open Android Projects] | |||
*[https://landley.net/aboriginal/about.html#selfhost "Make Android self-hosting"] | *[https://landley.net/aboriginal/about.html#selfhost "Make Android self-hosting"] | ||
==References== | |||
{{reflist}} | |||