unix zad rozwiązane 2, AGH, WFiIS, Informatyka stosowana, Semestr I, UNIX-gach


Zadanie 4

1. Z katalogu Pliki1 usuń wszystkie pliki z rozszerzeniem .csv

2. Zawartość wszystkich plików mających rozszerzenie .txt znajdujących się w katalogu Pliki2 wypisz do pliku Tekstowe.csv

3. Z katalogu Pliki2 usuń wszystkie pliki, które mają rozszerzenie inne niż .csv

4. Z katalogu Pliki2 usuń pliki z numerami od 0 do 9.

5. Z katalogu Pliki2 usuń pliki z numerami od 20 do 49.

Zakładam, że jestem w ~/Zadanie4

1.

rm Pliki1/*.csv

2.

cat Pliki2/*.txt > Tekstowe.csv

3.

rm ./Pliki2/*.[^c]*

rm ./Pliki2/*.?[^s]*

rm ./Pliki2/*.??[^v]*

4.

rm Pliki2/plik[0-9].*

5.

rm Pliki2/plik[2-4][0-9].*

Operacje na pliku Krotki.txt

1. Usuń drugą linię

2. Usuń linie 2-7

3. Usuń wszystkie linie zaczynając od piątej

4. Usuń wszystkie linie zawierające literę B

5. Usuń wszystkie linie nie zawierające litery B

6. Usuń linie od 2 do wystąpienia wzorca sta

7. Zrozum działanie komendy sed -e '/B/,/A/d' Krotki.txt

8. Cyfry występujące w tekście weź w nawias, czyli gdy w tekście jest np. 2 to powinno zostać zamienione na (2)

9. Przenieś cyfry wraz z jedną spacją przed nimi na koniec odopwiedniej linijki

10. Usuń wszystkie wyrazy linia

11. Usuń wszystkie wyrazy linia tak aby w każdej linii tekstu został tylko jeden taki wyraz, ten który jest pierwszy np. cos linia ABC linia DEF powinno zostać zamienione na cos linia ABC DEF

12. Przy użyciu jednego polecenia sed zamień litery A na I, a litery B na II

13. Zamień litery A na wyrazy ZMIANA i wypisz tylko te linie, które zostały zmienione

Do pliku Przecinek.csv zapisz wynik komendy ls -lh ~, kolumny z informacjami oddzielając przecinkiem zamiast spacji.

1.

sed '2d' Krotki.txt

2.

sed '2,7d' Krotki.txt

3.

sed '5,$d' Krotki.txt

4.

sed '/B/d' Krotki.txt

5.

sed '/B/!d' Krotki.txt

6.

sed '2,/sta/' Krotki.txt

7. Usuń linie zaczynając od tej zawierającej wzorzec "B" a kończąc na tej, zawierającej wzorzec 'A'

8.

sed 's/[0-9]/(&)/g' Krotki.txt

9.

10.

sed 's/linia//g' Krotki.txt

11.

sed 's/linia//2g' Krotki.txt

12.

sed -e 's/A/I/g' -e 's/B/II/g' Krotki.txt

13.

sed 's/A/ZAMIANA/g' Krotki.txt | grep ZAMIANA

-

ls -lh ~ | sed 's/ \+/,/g' > Przecinek.csv

Zadanie 4b

1. Do pliku Doktoranci.txt zapisz tylko ścieżki do katalogów domowych doktorantów o imieniu Grzegorz zarejestrowanych na serwerze fatcat.

2. Do pliku Uslugi.txt wypisz te linie z pliku /etc/services, które zawierają liczby zaczynające się od cyfry 7 po której występuje dokładnie jedno lub dokładnie dwa zera.

3. Do pliku Grzegorz.txt wypisz imiona i nazwiska użytkowników serwera fatcat o imieniu Grzegorz oraz ścieżki do ich katalogów domowych. Zawartość pliku powinna wyglądać w następujący sposób:

Name: Grzegorz Pierwszy
Directory: /home/cos/pierwszy
Name: Grzegorz Drugi
Directory: /home/cos/drugi

4. Spośród klas których definicje znajdują się na serwerze fatcat w /usr/include/root/ wypisz te, które zawierają funkcję Rapidity. Czyli znajdź pliki w których zdefiniowana jest funkcja Rapidity.

5. UWAGA!Aby polecenie less wyświetlało polskie znaki, proszę wykonać następującą komendę

export LC_ALL=polish
Do pliku Postacie.txt zapisz osoby mówiące coś w czwartym akcie Zemsty, który znajduje się w pliku Zemsta.txt. Nazwy postaci wypisane są wielkimi literami.

6. Do pliku Mocium.txt zapisz ile razy w pliku Zemsta.txt pojawił się zwrot mocium panie. (odpowiedź: 19)

7. Do pliku Puste.txt zapisz:

ile jest pustych linii w pliku Zemsta.txt(odpowiedź: 1043)

ile jest linii w których jest tylko spacja (odpowiedź: 187)

ile jest linii, które są puste lub zawierają same spacje (odpowiedź: 1230)

8. Do pliku Pan.txt wypisz linijki z pliku Zemsta.txt zawierające wyraz pan. (podpowiedź: są dwie takie linijki)

9. Do pliku Math.txtwypisz ścieżki do wszystkich plików znajdujących się w katalogu /usr/include/ i jego podkatalogach, zawierających w nazwie math.

10. Do pliku Math.txt dopisz ścieżki do wszystkich plików znajdujących się w katalogu /usr/include/ i jego podkatalogach, zawierających w nazwie math i zmodyfikowanych później niż /usr/include/root/TMath.h.

11. Do pliku Moje.txt wypisz ścieżki plików utworzonych przez siebie, które znajdują się w katalogu /home/dokt/dog/ lub jego podkatalogach.

12. Do Pliku MathInne.txt wypisz ścieżki do wszystkich plików znajdujących się w katalogu /usr/include/ i jego podkatalogach, których nazwa zawiera, ale nie zaczyna się od math, lub których nazwa zaczyna się od Vector.

13. Do pliku Duze.txt wypisz ścieżki plików znajdujących się w katalogu /usr/include/ i jego podkatalogach o rozmiarze większym niż 1M.

14. Do pliku TMath.txt wypisz ścieżki do plików o nazwie TMath.h znalezione przy użyciu komendy slocate.

15. Do pliku Programy.txt zapisz ścieżkę do pliku, który zostanie wykonany po wpisaniu komendy root.

16. Do pliku Programy.txt dopisz ścieżki plików o nazwie root, które mogą zostać wykonane.

17. Do pliku Programy.txt dopisz ścieżki plików w których znajduje się instrukcja do komendy root.

1.

finger Grzegorz | grep -o '/home/dokt/[a-zA-Z]*' > Doktoranci.txt

2.

cat /etc/services | grep '\b70\{1,2\}' > Uslugi.txt

3.

finger Grzegorz | grep -o 'Name: Grzegorz [a-zA-Z]*\|Directory: /home/[a-zA-Z0-9]*/[a-zA-Z0-9]*' > Grzegorz.txt

4. Nie wiem czy dobrze, trudno to sprawdzić.

grep -l 'Rapidity' /usr/include/root/*.*

5. Polskie znaki ciągle mi nie chcą działać, nawet jak używam tego jego polecenia. Ale to chyba powinno być tak:

less Zemsta.txt | grep -o '\b[A-Z]*' | sort | uniq > Postacie.txt

6.

grep -c '[Mm]ocium panie' Zemsta.txt > Mocium.txt

7.

grep -c ^$ Zemsta.txt > Puste.txt

grep -c '^ \+$' Zemsta.txt >> Puste.txt

grep -c '^ *$' Zemsta.txt >> Puste.txt

8.

grep -w 'pan' Zemsta.txt > Pan.txt

9.

find /usr/include/ -name "*math*" -print > Math.txt

ZD 2012-11-06

jestem w katalogu ~/work/

1. Utworzyć katalog work nadać prawa czytania wykonania dla grupy, ograniczyć prawa dla pozostałych. Przejść do katalogu work utworzyć maskę praw dostępu taką samą jak dla utworzonego katalogu. Stworzyć plik test.txt korzystając z polecenia touch. Sprawdzić prawa dostępu dla pliku test.txt.

mkdir work

chmod 750 work

cd ~/work/

umask 047

touch test.txt

ls -l

2. Uruchomić edytor vi otwierając do edycji plik test.txt. Stworzyć listę co najmniej 8 wierszową z polami; Imię, nazwisko, email, liczba.

vi test.txt

[ESC] tryb poleceń vi

:w zapisz

:q wyjdź

:q! wyjdź ez zapisywania

a pisz

3. Z wiersza poleceń skopiować w kolejności alfabetycznej nazwiska do pliku a.txt wszystkie wiersze w których występuje litera a.

less test.txt | grep a | cut -f3 | sort > a.txt

4. Do pliku b.txt skopiować z pliku test.txt wszystkie wiersze w których liczba w ostatniej kolumnie jest mniejsza od 100. W ostatnim wierszu pliku b.txt zapisać sumę wszystkich skopiowanych liczb.

awk '$4 <100' test.txt > b.txt

awk '{sum += $4}; END {print sum}' b.txt >> b.txt

5. W katalogu work utworzyć katalog tmp, skopiować do katalogu tmp wszystkie pliki z katalogu work.

mkdir tmp

cp *.* tmp/

6. Przejść do katalogu tmp, spakować wszystkie pliki do archiwum tmp.tar i tmp.zip.

cd tmp/

astar czf tmp.tar *.*

zip tmp.zip *.*

7. Wrócić do katalogu work i utworzyć link do tmp.tar i tmp.zip.

cd ../

ln -s tmp/tmp.tar.gz linkdotmptargz

ln -s tmp/tmp.zip linkdotmpzip

8. Sprawdzić ile macie państwo udostępnionej przestrzeni dyskowej i jaka część jest już wykorzystana.

Wydaje mi się, że:

df -h /home/studa2/i2piwnik/

9. Zapisać do pliku tree.txt drzewo katalogu domowego.

ls -R ~ > tree.txt

10. Uruchomić przeglądarkę internetową.

lynx lub links

11. W wierszu poleceń zobaczyć jakie są uruchomione przez użytkownika procesy a następnie zakończyć procesy związane z przeglądarką internetową.

ps -a

kill nr procesu

12. Dodać do zmiennej PATH katalog work.

export PATH=/home/studa2/i2piwnik/work/:$PATH

13. Sprawdzić gdzie zapisywana jest historia poleceń a następnie zapisać tę historię do pliku histpol.txt.

less .bash_history > work/histpol.txt

14. Odszukać w katalogu domowym wszystkie pliki z rozszerzeniem *.txt.

cd ..

find *.txt

lub

du -a ~ | grep txt$ | cut -f2

15. Skopiować do swojego katalogu domowego z linku w tym kursie plik fibonacci.cpp skompilować go (g++ fibonacci.cpp -o fib) i uruchomić w tle a następnie przenieść wykonanie na pierwszy plan. Wprowadzić jako żądany wyraz ciągu fibonacciego 40. Sprawdzić pid procesu fib i wydać polecenie zakończenia tego procesu.

16. Wypisać na wyjście wszystkie wiersze z pliku histpol.txt, w których występuje fraza "ls".

less histpol.txt | grep ls

ZD 2012-11-20

1. Uruchomić wiersz poleceń w systemie Windows (programy -> uruchom).

2. Stworzyć katalog work.

3. Przejść do katalogu work.

4. Utworzyć korzystając ze standardowego wejścia plik lista.txt. W pliku tym zapisać w kolejności: imię, nazwisko, email, liczba w jednej linii, 8 takich pozycji.

5. Plikowi lista.txt nadać atrybut tylko do odczytu.

6. Utworzyć katalog tmp i skopiować do niego plik lista.txt.

7. Do pliku tree.txt zapisać drzewo katalogów dysku c.

8. Przejrzeć plik tree.txt strona po stronie.

9. Usunąć wszystkie pliki z katalogu tmp.

10. Usunąć katalog tmp.

11. Skopiować do katalogu work na serwerze fatcat plik lista.txt.

12. Skopiować z serwera fatcat na novell'a do katalogu work plik lista.txt pod nazwą nlista.txt.

2.

mkdir work

3.

cd work

4.

copy con lista.txt

Anna Wilczak anna@op.pl 125

// gdy skończę [Ctrl+Z]

5.

attrib +r lista.txt

6.

mkdir tmp

copy lista.txt tmp\lista.txt

7.

tree > tree.txt

8.

type tree.txt

9.

del tmp\*.*

10.

deltree tmp



Wyszukiwarka