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 x

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 pliku 2gb1.pdb

  • tail -20 2gb1.pdb - wyświetla na ekranie ostatnie 20 linijek pliku 2gb1.pdb

  • cat 2gb1.pdb - wyświetla na ekranie cały plik 2gb1.pdb

  • wc 2gb1.pdb - wypisuje liczbę linii, wyrazów oraz znaków w pliku 2gb1.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 .pdb do innego katalogu

  • cp [12]* ../d - kopiuje wszystkie pliki zaczynające się znakiem 1 lub 2

  • cp *.??? ../d - kopiuje wszystkie pliki o trzyznakowym rozszerzeniu

Ćwiczenia

  • załóż katalogi: dane, wyniki

  • skopiuj plik

  • skopiuj pliki

  • przenieś pliki

  • skasować pliki / katalogi

  • wyświetlić zawartość pliku