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)/boot– boot loader/dev– urządzenia (devices)/etc– konfiguracja systemu (et cetera)/home,/root– pliki osobiste użytkowników i użytkownika głównego/lib– biblioteki dlabinisbin(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:
- Komendy,
- Polecenia systemowe,
- Funkcje biblioteki (w szczególności biblioteka standardowa C),
- Pliki specjalne (głównie urządzenia z
/dev) i sterowniki, - Formaty plików i konwersje,
- Gry i wygaszacze ekranu,
- Miscellanea,
- 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¶
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 bashrclocate /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 ffind . -name ideas -exec kdialog --msgbox "{}" \; #kdefind . -name ideas -exec zenity --info --text="{}" \; #gnome
Zadania¶
- Wyszukaj wszystkie pliki lub katalogi w swoim katalogu domowym zaczynające się od kropki.
- Wyszukaj wszystkie pliki lub katalogi w swoim katalogu domowym kończące się tyldą (
~). - Wyszukaj wszystkie katalogi w swoim katalogu domowym kończące się tyldą (
~). - Wyszukaj wszystkie katalogi w swoim katalogu domowym kończące się tyldą (
~) lub rozpoczynające się od kropki. - Wyszukaj wszystkie pliki tekstowe o nazwie kończącej się
rci wyświetl ich zawartość za pomocą edytora tekstowego (npgedit,kate). - Przejdź do katalogu
/tmp/. Utwórz katalog/tmp/test/i utwórz w nim plikiasia,basia,casia,dasia,easia,fasia. Za pomocą komendyfindusuń wszystkie pliki z katalogu/tmp/test/których nazwy składają się z napisuasiapoprzedzonego dowolną literą. - Utwórz pliki i katalogi jak powyżej. Usuń wszystkie pliki z katalogu
/tmp/test/których nazwy składają się z napisuasiapoprzedzonego dowolną literą. Niech przed usunięciem pliku komendafindzarząda potwierdzenia od użytkownika.