this post was submitted on 25 Nov 2023
130 points (97.8% liked)

Linux

48463 readers
501 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
 

I've been daily driving Linux for 17 months now (currently on Linux Mint). I have got very comfortable with basic commands and many just works distros (such as Linux Mint, or Pop!_OS) with apt as the package manager. I've tried Debian as a distro to try to challenge myself, but have always ran into issues. On my PC, I could never get wifi to work, which made it difficult to install properly. I've used it on my daily driver laptop, but ran into some issues. I thought a more advanced distro, that is still stable, would be good overall. However, not getting new software for a long time sounds quite annoying.

I'm wanting to challenge myself to get much better with Linux, partitioning, CLI, CLI tools, understanding the components of my system, trying tiling window managers, etc. I've been considering installing Arch the traditional way, on my X220, as a way to force myself to improve. Is this a good way to learn more about Linux and a Linux system in general? I always hear good things about the Arch Wiki. Is there any other tips someone can give me, to sharpen my Linux skills? I was even considering trying out Gentoo on my X220, but the compiling times sound painful. I wouldn't daily drive Gentoo or Arch, just yet, but I would try to use them as much as possible for general use.

top 50 comments
sorted by: hot top controversial new old
[–] netchami 44 points 1 year ago (2 children)

I thought a more advanced distro, that is still stable, would be good overall. However, not getting new software for a long time sounds quite annoying.

Arch is actually not as bad as many say. It's pretty stable nowadays, I even run Arch on some servers and I never had any issues. It gives you the benefits that you can basically find any package in the AUR and everything is up-to-date. Try it out, if you don't like it, you can still switch to something else.

I’m wanting to challenge myself to get much better with Linux, partitioning, CLI, CLI tools

The best way to learn the CLI is to use it. Try not to use your graphical file manager for a while and only interact with the file system through the terminal, that teaches you a lot.

I’ve been considering installing Arch the traditional way, on my X220, as a way to force myself to improve. Is this a good way to learn more about Linux and a Linux system in general?

Yes.

I always hear good things about the Arch Wiki.

It is truly fantastic.

Is there any other tips someone can give me, to sharpen my Linux skills?

Use the system, don't be shy, try different things out. If you are scared that you might break something, try it out in a VM. Break your VM and try to fix it. That teaches you a lot.

I was even considering trying out Gentoo on my X220, but the compiling times sound painful.

I would not recommend that, updating packages will take ages, it's not a great experience.

[–] [email protected] 17 points 1 year ago (4 children)

Arch is actually not as bad as many say. It's pretty stable nowadays, I even run Arch on some servers and I never had any issues.

Not even just nowadays. My desktop is running a nearly 10 year old install. It's so old, it not only predates the installer, it predates the "traditional" way and used the old TUI installer. It even predates the sysvinit to systemd switch! The physical computer has been ship of thesis'd twice.

Arch is surprisingly reliable. It's not "stable" as in things change and you have to update some configs or even your own software. But it's been so reliable I never even felt the need to go look elsewhere. It just works.

Even my Arch servers have been considerably more reliable and maintenance-free than the thousands I manage at work with lolbuntu on them. Arch does so little on its own, there's less to go wrong. Meanwhile the work boxes can't even update GRUB noninteractively, every now and then we have a grub update that pops a debconf screen and hangs unattended-upgrades until manually fixed and hoses up apt as a whole.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

Similar experience. My current install is not as old due to hardware failure but I've been using arch since 2007ish and it's been stable enough through all that concurrent with sort of losing interest in being an admin for a hobby in the last few years that I've honestly got kind of bad at administrating the thing, haha. But it hardly matters because issues are rare.

[–] [email protected] 4 points 1 year ago

Third same. Before my current PC, my old PC was a 6yo install. Never had problems that weren't caused by me (although I could count on one hand the number of times I had issues in that 6 years).

My current install is more than 2yo trouble free.

I've DE hopped and fiddled with heaps of stuff in that time too.

[–] [email protected] 4 points 1 year ago

Same here. Been going on 8 years with the same install and it has never let me down. The only time something "breaks" is when I'm the one who caused it, and it's always been easily fixable with arch-chroot from the iso. Although I haven't even had to resort to that in 3 or 4 years now.

load more comments (1 replies)
[–] [email protected] 5 points 1 year ago (1 children)

Thanks for this, I think I will give Arch Linux a go, and avoid GUI file management. My plan is to daily drive my X220 for more lightweight tasks as it's a nice laptop to use. So using Arch on it may just force me to have to use Arch as a daily driver if I want to use a nice laptop keyboard.

[–] netchami 9 points 1 year ago (1 children)

Another thing that helped me: Get comfortable in the Terminal. Obviously you have to learn some commands and how they work, but just configure your shell and commonly used CLI tools. It makes the experience so much more pleasant. Install a nice shell prompt, set up some aliases for frequently used commands, learn the basics of shell scripting and write your own useful little scripts for things you often have to do, maybe start using Vim and configure it the way you like it. Also explore other shells. Bash is the default shell, but there are better options like zsh or fish. You can watch this video to get some inspiration: https://youtube.com/watch?v=KKxhf50FIPI. This is actually pretty close to my shell setup. If you want to start customizing bash, check this out: https://youtube.com/watch?v=b3W7Ky_aaaY.

To continue learning, maybe subscribe to some Linux-oriented YouTube channels. DistroTube makes great videos about Linux, tiling window managers, how to use various commands, how to configure your shell environment, etc. He also reviews many Linux distros or explains why free software is important. If you search any Linux-related topic on YouTube, chances are that DT already made a great video about it.

[–] [email protected] 4 points 1 year ago

Here is an alternative Piped link(s):

https://piped.video/watch?v=KKxhf50FIPI

https://piped.video/watch?v=b3W7Ky_aaaY

DistroTube

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

[–] [email protected] 23 points 1 year ago (1 children)
  • Find an open-source software that you're interested in, but your main distro doesn't provide it in the official repo. Be a packager for this software.
  • Open your distro's wiki, rewrite (or contribute, if already good enough) a page or section.
  • Try the bleeding-edge version (or very-early testing) of your favourite distro, and submit some test results, regarding to your hardware.

IMHO these tasks are interesting, could learn a lot from these tasks, and other linux users could benefit from these work

[–] [email protected] 7 points 1 year ago (1 children)

I really like these suggestions, I've always wanted to contribute to FOSS software, but always felt underskilled. I will add this to my list of things to do to challenge my Linux and basic programming skills.

[–] [email protected] 3 points 1 year ago (1 children)

It's worth noting that the barrier to entry as a maintainer depends on which distro you're using at the time. It's not uncommon for a distro to have a community repository system, like PPAs in Ubuntu, AUR for Arch, MPR for Debian, etc. I'm not very familiar with Mint, and couldn't easily tell if it has its own or just uses PPAs from upstream.

It isn't especially taxing on programming skills, and if you don't pick too complex of a package, the Linux skills required shouldn't be wildly above your level, but may push you to learn some new things by digging a bit deeper. I haven't formally maintained public packages, but I've needed to build a few over my years using Linux, and it was easier than I'd expected to just build one. It may be easier than you think, too.

[–] [email protected] 2 points 1 year ago

Thanks for the additional info. I installed Arch, it was far less daunting then I anticipated. In fact, it was prettt straightforward. I'll look into your suggestion.

[–] [email protected] 19 points 1 year ago
[–] [email protected] 15 points 1 year ago (1 children)

As an alternative idea…

A using a spare desktop as a headless VM server would be a good way to practice your CLI skills. Don’t install a GUI, or web admin tool, and only use SSH to admin it.

From there, setup a couple of VMs for Arch or Gentoo testing. Eventually, a Linux From Scratch attempt would provide a lot of learning opportunities.

[–] [email protected] 2 points 1 year ago

Sounds interesting, I'll give this project idea a go

[–] [email protected] 12 points 1 year ago
[–] [email protected] 12 points 1 year ago (1 children)

Try installing Gentoo. Follow their installation instructions. I was able to install it, but failed to install a DE. So, got a console going and couldn't go further. That was about 2 years ago. I have an extra laptop that I always install stuff on to learn.

[–] [email protected] 8 points 1 year ago (2 children)

Have you just been running without a DE for 2 years now?

[–] [email protected] 5 points 1 year ago (1 children)

That is peak GNU/Linux. Or maybe even non-GNU/Linux

[–] [email protected] 3 points 1 year ago

God status. 😂

[–] [email protected] 5 points 1 year ago

Nah, kept it for a while then removed it. I might give it another shot and see. Poor laptop has seen so many distros it probably hates me now.

[–] [email protected] 11 points 1 year ago (2 children)

"I’ve been considering installing Arch the traditional way, on my X220, as a way to force myself to improve."

I use Arch and so does my wife (she has no idea). The wiki is legendary because it is well used (I've written a few bits myself). I've used Gentoo for quite a while too but you will find compilation times a bit of a bore.

I own an IT company - I am the MD. I use Arch actually! (and so does my wife)

[–] [email protected] 4 points 1 year ago (1 children)

Haha I'm stealing that. Btw I use Arch (and so does my wife)

[–] [email protected] 2 points 1 year ago

BTW I also use Arch (and also so does my husband) 😁

[–] [email protected] 2 points 1 year ago (1 children)

You have a wife, we get it.

[–] [email protected] 2 points 1 year ago

I drink water. So does my wife. Haha

[–] [email protected] 10 points 1 year ago (2 children)

Installing arch is a great way to learn. Also don't be scared of daily driving it, it's not like it breaks twice a week. More like once a year, which is better than ubuntu in my experience.

[–] [email protected] 5 points 1 year ago

Breakage can be mitigated by root FS snapshots, e.g. with snapper.

load more comments (1 replies)
[–] [email protected] 9 points 1 year ago

Manual arch install was one of the best experiences I had on Linux so far. You learn so much (even more when you try to compare file systems for example to find the best one for you) from the wiki. I don’t know if I’ll be switching from it haha. I’m in the same boat as you, wanting to learn it more and more, hell I’m reading How Linux Works book haha. CLI file management is nice, but I still go back to GUI a lot cos it’s easier to drag and drop to another window instead of figuring out the path to copy to. Not gonna use it just for the sake of it lol Unless someone has tips. I’m all ears :)

[–] [email protected] 9 points 1 year ago* (last edited 1 year ago)

Another vote for Arch. Manual Arch install was an interesting, and positive, experience. I did it multiple times so I could better understand what was actually being done. It helped me understand the boot and EFI partitions because I wanted to dual boot Windows.

For Arch itself, I've had a way snappier experience with pacman than apt and the AUR is a really convenient resource. So many packages there that you would otherwise have to build from source.

Bleeding edge packages can cause problems, but there are ways to recover. downgrade from the AUR makes downgrading packages really easy. The latest Nvidia drivers caused a bunch of problems with games for me on Wayland so I downgraded them and the Linux kernel and added them to pacman's package ignore list.

[–] [email protected] 9 points 1 year ago* (last edited 1 year ago) (1 children)

I really do recommend doing a Gentoo install at some point, because I think you would learn a lot from it. It’s a really nice experience and a well put together distro. The compiling is potentially not as bad as you think, but there are a couple of packages that are notoriously painful to compile (there are prebuilt binaries available for some of the painful ones if desired too). You’d probably get a decent amount out of an Arch install too. Arch isn’t my cup of tea, but lots of people like it and it’d be quicker to get started than Gentoo. I’m not sure I’d recommend it for you at this stage but eventually you should check out NixOS too! You can even try the package manager out on any distro you want. NixOS is really interesting, but it does things a bit different from other distros, and if you’ve done an Arch / Gentoo install it’ll be interesting to see what NixOS does in contrast.

Other things to mess with… You mention partitioning, so make sure to check out LVM, and also consider reading a bit about filesystems. Maybe give btrfs a go :).

I wouldn’t worry about daily driving either Gentoo or Arch. Once you have them set up you’ll probably be fine.

[–] [email protected] 2 points 1 year ago (2 children)

Ironically the huge packages will have best security and speed benefits when compiled yourself

[–] [email protected] 2 points 1 year ago

I don’t think it’s that clear cut to be honest. More code doesn’t mean the package benefits more from optimizations at all, and even if that were true you might care more about the performance of the kernel or various small libraries that are used by a lot of programs as opposed to how fast some random application that depends on qt-WebKit is:

load more comments (1 replies)
[–] [email protected] 8 points 1 year ago (2 children)

Installing Arch manually will teach you a lot of those things. Just do not use archinstall.

load more comments (2 replies)
[–] [email protected] 8 points 1 year ago

Try virtualization and containerization. Like Distrobox, running libvirt in one and a client in another. Or use ssh.

Harden your system, setup a secure ssh server for example

[–] [email protected] 7 points 1 year ago

Arch is pretty painless on the long run, almost everything is available when you combine AUR and official. I've had some package manager issues after not using my laptop for like 6 months but I believe it more a lack for arch knowledge rather than a problem for intermediate / advanced user.

What was frustrating, like in every single imperative distro it that I feel like the system isn't clean anymore after a while and I end up reinstalling or hoping for another distro.

What I found to daily drive everything rock solid but in a funny way is NixOS, which is declarative. If you have some time and curiosity I would recommend checking how it works. No more distro hoping / installs for me

[–] [email protected] 5 points 1 year ago (1 children)

Not a joke:

Write your own device driver.

Preferably for some kind of esoteric hardware that you own but no-one else has, but it'd also be a valuable experience to do it for some commonly used piece of hardware for which good Linux drivers already exist.

For any moderately talented programmer this should be a reasonably difficult exercise, which will teach you very valuable lessons about Linux (and be quite fun at the same time).

[–] [email protected] 4 points 1 year ago

Debugging a kernel panic is not what most people consider “fun”. Especially with a non-zero chance of bricking your machine on bare metal if you mess up somewhere. I’ve done driver development for both Windows and Linux in both hobbyist and professional capacities and it’s not a fun experience to say the least.

[–] WindowsEnjoyer 5 points 1 year ago

I've been considering installing Arch the traditional way, on my X220, as a way to force myself to improve. Is this a good way to learn more about Linux and a Linux system in general?

Oh yes, that's exactly how I learnt. Also I have 1000+ edits in Arch Wiki, but stopped contributing to it (as well as AUR) few years ago.

[–] [email protected] 5 points 1 year ago (1 children)

Linux Bible 10th edition. Yes, it's for Fedora but use whatever distro you just prefer. It'll teach everything about Linux you need to know.

load more comments (1 replies)
[–] [email protected] 5 points 1 year ago (2 children)

What is meant by "daily driving"?

[–] [email protected] 10 points 1 year ago (4 children)

That it’s the OS they’ve been using daily for whatever they need to accomplish on a computer, as opposed to just using it occasionally.

load more comments (4 replies)
[–] [email protected] 2 points 1 year ago

It would be the OS (in this context) that you use most often on a daily basis. When the OP logs onto their computer, they would be using Linux as opposed to Windows.

[–] [email protected] 4 points 1 year ago

Alpine Linux might be good, too. It’s different. But that makes it a great exercise. See https://drewdevault.com/2021/05/06/Praise-for-Alpine-Linux.html

[–] [email protected] 4 points 1 year ago

I agree with what other people have said about using the command line more and the gui less, that will make you have to learn about utils like find, grep, sed, and maybe awk.

Try learning vim (or emacs). Use some command like tools for stuff you'd do in the gui. Try some basic scripting for common tasks. Maybe write some short python/ruby scripts if you need them. I've found that writing code has given me a need for learning more about how the command line works, and other "power user" features.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

I've found that using GitHub Copilot CLI is a neat way go improve my CLI skills.

I ask and it explains commands to me.

https://githubnext.com/projects/copilot-cli

[–] [email protected] 4 points 1 year ago

Sure, if you want to send your CLI input to the cloud. What can go wrong?

load more comments
view more: next ›