# 2. cviceni, Mala Strana, 2005
#
# Velmi hrube poznamky ke cviceni...
#
# $Id: cviceni-02.txt 2 2005-03-26 23:07:30Z jp $
#

#=====================================================================
# cut, grep
#=====================================================================
# pocet lidi, co maji za login bash
cat /etc/passwd | grep 'bin/bash' | wc -l

# rozdil mezi "cat | grep" a "grep"
# UUOC          Useless Use of Cat
# viz treba http://www.acronymfinder.com/
#
# dve vyhody:
# - sleduje to myslenkovy chod
# - pri zmene nemusim hrabat doprostred prikazu, ale staci zmenit
#   to co je pred nim

# vyberte sloupec jmena z /etc/passwd
cat /etc/passwd | cut -f5 -d:

# vypiste mi skupiny z prikazu "id"
id | cut -f4 -d=

# spocitejte, kolik lidi ma kresni jmeno Marek
cat /etc/passwd | cut -f5 -d: | cut -f1 -d' ' | grep Marek | wc -l

#=====================================================================
# shell
#=====================================================================
# par informaci k shellu (viz papir 2. cviceni z 2004)

#=====================================================================
# shell regularni vyrazy, bylo to na prednasce? (viz 2. cviceni)
#=====================================================================
echo [BD]*
echo [^BD]*
echo [B-D]*
# rozdily v techto dvou volbach
ls -A
ls -a

#=====================================================================
# options a "--"
#=====================================================================
# vytvorte soubor zacinajici "-"
> -test
ls -test
# protoze "-test" je podle lexikografickeho trideni ,,nahore'',
# ani tohle neprobehne, proto POZOR na tyto situace ve skriptech
ls *
# reseni:
ls -- *
rm -- -test

#=====================================================================
# promenne
#=====================================================================
x="a b"
echo $x
echo ${x}_
echo $$

#=====================================================================
# linky
#=====================================================================
# linky hard/soft
ln xxx s
ls -l
ls -i
ln -s xxx s2
ls -i
# softlink je normalni soubor, vysvetlit termin ,,broken link'' a
# ze nemuze existovat jako hard link
rm xxx
ls

# jsou soft linky vubec potreba? ANO, linky na adresare:
mkdir test
ln test test2
# -> ln: test: hard link not allowed for directory
ln -s test test2
rm -rf test2
# -> rm: cannot remove `test2/': Not a directory
# The rm utility removes symbolic links, not the files
# referenced by the links.
rm test2

#=====================================================================
# prava
#=====================================================================
ls -l
chmod g-r xxx
chmod a-rxw xxx
cat xxx
# -> xxx: Permission denied
rm xxx
#-> rm: remove write-protected regular file `xxx'?