In around 25 years of using Linux, I’ve never really used any of the GUI options, so I wouldn’t call it critical for learning. Getting a raspberry pi and SSHing to it from wsl2 would be a potential way to learn a lot of things.
I find I need a project to really get something done - my first real Linux work was to build a LAMP stack and use it to host a website
That's probably because you don't use Linux as a main desktop. Probably Windows? Using a PC as a main computer for your desktop environment needs a GUI. The Internet simply doesn't work in CLI enough to be viable this day and age. Gaming? You need GPU drivers and a GUI to play it. Unless text based games are your thing.
I'm under the impression this guy is trying Linux to replace his Windows desktop if he can get comfortable with it. He never says. So I am only speculating. If he isn't, then WSL and WSL2 is a good starting point for running Linux in a CLI only environment.
I have an old Raspberry Pi 1 or 2 laying around somewhere, though picking up a new one would be nice too. Would I need a Monitor attached to the Pi after OS Setup? No monitor, of course, makes finding it a place to live a lot easier.
You have never said what your end goal is with wanting to learn Linux. What are you intending to do with it? As Endgame said, I have a bunch of RPi also (not 20 lol) and none of mine have a monitor attached. I simply SSH into them via my Windows desktop to setup configs and what not.
Alternatively, if you are wanting to learn how to use Linux as a "desktop" replacement then you technically don't need a monitor for the RPi (or any hardware you plan to host Linux on separately from your main desktop) you can just remote into the host using a number of remote desktop apps such as Anydesk, Rustdesk, Teamviewer, etc... Many options available. It will allow you to control the host using your mouse, keyboard and monitor from your main computer similar to a VM, only it'll be on physical hardware.
I have not used ssh. I understand I should be able to ssh my router too.
Is there a good instruction guide to be found?
There isn't much to it. The Windows software you are looking for is called Putty. Simply open Putty, enter the IP of the Linux host (and port if you change it), save it, then click open. It'll prompt you for a username and password. Enter them for the Linux username you setup and password and you're in. You just have to make sure the SSHD service is installed and running on the Linux host for this to work.
If using a RPi, then you can enable that option with the boot image.
If you're installing Linux to some old hardware or a second drive/partition on your main then you'll need network access on the host and open a terminal (if you installed the GUI desktop version) and then run this command:
Before installing anything new you should always update/upgrade the system first. So type these first.
Code:
sudo apt-get update
sudo apt-get upgrade
Then install sshd.
Code:
sudo apt-get install openssh-client
This is for Debian/Ubuntu based Linux distros which the RPi is based on and I would recommend you start with since their is plenty of documentation and lots of support for many different types of hardware.
Pi 5 looks nice enough and from what I have read capable. Being me I am thinking 8gb. Wondering how big an SD I would need. I do have a small amount of NAS available (about 7gb) and some old m.2 ssd's with usb adapters.) for additional storage.
Just for learning the CLI, if that's your plan, then the 8GB model is more than enough.
I would recommend figuring out what you want a Linux host to do first. Then take the necessary steps to learn how to accomplish that. Set a goal, then execute it. Just getting on Linux and "messing" around without no real purpose is a learning experience, but you'll get much better experience if you have something you want it to do and configuring it to do that.
Some recommendations would be.
- Using a RPi to host a Pi-hole DNS server for ad-blocking your network
- Using a RPi to run some gaming emulators to play old school games on
- Using Ubuntu on x86 hardware to play some video games on
- Installing BOINC on the RPi or x86 hardware to crunch scientific projects.
- Installing a web server on the RPi or x86 hardware to display projects, info, whatever you want (I'd recommend keeping this LAN only until you get the hang of it)
keyword legend:
- GUI = Graphical user interface
- CLI = Command-line interface
- RPi = Raspberry Pi
- SSH = Secure shell
- SSHD = Secure shell daemon
- WSL = Windows Subsystem for Linux
- WSL2 = Windows Subsystem for Linux 2
- x86 = Intel and AMD CPU architecture
- BOINC = Distributed computing software known as Berkeley Open Infrastructure for Network Computing.