Marc's Place


 

UNIX Algemeen


Buy me a coffee
Hidden files beginnen met een '.'

De 'login.com' heet .profile

Meerdere opdrachten op één regel mogelijk. Scheiden middels een ';':

  pwd; ls -a; man ps

De naam van een bestand kan maximaal 14 tekens lang zijn, edoch bestanden hebben
eigenlijk geen naam. In de directory wordt een naam opgeslagen met een pointer 
naar de data van het bestand. Dat betekent dat er meerdere pointers naar hetzelfde 
bestand mogelijk zijn (zie de opdracht ln).

Wildcards zijn: ?, * en [], waarbij binnen [] een reeks naar
maximaal één teken wordt gezocht:

  a[57]        = a5,a7
  a[5-7]       = a5,a6,a7
  a[5-70]      = a5,a6,a7 en a0
  a[12].[57]   = a1.5,a1.7,a2.5,a2.7

Protectie is opgebouwd uit 3x een serie van 3 bits die tesamen een octaal getal vormen.
De waarden die UMASK toont of die met UMASK gezet kunnen worden, zijn altijd waarden 
die aangeven wat er niet aangezet moet worden!

    rwx = 111 = 4+2+1 = 7.

    rwxrwxrwx = 777
    rwxr-xr-- = 754

    Om van 777 naar 754 te gaan, doe je het volgende:

    777 - 754 = 23, dus umask 023

Foutmeldingen lopen via de errdemon en komen terecht in /usr/adm/errfile.
Ze zijn te zien met errpt. Demon stoppen met errstop.

Shell scripts worden altijd in een subshell uitgevoerd (let op de EXPORT van 
environment variabelen). Indien een script niet de protectie x erbij heeft, 
kan je'm door de opdracht 'sh <script>' uit laten voeren. x kan je 
toevoegen dmv 'chmod a+x <script>'. Om een script met x protectie in 
de huidige shell uit te voeren gebruik je de '.':

 . <script>

Message of the day ligt opgeslagen in /etc/motd

Nieuws

  news -a(ll) -n(ames) -s(=ongelezen)
  $HOME/.news_time
  /usr/news

De volgende batchfiles worden bij het opstarten van het systeem door de eerste
shell uitgevoerd en zijn aan te passen:

  bcheckrc
  brc
  rc

Redefining input stream, zodat invoer vanuit de batchfile wordt geaccepteerd
(zoals 'define TT sys$input' onder Dec/VMS):

  ed testfile <<NB
  > 1,25s/aap/noot/
  > w
  > q
  > NB
  
  cat testfile

 


 

UNIX opdrachten

chmod          - Verander bestands- en directory-attributen
   gou-w       - Verwijder SCHRIJF permissie bij Group/Others/User
   u+rw        - Voeg LEES & SCHRIJF permissie toe aan de User
   u=rw        - Zet LEES & SCHRIJF permissie bij de User

   PERMISSION	    COMMAND
    U   G   W
   rwx rwx rwx    chmod 777 filename
   rwx rwx r-x    chmod 775 filename
   rwx r-x r-x    chmod 755 filename
   rw- rw- r--    chmod 664 filename
   rw- r-- r--    chmod 644 filename

   U = User
   G = Group
   W = World

   r = Readable
   w = writable
   x = executable
   - = no permission

echo           - Stuur tekst naar STDOUT. Environment ariabelen vooraf
                 laten gaan door een $-teken: echo $PATH. Opdrachten
                 tussen backticks plaatsen: echo Huidige directory is `pwd`

who            - Toont de aangemelde gebruikers.
who am i       - Toont je eigen proces.

tty            - Toont scherminstellingen.
stty           - Zet scherminstellingen:
  intr         - Interrupt toetsaanslag
  erase        - Wis karakter toets
  kill         - Mogelijkheid tot het ontvangen van signals
  eof          - End Of File karakter: stty eof '^Z' (eof wordt CTRL/Z)
  -a           - Toont ALLE scherminstellingen

$ <opdracht> & - Smijt process naar de achtergrond.
                 Let op: als je afmeldt, wordt het achtergrondproces
                         ook gestopt.

ps             - Toont processen
  -e           - + entries
  -f           - FULL
    . Process ID
    . Parent Process ID
    . Owner Process
    . Terminal
    . Status
    . Elapsed time
    . Commandline command

kill <signal> PID
  -9 0         - Stop alles van jezelf

ls             - List, zelfde als DIR op VMS/DOS.
  -s(ize)
  -a(ll)       - ook hidden files
  -d(irectory)
  -l(ong)      - = uitgebreid
  -R(ecursive) - subdirectories ook
  -F(iletype)  - '/' = subdirectory
                 '*' = programma/opdracht

file <file>    - Gokt naar het type bestand.

tail <regels> <file>

               - laat laatste aantal <regels> van <file> zien.
  -f(ollow)    - laat constant de laatste x regels zien.

lp             - printen
  -w(arnig when ready)
  -n(number of copies)x
  -d(evice)zzz
  -c(opy)      - Plaatst ipv het origineel een copie in de queue.

lpstat         - Toont status van de printer
  -t(otal)     - = Alles tonen

ln             - Link. Creert extra verwijzing naar een bestand.

grep           - Zoekt patronen in bestanden.
  -n(umber)    - Laat regelnummer erbij zien
  -i(gnore case)
  -c(alculate) - laat totaal aantal gevonden regels zien
  -v           - Selecteer regels waarin het patroon niet voorkomt!

make <file>    - waarbij <file> er van binnen als volgt uit moet
                 zien:

                 <doel> : <afhankelijkheid>

                          <uit te voeren opdracht>

sed            - Stream Editor tbv gebruik in pipelines.
                 sed <edtcmd> <file>
  -f <cdmfile>
  -n           - geen listing op scherm

sort           - Sorteert een bestand. Sort werkt met < en >.
  -b(lanks)    - Negeer voorloopspaties
  -f(old)      - Negeer hoofd/kleine letters
  -i(gnore)    - Negeer control-characters
  -d           - Alleen letters,cijfers en spaties
  -n(umerical) - Sorteert numeriek
  -o(utputfile) <filename>

rsh            - Restricted shell
                 De volgende zakenkan de gebruiker niet doen:
                   cd,
                   $PATH veranderen,
                   '/', '>' en '>>' gebruiken.

tail           - Bekijk de laatste regels bvan een bestand.
   -10         - Laatste tien regels

telinit        - Activeert init en laat init de meegegeven
                 opdracht uitvoeren.
  0-6          - nieuw runlevel
  s/S(ingle usermode)
  q/Q          - re-read inittab

tr             - String bewerkingen
  -d(elete)    - verwijdert alle voorkomende tekens uit str1
  -c(omplement)- verandert alle niet in str1 voorkomende tekens.
  -s(queeze)   - verandert repeterende tekens in één teken.
               > tr [optie] str1 str2
               
dd             - Speciaal voor vreemde tapes/disks
  if (input file)
  of (output file)
  ibs (in: blocksize)
  obs (out: blocksize)
  skip=n (n=aan het begin over ts slaan aantal blokken)
  conv=ascii (ebcdic > ascii)
       ebcdic (ascii > ebcdic)
       lcase (> lowercase)
       ucase (> uppercase)

cx             - chmod +x

write          - schrijf direct op het beldscherm van een user.
w(rite)all

shutdown <seconds>

 


 

VI Editor

   vi <file>
   ZZ          - Exit/Save
   :q!         - Exit/no Save
   :!<cmd>     - Opdracht uitvoeren
   <ESC>       - Uit EDIT-modus naar command-modus

   h           - Cursor links
   j           - Cursor naar onder
   k           - Cursor naar boven
   l           - Cursor rechts

   H           - Cursor naar eerste regel van het scherm
   M           - Cursor naar middelste regel van het scherm
   L           - Cursor naar laatste regel van het scherm

   -           - Vorige regel
   G           - Laatste regel van het bestand, 
                 maar ook: 10G - ga naar regel 10.

   w/W         - Spring 1 woord naar rechts
   b/B         - Spring 1 woord naar links
   e/E         - Spring naar het eind van het woord

   )           - Spring naar begin volgende zin
   (           - Spring naar begin huidige zin
   }           - Spring naar begin volgende paragraaf
   {           - Spring naar begin huidige paragraaf

   a           - Start editing, Append modus
   i           - Start editing, Insert modus
   o           - Start editing, op nieuwe regel er onder
   O           - Start editing, op nieuwe regel er boven
   r           - Start editing, vervang één teken
   s           - Start editing, vervang één teken, insert modus
   C           - Start editing, vervang modus hele regel
   cw          - Start editing, vervang een woord

   /           - Start zoeken
      ^        - Zoek aan het begin van een regel: ^Einde - zoek EINDE
      $        - Zoek aan het einde van een regel: Einde$ - zoek EINDE
      .        - Wildcard, één teken
      *        - Wildcard, tekenreeks
   n           - Zoek volgende
   N           - Zoek volgende de andere kant op

   u           - Undo
   U           - Reset regel naar oorspronkelijke waarde

   x           - Wis teken op de cursor
   X           - Wis teken vóór de cursor
   dw          - Wis een woord
   dd          - Wis huidige regel
   D           - Wis de rest van regel

   yy          - Copieer huidige regel naar clipboard

   p           - Clipboard tekst achter de cursor plakken
   P           - Clipboard tekst vóór de cursor plakken

   CTRL/D      - Scroll tekst een 1/2 scherm UP     (scherm 'zakt')
   CTRL/U      - Scroll tekst een 1/2 scherm DOWN   (scherm 'stijgt')
   CTRL/F      - Een heel scherm tekst UP
   CTRL/B      - Een heel scherm tekst DOWN

Alle verplaatsingsopdrachten kunnen meerdere keren achterelkaar worden
uitgevoerd door het aantal keer vooraf op te geven:

   10w - Spring 10 woorden naar rechts
   10l - Cursor 10 posities naar rechts
   3dw - Verwijder 3x een woord

Alle verwijderde en/of gecopieerde tekst wordt in een buffer
geplaatst (clipboard).


 


 

UNIX Password en Group

/etc/passwd

Lay-out:

- username
- wachtwoord[,geldigheidsduur]
- user-ID
- group-ID
- commentaar
- login directory (bevat .profile)
- uit te voeren programma

[,geldigheidsduur] is als volgt opgebouwd:

   WwLLWW  - W    = maximum aantal weken geldig
             w    = minimum aantal weken geldig
             LLWW = weeknummer laatste keer gewijzigd.

   Het aantal wordt weergegeven in een 64-tallig stelsel, waarbij
   de '.'=0, '/'=1, '0'=2,....,'z'=63

   Als W<w mag de gebruiker zijn wachtwoord niet wijzigen.

Bijbehorende opdrachten:

/bin/passwd
/bin/chgown
/bin/pwck

/etc/group

Lay-out:

- groepsnaam
- wachtwoord (bijna altijd leeg)
- group-ID
- username[,username...]

Bijbehorende opdrachten:

/bin/newgrp
/bin/chgrp
/bin/grpck

 


 

UNIX-shell help


Variabelen

  $?      = exit code laatste opdracht
  $$      = PID huidige shell
  $!      = PID laatste background proces
  $0 - $9 = positionele parameters, waarbij $0 de opdracht zelf is.
  $#      = aantal meegegeven parameters
  $*      = concat van $1 - $9.

Opdrachten

  #            = commentaarregel
  shift        = Schuift waarden binnen parameters één parameter naar links.
  set          = Geeft een waarde aan een parameter en maakt de overige leeg: 
                 set jan piet ==> $1 = jan, $2 = piet, de rest = leeg.
  `<opdracht>` = Voert opdracht uit en plaatst returnvalue: workdir=`pwd`

  <tekens>()  <opdracht>
               = Creert een alias voor <opdracht>: logout() exit ==> logout doet nu exit.
  export       = Maakt variabelen buiten de batchfile waarneembaar: TERM=vt100; export TERM
  setenv       = Idem als EXPORT, doch een andere shell: setenv TERM vt100

Statements

<condition> kan een returnvalue van een UNIX opdracht zijn, of van test (zie onder) of een expressie.

• if

  if <condition>
  then
   ...
   ...
  elif <condition>

  then
   ...
   ...
  else
   ...
   ...
  fi

• for

  for <variabele> [in <list of values] (default: in $*)
  do
   ...
   [break] springt uit de loop
   [continue] voert gelijk de volgende iteratie uit.
   ...
  done

• while

  while <condition>
  do
   ...
   [break] springt uit de loop
   [continue] voert gelijk de volgende iteratie uit.
   ...
  done

• case

  case <variabele> in
    <value>)
       ...
       ...
       ;;
    <value>)
       ...
       ...
       ;;
  esac

  Voorbeelden voor <value>:
    aap|noot) = aap of noot
    [a-z]*)   = begint met a-z
    *)        = alles (in C: default:)

  Voorbeeld:

    echo Doorgaan J/N
    read antw
    case antw in
      j|J|y|Y) ..... ;;
    esac


• test

- bestanden onderzoeken:

  test -rwxfds <file>

    rwx = test autorisatie
    f   = bestaat het bestand
    d   = is het een directory
    s   = staat er iets in het bestand

- strings onderzoeken:

  test -z <str>  = true als <str> leeg is.
       -n        = true als <str> niet leeg is.

- argumenten onderzoeken (strings)

  test <str1> = <str2>

              !=

- argumenten onderzoeken (getallen)

  test <getal1> -eq <getal2>
                -ne, -le, -ge, -lt, -gt

- conditions

  test x -a y   = x AND y
         -o     = x OR y

  test kan vervangen worden door [ en ] met spaties er tussen:

  [ <getal1> -eq <getal2> ]
  [ -z <str> ]


• expr
(overal spaties tussen plaatsen)

  +, -, \*, /, %(=rest vd deling)
  =, !=, \>, \<, \>=, \<=

 


 

Crontab, At en Batch

cron

Kijkt of er processen gestart dienen te worden:

- Eenmalig uitvoeren van een opdracht in de achtergrond op een bepaald tijdstip.
  (via <at> opgegeven)

- Eenmalig uitvoeren van een opdracht in de achtergrond.
  (via <batch> opgegeven)

- Met bepaalde regelmaat werkzaamheden uitvoeren.
  (via <crontab> opgegeven)

Directories:

/usr/spool/cron
/usr/lib/cron
/usr/lib/cron/log

Files:

/usr/lib/cron/at.allow      (bevatten usernames)
              at.deny
              cron.allow
              cron.deny

Als er een at/cron.allow aanwezig is, wordt niet naar een at/cron.deny 
gezocht (en andersom). Indien geen van beide aanwezig is, wordt alleen root 

toegestaan.

Voorbeeld opdrachten:

crontab <tabel>      - maakt <tabel> actief

-l(ist outstanding jobs)
-r(etreat job)

  lay-out van een tabel:

  min     uur     dagnr   maand   weekdag        opdracht
  (0-59)  (0-23)  (1-31)  (1-12)  (0(zondag)-6)

   1     2     3     4     5     6
-----------------------------------------------------------------
   0    17     *     *     5     Iedere vrijdag, 17:00
  30    23     *     *     *     Dagelijks om 23:30
  15     5     1     *     5     1e van iedere maand om 05:15
   0    22     1   6,12    *     1 jan & 1 dec om 22:00

at

Jobs eindigen op .a

-l(ist outstanding jobs)
-r(etreat job)

at <tijdstip>
  <opdracht>
  <opdracht>
  ...
  ...
<eof>

batch

(= at now)

jobs eindigen op .b


© 1997- Marc Vos (and others)   -   Privacy Statement   -    Contact Me

On this website, Google Analytics is used to track visitor statistics. These are anonymised data about the number of visitors, which pages they visit on this site, from which regions they visit, which web browsers they use, etc.. You will also see non-personalised ads via Google AdSense. Cookies from Paddle or Paypal are placed when you click on a 'Buy now!' or 'Donate!' button, and possible cookies from Disqus when you use that system to comment on one or more blogposts.
Privacy Statement