Some years ago, in a discussion about 'learning Linux', DanielLawson gave me this list of things to do in order to become more acquainted with your Linux machine. I present it now for the first time in it's entirety....
- Setup a www server (Apache), with virtual hosts mapping it to your DynamicDNS name AND your machines local dns name (if applicable)
- configure sendmail(8) properly to allow outgoing mail, configure the relaying rules so that its 'safe' to leave open on the net.
- Setup a POP3 server (CyrusNotes) that you can connect to from your computer, and recieve mail on, and set up fetchmail(1) to automatically grab your ISP's mail for you and pass it to this local pop server
- set up a squid caching WebProxy, and set it to use your ISP's proxy as a peer cache
- recompile your kernel, removing all unneeded modules and options, and maintaining all required functionality
- learn how tcpdump(8) works
- Use it as a LinuxAnsweringMachine
- Get a tv tuner card and use it as a PVR to record all your favourite tv programs, and stream them to all the computers on your network
- learn how route(8) works
- set up a local DNS server, and it for your local network (and MetaNet)
- join the MetaNet if you haven't already
- set up samba(7) to share drives to your MicrosoftWindows computers
- set up samba to perform NT-style domain logons (SambaAsPDC), and setup netlogon scripts for every user.
- set up a printer connected to your linux box, and share it via samba to your windows pcs
- learn how socks5 works - properly
- learn how rpm(8) works - build a src rpm for your system, and learn how the .spec files work - play round with them, see if you can create your own src rpm. Substitute whichever PackageManagementTool is appropriate for your Linux distribution
- learn how wget(1) works
- bash scripting. script everything you can. sed(1), grep(1), awk(1), are your friends. There are many many more tools you can use tho...
- use the man(1) pages and info(1) pages LOTS
- secure it! see SecuringYourBox