Robert Berliński
Ćw. II
1) Tworzenie ścieżek względnych i pełnych.
Wykorzystywanie ich
w poleceniu cd
2) Polecenia mkdir i rmdir, również z
wykorzystaniem ścieżek
3) Polecenia cp, mv, rm, touch (do tworzenia
pustego pliku).
4) Wyszukiwanie plików - whereis, locate, find
(podstawowe opcje)
5) Jeżeli starczy czasu - Znaki globalne i
ćwiczenia z nimi związane
(wyszukiwanie, kopiowanie itd.)
whereis find
Na ekranie monitora powinniśmy
zobaczyć /usr/bin/find /usr/man/man1/find.1
find
Komenda find używana jest do wyszukiwania plików. Jeśli
chcemy znaleźć program gra w jednym z katalogów naszego
komputera, przykładowo: /usr/games, wystarczy, że w linii
komend wpiszemy find /usr/games -name gra -print. Do
znajdowania plików możemy również używać daty, a także
przedział dat, w którym spodziewamy się, że dany plik był
modyfikowany. Przykładowo, w celu znalezienia w katalogu
/usr/programs wszystkich programów, z których nie
korzystaliśmy w ciągu ostatnich 90 dni, wystarczy, że użyjemy
polesenia find /usr/programs -type f -atime +90 -print. Jeżeli
chcemy odnaleźć pliki, które utworzono lub zmodyfikowano w
ciągu ostatniego dnia, piszemy w linii komend find /usr/games
-type f -mtime -1 -print. Komenda find akceptuje także nazwy
plików podanych pod postacią maski, przykładowo find /usr/bin
-name *.txt -print.
locate
Polecenia locate używamy do szybkiego wyszukiwania plików,
nie są one jednak szukane w katalogach, a w specjalnie w tym
celu stworzonej bazie danych z nazwami plików oraz ich
lokalizacją. Aby komenda prawidłowo działała musimy wpierw
stworzyć bazę danych o plikach. W tym celu używamy
programu updatedb uruchamianym jedynie z poziomu
administratora. Wadą takiej bazy danych jest fakt, że zmiany w
systemie plikowym nie są natychmiast odzwierciedlane, więc
nie możemy wyszukiwać plików, które dopiero co zostały
dodane. Komenda locate jest bardzo łatwa do użycia. Jeżeli
pragniemy odnaleźć wszystkie pliki formatu Postscript
znajdujące się w naszym komputerze, wystarczy, że wpiszemy
locate *.ps.
Polecenia cp używamy do kopiowania katalogów i plików. Chcąc skopiować jakiś
plik wpiszemy w wierszu poleceń cp nazwa_pliku1 nazwa_pliku2. Efektem
kopiowania jest utworzenie pliku nazwa_pliku2, w przeciwieństwie jednak do
komendy mv, plik oryginalny pozostaje na swoim miejscu. Jeżeli stosujemy cp,
musimy być ostrożnymi, ponieważ istnieje ryzyko skopiowania jednego pliku na
miejsce innego, o ile ten drugi miał taką samą nazwę jak plik kopiowany. W celu
uniknięcia tego problemu, o ile naprawdę nie chcemy zmieniać zawartości pliku
docelowego, należy użyć opcji -i lub -b, które w swoim działaniu odpowiadają
opcjom polecenia mv. Polecenie cp może być również wykorzystywane do
kopiowania wielu plików na raz, dzięki użyciu polecenia cp nazwa_katalogu1
nazwa_katalogu2. Po wpisaniu tej komendy katalog źródłowy wraz z całą swoją
zawartością zostanie skopiowany do docelowego. Analogicznie jak w poleceniu
rm, możemy użyć opcji -r, czyli opcji kopiowania rekursywnego. Jeżeli tak
zrobimy to możliwe jest skopiowanie całej struktury jednego katalogu do
katalogu drugiego. Jeżeli naszym celem jest skopiowanie pliku wraz ze strukturą
katalogu to powinniśmy użyć opcji znanej nam z polecenia mkdir, czyli -p.
Przykładowo po wpisaniu w linii komend polecenia cp -p
nazwa_katalogu1/nazwa_pliku nazwa_katalogu_2 skopiowany zostanie nie tylko
pojedynczy plik, ale również cała struktura podkatalogów.
Polecenia rm używamy do kasowania plików. W
przypadku, gdy chcemy skasować więcej niż jeden
plik możemy wpisać następujące polecenie: rm
nazwa_pliku_1 nazwa_pliku_2 nazwa_pliku_3 = rm
nazwa_pliku*. Jeśli zajdzie potrzeba zabezpieczenia
się przed przypadkowym skasowaniem pliku należy
użyć opcji interaktywnego kasowania i wpisać w linii
komend rm -i. Teraz zanim skasujemy plik
zostaniemy spytani o potwierdzenie. Jeżeli w jednej
komendzie użyjemy opcji -f oraz opcji rekursywnego
kasowania -r, to będziemy mogli skasować
interesujące nas katalogi wraz z całą ich
zawartością. Komenda ta to rm -fr nazwa_katalogu.
Znaki globalne
podobnie jak w Windowsie w systemie Linux występują
specjalne znaki zastępujące inne, przydatne np. podczas
wyszukiwania plików
* reprezentuje jeden lub wiele znaków
? reprezentuje dokładnie jeden znak
[abcde] reprezentuje dokładnie jeden znak z
wymienionych
[a-e] reprezentuje dokładnie jeden znak z
przedziału
[!abcde]reprezentuje dowolny niewymieniony
znak
[!a-e]reprezentuje znak nienależący do przedziału
{plik,file}reprezentuje dowolny z wymienionych
ciągów
* reprezentuje wszystkie pliki
*.bmp reprezentuje wszystkie pliki
kończące się na .bmp
?[0-9][a-d] reprezentuje plik o
trzyznakowej nazwie, gdzie
pierwszy znak jest dowolny, drugi jest cyfrą, zaś
trzeci literą z przedziału a-d
{nowy,new}*.txt reprezentuje wszystkie
pliki zaczynające się od nowy lub new będące
plikami txt
[^lista] wybrane zostana znaki, które nie sa na
liscie
Przejście z trybu edycji do trybu pisania
komend, następuje po naciśnięciu klawisza
[ESC].
a /append/ pisanie znaków z prawej strony
za kursorem
i /insert/ pisanie, począwszy od miejsca
ustawienia kursora
x kasowanie znaku w miejscu ustawienia kursora
X kasowanie takie jak backspace (z lewej strony
kursora)
dd usunięcie całej linii
D skasowanie tekstu od kursora do końca
wiersza
dG usuń linie do samego końca zbioru
ZZ zapisanie zbioru i wyjście z edytora
:wq zapisanie zbioru i wyjście z edytora
:q! Wyjście z vi bez zapisywania zbioru
j przejście do następnej linii na dół
k przejście do następnej linii w górę
l przejście do następnego znaku w prawo
h przejście do poprzedniego znaku w lewo
1G skok na początek dokumentu
G skok na koniec dokumentu