WWW zdroje o UNIXu

Unix – návody, příkazy

UNIX --- přednášky na FI

http://www.fi.muni.cz/usr/brandejs/unix/

UNIX --- materiály ke cvičení na VŠE

http://nms.vse.cz/unix/unix.html

Linux --- dokumentační projekt, kniha od CPressu

http://www.cpress.cz/knihy/linux

Neziskový server na podporu UNIXu

http://www.penguin.cz/

Root.cz – recenze, diskuse o různých distribucích

http://www.root.cz/

Proč používat Linux

http://proc.linux.cz/

Linux software

http://www.linuxsoft.cz/

Zpravodaj UVT - návody, příklady, co nového na UVT

http://www.ics.muni.cz/zpravodaj/

Wikipedie o UNIXu:

http://cs.wikipedia.org/wiki/UNIX

UNIX

Základní práce s terminálem --- přihlášení:

login:

uživatel zadá své uživatelské jméno, které mu bylo přiděleno

password:

uživatel zadá své heslo, které je povinen udržet v tajnosti. 6- 8 znaků, netriviální, obsahuje ne-alfanumerické znaky ($, @, #, &, !, ?,. ,...).

Odhlášení:

exit ↵

Uživatel je povinen řídit se Pravidly

Domovský adresář HOME... po přihlášení se nastaví jako pracovní adresář

Př.:

cp  /home/evaf/pravidla  /home/login ↵

… zkopírování pravidel do domovského adresáře

more  pravidla ↵

... prohlížení souboru po stránkách

V domovském adresáři jsou systémové soubory:

.profile ... spouští se při nalogování, nastavuje proměnné, shell, terminál, vykoná uživatelské aliasy,...

Jednoznačná identifikace uživatele v systému … uživatelské číslo UID (user ID).

Každý živatel je členem minimálně jedné skupiny ... GID (group ID).

UID a GID se vypíšou příkazem $ id

Uživatel chrání svá data i sebe pomocí přístupových práv (čtení/kopírování, zápis/modifikace, provedení)

Speciální uživatel – root – jediný uživatel, kterému se přístupová práva nekontrolují = systémový administrátor

Obecný tvar UNIXovského příkazu

jméno_příkazu  -volby  jméno souboru(event. souborů) ↵

Spojování příkazů:

příkaz1 && příkaz2 ↵

... příkaz2 se provede jen tehdy, když příkaz1 skončí úspěšně

příkaz1 || příkaz2 ↵

... příkaz2 se provede jen tehdy, když příkaz1 skončí neúspěšně

příkaz & ↵

... spuštění příkazu na pozadí

příkaz < vstupní soubor > výstupní soubor 2> výstupní soubor pro chybová hlášení ↵

… přesměrování vstupu, výstupu, chybových hlášení

příkaz 1 | příkaz2 ↵

... | = trubka = roura = zařízení, které posílá výstup z 1.příkazu na vstup 2.příkazu.

Zástupné znaky ve jménech souborů (maska, filtr):

* … zastupuje libovolný počet znaků, včetně prázdného (mezera)

? … zastupuje právě jeden znak

[] … shoduje se s kterýmkoliv (jedním) znakem v závorce

[]* … shoduje se s nula nebo více znaky,které jsou v závorce

Př.:

ls  example? ↵

… vypíše soubory example1, example2, exampleA, …

ls  ex* ↵

… vypíše soubory exot, example.doc, exitus, exAM,...

rm  example.[0-9] ↵

… smaže soubory example.0, example.1, example.2, …, example.9

ls  [aA]* ↵

… vypíše soubory A, a, animal, axes, Azurit,...

Vybrané příkazy UNIXu

passwd ↵

... změna uživatelského hesla

date ↵

... datum a čas

Př.:

date  +"%m" ↵

... formát výstupu [%n --- nový řádek, %y --- year, %d --- day, %h --- hour]

date  +"Dnes je: %nden: %d %nmesic: %m %nrok: %y" ↵

Př.:

date > datum1 ↵

... přesměrování výstupu příkazu date do souboru datum1

date >> datum1 ↵

... připojení výstupu příkazu date k již existujícímu souboru datum1

date > datum2 ↵

cat  datum? > data ↵

... spojení souborů datum1 a datum2 do souboru data

time

... měří délku procesu

Př.:

time  date ↵

... změří délku vykonávání příkazu date

echo

... "ozvěna" --- opakuje to, co se zadá jako argument, užitečné k výpisu proměnných.

Př.:

echo  HOME ↵

... počítač odpoví HOME

echo  $HOME ↵

... počítač odpoví tím, �že vypíše obsah proměnné HOME /home/login --- jméno domovského adresáře

Nápověda:

man příkaz

... manuál ke každému příkazu

Př.:

man man ↵

… manuál k příkazu man. Aneb UNIX v kostce

apropos řetězec

... které příkazy obsahují řetězec

whatis příkaz

... 1 řádková nápověda

Práce se soubory a adresáři:

ls  volby  soubory/adresáře

... výpis souborů nebo adresářů, asi 30 voleb, lze použít zástupné (expanzní) znaky ve jménech souborů (*, ?, [],...)

Př.:

ls qq* ↵

... vylistuje všechny soubory, jejichž jmého začíná na qq

ls text?.txt ↵

... vylistuje všechny soubory, které mají na místě ? jakýkoliv 1 znak

ls -a ↵

... výpis všech souborů včetně tzv. skrytých, tj. jejich jména začínají tečkou "."

ls -F ↵

... výpis všech souborů, adresáře jsou označeny /, spustitelné programy *

ls -t ↵

... výpis všech souborů a seřazení podle času poslední změny

Př.:

ls -l ↵

... tzv. dlouhý výpis souborů a adresářů

Vypíše se:

drwxr-xr-x 5 evaf group 512 Nov 8 1994 amber

-rw-r--r-- 1 evaf group 851 Feb 4 10:00 backup

drwxr-xr-x 2 evaf group 512 Sep 6 1995 bin

r,w,x ... přístupová práva

ls -l > vypis ↵

... výpis adresáře se uloží do souboru vypis

ls -l | more ↵

... výpis adresáře po stránkách.

cat

... výpis souborů, případně spojování

Př.:

cat  pravidla

… vypíše soubor pravidla.

cat  soubor1  soubor2 > soubor3 ↵

... spojí soubor1 a soubor2 do souboru3

cat soubor1 >> alles ↵

... připojí soubor1 k souboru alles

more soubor

... vypsání obsahu souboru po stránkách

mkdir jmeno

... vytvoření adresáře jmeno

Př.:

mkdir  /home/login/bin ↵

... vytvoří se adresář bin

rmdir jmeno

... smazání prázdného adresáře jmeno

pwd

... vypsání pracovního (aktuálního) adresáře.

cd  adresář

... přechod do jiného adresáře.

Př.:

cd ↵

... návrat do domovského adresáře /home/login

cd  /home/evaf/unix ↵

... skok do jiného adresáře

cd  .. ↵

... přechod do adresáře o úroveň výš

cp  vstupni_soubor  vystupni_soubor ↵

... kopírování souborů

Př.:

cp  /home/evaf/unix/bb  /home/login ↵

... zkopírování souboru bb do domovského adresáře

cp  /home/evaf/unix/*  unix ↵

... zkopírování všech (expanzní znak *) souborů z adresáře /home/evaf/unix do uživatelského adresáře unix.

mv  vstupní_soubor  výstupní_soubor ↵

... přejmenování souboru nebo přemístění do jiného adresáře.

rm soubor(y)

... smazání souboru(ů), ev. adresářů.

ln  zdrojový_soubor  cílový_soubor ↵

... podobný efekt jako cp, ale nevytvoří se nová položka na disku, pouze vazba (odkaz) na soubor.

Př.:

ln  /home/evaf/bin/c1  /home/login/bin ↵

... přilinkování skriptu c1 do adresáře bin. Změny, které provede vlastník (evaf), se projeví i v linku (c1 musí mít přístupová práva 755).

wc soubor

... zjištění počtu řádků, slov, znaků v souboru

grep "<regulární výraz>" soubor

... vyhledávání výrazů v souborech. Možnost použití regulárních výrazů pro vyhledávání. Více "man  regexp" (regular expressions).

Př.:

grep  energy  vysledek_vypoctu.dat

...vyhledá a vypíše všechny řádky obsahující řetězec "energy"

grep  "^Energy  = " vysledek_vypoctu.dat

… vyhledá a vypíše všechny řádky začínající (^) řetězcem Energy, po němž následuje znak "=" obalený mezerami.

grep "EPtot" vysledek_vypoctu.dat > enepotencialni.dat

… vyhledání řetězce EPtot v souboru a přesměrování výsledku vyhledávání do souboru enepotencialni.dat

Midnight Commander

Spuštění:

mc ↵

Nahrazuje příkazy:

ls, cp, mv, rm, mkdir, rmdir

edituje, zobrazuje soubory, …

Zjištění, kdo pracuje v systému:

who nebo w nebo finger

Př.:

finger @dior.ics.muni.cz ↵

... výpis uživatelů právě pracujících na počítači dior

Archivování a komprese:

tar  <volby>  <soubory, adresáře>

... archivování, sbalení adresáře do jednoho souboru

gzip soubor

... komprese souboru, vzniká soubor.gz

gunzip soubor

... dekomprese souboru něco.gz

Př.:

tar cf - adresar | gzip > adresar.tar.gz ↵

df

... zjištění zaplnění disku

du

... zjištění, kolik místa na disku zabírá aktuální adresář včetně podadresářů (velikost je udána v blocích)

alias definice_příkazu

... zjednodušení často používaných příkazů

Př.:

alias 'l=ls -l' ↵

... písmeno l teď zastupuje příkaz ls -l

touch novy_soubor

… vytvoření nového prázdného souboru

Přístupová práva

Vypíšou se příkazem ls -l

-	---	---	---

user	group	all

d	rwx	rwx	rwx

1.znak:

- ... obyčejný soubor

d ... directory = adresář

něco jiného speciální soubor

user	... 3 znaky vyjadřující oprávnění vlastníka

group ... 3 znaky vyjadřující oprávnění skupiny

all	... 3 znaky vyjadřující oprávnění všech uživatelů

Symbol	Význam	Numerická hodnota
r	soubor je povoleno číst	4
w	do souboru je povoleno zapisovat	2
x	soubor je povoleno spustit (provést)	1

Př.:

-rw-r----- 1 evaf group 851 Feb 4 10:00 backup

drwxr-xr-x 2 evaf group 512 Sep 6 1995 bin

Soubor backup může číst uživatel evaf a skupina group. uživatel evaf může do souboru i psát. all nemají k souboru žádný přístup.

Adresář (d) bin je přístupný všem (uživateli, skupině i ostatním) pro čtení a vstup (provedení příkazu cd). Jen uživatel evaf tam smí vytvářet a rušit soubory.

Nastavení přístupových práv

chmod  <požadovaná přístupová práva>  <soubor(y)> ↵

Př.:

chmod  u+x  soubor ↵

... přidání práva spouštět soubor uživateli.

chmod go-r soubor ↵

... odebrání prava čtení skupině a ostatním.

chmod g+r soubor ↵

... přidání práva čtení skupině

Nastavení pomocí numerických hodnot:

- součet numerických hodnot práv ve trojicích.

Př.:

chmod  644  soubor ↵

... nastavení práv rw-r--r--

chmod 740 soubor ↵

... nastavení práv rwxr-----

Regulární výrazy

$ man regexp

Regulární výrazy se využívají ve správě souborů (1. typ) nebo v řádkovém modu editoru VI a v příkazu egrep (2. typ – komplexnější – tabulka 2).

Odlišnosti obou typů – viz tabulka 1. V regulárním výrazu představují písmena a číslice sebe sama. Několik málo znaků má zvláštní význam.

Tabulka 1.

Správa souborů (příkazy ls, mv, rm, …). Tzv. zástupné/expanzní znaky.

Znak	Význam
?	shoduje se s právě jedním znakem
*	shoduje se s 0 nebo více znaky
[ ]	shoduje se s kterýmkoliv (jedním) znakem v závorce
[! ]	shoduje se s kterýmkoliv (jedním) znakem, který NENÍ v závorce
[ ]*	opakování znaků, tj. shoduje se s 0 nebo více znaky, které jsou v závorce

Př.:

ls example?

… vypíše soubory example1, example2, example9, exampleA, ...

ls ex*

… vypíše soubory exot, example.doc, exitus.tex, exAM, ...

rm example.[0-9]

… smaže soubory example.0, example.1, example.2,... example.9

ls [aA]*

… vypíše soubory A, a, animal, axes, Azurit,...

Tabulka 2.

Editor VI, příkaz grep

Znak	Význam
. (tečka)	shoduje se s právě jedním znakem
.*	(* = opakování), tj. shoduje se s 0 nebo více znaky
[ ]	shoduje se s kterýmkoliv (jedním) znakem v závorce
[^ ]	shoduje se s kterýmkoliv (jedním) znakem, který NENÍ v závorce
[ ]*	opakování znaků, tj. shoduje se s 0 nebo více znaky, které jsou v závorce
pro VI se dále používá
\<	začátek slova
\>	konec slova
^	začátek řádku
$	konec řádku
\(	začátek definovaného výrazu
\)	konec definovaného výrazu

Př.: pro VI v řádkovém modu:

/sample

… hledá slovo sample

/^sample

… hledá výskyt slova sample na začátku řádku

/\<sa

… hledá slova začínající "sa", např. sample, samuel, saXana, ...

:1,3s/mrkev/salat/

… nahradí slovo mrkev slovem salat (každý 1. výskyt na řádku)

:g/mrkev/del

… v celém souboru hledej slovo mrkev a řádky, které je obsahují, smaž.

:g/mrkev/s//salat/g

… v celém souboru hledej slovo mrkev a tam, kde je najdeš, proveď nahrazení slovem salat - všechny výskyty na řádku.

:g/\(Jan\) \(Novak\)/s//\2 \1/g

… výsledek příkazu: v celém souboru se přehodí jméno a příjmení Jana Nováka.

Skripty

...dávkové soubory pro spouštění příkazů, výpočtů, analýz,...

Př.: příklad na vytvoření jednoduchého skriptu, který vypisuje čas.

Krok	Co dělat?	Příkaz
1.	vytvoř prázdný soubor	touch muj_program
2.	v Midnight Commanderu edituj soubor muj_program	F4
3.	do souboru vepiš tyto příkazy: echo "Dnes je:" date echo "Pokracuj v praci!"	
4.	ulož soubor a opusť editor	F2 (ulož) , F10 (opusť)
5.	změň přístupová práva na rwxr-xr-x	chmod 755 muj_program
6.	spusť skript muj_program	./muj_program

14

2006-08-22T17:06:18