Systemy operacyjne - lab. 11 ==================================================== 1- interpreter polecen - shell proc 1..n -> shell <-> user kernel -/ 2- zmienne srodowiskowe a=v echo $a a='v $b' b=v a="v $b" unset a remove var a set all env vars env all exported vars HOME katal domowy ~user USER user PATH sciezka poszukiwan programow /bin /usr/bin /usr/X11R6/bin PS1 e.g. "\h:\w>" PS2 TERM LANG=pl_PL.ISO8859-2 jezyk_panstwo.kodowanie znakow e.g. Latin2 see also man locale 3- eksportowanie local vs. exported (przekazane proc potomnym) sh echo $b exit export b export a=v 4- aliasy alias s="ls -l" unalias type vi pokaze czy vi jest: prog zewn, alias, polecenie wbudowane, funkcja? type echo 5- pliki konfig sh 1. /etc/profile, 2. ~/.profile bash 1. /etc/profile, 2. ~/.bash_profile start pierwszego (login) shell'a (often contains: source .bashrc) 3. ~/.bash_login logowanie 4. ~/.profile 5. ~/.bash_logout wylogowanie ~/.bashrc start shell'a csh see /etc/csh.*, ~/.login, ~/.logout, ~/.cshrc source .profile 6- zarzadzanie procesami rm -rf /tmp/*; cp a /tmp sekwencja && || cp a /tmp & find /usr -name "p*" rownolegle (cd /; ls -l) { cd /; ls -l; } jaka roznica? () grupowanie, nowy shell {} grupowanie, ten same shell 7- skrypty s.sh ssh -l inf.. sirius.cs.put.poznan.pl sh s.sh sh -x s.sh debug chmod +x s.sh PATH=$PATH:. #! /bin/bash # komentarz dirname /bin/bash /bin basename /bin/bash bash basename ~/f.txt .txt f NAME=`basename $FILE .gz` note `..` echo `expr 1 + 2` spacje konieczne echo $((1+2)) bash $1..$9 zmienne pozycyjne $# liczba args shift $i := $(i+1) test eval expr stat polecenia = 0 is true if test $1 = v then echo $? last stat else .. fi if [ $1 = v ] then echo $? last stat else .. fi testy lancuchow s = t s != t -z s string 0 znakow -n s string <>0 znakow testy liczb n -eq m n -ne m n -gt m n -lt m n -ge m n -le m testy plikow -e f file exists -f f zwykly file -d f katalog -L f sybolic link -r f user has read access -w f user has write access -x f user has execute access -s f files exists and size >0 inne testy war1 -a war2 and war1 -o war2 or ! war negacja war see man test