SEGÉDPROGRAMOK
E fejezetben a leggyakrabban használt UNIX segédprogramokkal (utility) ismerkedünk meg, a következőben pedig a UNIX shell azon finomságaival, amelyek lehetővé teszik az egyes programok zökkenőmentes együttműködését. A cél az, hogy rámutassunk a UNIX rendszerfilozófiájára, arra, hogy hogyan érdemes már meglévő, esetleg igen primitív programok (sőt, "programocskák") összeépítésével meghökkentően bonyolult és komplex feladatokat ellátó újabb programokat létrehozni anélkül, hogy akár egyetlen programsort is kelljen írni assembly-ben, vagy akár C nyelven. A hatékony programozást is segíti a UNIX az ilyen megoldások révén, hiszen ez végül is nem más, mint a mostanában igen divatos prototyping, azaz amikor a programozó először nagyvonalakban hozza csak létre az implementálandó programot, s amit csak lehet, azt minél magasabb szintű nyelven írja meg (például a shell programnyelvén). A kész program elkészülte után pedig még mindig ráér hatékonyságvizsgálatokat végezni, s a programrendszer szűk keresztmetszetének bizonyuló részeket valamilyen hatékonyabb nyelvre átírni.
Meg kell jegyeznünk, hogy a UNIX parancsok nagy száma miatt nem tudunk teljességre törekedni, illetve az ismertetett parancsok esetében is csak a legfontosabb opciókra szorítkozunk. (A minimálban az érintett parancsok részletesebb leírása is megtalálható.) Reményünk szerint azonban elég teljes a bemutatandó készlet ahhoz, hogy a feladatok jelentős részének elvégzését szolgálja, másrészt a példáink segítik majd azokat, akik új parancsokat keresnek ki dokumentációikból, és próbálgatják azokat.
Mielőtt a UNIX parancsokat részleteznénk, előrebocsátunk egy új fogalmat, az exit státus fogalmát, ami a parancsok végrehajtásának sikerességéről informál. Nagyon sok UNIX parancs, de nem mindegyik, állítja ezt az értéket, amit a shell-ben a ? változó $? alakú lekérdezésével tudhatunk meg. Ott ahol fontos, a parancsok ismertetésekor leírjuk az exit változó beállítását, ahol nem írjuk, ott általános szabály, hogy a sikeresen lefutott parancs 0-ra állítja, ellenkező esetben egy ettől eltérő értékre. Vannak parancsok, amik nem állítják ezt a változót, egyszerűen érintetlenül hagyják. Egyes szűrők esetében több információt is kapunk mint az egyszerű sikeres befejezés. A rendszer interaktív használatánál ugyan nem sok hasznát vesszük ennek, de a következő fejezetben megismerkedünk a shell-programozással, és akkor majd értékelni fogjuk ezt a rendszerszolgáltatást.