What I noticed here is that the bitcoin-cli command gave me back the address I sent the money to, the fee it took to get the address, but it didn't tell me from which address the transaction was sent from.
Bitcoin transactions don't send from addresses. They spend previously unspent transaction outputs , and they create new unspent transaction outputs.
Here, it can be clearly seen that an amount of 0.06611392 BTC was sent from 12bFMAPz7dhKmLxsoipfUqmCCjqENCDzKb XBT address,
That is not correct. blockchain.info looks up what script was used when a transaction output was previously created, converts that script to an address, and displays that address to you as if the bitcoins were "sent from" that address. This is not how the transaction actually works, but people seem to like to see it that way, so blockchain.info displays it that way. This tends to cause confusion as people start thinking of bitcoin addresses as "account numbers" or as something that bitcoins can be sent from. Then when they are introduced to how bitcoin actually works, they struggle to fit reality into their existing preconceptions.
to two different outputs. One of the output is the address, Blockchain.Info gave me to receive the Bitcoin. The other output is an address unknown to me.
That other output is commonly called a "change output". That other address is an address that bitcoin-cli has created in your wallet and is keeping track of.
So I started thinking: Am I correct, that when sending a bitcoin transaction, all of the amount from a specific address gets placed in the input,
Not necessarily. The wallet software will choose specific unspent outputs that it has access to. Those outputs may have been created using multiple different addresses, or may all have been created using the same address. They may be all the outputs created using an address, or they may only be some of the outputs created using an address. The wallet doesn't care what addresses were used when creating the outputs that it has control over.
As an analogy, think of it a bit like a cash business. In this analogy, the business has multiple cash registers (addresses). They receive cash (outputs) from customers into the various registers (addresses). Later, when they go to pay a supplier (send a transaction), they don't keep track of which register (address) each of those cash bills (outputs) were received at. They just choose enough cash bills (outputs) to cover the cost (transaction value). The cash bills (outputs) might be all the bills from a single register (single address), they might be all the bills (outputs) from multiple registers (addresses), they might only be some from each register (address). It doesn't matter what register (address) it was received at, only that the total is enough to cover the cost (transaction value).
a part of it (the part which I specify) gets sent to the address I wish to send,
More specifically, an output script gets created using information extracted from the address.
and the rest gets transferred to a newly created address on the same wallet, from which the send operation was initiated?
Correct. (Or more specifically, gets assigned to an output built using information extracted from a newly created address on the same wallet).
Each transaction output must be spent in its entirety. A transaction output is either spent, or unspent. There is no way to partially spend an output. This fits well with our analogy above. Think of each output as a single cash bill. You can't rip a $20 bill in half to pay someone $10. You have to give them the entire $20. Then you can receive $10 back in "change". Bitcoin handles this in the transaction itself so that the recipient doesn't need to send you back a separate transaction with your change. Previously unspent outputs are chosen as inputs to supply enough value to cover all the outputs you want to create. If the wallet isn't able to find previously unspent outputs that add up to exactly the amount you want to send plus the transaction fee, then an additional output is created to place the extra back under the control of the wallet.
Some other questions which arise to me: How is Blockchain.Info able to retrieve information from any kind of Bitcoin Transaction, while me, using a full Bitcoin Node, can only find transactions which was either initiated by the node, or which has a receiving address which is in the nodes wallet?
You can get this additional information from your full Bitcoin Node by creating a bitcoin.conf file in the correct directory with: