I'm new to bitcoin and I've recently been reading on the concept of wallet. If I understand correctly, a wallet is a collection of one or more pairs address + private key (an address is where BTC can be sent to, and a private key is used to spend BTC from its associated address). I'm not sure if there is something between the private key and the address known as public key.
If I understand correctly, the difference between nondeterministic wallets and deterministic wallets is that with non-HD wallets each pair "address + private key" is generated separately, whereas with HD wallets all pairs "address + private key" are generated with a single list of words known as seed.
I'm interested in HD wallets but I know almost nothing about them and all the terminology I've found on the internet is very confusing to me. I've found terms like BIP39 Mnemonic, BIP39 Passphrase, BIP39 Seed, BIP32 Root Key, Master Private Key, Derivation Path, BIP44, m/44'/0'/0'/0/0, and so on (see iancoleman.io/bip39, for example). I'd like to be able to organize this into something that makes sense and I can understand.
Once I've created an HD wallet and I have a list of pairs "address + private key", how can I access it and spend funds from a specific private key from the list? Which software shoud I use and what is the easiest way to do it without compromising security?