Pliki i katalogi¶
Komendy omawiane w tej części zajęć: pwd, ls, cd, mkdir, rm, mv, touch, less, tail, head
System plików¶
System plików systemu Unix jest pod kilkoma względami inny, niż w Windows:
Unix |
Windows |
|
|---|---|---|
hierarchie |
jedna - /root |
każdy dysk ma swoją |
dyski |
brak, dyski jako katalogi |
A, B, C, D, E … |
skróty |
tak, tzw. linki |
tak |
nazwy plików |
dowolne.dowolne |
pozostałość po DOS: 8.3 |
separator w ścieżce |
katalog/podkatalog |
katalog\podkatalog |
case sensitive: PLIK, Plik, plik |
tak |
nie |
katalog domowy |
/home/myusername |
My Documents |
uruchamialne programy |
wg atrybutu |
wg rozszerzenia: .bat .com .exe |
pliki ukryte |
. na początku nazwy |
wyklikane we właściwościach |
sprzęt |
wszystko jest plikiem, nawet myszka |
jako oddzielne ikonki do klikania w panelu sterowania |
Ścieżki¶
Ścieżka to unikalna lokalizacja pliku: jego nazwa z oznaczeniem katalogu. Możliwe są ścieżki bezwzględne, których nazwa musi zaczynać się od /, (np /home/dgront/plik.txt) oraz względne, np ../../plik. Oznaczenia stosowane w ścieżkach względnych:
./- katalog bieżący
~/- Twój katalog domowy
../- jeden katalog wstecz
Powyższe można łączyć, np: ~/../agatka/plik.txt
Poruszanie się po katalogach¶
Polecenie cd ścieżka zmienia katalog na ten w ścieżce, np : cd /home/dgront/dir, albo cd ../. Bonus : polecenie cd bez parametrów przenosi Cię do Twojego katalogu domowego, czyli robi to, co cd ~/
Zawartość katalogów podglądamy poleceniem ls (jak list). Dodanie flagi -l wyświetli je w tabelce, -a pokaże ukryte pliki a -h wyświetli ładnie rozmiar plików. Flagi te można połączyć, pisząc ls -lah
ls- wyświetla zawartość bieżącego katalogu
ls ../other_dir/- wyświetla zawartość katalogu../other_dir/; generalnie dowolnego wskazanego ścieżką
Krótko o plikach tekstowych¶
Zawartość plików najwygodniej jest podejrzeć poleceniem less. Podgląd jest interaktywny: zawartość pliku można przewijać strzałkami lub klawiszem spacja. Podgląd zamykamy, wciskając klawisz q. Komenda cat wypisuje zawartość całego pliku na ekran. Czasem interesuje nas jedynie początek pliku - wyświetli nam go polecenie head; koniec pliku zobaczymy dzięku poleceniu tail. Domyślnie komendy head i tail wyświetlają 10 pierwszych bądź ostatnich znaków w pliku. Możemy to zmienić, podając konkretną liczbę linii jako flagę (ze znakiem -). Całkowitą liczbą linii w pliku można sprawdzić poleceniem wc (word count), np:
head 2gb1.pdb- wyświetla na ekranie pierwsze 10 linijek pliku2gb1.pdb
tail -20 2gb1.pdb- wyświetla na ekranie ostatnie 20 linijek pliku2gb1.pdb
cat 2gb1.pdb- wyświetla na ekranie cały plik2gb1.pdb
wc 2gb1.pdb- wypisuje liczbę linii, wyrazów oraz znaków w pliku2gb1.pdb
Więcej o pracy z plikami tekstowymi - na kolejnych zajęciach.
Kopiowanie, przenoszenie i kasowanie¶
Polecenie cp ścieżka-źródło ścieżka-cel (cp jak copy) kopiuje ze źródła docelu. Źródło może wskazywać na plik (i ten plik zostanie skopiowany), może też oznaczać katalog. W przypadku kopiowania katalogów trzeba dodać flagę -r, np: cp -r dane ../
Przenoszenie działa jak kopiowanie, służy do tego komenda mv ( jak move) różnica polega na tym że ścieżka-źródło znika w przypadku przenoszenia a w przypadku kopiowania nie. Uwaga: do przenoszenia katalogów nie potrzeba stosować flagi -r.
Pliki kasujemy rm plik (rm jak remove), katalogi rm -rf katalog. UWAGA: Kasowanie plików i katalogów w systemie Unix jest nieodwracalne!
Maski¶
Kopiowanie 100 plików wg. powyższych reguł wymagałoby wpisania 100 komend, co by było bardzo denerwujące. Na szczęście istnieją maski, które możliwiają zaznaczanie grup plików o podobnych nazwach. Wykorzystujemy w nich symbole wieloznaczne: znak * zastępuje dowolny ciąg znaków (w tym ciąg pusty), znak ? oznacza zaś dokładnie jeden dowolny znak. Dodatkowo można zdefiniować swoją własną klasę znaków: [123ab] oznacza dokładnie jeden znak z listy w nawiasach. Przy wykorzystaniu masek kopiowanie plików staje się znacznie prostsze, np:
cp *.pdb ../d- kopiuje wszystkie pliki o końcówce.pdbdo innego katalogu
cp [12]* ../d- kopiuje wszystkie pliki zaczynające się znakiem1lub2
cp *.??? ../d- kopiuje wszystkie pliki o trzyznakowym rozszerzeniu
Ćwiczenia¶
załóż katalogi:
dane,wynikiskopiuj plik
skopiuj pliki
przenieś pliki
skasować pliki / katalogi
wyświetlić zawartość pliku