Slashdot Mirror


Basic Required UNIX Skills?

xirlosan writes "I'd like to get a job working in a UNIX environment, be it programming or administrating UNIX machines. My question is this: What skills are absolutly 'must haves' and what other skills are attractive to employers when looking for a job in this field? I have my BS in Computer Science and have a fair amount of experience with Linux and Solaris, so I'm interested in what more I need. I looked for jobs at Monster, and there are so many skills the recommend it's hard to figure out what the most critical are. Any help would be certainly appreciated."

7 of 57 comments (clear)

  1. Have a look at... by .@. · · Score: 3, Informative

    You might want to check out the Unix module to the SAGE certification. The cert was put together by sysadmins, and the junior level test is a good overview of the skills you'd need.

    --
    .@.
  2. You need to know everything, not just the OS! by eggstasy · · Score: 5, Informative

    If you want to be a Linux / Unix system administrator, you first have to understand the vagueness of the term. An "administrator" is just someone who "administrates". You can either be behind a bleeding edge distributed system running on a huge server room crammed full of racked blades or you can get an easy job at a small company with 2 or 3 athlons that mostly take care of themselves. Any half-baked MCSE could do that.

    You can have all kinds of sysadmins, really, but being a good one requires a lot more knowledge than just the OS. Of course as a junior admin you'll prolly be handling monkey-work such as backing up stuff to tapes or even CDs and other tedious tasks the real admins dont want to do. You will deal with the lusers whose mail proggy is misconfigured or whose caps lock was left on so that now they can't get in their PC.

    But as you progress in your career, you better get yourself familiarized with all the little /etc files and such things as the SNMP protocol, MIBs, and of course the latest, most buzzword-compliant, administration-facilitating apps...

    You need to understand that you are a handyman. You will be expected to know and do a bit of everything, and to "think outside the box". Even as a Unix admin you will probably need to be skilled in the inner workings of Microsoft software. Most networks are hybrid: The lusers all have MS crapware and Unix will be confined to the servers.

    Solid knowledge of computer networks is a major plus. You need to know how to set up a network, both at the hardware and software level. Bridges, routers, switches, cabling, the works.

    You need to know how to configure routers. Cisco routers are very popular, and books on them are easy to find. Knowledge of routing protocols is a big plus.

    If you're lucky you might even get to play with "legacy" networks that are getting out of mainstream every second. So you better get some training on Novell stuff, and pray that's the worse you'll come across, since there is a whole lot of old stuff out there that should really be in a museum. I'm talking about early IBM hardware running long-forgotten software with manuals that have rotten away ten years ago.

    You probably learned about some of this stuff in college but it wouldnt hurt to take a second look.
    The stuff that you glanced over and thought you would never need to know, in particular. Such as token rings. Everyone has Ethernet right? Wrong.

    Of course you should really focus on what your future employers ask in their ads.
    Certifications are always nice to have. A lot of the stuff you need to know you will NOT learn in any college.

    Really, the subject sums it up. You have to know a bit of everything to be a good sysadmin. I guess the same could be said about a programmer or a doctor or any other person. Knowledge is power!

  3. just a few things by dalutong · · Score: 2, Informative

    ls
    man
    cat
    pipe "|"
    more, less, and most
    #!/bin/bash -- to test your ideas
    export
    echo
    vim
    lynx (to get to google to search for help)
    xchat-text (to pester people in search of help)

    and, of course, apt-get :)

    I'd say with those (and fewer if you know something about something) you can figure out how to do just about any job (and then do it)

    --

    What comes first, finding a teacher or becoming a student?
    1. Re:just a few things by MrResistor · · Score: 4, Informative

      That's a great list as long as you only plan to use Debian. Half of the things you list don't apply to the majority of the *nix world. Here is my short-list of apps you will always find:

      ls, cd, cp, mv, mkdir, rm - your basic file system commands. Learn them, love them, they are your lifeblood.

      cat - cat will always be there, usually you will have either more or pg, I wouldn't bet on less or most. If you know how to redirect and use vi you can get by without a paging viewer just fine.

      man - occasionally called something else (QNX calls it use). The ability to derive meaning from man files is extremely important.

      |, > - If you don't know |, you don't know *nix, and > is a close second.

      sh/csh - the vast majority of *nix default to some variant of sh, of which ksh is the most common. If you know sh you can use any of the variants (ksh, bash, etc) and learn the particulars as you go. There are rumors of *nices that default to csh, but I've never encountered one. Regardless, you should be familiar with it just in case.

      vi - emacs is available for every *nix, but vi is included with every *nix. vim is the most popular vi variant because it has lots of nifty features, but don't count on having it. You should be able to navigate vi using only the keys you would find on a standard typewriter.

      find - They say locate is easier, but I've never seen it on a non-Linux system.

      Everything else you list is non-standard or part of something else on my list (except echo, which I don't consider essential). Yeah, you can probably install most of it on any *nix system one way or another, but don't expect it to be there by default.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
  4. experience in Linux and Solaris? by Circuit+Breaker · · Score: 4, Informative

    You mention a fair amount of experience in Solaris, which is probably the most common "official" (in the trademark sense) Unix out there, and Linux, which is probably the most common "nonofficial" Unix out there. What kind of experience is it? If it's as a workstation user, through KDE, Gnome, CDE etc, then it might come in useful, but don't count it as fair.

    Generally, my experience is that shops hiring Unix people expect them to rival McGyver and connect e.g. the SHINY NEW network management system to the legacy systems THEMSELVES without shelling out money to integrators, using not much more than a few perl scripts and duct tape -- whereas those hiring Windows will more often than not, in my experience, expect their employees to oursource it to someone more qualified (mostly because the duct tape is a COM object with 5000 undocumented methods that no one really knows how to use; Yes, this is from experience).

    Make sure you've mastered all of the standard Unix tools (cron, awk, perl, vi, and friends), Unix-Windows integration stuff (Samba, sun's SMB server whose name eludes me at the moment, OpenLDAP, Cygwin), _basic_ database management (unless you plan to become a DBA, you don't want more than basic but you DO need basic), mail configuration, and _basic_ system administration (unless you are planning to be a sysadmin, in which case basic is not sufficient). Most importantly, the unix philosophy that that everything is a file (or equivalent to it), and that most everything gets done by copying or piping data from one place to the other, possibly transforming it in the process with (ideally) a one-line simple, modular, command.

  5. Since you're just starting out... by trims · · Score: 5, Informative
    I'm going to give you a short summary of the various computer-related professions for someone looking for entry-level work in the UNIX field:
    • Systems Administrator - this is probably what you're thinking of right now. This entails a huge variety of skills, from installing hardware and basic system OS, managing system configurations and upgrades, user management, system troubleshooting, etc. Basically, you're responsible for making sure that the computer systems (usually servers, but sometimes desktops) are up, available, and working properly, and that everyone can access the information on them as appropriate. A little bit of DBA and programmer skills thrown in is a good idea too.
    • Network Administrator is related to SysAdmins, and often shares similar workload and skills. However, the emphasis is on networks - design, troubleshooting, maintaining and configuring network devices (switches, routers, NAT/firewall devices, et al). Typically, both LAN and WAN knowledge is required, and a certificate (or equivalent experience/knowledge) in CCNP is a good idea.
    • Systems Programmer (including Embedded Programmer) these are folks who write systems-level code. That is, drivers, kernel modules, low-level libraries, and in the case of Embedded Programmers, work on devices which aren't quite what most peope think of as a computer (i.e. firewall devices, etc.) Typically, you'll need some very low-level understanding of how software interfaces with hardware, a good bit of hardware knowledge, and primarily C and assembly programming experience. A very good grasp of algorithms is also typically important, as the code produces generally needs to be as efficient and compact as possible.
    • Application Programmer write user-land programs (word processors, order processing/entry systems, inventory tracking systems, etc). This is what people generally think of when they say "programmer". Java and C++ are the dominant languages here. These days, a good understanding of SQL is a good idea too, since most custom apps talk to a DB.
    • Webmaster is more than the stupid morons that have been doing it for the last 3 years. It combines a bit of graphic artist with a modest programming ability (primarily in scripting languages) and a dash of SysAdmin thrown in. In general, a good webmaster has site management tools for deployment and tracking of the website, is concerned with performance and maintainability, and also has a hand in the design and coding of section of the site. Perl, Python, PHP, JavaScript, and Java (for JSP) are good languages to know.
    • Toolsmith is not terribly well known. However, most large organizations need someone like this, which is typically a junior programmer or junior sysadmin detailed to do the work. It involves building common tools for everyone else to use. Typically, this include downloading, compiling, deploying, and maintaining common OSS tools (e.g. keeping a working Perl setup for 6 CPU/OS architectures with all the needed modules). It often also includes work with all the other professions here to find out what they need to do their job, and create it. The person here typically has lots of scripting experience in 4 or 5 script languages, plus decent coding experience in 2 or so "real" lanuages (C, C++, Java, et al), and understands how to write small programs quickly. In essence, the Toolsmith is the person responsible for producing the company's Swiss Army Knife collection of programs.
    • QA / SCM is Quality Assurance (e.g. Testing) and Software Configuration Management. Being a Sr. QA person is a real good way to move into either Toolsmith or Application Programmer, since you gain a whole lot of knowledge about how things work (otherwise, how are you to test it correctly?), and get good at automating test stuff. SCM is often a gateway to SysAdmin, but is different, in that it really is concerned with change management, deployments, and usually builds. Both positions require a good smattering of script language knowledge, some programming experience (enough to read other people's code and tell if it's doing the Right Thing, but not necessarily able to write it from scratch), and a good head for organization.
    • DBA isn't really in this category, but I thought I'd mention it anyway. Most DBAs have a bit of SysAdmin experience on the platform that their DB runs on, but the rest of their knowledge is tied up in the very different field of SQL and Database software.

    I can't give you specifics, because they depend on the field you're looking to enter, and more importantly, the details of the job, which vary widely. I hope the general descriptions above help.

    Contact me directly if you want to talk more.

    -Erik
    Systems Architect

    --
    There are always four sides to every story: your side, their side, the truth, and what really happened.
  6. "Must have" ability to acquire new skills by ader · · Score: 2, Informative
    There are no "must-haves" outside of broad topics like scripting & TCP/IP, because the required skills vary from job to job depending on what a particular site is using. Hence the main soft skill you "must have" is adaptability - the key to which is the ability to locate, read and understand documentation (RTFM). The lack of this ability is the main failing I find in weaker admins.

    On a more practical level, learning how to configure and run the following applications, which you can do at home on a small Linux network, will give you a solid grounding in many Unix admin principles & relevant protocols even if you then take a job where some or all of them are irrelevant:
    • DNS
    • Firewalling (iptables) w/ NAT
    • NFS & autofs
    • Apache
    • Sendmail
    • MySQL or similar RDBMS
    • Optionally: NIS (popular in the Sun world, but LDAP may be more forward-looking); NTP; Samba; INN

    (Note: You will make many mistakes while setting these up. The methods and means by which you debug these errors will be the measure of you as a sysadmin. Research and use the tools you have well. Do not give in to the dark side, Luke... wait, wrong movie.)

    Good luck with your well-chosen career.

    Ade_
    /
    --
    Big Bubbles (no troubles) - what sucks, who sucks and you suck