38 Comments

Chris Said,
April 1st, 2008 @10:21 pm  

No grep?

mygif
Adam Kane Said,
April 1st, 2008 @10:33 pm  

Chris,

grep is definitely also a must know. Can’t believe I left that out. I’ll have to update the list. Thanks!

mygif
Rakesh Said,
April 2nd, 2008 @3:25 pm  

Good list, but one of the most important things in linux world is to learn AWK for parsing text.

Happy LAMPing ….

mygif
bender Said,
April 2nd, 2008 @5:44 pm  

A linux job? This looks more like the resume of a 2 bit script kiddie web ‘designer’. Surely for a real linux job you would need to know how to compile the kernel, customizing the startup, how to setup parallel processing, how to install something other than mysql (there are other *ahem* better database systems out there). What about knowing a real programming language such as C or Java, one would think that if your applying for a ‘linux job’ its because you know more than php (php does work on other platforms you know).

I resent that someone stumbled this site and that i came across it. Shame on all the like minded script kiddies that think that this is a useful post. Perhaps your next post can be the applications you *must* be familiar with for a windows job (notepad, filling in the search dialog, using advanced features like clicking the start button…)

mygif
Adam Kane Said,
April 2nd, 2008 @6:20 pm  

@Bender,

While I appreciate your comment on the article, I question if you’ve ever looked on any popular job sites at qualifications and required skills necessary for a Linux job? I have. Let me present you with a few links I randomly found on Monster. Lets take a look at the average skill sets required for a *typical* (ie. administration, networking) Linux job.

http://tinyurl.com/2ajqqc – Here is a Sr. Linux Network Administrator position. Skills required? Linux Network Administration, Nagios, Cacti, SNMP Monitoring, Debian/GNU, 50+ Linux Machine Environments, Scripting Language (PERL/BASH/TCL/etc), Debian Packages, Large-Scale Linux Deployments, People Management.
…I see a few of my examples on this list, yet none of yours.

http://tinyurl.com/2ofhw5 – Here is a Sr. Linux Systems Administrator position. Skills required? Strong scripting/programming skills with experience in Perl, Python, Bash or other scripting languages. PostgreSQL, mysql, Oracle.
.. Again.

http://tinyurl.com/3786bs – Here is a Linux Systems Administrator position. Skills required? Experience with UNIX services (DNS, NFS, Samba, SSH, etc) Web/HTML experience, including Apache preferred. Firewall and router experience a plus.
.. Again.

I never stated that everything on this list is concrete and that you can forget anything *not* listed. As a matter of fact, if you read the opening paragraph, you’ll see I use the words “if you plan to make Linux a part of your career, why not learn everything you can?”.

Further, if you read the closing sentence, I stated “Do you have any other applications you feel should be on this list? Let us know by leaving a comment below.”. I thank you for doing so and letting the other readers know what you feel should be known, but I despise your ignorance in thinking that you need to ignore LAMP and basic programming knowledge like Perl and Bash to land a “real Linux job” as you so eloquently put it.

Thanks for the idea on the Windows post!

Cheers!

mygif
xxx Said,
April 5th, 2008 @10:49 pm  

nice post

mygif
Mayank Said,
April 5th, 2008 @11:02 pm  

Thanks!!!
That was helpful

mygif
mark Said,
April 6th, 2008 @5:00 pm  

nmap

mygif
na Said,
April 7th, 2008 @11:24 am  

I only question the part about apt-get. Redhat (which you mention as being common) uses YUM by default.

mygif
gunki Said,
April 8th, 2008 @12:08 pm  

Yeah, good list. Grep HAS to be on it, though, and with it comes the syntax of regular expressions, of course, which will be useful in many many other situations, too. For networking purposes, tcpdump/wireshark and nmap are also essential, and if you go wireless, consider the aircrack-ng suite.
Kernel compilation, software compilation in general, or knowledge of a fully-fledged programming language can be helpful, but are not killer skills for administrators.

mygif
krisk Said,
April 9th, 2008 @2:25 pm  

Typing skills anyone??
;-)

mygif
Houser Said,
April 9th, 2008 @9:31 pm  

I agree on most of the items. Anyway… why not SQLite? Or python? Many linux apps depend on them.

Regards,
Houser
USA, TX
http://www.ip-monitor.com.ar

mygif
ghoti Said,
April 14th, 2008 @12:46 am  

You should be booted for not including the single most important command every admin should know:

man

a couple of real? comments:
awk?? awk??? just go sloppy with cut (seriously you should probably be able to use both)

I found a good general question for entry level linux admins at my old job was:

How would you get an error message flagged with “ERROR” from /var/log on server[01-40].production servers for user “me” with keys pushed?

heck, if you can answer that smoothly without writing it down thats a level two admin most times
bonus points if you can tell me how to separate out the Xth field and sort it by occurrences.

after all you can’t fix the problem without knowing what it is…anything else is pretty much site knowledge anyway.

as for Bender…totally right (if I were an elitist prick who didn’t know what I was talking about. seriously know kernel development/databases/programming??? one might think that they have ohhh database teams, programmers, and systems engineering or development teams at most companies, but obviously not necessary for Benders company, and did he cast a vote for Java, I hate Java, as I am sure does any linux admin *)

oh yeah and Python sucks I don’t care what xkcd.com says…reading xkcd.com is also a requirement of a linux admin

I actually do recommend Perl over Python for the following reasons
Its thread safe
It has better documentation
It is the duct tape of the linux universe
Above all the mighty power of reg ex!!!! (when the python documentation says “now provides perl style regex” that pretty much says it all”)
and last but not least flexibility (my junk 17 liners are just as convenient to create as my production scripts are to document)

*fine it is occasionally useful

mygif
ripperzane Said,
April 18th, 2008 @7:18 pm  

Good list. Gives something to shoot for. I am a nooblet in the IT field in that I “aspire” yet have not achieved a *nix job as of yet. Nothing wrong with MS (in my book) I just preffer the Unix/Linux type os for my hopeful deeper future in IT.
I appreciate the info as it at minimum gives me an idea of what to begin to shoot for *not a noob in IT, just the deeper meat and potatoes of administration).

Anyway, my point is: GJ and thnx.
RZ

mygif
harry Said,
April 20th, 2008 @6:46 am  

thank u very much for this insightful knowledge for beginner Linux users!

mygif
Paul Dorman Said,
April 22nd, 2008 @1:49 am  

I never understand these. I don’t think the world works like this at all. You can’t cherry-pick utility applications out of the air and declare them as the secret sauce in the Linux job market. Employers aren’t really concerned by your understanding of a limited pallet of “standard” applications. They are interested in how you use the utilities you are familiar with to solve problems. Of course there are certain applications that carry favor, but these tend to differ between one employer and the next and according to whatever happens to be in fashion. Everyone who’s worked in more than one environment has learned that things are very different from one place to the next.

The best way to get a “Linux” job in my opinion is to use a logical selection of utilities and approaches to actually accomplish something like putting together some kind of Linux server intended for a very specific purpose. Concentrate on those things a business might care about, like economy, scalability, RoI (in terms of hardware and time), quality of design and architecture documentation, etc. No-one cares what you use in general, as long as you can justify your choices and make a convincing case for your design decisions.

You don’t need to do something perfect, but you do need to show how you got from the requirements to the implementation so you can provide a real demonstration of what kind of technical problem-solver you are. Don’t waste your time and effort trying to become competent on someone’s favorite list of utilities. It’s like concentrating on the ‘top ten’ keywords in order to land a programming job.

mygif
prc Said,
April 23rd, 2008 @4:34 pm  

Gosh. 20 years ago we just had vi and grep ( and a smattering of SQL). You kids have it easy with all the helper apps. ;)

mygif
jack Said,
April 28th, 2008 @10:37 am  

I’m afraid I agree with Bender and Paul Dorman. While I think there are somethings that are crucial and every linux user/worker ought to know about, they don’t include things like MySQL and vsftpd (I’ve never used/heard of the last one). They do include things like find, xargs, grep, using pipes, redirection, etc. This is more of a list of some linux tools, some commonly run services/programing languages and some important programs. Not really what I was expecting is all I guess.

mygif
Master Pimp Said,
April 28th, 2008 @8:32 pm  

php and perl? what is it 1980? these to languages have seen better days and since they don’t evolve soon enough they will be forgoten :)
More Python to the word! Python is must, not only for Linux, but for every advance user!

mygif
NaySayer Said,
April 29th, 2008 @9:50 am  

None of these have much to do with Linux, except SAMBA which needs Linux help.
Linux is the kernel and drivers – a Linux job is working with Linux, surely. You need to know toolchains, bootloaders and root file systems, how libraries work etc… You need to understand hardware.

You are thinking of Un*x OS admin jobs.

mygif
Leslie Satenstein Said,
April 30th, 2008 @5:29 pm  

I’ve read the blog, and agree that grep should have been in the list. Second to grep should be awk.

From the job description of system support, I believe that for the other mentioed tools, let me say that if that tool is in wide use, then continue with it. And when you are in a shop with mysql, then you need to know how to support mysql operationally.

As to one programming language over the other. When the only tool you have is a hammer, every think looks like an nail. One should acquire several skills, be it python, pearl, etc.

And one should also cultivate friends with some of the skills that you require. A friend with certain skills could provide a solution in minutes, instead of your two day research.

And never stop learning…

mygif
ismgr Said,
May 7th, 2008 @2:44 pm  

I think the article is generally helpful. First, it’s at least a general introduction to the tools we often use (or used to) in working in a Linux environment. It also could function as an “am I there yet?” gut check for someone thinking that they’re pretty Linux savvy; however, there are Linux jobs that require much more and there are Linux jobs that don’t even require all of what’s on this list. I think, though, that if we apply for a job that says “familiarity with Linux a plus” or “Linux required”–that the skills in the article, whether they are native to Linux itself or common to Linux because of its heritage, are a good starting point as a measure. That said, one doesn’t learn how to make a bluebird box by studying the tools found in the toolbox. You learn about the tools by making the box. While you do, you try the different tools finding some to be no help at all while others are quite handy. It’s not the list of tools that matter so much as the experience gained in becoming familiar with them. So I wouldn’t run out and try to learn about each of these tools thinking that’s the way to be a Linux star. Go work on a snazzy http://www.bluebirdbox-linux.org site with lots of bells and whistles and host it on a Linux server. Disclaimer: Chain saws are an exception. Read the printed material first.

mygif
prozacula Said,
June 11th, 2008 @2:00 am  

bender is a prick. I can’t stand people who leave useless, rude comments on blogs. also, the anti-mysql bs has got to stop. what’re you going to use? postgres? postgres is too complicated, and mysql does pretty much everything postgres does, including scaling. any other reasons beside the fact that you are just a snobby prick, bender?

I agree there should be other tools on this post. Pipes, awk, sed, vi, basic understanding of filesystems, using fdisk(or sfdisk), network booting, backups, man pages, etc are also helpful, but won’t prevent you from getting a ‘linux’ job.

thanks for the post tho!

mygif
reuben Said,
June 19th, 2008 @7:18 am  

In spite of the rather critical comments, I like this list pointing to a general direction. I also like a lot of the insightful comments.

The whole cheesy Oprah-like “n Things You Have To Do” is very entertaining. Keep it up.

mygif
Amir Said,
June 30th, 2008 @4:29 am  

Thanks!!! very very very nice ! :)

mygif
August 21st, 2008 @7:50 pm  

Hah ! Sendmail !

The only thing you need to know about sendmail is how to UN-install it and install the qmail replacement.

This is a rather arbitrary list. There is so much that has been left off and plenty in there that you may never use. For instance, you are unlikely to use both RPM and apt-get in the same job.

You may end up in a web design shop that uses Python, PostGres and Lighttpd. In which case PHP, MySQL and Apache will all be useless.

However, in learning about all of these examples you will learn the true skills a Linux/Unix Sysadmin needs: critical thinking, bug finding, how to wear both a belt AND braces and a familiarity with both the tools and the layout of a Unix/Linux system.

I do like the way you have linked the man page and a tutorial for each one however. That makes the list useful, even if it is arbitrary.

mygif
benny Said,
September 4th, 2008 @10:54 am  

well, i agree that you need much to know to get a linux job; but its still a useful list.

mygif
Vinas Said,
September 17th, 2008 @6:26 am  

cat tail!

mygif
October 5th, 2008 @11:00 pm  

A few more to add on the list:
xargs
locate/updatedb
screen (great w/ irssi and mutt)
man
make
(h)top
chown (just to round out chmod)

mygif
foo Said,
November 20th, 2008 @3:18 pm  

Most job postings are placed by HR people who really don’t know know much about computers, let alone Linux. If someone came to me knowing only that stuff they’d be assigned to level 1 help desk.

mygif
IanEff Said,
January 2nd, 2009 @7:20 pm  

I think that a better title for this post might be “*NIX Life Skills,” or “Necessary Survival Skills When Confronted by a Eunuch.” This is a great list of introductory skills for anyone aiming to swim, rather than sink, in the world of the command line, and the articles you’ve referenced are all pretty damned good introductions. Additionally, anyone who boned up on the tried-and-trues listed above would easily make it through at least the initial phone screening at my company.

Any attempts at an exhaustive list are, of course, futile, but the recommendations so far– grep, awk, tcpdump and nmap– are good. I’d also add ps, sed, xargs (oh xargs, you treat me so well, and I treat you so badly), mounting and unmounting most any file system, and the basics of configuring and installing a program from source code. In this day and age, it’s also helpful to know the basics of VMware, VLANning, gdb or truss, clustered computing and storage technologies, and (maybe most importantly) how to leverage Google to figure out all the other junk that you don’t know.

Because really, the list goes on, and on, and on, and on…

mygif
Yusuf Said,
July 23rd, 2009 @2:56 am  

Nice links but..

The most important skill a *nix admin must have is to be able to learn a tool or software in a very short time.

Also, you completely forgot hardware skills. Net-Installing a system, lvm or raid a system in different levels. Programming in C and Python (at least the basics) and being able to learn and understand other languages.

Best regards Yusuf

mygif
robb Said,
September 22nd, 2009 @8:53 am  

linux job sounds too much for this.
if u really must include a linux job, u’ll need a little more advance terms than these.

mygif
bah Said,
November 25th, 2009 @2:44 am  

Dude. The only command you need is man.

mygif
November 26th, 2009 @11:45 pm  

This is a good start on such a list, but it is not (nor could it ever be) a ‘final’ listing. The ‘deal’ for a Linux admin is to learn quickly, read voraciously, and always, always, always protect the data before trying out anything new.

mygif
gabriel Said,
December 3rd, 2009 @7:53 pm  

though i disagree with the approach bender took, i would have to agree that the title of this article is a bit misleading. bender is correct, to land a linux job, you do need to know a good bit more than what you posted.

and then to follow his comment with a counter showing jobs for sys admin’s? c’mon, thats not linux, thats scripting..

now if you said linux applications you must be familiar with if you plan on landing a LAMP admin job, i would whole-heartedly agree, but you did specify only linux

anywho, you have a great list here, and from what i see of most comments, you did forget GREP :P … oops, must of had a momentary brain fart.

i would also add svn or git or csv to that list, and possibly trac

mygif
Pingback & Trackback
September 27th, 2008 @1:08 am  
mygif

Random Post

Leave Your Comments Below

Please Note: All comments will be hand modified by our authors so any unsuitable comments will be removed and you comments will be appreared after approved