@moth_ball books? Nope. I had IT education, and even there...
Just start with a newbie distro, like Ubuntu, that more or less has everything and has 13873648 tutorials
Or something Debian based, like MX Linux, that won't shit itself on updates generally, but you will quickly see the limitations of a distro that stays behind on updates and such
@moth_ball@Humpleupagus well, you're gonna want to learn to use it at a basic level, because you'll still have to use it here and there to install and compile stuff, but more importantly, when shit fucks up, you'll be stuck with nothing but the terminal
I live in my terminal most of the time. I do almost all of my work in text, and cli based utilities are often far superior to their gui counterparts in terms of simplicity or features depending. Ranger is probably the greatest file browser around. Calcurse can keep a calendar and todo lists and sync via caldav. Alpine for email. It has oauth2, and can even use an external editor, like vim. It can't do html though. Neovim is great, especially with plugins like chadtree, marks, and barbar. It has spell checking, and you can install a thesaurus too. I even directly enter my billing into my database directly from cli via a script. Gui is way overrated.
@moth_ball pic related is the book to read on linux
just use linux and search for answers when you run into problems. It's easier than some people make it out to be.
install the CLI program called "tldr" then if you have to use a different CLI program type "tldr <other program>" and you will get a list of examples of how to use the other program. This is easier than "man <other program>"
I use awk sparingly. I prefer sed where it can be used. Awk comes in handy when I need to parse or create a csv.
I have one script I use to enter client data into estate plan documents that relies on awk to read the csv containing the data fields, sed is then used to make those values into variable in typst and to add them to each file at compile time. On average, a csv for a plan containing fields for four people (e.g. parents and two kids) will generate around 800 variables from 18(x4) or so fields. So it comes in handy. Saves me hours.
@Zergling_man@Humpleupagus@coolboymew@moth_ball yes func(arg, arh); parenthesis optional fields are $1 $2 etc. the $ are NOT accessing vars. you have built in vars like NF (number of fields) and can access them without the $. $NF actually reads $3 for NF=3 it shouldn't respect IFS iirc. it has internal IFS. pass -F 'sep pattern' or assign it in BEGIN{} block. also it's not really pattern {action} but majority of time it will be /pattern/ {action}. the first statement can be whatever and if it evals truthy {actions} happen. clever example is you can do $0=$3 and it actually evals to $0. if $3 is empty {actions} won't run for that record.
admittedly I've written a longer awk program than 99% of awk aware population but I think it's pretty straightforward
@menherahair@moth_ball@coolboymew@Humpleupagus Do I need to quote string literals, what's the syntax for functions, are fields \ or $, does it respect IFS or do I need to set it via a flag, etc. (Except the one you've already answered, IIRC it's yes, bash-style, and IFS. Next time I use it I'm sure I'll find some other similar question. And then I'll just go like sed | python or something.)
@Humpleupagus@moth_ball@coolboymew Twice a year I come across a problem where I think awk might help me solve it, and then I realise that figuring out how awk works again would take longer than just solving it with python instead.
@moth_ball i think best way to learn is to spin up a Virtual Machine (it runs a fake computer inside your real one) (https://www.virtualbox.org/) is a decent starting point, you can start with something easy like Linux Mint and try to understand it's innerworkings later when you're comfortable with a different Operating System, also you can also always ask questions on here, there's very knowledgeable people on here that will be willing to explain you how a certain concept works.