linux


1. Sprawdź własny identyfikator oraz grupy, do których należysz.
-id
2. Wyświetl zawartość katalogu domowego.
- ls /home/szymon
3. Wyświetl zawartość podstawowych katalogów w systemie (np. /dev, /etc, /home, /usr).
-ls /dev ls /etc ls /usr ls /home
4. Utwórz katalog kat1 w katalogu domowym.
-mkdir ~/kat1
5. W katalogu kat1 utwórz jednym poleceniem strukturę katalogów kat2/kat3/kat4.
-mkdir -p kat1/kat2/kat3/kat4
6. Usuń jednym poleceniem cała strukturę katalogów kat3/kat4.
-rmdir -p kat1/kat2/*
7. Utwórz w katalogu domowym pliki o dowolnych nazwach z rozszerzeniami .txt i .c.
-touch ~/abc.txt touch ~/cde.c
8. Skopiuj jednym poleceniem wszystkie pliki z katalogu domowego z rozszerzeniem .txt do katalogu kat1.
-cp *.txt kat1
9. Skopiuj jednym poleceniem wszystkie pliki z katalogu domowego z rozszerzeniem .c do katalogu kat2.
-cp *.c kat1/kat2
10. Skopiuj całą strukturę katalogów kat1 tworząc analogiczną strukturę o nazwie kat1b.
-cp -r kat1 kat1b
11. Usuń wszystkie plik z katalogu kat1/kat2.
-rm ~/kat1/kat2/*.*
12. Usuń jednym poleceniem całą strukturę katalogów kat1b.
-rmdir -p kat1b/kat2b
13. Zmień nazwę dowolnego pliku w katalogu kat1.
-mv ~/kat1/abc.txt ~/kat1/ABC.txt
14. Przenieś katalog kat1/kat2 do katalogu domowego tworząc w ten sposób katalog kat2b.
-mv ~/kat1/kat2 ~/kat2b
15. Korzystając z programu find znajdź wszystkie pliki, które posiadają w nazwie słowo mozilla i znajdują się w podkatalogach katalogu /usr.
-find /usr -name *mozilla* -type f
16. Korzystając z programu find znajdź wszystkie katalogi o nazwie bin, które znajdują się w katalogu /usr.
-find /usr -name bin -type d
17. Skopiuj wszystkie pliki zwykłe o rozmiarze pomiędzy 10 a 100 bajtów z katalogu /usr/bin do katalogu kat1/kat2 (wykorzystaj polecenie find z parametrem -exec).
-mkdir ~/kat1/kat2
find /usr/bin -size +10c -size -100c -type g -exec cp {} ~/kat1/kat2 \;
18. W katalogu domowym utwórz plik o nazwie plik.txt - sprawdź jakie są prawa dostępu do niego.
-touch ~/plik.txt
ls -l plik.txt
19. Dla pliku plik.txt dodaj prawo zapisu dla grupy.
-chmod g+w plik.txt
20. Dla pliku plik.txt odejmij prawo zapisu dla właściciela.
-chmod u-w plik.txt
21. Dla pliku plik.txt dodaj prawo wykonywania dla wszystkich użytkowników.
-chmod a+x plik.txt

22. Dla pliku plik.txt przywróć oryginalne prawa korzystając z notacji numerycznej.
-chmod 664 plik.txt
23. Utwórz dowiązanie do pliku plik.txt o nazwie plik2.txt w katalogu domowym.
-ln plik.txt plik2.txt
24. Utwórz dowiązanie symboliczne do katalogu kat1/kat2 o nazwie abc w katalogu domowym.
-ln -s kat1/kat2 abc
25. Przejrzyj pomoc systemową dla wszystkich poleceń zaprezentowanych podczas zajęć.
- man .

1. Znaleźć linie w liku /etc/passwd zawierające informacje o użytkownikach używających powłoki bash (ostania kolumna zawiera informację nt. powłoki użytkownika).
-grep bash$ /etc/passwd
2. Z pliku last.dat wypisać informację o logowaniach użytkowników spod adresu 212.33.66.26.
-grep 212.33.66.26 last.dat
3. Na podstawie pliku last.dat policzyć, ile razy miały miejsce logowania dnia 16 października
-grep "Oct 16" last.dat
4. Z pliku last.dat wypisać linie zawierające informację o logowaniach użytkownika romek
-grep romek last.dat
5. Z pliku lista.txt wypisać te linie, w których występuje ciąg znaków st1.
-grep -w st1 last.dat
6. Z pliku lista.txt wypisać te linie, w których występuje ciąg znaków st1, pod warunkiem, że występuje on na końcu linii.
-grep -w st1$ last.dat
7. Z pliku lista.txt wypisać te linie, w których występuje ciąg znaków st1, pod warunkiem, że występuje on na początku linii.
-grep -w ^st1 last.dat
8. Z pliku lista.txt wypisać te linie, w których występuje słowo Anna, pisane dużymi lub małymi literami.
-grep -w "\<[aA][nN][nN][aA]\>" lista.txt
9. Z pliku lista.txt wypisać wszystkie linie, w których występuje co najmniej jedna cyfra.
-grep -w [0-9] lista.txt
10. Napisać polecenie, które w pliku lista.txt znajdzie wszystkie linie zawierające którykolwiek ze znaków: "]" , "*" , ".".
-grep [\]*.] lista.txt
11. Z o nazwie lista.txt wypisać wszystkie niepuste linie.
-grep [[:alnum:]] lista.txt
12. Z pliku lista.txt wypisać wszystkie linie, w których występuje zapis postaci cyfra.cyfra.
-grep [0-9][.][0-9] lista.txt
13. Z pliku lista.txt wypisać wszystkie linie, w których nie występuje zapis postaci cyfra.cyfra.
-grep -v [0-9][.][0-9] lista.txt
14. W pliku ęfrog.txtł znajdź wszystkie linie zawierające wyraz "king" lub "kingłs son".
-grep "\" frog.txt
15. Wypisz z pliku /usr/share/dict/words wszystkie słowa zawierające samogłoski "a", "e", "i", "o" i "u" dokładnie w tej kolejności
-grep ^[^aeiou]*a[^aeiou]*e[^aeiou]*i[^aeiou]*o[^aeiou]*u[^aieou]*$ /usr/share/dict/words






Zadania
1. Napisać skrypt, który najpierw czyści ekran, a następnie wyświetla komunikat Podaj swoje imię. Po wczytaniu imienia podanego przez użytkownika, wyświetla komunikat powitalny: Witaj Imię (w miejscu Imię ma się pojawić imię podane przez użytkownika).

2. Napisać skrypt, który wyświetla liczbę parametrów skryptu, nazwę skryptu, wszystkie parametry skryptu, oraz bieżąca datę. Uwaga: skrypt ma zadziałać poprawnie, nawet jeśli użytkownik zmieni nazwę pliku z zawartością skryptu.
echo $#
echo $0
echo $*
echo `date`

3. Zmodyfikować skrypt 1 w taki sposób, aby podanie imienia Janek skutkowało wyświetleniem komunikatu Nie znam Janka (w przypadku wpisania innych imion ma być wyświetlone powitanie).
clear
echo Podaj swoje imie
read imie
if [ $imie = "Janek" ]
then
echo "Nie znam Janka"
else
echo "Witaj $imie"
fi


4. Napisać skrypt, który wyświetla plik o nazwie podanej jako pierwszy parametr. Jeżeli użytkownik podał więcej parametrów niż trzeba, lub nie podał żadnego
ma się pojawić komunikat Użycie: nazwa_skryptu nazwa_pliku, przy czym nazwa_skryptu to napis będący nazwą skryptu.
if [ $# -gt 1 -o $# -eq 0 ]
then
echo "Uzycie: $0 nazwa_pliku"
else
cat "$1"
fi
5. Zmodyfikować skrypt w taki sposób, aby na końcu pojawił się jeden z komunikatów: Plik nazwa został wyświetlony poprawnie lub Plik nazwa nie został wyświetlony poprawnie, przy czym w miejscu nazwa ma się pojawić nazwa podana przez użytkownika jako parametr skryptu.
if [ $# -gt 1 -o $# -eq 0 ]
then
echo "Uzycie: $0 nazwa_pliku"
echo "Plik $0 nie zostal wyswietlony poprawnie"
else
cat "$1"
echo "Plik $0 zostal wyswietlony poprawnie"
fi



6. Napisać skrypt, który sprawdza, czy podana jako pierwszy parametr liczba całkowita jest dodatnia, jest ujemna, jest zerem. W przypadku, gdy użytkownik nie poda inną liczbę niż jeden parametrów, ma się pojawić informacja, jak używać skryptu. W przypadku, gdy użytkownik nie poda liczby całkowitej
też ma się pojawić odpowiedni komunikat.

if [ $# -eq 0 -o $# -gt 1 ]
then
echo "Uzycie: $0 liczba_calkowita"
else

if echo "$1" | egrep --null "^[\+\-]?[[:digit:]]+$" > /dev/null
then
if [ $1 -lt 0 ]
then
echo "Liczba jest ujemna"
elif [ $1 -gt 0 ]
then
echo "Liczba jest dodatnia"
else
echo "Liczba jest zerem"
fi
else
echo "Podany parametr nie jest liczba calkowita"
fi
fi

7. Napisać skrypt, który wyświetli zawartość wszystkich plików, których nazwa rozpoczyna się od sk, i do których użytkownik ma prawo do czytania.

for i in ./sk*.*
do
if [ -r $i ]
then
cat $i
fi
done


8. Napisać skrypt, który wyświetli nazwy plików powtarzające się w dwóch katalogach, których nazwy podane są jako pierwszy i drugi parametr skryptu. Jeżeli użytkownik podał inną niż dwa liczbę parametrów
ma się pojawić komunikat informujący o użyciu programu. Jeżeli którykolwiek z parametrów nie jest nazwą katalogu
też ma się pojawić odpowiedni komunikat.


if [ $# -ne 2 ]
then
echo "Uzycie: $0 "
else
if [ -d $1 -a -d $2 ]
then
for i in $1/*
do

for j in $2/*
do

if [ `basename $i $1` = `basename $j $2` ]
then
#echo "$i"
echo `basename $i $1`
fi
done
done
else
echo "Ktorys z parametrow nie jest katalogiem"
fi

fi

9. Napisać skrypt, który wyświetli tabliczkę mnożenia (od 1 do 10) dla liczby podanej jako parametr skryptu. Należy użyć instrukcji for.

for (( i=1; $i <= 10; i++ ))
do
echo "$i*$1= `expr $i \* $1`"

done

10. Napisać skrypt, który wyświetli tabliczkę mnożenia (od 1 do 10) dla liczby podanej jako parametr skryptu. Należy użyć instrukcji while.

k=1
while [ $k -lt 11 ]
do
echo "$k*$1= `expr $k \* $1`"
k=`expr $k + 1`
done


11. Napisać skrypt, który będzie pobierał od użytkownika liczby, do momentu wpisania liczby 0. Na koniec ma wypisać sumę oraz liczbę wpisanych liczb (nie uwzględniamy liczby 0).
suma=0
licz=0
liczba=0
while [ 1 ]
do
read liczba
if [ $liczba -eq 0 ]
then
break
else
licz=`expr $licz + 1`
suma=`expr $suma + $liczba`
fi
done
echo "Ilosc podanych liczb: $licz"
echo "Suma podanych liczb: $suma"

12. Napisać skrypt, który tworzy puste pliki. Pierwszy parametr skryptu to rdzeń nazwy pliku, drugi to liczba plików. Należy poinformować użytkownika o sposobie użycia skryptu, jeżeli poda on niewłaściwą liczbę parametrów. Należy poinformować użytkownika o błędzie, jeżeli źle poda on liczbę plików do utworzenia.
if [ $# -eq 2 ]
then

if echo "$2" | egrep --null "^[[:digit:]]+$" > /dev/null
then

for i in `seq 1 $2`
do
touch "$1$i"
done

else
echo "Blad. Liczba plikow zotala blednie podana"
fi

else
echo "Uzycie: $0 rdzen_nazwy_pliku liczba_plikow"
fi

13. Napisać skrypt, który wyświetli część lub całość pliku podanego jako drugi parametr skryptu. Pierwszym parametrem ma być jedna z opcji:
h,
t lub
a, oznaczająca żądanie wyświetlenia odpowiednio: 10 pierwszych linii pliku, 10 ostatnich linii pliku, lub całego pliku. Podanie przez użytkownika opcji innej niS dostępne ma skutkować pojawieniem się komunikatu: Nieznana opcja.

if [ -e $2 ]
then
case $1 in

"-h") head $2

;;
"-t") tail $2

;;
"-a") cat $2

;;
*) echo "Nieznana opcja"
esac

else
echo "Plik nie istnieje."
fi

14. Napisać skrypt, który, dla pliku o nazwie podanej jako parametr skryptu wyświetli następujące informacje o nim: - czy jest to plik, - czy jest to plik niepusty, - czy jest to katalog, - czy można go czytać, - czy można do niego pisać, - czy jest to plik wykonywalny.

if [ -e $1 ]
then
echo "Plik istnieje"

if [ -s $1 ]
then
echo "Plik nie jest pusty"
else
echo "Plik jest pusty"
fi

if [ -d $1 ]
then
echo "Plik jest katalogiem"
else
echo "Plik nie jest katalogiem"
fi

if [ -r $1 ]
then
echo "Plik mozna odczytac"
else
echo "Pliku nie mozna odczytac"
fi

if [ -w $1 ]
then
echo "Do Pliku mozna pisac"
else
echo "Do pliku nie mozna pisac"
fi

if [ -x $1 ]
then
echo "Plik jest wykonywalny"
else
echo "Plik nie jest wykonywalny"
fi

else
echo "Plik o podanej nazwie nie istnieje"
fi


15. Napisać skrypt, który z katalogu podanego jako pierwszy parametr wyświetla pliki o rozszerzeniu podanym jako drugi parametr. Należy poinformować użytkownika o sposobie użycia skryptu, jeżeli poda on niewłaściwą liczbę parametrów. Należy poinformować użytkownika o sposobie użycia skryptu, jeżeli źle poda on liczbę parametrów. Należy poinformować użytkownika, jeżeli źle poda on nazwę katalogu. Należy poinformować użytkownika, jeżeli nie można wyświetlić pliku z powodu braku praw do jego czytania.

if [ $# -eq 2 ]
then
if [ -e $1 ]
then
for i in $1/*.$2
do
if [ -r $i ]
then
echo -----------------------
echo $i
cat $i
echo -----------------------
else
echo "`basename $i $1`->brak uprawnien do odczytu"
fi
done
else
echo "Blad. Katalog nie istnieje"
fi
else
echo "Uzycie: $0 "
fi


16. Napisać skrypt, który prosi w pętli o podanie nazwy katalogu i wyświetla zawartość katalogu. Podanie pustej nazwy kończy działanie skryptu. Należy poinformować użytkownika, jeżeli źle poda on nazwę katalogu.

while [ 1 ]
do
echo "Podaj nazwe katalogu"
read katalog
if [ -z $katalog ]
then
break
elif [ -d $katalog ]
then
for i in $katalog/*
do
echo `basename $i $1`
done
else
echo "Katalog o podanej nazwie nie istnieje"
fi
done

Wyszukiwarka

Podobne podstrony:
Linux 2000 DVB T Experiments
linux kobiety
compilar linux
Linux IPCHAINS HOWTO Appendix Differences between ipchains and ipfwadm
systemy operacyjne cw linux apache mysql
Linux materialy
Linux System Plików
Asembler linux
Nauka słówek i memoryzacja na Puppy Linux
rs232 linux win32 cz2
linux 1 00
linux zen
linux nt loader pl 7
03 Linux Konfiguracja serwera FTP PROFTPD
linux o3 2oo4 polish magazine ebook [snake]
02 Linux Prawa dostępu do plików i katalogów
linux nt loader pl 2
linux o3 2oo4 polish magazine ebook [snake]
2001 07 Apple Ibook and Powerbook with Linux

więcej podobnych podstron