- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Hromadně přidat materiály
tahák pro pokročilé
UOS - Úvod do operačních systémů
Hodnocení materiálu:
Vyučující: Ing. Jan Trdlička Ph.D.
Zjednodušená ukázka:
Stáhnout celý tento materiálsech (aktuálního shellu)
ps [-U login]
Volby:
-U zobrazí procesy uživatele dle zadaného loginu (username)
code:
# ps
# ps –U root
prstat
(PRocess STATistics) zobrazí seznam aktuálně běžících procesů (v rámci PC)
prstat [-Z]
Volby:
-Z zobrazí i shrnutí
code:
# prstat
# prstat -Z
Poznámka:
Příkaz má mnohem více voleb, viz. man prstat
ptree
(Process TREE) Zobrazí strom procesu se zadaným id
Př.: Zobrazit strom aktuálního procesu:
# ptree $$
last
(LAST action) zobrazí seznam posledních akcí všech uživatelů
last
code:
# last | head
# last | less
Tahák na UOS 2008/2009 – Přehled (zkrácená verze)
sestavil Tomáš „Inza“ Jukin – http://www.dvojmo.cz
10
PŘÍKAZY – PROGRAMOVÉ STRUKTURY
proměnné, pole, if, case, while, for, test, expr, let, shift, read, pomůcky pro ladění
Proměnné:
Volby:
$# Počet argumentu skriptu
$0 Jméno skriptu
$1, $2, … Argumenty skriptu
$* = $1 $2 $3 ...
$@ = $1 $2 $3 ...
"$*" = "$1 $2 $3 ..."
"$@" = "$1" "$2" "$3" ...
$JMENO hodnota proměnné
${JMENO} hodnota proměnné
${JMENO:-text} je-li JMENO prázdné, pak vrátí text, jinak $JMENO
${JMENO:=text} je-li JMENO prázdné, pak JMENO=text a vrátí $JMENO
${JMENO:?text} je-li JMENO prázdné, pak vypíše text a konci (exit)
zrušení proměnné:
unset JMENO
vytvoření konstanty:
JMENO=HODNOTA
readonly JMENO
Pole:
Přiřazeni:
# JMENO[index]=HODNOTA
Čtení:
# ${JMENO[index]}
Čtení všech položek:
${JMENO[*]}
Počet položek v poli:
${#JMENO[*]}
Příkaz if:
Jednoduchá podmínka
code:
#!/bin/sh
if [ $# -ne 1 ] ; then
echo "volaní: $0 číslo_navratoveho_kodu"
exit 2
fi
exit $1
Příkaz case:
Složená podmínka
code:
#!/sbin/sh
case "$1" in
'start')
[ -x /usr/lib/lpsched ] && /usr/lib/lpsched
;;
'stop')
[ -x /usr/lib/lpshut ] && /usr/lib/lpshut
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
Příkaz while:
Cyklus s neznámým počtem opakování
code:
#!/bin/sh
MAX=5
I=1
while [ "$I" -le 10 ]
do
echo "Hodnota I je $I"
I=`expr "$I" + 1`
done
Tahák na UOS 2008/2009 – Přehled (zkrácená verze)
sestavil Tomáš „Inza“ Jukin – http://www.dvojmo.cz
11
Příkaz for:
Cyklus s pevným počtem opakování
code:
#!/bin/sh
I=1
for E in Petr Jana Jiri Karel
do
echo "Element $I je $E."
I=`expr $I + 1`
done
test, [ ... ]
(TEST expression) testuje zadaný logický výraz
Volby:
AND: vyraz1 -a vyraz2
OR: vyraz1 -o vyraz2
NOT: ! vyraz1
\( přednostní vyhodnoceni \)
Operátory pro operace se SOUBORY:
[ -f soubor ] # soubor existuje a je obyčejným souborem?
[ -d soubor ] # soubor existuje a je adresářem?
[ -s soubor ] # soubor existuje a Není prázdný?
[ -e soubor ] # soubor existuje?
[ -L soubor ] # soubor existuje a je symbolickým linkem?
[ -r soubor ] # soubor existuje a má nastaveno právo r?
[ -w soubor ] # soubor existuje a má nastaveno právo w?
[ -x soubor ] # soubor existuje a má nastaveno právo x?
Přepínače operaci s RETEZCI:
[ r1 = r2 ] Významy řetězce r1 a r2 jsou stejné?
[ r1 != r2 ] řetězce r1 a r2 jsou různé?
[ r1 \< r2 ] Je řetězec r1 v abeced před řetězcem r2?
[ r1 \> r2 ] Je řetězec r1 v abeced za řetězcem r2?
[ -z r1 ] Je řetězec r1 prázdný?
[ -n r1 ] Není řetězec r1 prázdný?
Přepínače operaci s CISLY:
[ n1 -eq n2 ] číslo n1 je rovno číslu n2?
[ n1 -ne n2 ] číslo n1 Není rovno číslu n2?
[ n1 -lt n2 ] číslo n1 je menší než číslo n2?
[ n1 -gt n2 ] číslo n1 je větší než číslo n2?
[ n1 -le n2 ] číslo n1 je menší nebo rovno číslu n2?
[ n1 -ge n2 ] číslo n1 je větší nebo rovno číslu n2? expr
(EXPRession) počítá matematické výrazy
code:
# N=`expr $N1 + 3`
let nebo (( ))
(LET it be) počítá matematické výrazy user-friendly. Není nutno používat $ pro volání proměnných
Příklady:
((N = N1 + 3))
((N = N1 - N2))
((N = 10 * 21))
((N = N1 / N2))
((N = N1 % 5))
((N=2#1011)) #zaklad soustavy
((N= 2#1011 > 3)) #bitový posun doprava
shift
(SHIFT it) provede posun hodnot parametru
Vlastnosti:
posune hodnoty parametru vlevo: $i = ${i+n}
odebere Parametry z $* a $@
dekrementuje: $# = $# - n
read
(READ from input) Čte ze standardního vstupu
Použití:
# read P1 P2 P3
Tahák na UOS 2008/2009 – Přehled (zkrácená verze)
sestavil Tomáš „Inza“ Jukin – http://www.dvojmo.cz
12
Popis:
Přečte jednu řádku ze vstupu. Podle proměnné $IFS rozdělí načtenou řádku na jednotlivé hodnoty.
Uloží první hodnotu do proměnné P1, druhou položku do proměnné P2 a ostatní hodnoty do proměnné P3.
Pomůcky pro ladění:
jak efektivně ladit skripty?
code:
sh -v ./script # předem echuje Příkazy
sh -x ./script # předem echuje Příkazy, nahrazené spec. znaky
POZNÁMKA
Toto je pouze neúplný, kratší tahák pro ty, co se vyznají. Úplný tahák lze stáhnout z mého webu na
http://beta.dvojmo.cz/fel/y36uos/ …
Vloženo: 1.03.2010, vložil: Petr Matěj
Velikost: 997,62 kB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Copyright 2025 unium.cz


