Linux knowledge a Junior cannot miss [duplicate]

Possible Duplicate:
What a beginner should know/learn for sysadmin job?

I am soon going to be graduating from college, and am looking for job offers right now. There is one that I have a lot of interest in, involving Linux system administration (PHP, MySQL, Apache Webserver, BIND, bash, postfix, and of course general system maintenance and security).

However, during my internship most of my assignments involved Hyper-V virtualization and Windows in general, and I didn't get much Linux-time. In my spare time, I'm usually a windows user as well with only very basic Linux knowledge.

What knowledge and skills would you say a new Junior job applicant needs to posess before he is really ready for the job (and the interview)? Any sources, going from books to e-books, tutorials, general skill descriptions, commands, websites, blogs, ... will help me a bunch.

Help me become a better Linux administrator, and getting ready for this interview! Thanks a lot :-)

EDIT: As some people suggested, I'll update the original question: I stated that I am a Junior in the question title, and that refers to the title of the job I am applying for (without experience, there's almost no chance you'll get a job as a Senior, obviously). My Linux knowledge might be a bit better than I let you guys understand; I am way past the "how do I set up a dns server?" stage, dns, dhcp, webserver etc, I've set those up before several times.

I am looking for more advanced knowledge, stuff I'll need in my daytime job, or questions I may be asked in a job interview. I want to be prepared for it as I can be.

Thanks for the input so far!


There's already plenty of information(Questions/Posts) in ServerFault for a beginner Linux administrator:

  • Linux How-to/Tutorial sites
  • Setting-up Linux at home
  • Tools you should absolutely know as a Windows/Linux Admin
  • Good Linux Podcasts/Links for beginners
  • Hidden Features in Linux
  • How to recruit a Linux Guru
  • What a beginner should know about a SysAdmin Job

In addition, I will suggest you find an old computer and install Linux on it. Play with it, setup a firewall, DNS, DHCP on it to start and test things. You could even set it up in a VM and do stuff in it. Nothing is going to help you better than getting yourself in there for the real experience. Decide of a good use for it and try to use it as much as you can. Ask questions when you get stuck (research it first, though), that's why we're here for.


Think about scale, audit trail and backouts.

In the real world you need to do stuff often and you often need to do it to lots of servers. So scripting and automation become important.

The level of rigour tends to be higher than what you might use at home. So you need to think about how you can record your changes (the better to identify what change it was that broke the service) and how you can back them out if required.

E.g. knowing how to set up bind as a master and slave is fine, but at my work we host several hundred domains over 7 instances of bind. One master, which has a slave, that slave is itself master to 5 other slaves. We generate the named.conf's for all of them with make and M4 macros, push them out with ssh and record the changes to both named.conf and some zone files with RCS. The bigger zone files are generated from a database that has a CGI front end.

Nothing very astounding about any of that, the named.confs are for the most part pretty simple, there just big. Same with the larger autogenreated zone files.

The point I'm trying to make is that when you are working in a real work environment, you need to be able to scale, what you do and you need to be able to track changes and you need to think about backout.

I'd get familiar with automated build tools such as kickstart as that is a job that some places give juniors as it lets them work with servers and understand how they are put together and configured in the organisation, without having to let them loose on live prd servers.


Beyond the basics, here are a few areas that you should probably investigate further:

  • Settings up a mail system that performs well enough for hundreds of users, good spam filtering, security, backup solution, webmail access, etc...

  • Learning and experimenting with backup: choosing a good strategy, implementing it, making it as effective in $$ as possible (everyone wants backup but not everyone want to pay for the extra cost).

  • Server monitoring: again, having a good strategy and implementing it so you can monitor multiple servers, the goal being to be able to anticipate problems rather than fixing them when they happen.

  • Security: auditing, locking resources, monitoring usage, complex firewall situations.

  • ...
    Basically, anything that pushes the envelope and makes the difference between setting up something for yourself and settings up something for an organisation.

Beyond these, I believe that to be an effective Senior Admin you need to understand what the company does, how people work, what they do, and find out how technology can help users being more effective and the company's bottom line.
IT doesn't exists in a vacuum: trying to find better ways for people to collaborate and have access to their data quickly and securely is what makes a good IT organisation.

So it's not just about being able to setup a mail server or installing a security product, it's about using your technical knowledge and experience to help the business you are working for.

Expanding your horizon beyond just the mechanics of IT will help you get farther.