sobota, 26 czerwca 2010

Zarządzanie plikami

Systemy uniksowe zapewniają szereg poleceń służących do manipulowania plikami oraz katalogami. Ich mocną stroną jest fakt, że w miarę prosty sposób można ich użyć na grupie plików/katalogów, spełniających określone wymagania. Na przykład można usunąć wszystkie pliki, które spełniają określone kryteria lub dokonać masowej zmiany nazw.

1. ls

ls to bardzo często wykorzystywane polecenie. Wyświetla ono na standardowym wyjściu zawartość katalogu. Jeżeli jako parametr nie poda się ścieżki do katalogu, wyświetlona zostanie zawartość katalogu bieżącego (tj. tego, w którym aktualnie się znajdujemy).

adam@laptop:~/Dokumenty/jakilinux.org$ pwd
/home/adam/Dokumenty/jakilinux.org/
adam@laptop:~/Dokumenty/jakilinux.org$ls
przykład.txt wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org$ls /var/
backups cache crash games lib local lock log mail opt run spool
tmp

W drugim przykładzie powyżej została wyświetlona zawartość katalogu podanego jako parametr. Polecenie ls może wyświetlać bardziej szczegółowe dane, jeżeli uruchomi się je z parametrem -l.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 wszystko_o_konsoli.txt

W powyższym listingu w pierwszej linii wyświetlana jest suma bloków na dysku użytych przez pliki w katalogu. Dalej wyświetlane są:

  • -rw-rr uprawnienia danego pliku, katalogu (szerzej na temat uprawnień w dalszej części przewodnika),
  • liczba twardych dowiązań do danego pliku,
  • właściciel pliku, grupa do której należy właściciel,
  • długość pliku,
  • data ostatniej modyfikacji,
  • nazwa pliku/katalogu.

Polecenie ls umożliwia wyświetlanie plików ukrytych (tzw. pliki z kropką). Pliki ukryte zaczynają się od znaku kropki ., do wyświetlania plików ukrytych służy parametr -a.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -a
. .. .plik_ukryty przykład.txt wszystko_o_konsoli.txt

Polecenie ls umożliwia sortowanie wyników. Do dyspozycji są parametry:

  • -t — wyświetla zawartość posortowaną wg daty modyfikacji (od najnowszej do najstarszej),
  • -S — wyświetla zawartość wg rozmiaru od największego do najmniejszego,
  • -r — odwraca porządek sortowania.

Istnieje również możliwość wyświetlenia rekursywnego zawartości katalogów, tzn. wyświetlona zostanie zawartość wszystkich podkatalogów w katalogu, służy do tego parametr -R.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -R
.:
katalog1 katalog2 przykład.txt wszystko_o_konsoli.txt

./katalog1:
plik1 plik2

./katalog2:
plik3 plik4

2. cd

Polecenie cd (ang. change directory) służy do poruszania się po drzewie katalogów. Jako parametr polecenie pobiera miejsce w drzewie katalogów, do którego chcemy się przenieść.

adam@laptop:~$cd /usr/bin
adam@laptop:/usr/bin$pwd
/usr/bin

W tym miejscu warto nadmienić, że znak ~ (tylda) jest traktowany przez powłokę jako znak specjalny — jest to skrót do katalogu domowego (ang. home directory) użytkownika.

adam@laptop:/usr/bin$cd ~
adam@laptop:~$pwd
/home/adam

Jeżeli wpiszemy cd ~nazwa_użytkownika, to polecenie to przeniesie nas do katalogu domowego użytkownika o loginie nazwa_użytkownika.

adam@laptop:~$cd ~zoidberg
adam@laptop:/home/zoidberg$pwd
/home/zoidberg

Znak - oznacza katalog, który był poprzednio katalogiem roboczym. Aby przejść do katalogu nadrzędnego, należy wpisać cd .. Każdy (nawet pusty) katalog w systemach uniksowych zawiera 2 elementy . i .. Pojedyncza kropka . jest to dowiązanie katalogu do niego samego, natomiast dwukropek .. jest dowiązaniem do katalogu nadrzędnego w drzewie katalogów.

adam@laptop:~$cd ..
adam@laptop:/home$pwd
/home

Wraz z poleceniem cd, warto wprowadzić terminy ścieżka względna i ścieżka bezwzględna.

  • Ścieżka bezwzględna (zwana też absolutną, ang. absolute path) to ścieżka, która rozpoczyna się od korzenia drzewa katalogów / np. /home/adam.
  • Ścieżka względna (ang. relative path) to ścieżka rozpoczynająca się od katalogu, w którym obecnie się znajdujemy.

3. mkdir, rmdir

Polecenia te służą odpowiednio do tworzenia i usuwania katalogów. Jako parametr podajemy nazwę tworzonego/usuwanego katalogu. Poleceniem {rmdir} można usunąć tylko pusty katalog.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ mkdir katalog
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls
katalog przykład.txt wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ rmdir katalog/
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls
przykład.txt wszystko_o_konsoli.txt

cp, mv, rm

  • {cp} — polecenie to służy do kopiowania plików, pobiera ono co najmniej dwa parametry: plik źródłowy i miejsce docelowe, do którego chcemy go skopiować,
  • mv — służy do przenoszenia lub zmiany nazwy plików lub katalogów, działa na identycznej zasadzie jak polecenie cp,
  • rm — służy do usuwania plików.

Polecenia cp, mv i rm mają następujące wspólne parametry:

  • -f force — wymusza usuniecie docelowego pliku, nawet w przypadku braku uprawnień do zapisu,
  • -i interactive — użytkownik zostanie poproszony o potwierdzenie wykonywanej operacji,
  • -b —backup — zostanie utworzona kopia zapasowa plików nadpisywanych (tylko cp i mv),

Polecenia cp i rm mogą również pracować w trybie rekursywnym, umożliwia to parametr -r (-R, —recursive).

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls
katalog1 katalog2 katalog3 przykład.txt wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ cp -R katalog2/ katalog3/
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls katalog3/
katalog2
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ rm -r katalog3/
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls
katalog1 katalog2 przykład.txt wszystko_o_konsoli.txt

Poleceniem rm -r można usuwać niepuste katalogi, tak jak na przykładzie powyżej.

5. ln

Jest to polecenie wykorzystywane do tworzenia dowiązań do plików, dowiązania można interpretować jako odpowiednik skrótu do pliku znanego z systemów Windows (jest to trochę naciągana interpretacja!)
Wyróżniamy dwa rodzaje dowiązań:

  • miękkie (tzw. symboliczne), odwołują się one do pliku — ten rodzaj dowiązań można interpretować jako odpowiednik skrótu z Windows,
  • twarde — jest to dowiązanie do konkretnego miejsca na dysku, innymi słowy do fizycznego obszaru na dysku gdzie znajduje się plik.

Jeżeli usunie się plik, do którego prowadzi dowiązanie symboliczne, dowiązanie to zostanie podświetlone na czerwono (jeżeli powłoka wspiera kolory), jeżeli usuniemy plik, do którego utworzone zostało dowiązanie twarde, nic się nie stanie, taki plik zostanie usunięty dopiero wtedy, gdy liczba twardych dowiązań spadnie do zera.

Dowiązania symboliczne tworzy się uruchamiając polecenie ln z parametrem -s.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ cat plik
Przykład dowiązań.
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ln -s plik \\
dowiazanie_symboliczne
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
lrwxrwxrwx 1 adam adam 4 2007-06-01 19:11 dowiazanie_symboliczne -> plik
-rw-r--r-- 1 adam adam 22 2007-06-01 19:10 plik
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ rm plik
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls
dowiazanie_symboliczne

W powyższym przykładzie można zaobserwować działanie dowiązań symbolicznych. Polecenie ls wskazuje, że dla pliku nie zmieniła się liczba twardych dowiązań. Zupełnie inaczej jest na przykładzie poniżej, gdzie liczba twardych dowiązań wynosi 2, po usunięciu pliku spada do 1, plik cały czas jest dostępny.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ln plik dowiazanie_twarde
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
-rw-r--r-- 2 adam adam 22 2007-06-01 19:11 dowiazanie_twarde
-rw-r--r-- 2 adam adam 22 2007-06-01 19:11 plik
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ rm plik
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
-rw-r--r-- 1 adam adam 22 2007-06-01 19:11 dowiazanie_twarde

6. touch

touch to proste polecenie mające dwa zastosowania. Jeżeli podamy jako parametr istniejący plik, to zmieni mu datę modyfikacji. Jeżeli podamy nazwę nieistniejącego pliku, to zostanie utworzony pusty plik.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 przykład.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ touch przykład.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-06-07 13:27 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ touch nowy.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-06-07 13:28 nowy.txt
-rw-r--r-- 1 adam adam 0 2007-06-07 13:27 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 wszystko_o_konsoli.txt

Uruchamiając touch z parametrem -c lub —no-create, zapobiegniemy utworzeniu nowego pliku.
Parametr -d lub -t przy czym parametr t wymaga określenia daty w formacie MMDDhhmm.

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-06-07 13:28 nowy.txt
-rw-r--r-- 1 adam adam 0 2007-06-07 13:27 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-06-07 13:28 nowy.txt
-rw-r--r-- 1 adam adam 0 2007-06-07 13:27 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-05-30 11:31 wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ touch -t \\
200706101200 nowy.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ touch -d \\
"last monday" przykład.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ touch -d \\
"2 days ago 12:00" wszystko_o_konsoli.txt
adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ ls -l
razem 0
-rw-r--r-- 1 adam adam 0 2007-06-10 12:00 nowy.txt
-rw-r--r-- 1 adam adam 0 2007-06-04 00:00 przykład.txt
-rw-r--r-- 1 adam adam 0 2007-06-05 12:00 wszystko_o_konsoli.txt

7 df, du

Służą do wyświetlania miejsca zajmowanego przez system plików (df) oraz przez konkretny plik (du). Uruchomione z parametrem -h dadzą wyniki w megabajtach. Przykład dla polecenia df:

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ df -h
System plików rozm. użyte dost. %uż. zamont. na
/dev/sda5 40G 34G 4,0G 90% /
varrun 502M 136K 502M 1% /var/run
varlock 502M 0 502M 0% /var/lock
procbususb 502M 148K 502M 1% /proc/bus/usb
udev 502M 148K 502M 1% /dev
devshm 502M 0 502M 0% /dev/shm

Przykład dla polecenia du:

adam@laptop:~/Dokumenty/jakilinux.org/przykłady$ du -h error.txt
4,0K error.txt

Aby sprawdzic kto wykozystuje najwiecej przestrzeni dysku mozesz skozystac z polecenia du. Umozliwia okreslic uzycie dysku na podstawie przetworzonych katalogow.

du -sh /home/*

Opcje tego polecenia:
-c - wyswietla calkowity raport o ilosci zajmowanej przestrzeni dyskowej po zakonczeniu dzialania.
-a - wyswietl liczby dla wszystkich plików, nie tylko katalogów.
-h - pokazuje objętosci w postaci czytelniejszej dla człowieka, dodajac literowe przyrostki okreslajace potęgi 1024, np. "M" dla megabajtów. "M" oznacza 1.048.576 bajtów.
-S - oblicz rozmiar każdego katalogu osobno, nie właczajac rozmiarów podkatalogów.


8. echo

Jest to proste polecenie, które jako wynik swojej pracy zwraca tekst, który został podany mu jako parametr.

adam@laptop:~$echo Hello World!
Hello World!

Polecenie to dodaje na końcu znak przejścia do nowej linii, aby to ominąć, należy uruchomić program, z parametrem -n. Na przykład:

adam@laptop:~$echo -n Hello World!
Hello World!adam@laptop:~$

W przypadku zamknięcia tekstu w cudzysłowy, tekst będzie interpretowany bezpośrednio (o tym później).

9. pwd

pwd (ang. print working directory) to polecenie wyświetlające pełną ścieżkę w miejscu w drzewie katalogów, w którym aktualnie się znajdujemy.

adam@laptop:~$pwd
/home/adam

10. cat

Polecenie cat można wykorzystywać w celu tworzenia pliku a dokładniej rzecz ujmując przekierowania standardowego wejścia do pliku oraz wyświetlenia na standardowym wyjściu. Plik tworzy się w następujący sposób:

adam@laptop:~$cat > plik.txt
Bardzo ciekawy tekst.

Temat użycia operatora > zostanie poruszony szerzej w dalszej części przewodnika. Aby wyświetlić zawartość pliku, wystarczy wpisać cat nazwa_pliku.

adam@laptop:~$cat plik.txt
Bardzo ciekawy tekst.

Możesz również uzyskać numery linii wyświetlanego pliku w lewym rogu ekranu.

adam@laptop:~$cat -n plik.txt
1 Bardzo ciekawy tekst.

Polecenie cat może również łączyć pliki, w poniższym przykładzie scalam 5 fragmentów obrazu ISO w jedną całość.

cat plik1 plik2 plik3 plik4 plik5 > file.iso

11. wc, head, tail

Te trzy polecenia wykorzystywane są do operacji na ciągach tekstu. Polecenie wc wyświetla liczbę linii, słów oraz bitów w danym pliku.

adam@laptop:~/Dokumenty/jakilinux.org$ wc wszystko_o_konsoli.txt
94 908 6828 wszystko_o_konsoli.txt

W powyższym przykładzie pierwsza kolumna to liczba linii, druga słów, a trzecia liczba bitów.
Kolejne dwa polecenia wyświetlają odpowiednio początek pliku (head) oraz koniec (tail) — domyślnie wyświetlane jest 10 linii tekstu. Wartość tę w obu programach można regulować parametrem -n podając liczbę linii, które chcemy zobaczyć.

adam@laptop:~/Dokumenty/jakilinux.org$ head -n 1 przykład.txt
Pierwsza linia tekstu!
adam@laptop:~/Dokumenty/jakilinux.org$ tail -n 2 przykład.txt
Przed ostatnia linia tekstu!
Ostatnia linia tekstu!

12 less

Polecenie less służy do przeglądania pliku z możliwością jego przewijania, zarówno do przodu, jak i wstecz.

adam@laptop:~$less plik.txt

Powyższe polecenie spowoduje wyświetlenie pliku plik.txt. Wprowadzenie :f podczas korzystania z programu spowoduje wyświetlenie interesujących informacji, np. numer linii na górze ekranu czy wielkości pliku. Dodatkowo zastosowanie polecenia cat z przełącznikiem -n umożliwia wyświetlenie numeru każdej linii przy lewej krawędzi ekranu, co widać poniżej.

adam@laptop:~$cat plik.txt | less

Program opuszczamy wpisując :q.

Brak komentarzy:

Prześlij komentarz