Seuraavassa esitellään kaikki POSIX.2:n edellyttämät komennot paitsi erityisiä sisäisiä komentoja (4.7.3). Osa on esitelty jo aikaisemmin ja osa esitellään perusteellisemmin myöhemmin ja sivuutetaan nyt maininnalla, mutta täydellisyyden vuoksi ne kuitenkin luetellaan tässä. Vain ohjelmankehitysympäristössä vaadittavia komentoja ar, make ja strip ei esitellä tässä.
Awk on täydellinen ohjelmointikieli ja ansaitsee oman lukunsa (ks. ).
basename string [suffix]
tulkitsee argumenttinsa tiedostonimeksi, jossa voi olla polku ja/tai pisteellä erotettu tarkennin, ja palauttaa sen ilman polkua, ja ilman tarkenninta jos tarkennin on annettu argumenttina ja se vastaa nimen lopussa olevaa. Jos tarkenninargumentti ei vastaa nimeä, sillä ei ole vaikutusta (ei myöskään virheilmoitusta).
Jos argumentin lopussa on /, se poistetaan ensin ja palautetaan sen vasemmalla puolella oleva osa. Tulokseen voi jäädä / vain jos argumentissa on vain niitä.
bc [-l]
Yleinen laskinohjelma. Ymmärtää suurin piirtein samoja liukulukulausekkeita kuin C (ei kaikkia kirjastofunktioita), mutta laskee mielivaltaisella tarkkuudella. Tuntee myös muuttujat, ohjausrakenteet for, while ja if, funktiomäärittelyt (omalla syntaksillaan) jne.
Optio -l asettaa näyttötarkkuudeksi alussa 20 numeroa (ilman sitä oletus on 0; asetettavissa muuten muuttujalla scale) ja määrittelee joitakin matemaattisia funktioita.
(Historiallisesti aikaisempi laskinohjelma dc, jolla bc usein on toteutettu, ei ole POSIX-standardissa.)
cat [-u] [file(s)]
Tulostaa argumenttina annetut tiedostot peräjälkeen (tai tiedostoargumenttien puutteessa stdinin) stdout'iin. Optiolla -u tulostus tapahtuu merkki kerrallaan ilman blokkausta (tarpeen lähinnä luettaessa laitetiedostoa).
Epästandardeja mutta yleisiä optioita ovat
Siirrettävissä skripteissä ei näitä optioita voi käyttää (samat asiat voi tehdä mm. sedillä), interaktiivisesti etenkin cat -et on usein kätevä.
Vaihtaa työhakemiston annetuksi tai ilman argumenttia kotihakemistoksi ($HOME).
Jos annettu hakemisto ei ala /:lla, sitä etsitään muuttujan CDPATH sisältämistä hakemistoista (kaksoispisteellä eroteltu lista) tai jos se puuttuu, oletushakemistosta.
Ksh asettaa lisäksi $PWD:hen valitun hakemiston ja $OLDPWD:hen edellisen hakemiston, vaihtaa takaisin edelliseen jos argumenttina on pelkkä -, ja vaihtaa osan nykyisestä oletushakemistosta syntaksilla cd old new.
chgrp [-R] group file(s)
Vaihtaa tiedostojen ryhmän, optiolla -R rekursiivisesti hakemistopuulle.
Yleensä sallittu vain superkäyttäjälle tai erikseen määritellyille käyttäjäryhmille.
chmod [-R] mode file(2)
Muuttaa tiedostojen suojausbittejä. Mode voi olla joko oktaaliluku tai symbolinen esitys muotoa
[augo][+-=][rwxXsugo][,...]
eli lista määrityksiä joissa ensimmäinen kirjainyhdistelmä kertoo kenen oikeuksia muutetaan, a=all, u=user, g=group, o=others (oletus umaskin mukainen), toinen miten ('=' asettaa, '+' lisää, '-' poistaa) ja kolmas mitä oikeutta muutetaan, r=read, w=write, x=execute/search, s=setuid/setgid, X=execute-if-relevant (sama kuin x jos kyseessä on hakemisto tai tiedosto jolla on jo ainakin yksi x-bitti päällä).
Oikeutena u, g ja o tarkoittavat vastaavaa oikeutta ko. joukolla (esim. chmod g=u asettaa ryhmälle samat oikeudet kuin käyttäjällä).
Huom. jos mode-argumentti alkaa -:lla, sen eteen tarvitaan -- ettei sitä tulkittaisi optioksi. (Käytännössä lähes kaikki toteutukset toimivat kyllä ilmankin.)
Oktaalimuotoinen mode asettaa kaikki oikeudet kerralla, oktaaliluvun bitit vastaavat seuraavia oikeuksia: 01: u=x, 02: u=w, 04: u=r, 010: g=x, 020: g=w, 04: g=r, 0100: o=x, 0200: o=w, 0400: o=r, 02000: g=s, 04000: u=s.
Huom. 01000 on standardissa jätetty auki, mutta yleisesti se on ns. sticky bit, ja sen voi asettaa symbolisessakin muodossa kirjaimena t.
Optio -R tekee muutoksen rekursiivisesti hakemistopuulle.
Joissakin järjestelmissä on lisäksi optio -A, joka säilyttää mahdolliset ACL:t (access control list), oletuksena ne poistetaan.
Jos tiedosto johon viitataan on symbolinen linkki, muutokset tehdään sen osoittamalle tiedostolle, ei linkille.
chown [-R] owner[:group] file(s)
Vaihtaa tiedostojen omistajaa (ja mahdollisesti ryhmää), optiolla -R rekursiivisesti koko hakemistopuulle.
Yleensä sallittu vain superkäyttäjälle tai erikseen määritellyille käyttäjäryhmille.
Laskee tiedostoargumenteilleen tarkistussumman (ISO 8802-3:n määrittelemä CRC).
Historiallisesti samaan tarkoitukseen käytetty sum jätettiin pois standardista eikä sitä ole syytä käyttää mihinkään.
Vertaa kahta tiedostoa ja jos ne eroavat, tulostaa ensimmäisen eron paikan.
Optiolla -l tulostaa kaikki erot, optiolla -s ei mitään.
Exit status on nolla jos tiedostot ovat identtisiä, muutoin yksi.
comm [-123] file1 file2
Valikoi yhteisiä rivejä kahdesta tiedostosta, joiden oletetaan olevan lajiteltuna, ensin vain tiedostossa file1 olevat rivit, sitten vain tiedostossa file2 olevat ja lopuksi yhteiset. Optiolla -1 jätetään vain ensimmäisessä olevat pois, -2:lla vain toisessa olevat ja -3:lla yhteiset.
Stdiniä käytetään argumenttina vain jos tiedostonimeksi annetaan -.
command [-p] command_name...
Suorittaa nimetyn komennon, ohittaen mahdollisen samannimisen funktion. Optiolla -p ohittaa myös PATHin ja etsii komentoa PATHin sen oletusarvon mukaisesti.
cp [-R|-r] [-fip] tiedosto(t) kohde
kopioi tiedostoja, optiolla -r tai -R myös hakemistopuita rekursiivisesti. Optio -R kopioi myös nimettyjä putkia yms erikoistiedostoja; -r:n käytös niiden kanssa on määrittelemätön, joten kannattanee aina käyttää -R:ää.
Jos kopioitavia tiedostoja on useita, kohteen pitää olla hakemisto, joka on valmiiksi olemassa.
Hakemistoa kopioitaessa luodaan aina uusi samanniminen hakemisto (vaikka kohde olisikin valmiiksi sellainen).
Jos kopioitava tiedosto on sama kuin kohde tai . tai .., sille ei tehdä mitään.
Uuden tiedoston suojausbitit ovat samat kuin alkuperäisen XOR umask.
Jos kohdetiedosto on jo olemassa, uusi kirjoitetaan oletuksena sen päälle, paitsi jos optio -i on annettu, jolloin asiaa kysytään käyttäjältä (viesti stderriin, vastaus stdinistä). Jos se on suojattu tapahtuu virhe, paitsi optiolla -f se yritetään ensin hävittää (unlink()-kutsulla - ei onnistu hakemistolle).
Jos -p-optio on annettu, tiedoston aikaleimat (mtime ja atime muttei ctime), suojausbitit, omistaja ja ryhmä säilytetään (viimeiset kaksi toimivat vain superkäyttäjälle tai yleensä niille joille myös chown, ja jos omistaja tai ryhmä muuttuu myös suid- ja setgid-bitit nollataan).
cut [-b] list [-n] [file(s)]
cut [-c] list [file(s)]
cut [-f] list [-d delim] [-s] [file(s)]
valikoi tiedostoista tai stdinistä kenttiä kolmella eri tavalla:
Kaikissa valintalista on pilkuilla ja tavuviivoilla eroteltu kokonaislukulista: n-m tarkoittaa positioita n:stä m:ään, n- n:stä eteenpäin ja -m on sama kuin 1-m. Tällaisia elementtejä voi olla mielivaltainen määrä, ne voivat mennä päällekkäin ja olla missä järjestyksessä tahansa. Valittuja kenttiä ei kuitenkaan tulosteta moneen kertaan tai eri järjestyksessä.
date [-u] [+format]
Tulostaa päiväyksen ja kellonajan halutussa formaatissa. Optiolla -u käyttää aikavyöhykkeenä UTC0:aa (GMT) riippumatta ympäristömuuttujan TZ arvosta.
Jos muotoiluformaatti on annettu, siitä korvataan prosenttialkuiset merkkiparit seuraavan listan mukaisesti.
1 Riippuu kielestä (locale)
2 E prosentin ja formaattikirjaimen välissä
valitsee mahdollisen vaihtoehtoisen vuosiluvun
3 O prosentin ja formaattikirjaimen välissä
valitsee mahdolliset vaihtoehtoiset numerosymbolit
4 Vanhentunut, pitäisi välttää
Esim. Saudi-Arabiassa +%OH voisi tuottaa kellonajan sikäläisillä numerosymboleilla (jotka eroavat meikäläisistä ns. arabialaisista numeroista!), kun taas +%H:n pitäisi aina käyttää länsimaisia numeroita. Sen sijaan tarkennin E on tarkoitettu vain kalentereille jotka poikkeavat gregoriaanisesta vain alkamisvuoden mukaan, kuten Thaimaassa ja Japanissa, ja laajennus kalenterihin joissa vuosi vaihtuukin eri aikaan on jätetty auki (``implementation-specific extension''). Muutkin päivämääräkentät on yleensä määritelty vain gregoriaanista kalenteria silmällä pitäen, vain %x ja %c on tarkoitettu yleisemmiksi.
Tarkentimet E ja O eivät aiheuta virhettä vaan jätetään huomiotta jos ko. vaihtoehtoista esitystä ei ole.
Moderneissa järjestelmissä näkee lisäksi mm. seuraavia:
Huom. %U ja %W laskevat viikkonumeron väärin (suomalaisittain ja ISO-standardin mukaan)! Jos järjestelmä ei tunne %V:tä, sitä ei saa oikein mitenkään (muuten kuin erikseen laskemalla).
Joskus näkee myös %F:n, joka on sama kuin %B (paitsi ettei se ehkä välitä kieliasetuksesta).
Joissakin järjestelmissä voi lisäksi prosenttimerkin ja seuraavan kirjaimen väliin lisätä kentän pituus- ja tarkkuusmäärittelyn kuten printfissä.
Esim. Halutaan viikon- ja kuukaudenpäivä, kuukausi ja vuosi eri muuttujiin:
eval `date '+MONTH=%b DOW=%a DAY=%d YEAR=%Y'`
POSIX.2 ei tunne date-komennon toista yleistä käyttötapaa, joka kuitenkin toimii lähes kaikissa koneissa:
date [-u] mmddhhmm[[cc]yy]
Tällä asetetaan systeemikello. Yleensä sallittu vain superkäyttäjälle. (Huom. formaatti vaihtelee eri koneissa, tarkista ensin!)
dd on historiallisista syistä syntaksiltaan sangen erikoinen. Se tuntee seuraavanlaiset argumentit:
diff [-c|-e|-C n] [-br] file1 file2
vertaa kahta tiedostoa ja tulostaa listan muutoksista joita ensimmäiselle olisi tehtävä että siitä saisi toisen. Jos tiedostot ovat identtisiä ei tulosta mitään.
Optiot:
Exit status on 0 jos eroja ei löytynyt, 1 jos löytyi, suurempi jos tapahtui virhe.
dirname string
Palauttaa tiedostonimen hakemisto-osan. Mahdollinen lopussa oleva / poistetaan ensin, sen jälkeen lopusta viimeiseen jäljelläolevaan kauttaviivaan saakka. Jos argumentissa ei ole yhtään kauttaviivaa, palauttaa pisteen, ja jos kauttaviivoja on vain alussa peräkkäin tai jos siinä on pelkkiä kauttaviivoja palauttaa /:n. (Historiallisista syistä dirname // saattaa palauttaa myös //:n.)
Ks. .
Rivipohjainen editori, jota ei tässä esitellä sen tarkemmin (mutta vrt. sed).
env [-i] [muuttuja=arvo...] [komento...]
alustaa ympäristömuuttujat annetuilla arvoilla komennon suorituksen ajaksi. Ilman -i optiota se on olennaisesti sama kuin
[muuttuja=arvo...] [komento...]
(vrt. 4.4.8), paitsi että env on ulkoinen komento (toimii esim. findin kanssa).
Jos -i on annettu, ympäristö tyhjennetään ensin, jolloin suoritettava komento saa tasan envin asettamat ympäristömuuttujat.
Exit status on 0 jos komento onnistui, 1-125 jos env epäonnistui, 126 jos komento löytyi mutta sitä ei voitu suorittaa, ja 127 jos sitä ei löutynyt.
Ks. , merkkijonovertailun osalta vrt. grep ().
Palauttaa nollasta eroavan statuksen.
find polku [optiot...]
etsii tiedostoja hakemistopuusta rekursiivisesti.
Hakua voi ohjata seuraavilla optioilla.
Näitä voi yhdistellä seuraavilla:
Jos mitään optioista -print, -exec tai -ok ei ole annettu, optiolauseke tulkitaan kuin ( lauseke ) -print.
Huomaa että sulut ja puolipiste ovat shellin erikoismerkkejä ja on suojattava.
Yleisiä epästandardeja optioita on mm.
Joissakin uusissa toteutuksissa voi myös käyttää -execin loppumerkkinä puolipisteen vaihtoehtona plus-merkkiä, sillä toimintaerolla että tiedostoja kootaan useita jokaiselle komennon kutsulle (vrt. xargs).
fold [-bs] [-w width] [file(s)]
jakaa syöttötiedostojen tai stdinin rivit enintään annetun mittaisiksi. Leveys annetaan optiolla -w merkkeinä (oletus 80) tai tavuina jos -b-optio on annettu. Jos optio -s on annettu, yrittää katkaista rivin tyhjän kohdalta.
Seuraava: 5.26-5.43 Standardikomennot G-M
Edellinen: 4.11-4.12 Shellin optiot, trap