"...Assuming I have now got things to sell, how do I let people know. ..."
Third-party sites (like SLExchange and SLBoutique) and the SL forums new product section aside, the most common ways are to place Classified ads and/or descriptions in the 'Places' search.
Placing a classified ad is done by standing in front of your wares in-world and editing your Profile - then go to your profile's 'Classified' tab and create a new ad. You can replace the default image with one of your own by clicking on the displayed image. You will pay a fee to publish your classified, from L$50 a week to as much as you'd like to pay weekly (one way of viewing classified ads is sorting by how much people paid for them - I personally tend to pay the minimum). You can choose to have your Classified ad self-renew (you will be debited automatically).
Be advised: many folks don't use the Classifieds, and the Classifieds themselves are largely broken as of this writing due to actions on LL's part (I won't go into specifics here, as there's already extensive coverage on the topic).
Caveat: classified search functionality may or may not be restored/repaired/maintained - only LL knows for sure. While I've judged Classified ads cost effective in the past, I've personally cancelled all but a very few of my ads, for now - until LL fixes search properly, at least.
In my opinion, the 'Places' search (when it is working - it is also affected by the recent search borkages) is more commonly used by folks looking for products/services. I myself don't use 'Places' as advertisement, as I use my land for personal, not commercial use - but how you use your property is up to you, of course

.
How to do it: if you are the owner of the property on which your goods will be sold, right-click your property and pick 'About Land' - tab about a bit in that dialog, and you'll find a spot where you can place an image and description of your goods in the land description and mark your land as showing up in the 'Places' search. There is a recurring fee for this (I believe it is a fixed L$30 a week, but that's from memory).
"...Can I purchase or make a device that will allow me to teleport from the ground to my sky home. ..."
Easlily done with a script-in-a-prim. Drop it into a prim, edit the script with the X,Y,Z coords you want to warp to, tweak the 'allowed list' in the script, and anyone in the allowed list sitting on the prim will be whisked up to your skybox. I'll append a very simple version of this at the end of this note. Fancier ones are certainly possible (I use one that utilizes a much faster transport and alternate waypoints for avoiding multiple security orb zones, but you likely won't need that right now - and the one I'll post is short, simple, and does the job).
"...How do set up so I can freeze and eject people from my land? ..."
If you own the land, this is already set up for you. If your land is deeded to a group, you need to talk to the 'owner(s)' of the group to set up. Either way, you access this by right-clicking on an avatar, then selecting 'More' on the pie menu. You should see Eject and Freeze on the pie submenu.
"...Is there a key that allows you to walk sideways (like a crab). A noob asked me and I didnt know the answer. ..."
That could certainly be done with an animation + Animation Overrider (AO). There may be some obscure keypress combo that allows you do do this (crouch plus sidestep comes to mind) - but I've not tried it.
(code for 'porting' to a skybox or other location appended below)
I hope this helps - have fun!

// Simple sit-on-a-prim transporter with access list - have fun!
list access=["John Smith","Jane Doe"];
vector Destination = <200.3,56.0,530.0>; //put your destination here, must be in the same sim
init()
{
llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION);
}
default
{
state_entry()
{
init();
}
on_rez(integer times)
{
init();
}
changed(integer change) {
if (change & CHANGED_LINK)
{
key agent = llAvatarOnSitTarget();
if (agent != NULL_KEY)
{
if (llListFindList(access,[llKey2Name(agent)]) == -1)
{
return;
}
vector oldpos=llGetPos();
while (llVecDist(llGetPos(), Destination) > 0.001) llSetPos(Destination);
llUnSit(agent);
while (llVecDist(llGetPos(), oldpos) > 0.001) llSetPos(oldpos);
}
}
}
}