Tutorial :What programming competences should a Unix admin have?


How would you assess a Unix sys-admin.

What programming competences should a Unix admin have?


A few I use for a quick filter:

  • What's a fork bomb, and is it good or bad?
  • Give me a one line command that counts how many lines in a log file start with yesterday's date.
  • Now do it a different way
  • And a third if you're up to it.
  • What should be chmod 777d, and why.
  • What .* files would you expect in a users home directory, and what would be in them?


The only sure-fire way to assess them is to have them chat with somebody else who you know and trust to be a good Unix sys admin. I disagree with the practice of asking interview questions that you yourself don't really understand, since you won't be able to judge whether the candidate has a deep knowledge of the subject or is merely able to recite bits of trivia.

As for what you might want to quiz them on, that depends on what responsibilities they will have. You might ask them some stuff about how to maintain Apache, for example, but that only makes sense if they'll be responsible for servers running Apache (ditto MySQL, Samba, etc.)

Generally speaking, you may want to try asking some questions about shell scripting, user management, how to gauge server health and performance, and how to manage server security.

Knowledge and experience aren't everything, though. Make sure you hire somebody smart and responsible first and foremost. :) There's nothing worse than a flaky sys admin, or somebody dull with little interest in keeping up with current tech.


Parappas last point is very important, getting somebody motivated and responsible is one of the most crucial things in any job hiring process. Also be vary of people that claim, and even might have, run a "server at home for years". Installing Ubuntu and getting Apache more or less up an running is a lot different from being a good sys-admin. The person should also be comfortable with using Linux or *BSD on the desktop, since that means they have to interact with the Unix system on two different levels, both the server side and the desktop side.

Never underestimate the value of a fast and willing learner. This goes back to the point of motivation. A young, unexperienced guy is, in my opinion, sometimes the better choice over a 25-year vet who is sat in his ways. If the person that's to be hired is to work by himself as the sole sys-admin, of course you don't want somebody without experience, but if the position is more junior than that, the "new guy" might be a better choice.

As for programming, knowing shell scripting and regex is the minimum of what you can ask for. If they don't understand any programming at all, they'll probably get lost in the config files pretty quickly.


Good shell-script programming. Ideally one or more of perl/python/awk Ideally some familiarity with C, Makefile syntax and at least one (ideally both) of emacs and/or vi.

Shell-scripting should be obvious. Perl/Python shouldn't be too hard to understand. AWK mentioned because it's frequently close to the right tool, but sometimes needs more.

I have, in the past, needed to write assorted C code to make life as a sysadmin easier, but at those workplaces, the sysadmin(s) also functioned as toolsmiths for the development department.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »