Operacje na plikach

Everything is a file

Hierarchia systemu plików

Filesystem Hierarchy Standard (1993) – powszechnie stosowana hierarchia katalogów:

  • / – katalog główny (root)
  • /bin, /sbin – pliki wykonywalne, systemowe pliki wykonywalne (binaries, system binaries)
  • /bootboot loader
  • /dev – urządzenia (devices)
  • /etc – konfiguracja systemu (et cetera)
  • /home, /root – pliki osobiste użytkowników i użytkownika głównego
  • /lib – biblioteki dla bin i sbin (libraries)
  • /media, /mnt – punkt montowania urządzeń podłączanych do komputera i tymczasowych (mount points)
  • /opt – pakiety dodatkowe (optional)
  • /proc – jądro, stan procesów (process’ status)
  • /tmp – pliki tymczasowe (temporary files) mogą być (zazwyczaj są) usuwane przy ponownym uruchomieniu komputera
  • /var – pliki zmienne (variable files) m.in.: log, spool, www, tmp
  • /usr – zasoby systemowe, pliki użytkownika tylko-do-odczytu (Unix System Resources) bin, lib, share, src

Podstawowe komendy

ls, cd, pwd

mkdir

tworzenie katalogów (make directory)

-p, --parents utwórz brakujące nadkatalogi
rmdir

usuwanie katalogów (remove directory)

-p, --parents usuń puste podkatalogi
cp

kopiowanie plików (copy)

-R, -r, --recursive
 rekursywnie
-u, --update tylko nowsze wersje
-i, --interactive
 nie nadpisuj bez pytania
-f, --force nadpisuj bez pytania
-v, --verbose wyjaśniaj wszystko co robisz
mv

przenoszenie plików, zmiana nazwy plików (move)

-u, --update tylko nowsze wersje
-f, --force nadpisuj bez pytania
rm

usuwanie plików (remove)

-f, --force usuwaj bez pytania
-i, --interactive
 pytaj przed usuwaniem
-R, -r, --recursive
 rekursywnie (pliki i podkatalogi)
ln

utwórz odniesienie (link)

-s, --symbolic link symboliczny (do etykiety pliku)
-P, --physical link fizyczny (do zawartości pliku)
file
informacje o pliku
stat
informacje o pliku (dane z inode)
touch
modyfikuj czas dostępu; utwórz pusty plik, jeśli nie istnieje
cat
konkatenacja i wypisanie zawartości (catenate)

Krótko o ścieżkach

/
root, korzeń drzewa katalogów
~
katalog domowy ($HOME)
.
katalog bieżący ($PWD)
..
rodzic (katalog wyżej)

Pliki ukryte

Pliki ukryte mają nazwę zaczynającą się na . lub kończącą się na ~, np. ~/.bashrc

Globbing

*
dopasowanie zachłanne np. ls /home/*
?
dopadowanie do jednego znaku np. ls /home/????
{}
zbiór słów np. mkdir /home/{asia,basia,casia}
[[:lower:]], [[:upper:]], [[:alpha:]], [[:digit:]]
klasy znaków (mała litera, wielka litera, znak alfanumeryczny, cyfra)
[0-9], [a-z], [!0-9], [!a-z]
zakres znaków, wykluczenie zakresu znaków

Więcej informacji: man 7 glob

Więcej pomocy

man

podręcznik (manual)

Odwólanie do konkretnej sekcji podręcznika:
man sleep
informacje na temat sleep
man 1 sleep
informacje na temat komendy sleep
man 3 sleep
informacje na temat funkcji sleep
Sekcje:
  1. Komendy,
  2. Polecenia systemowe,
  3. Funkcje biblioteki (w szczególności biblioteka standardowa C),
  4. Pliki specjalne (głównie urządzenia z /dev) i sterowniki,
  5. Formaty plików i konwersje,
  6. Gry i wygaszacze ekranu,
  7. Miscellanea,
  8. Komendy administracyjne i demony.
Przyjazne klawisze:
q
wyjście
/
wyszukiwanie
n, N
nastepne, poprzednie wystąpienie
whatis
wyszukiwanie w manualu (według kluczy - nazw komend) np. whatis sleep
apropos
wyszukiwanie w manualu (według wartości - opisów komend) np. apropos sleep
info
alternatywny podręcznik

Przynależność i przywileje

../_images/priv.svg1.png

chmod

Modyfikuj uprawnienia pliku (change mod bits)

-R rekurencyjnie (podkatalogi i pliki)
[ugoa][+-=][rwx]
ustal przywileje do zapisu, odczytu, wykonywania dla właściciela, grupy, innych użytkowników lub wszystkich użytkowników, np. chmod a+rx jakiś_program
[0-7][0-7][0-7]
ustal przywileje w zapisie oktalnym, np. chmod 755 jakiś_program
chown

Zmień właściciela pliku (change owner)

-R rekurencyjnie (podkatalogi i pliki)
username
niech dany użytkownik będzie właścicielem, np. chown inf70001 jakiś_plik
username:group
niech dany użytkownik z danej grupy będzie właścicielem np. chown inf 70001:users jakiś_plik
chgrp

Zmień grupę pliku (change group)

-R rekurencyjnie (podkatalogi i pliki)

Znaki specjalne

cudzysłów (quotes): ", '
np. ls 'a b' vs. ls a b

escape: \

np. \t = <tab>, \n = <newline>, \\ = \

światło (whitespaces): \t, \n, \\

inne: subshells () , `, zmienne $, !,

Szukanie plików

locate

znajdź pliki w bazie danych (przygotowanej przez updatedb)

locate bashrc

locate /etc/*.conf

find

znajdź pliki w systemie plików (trwa dłużej niż locate)

find MIEJSCE [TESTY] [AKCJE]

Testy:
-name nazwa pliku (także znaki: *, ?)
-iname j/w, case-insensitive
-type typ pliku (m.in. f – zwykły plik, plik tekstowy, d – katalog)
-empty pusty plik
-a koniunkcja dwóch warunków (domyślne, więc można pominąć)
-o alternatywa dwóch warunków (WARUNEK1 -o WARUNEK2)
Akcje:
-exec wykonaj polecenie
-ok zapytaj użytkownika, a następnie wykonaj polecenie (tak jak -exec)
-quit zakończ działanie
-print0 wypisz rozdzielając znakiem \0 zamiast \n

Przykłady:

find ~ -name '*.java' -type f

find . -name ideas -exec kdialog --msgbox "{}" \;     #kde

find . -name ideas -exec zenity --info --text="{}" \; #gnome

Zadania

  1. Wyszukaj wszystkie pliki lub katalogi w swoim katalogu domowym zaczynające się od kropki.
  2. Wyszukaj wszystkie pliki lub katalogi w swoim katalogu domowym kończące się tyldą (~).
  3. Wyszukaj wszystkie katalogi w swoim katalogu domowym kończące się tyldą (~).
  4. Wyszukaj wszystkie katalogi w swoim katalogu domowym kończące się tyldą (~) lub rozpoczynające się od kropki.
  5. Wyszukaj wszystkie pliki tekstowe o nazwie kończącej się rc i wyświetl ich zawartość za pomocą edytora tekstowego (np gedit, kate).
  6. Przejdź do katalogu /tmp/. Utwórz katalog /tmp/test/ i utwórz w nim pliki asia, basia, casia, dasia, easia, fasia. Za pomocą komendy find usuń wszystkie pliki z katalogu /tmp/test/ których nazwy składają się z napisu asia poprzedzonego dowolną literą.
  7. Utwórz pliki i katalogi jak powyżej. Usuń wszystkie pliki z katalogu /tmp/test/ których nazwy składają się z napisu asia poprzedzonego dowolną literą. Niech przed usunięciem pliku komenda find zarząda potwierdzenia od użytkownika.

Ankieta SOP

Ankieta RSOCR