W tym podrozdziale poznamy kilka poleceń służących do zarządzania plikami. Niektóre z nich są tak ważne, że już używaliśmy ich w poprzednich przykładach (np. polecenie ls)
Te same polecenia które zarządzają plikami, mogą służyć także do zarządzania katalogami np. polecenie rm, lecz używa ich się wtedy często z innymi opcjami.
W tym podrozdziale zapoznamy się z następującymi poleceniami:
ls → wyświetla atrybuty pliku
cat, more → wyświetla plik na ekranie
cp → kopiuje plika do plikub
rm → usuwa plik
mv → zmienia nazwę pliku
cmp, comm, diff → porównują pliki
touch → tworzenie pustego pliku
Wyświetlanie pliku na ekranie
Polecenie cat (ang. concatenate) wyświetla całą zawartość pliku na ekranie czyli standardowym wyjściu. Polecenie ma szereg opcji, które przedstawiamy poniżej:
Opcja → Funkcja
-b → wyświetla numeracje wierszy
-E → wyświetla znak $ na końcu każdego wiersza
-T → wyświetla znaki tabulacji jako ^I
-v → wyświetla znaki niedrukowalne poza znakami tabulacji i znaku $
Aby zilustrować funkcjonowanie załóżmy że dysponujemy plikiem plik1 zawierającym trzy następujące linie:
Jak się czujesz
Wszystko w porządku
To do jutra
Aby zobaczyć zawartość tego pliku na ekranie należy wydać polecenie:
$ cat plik1
Jeżeli chcemy znać numeracje wierszy umieszczonych w pliku, wydajemy polecenie:
$ cat –b plik1
1 ....Jak się czujesz
2 ....Wszystko w porządku
3 ....To do jutra
Jak widzimy na ekranie pojawił się znak tabulacji – pomiędzy cyfrą i początkiem wiersza.
Jednym z najczęstszych zastosowań programu cat jest możliwość tworzenia, przy jego pomocy, pliku tekstowego. Aby tego dokonać musimy użyć tzw. Znaku przekierowania < po którym wpisujemy nazwę pliku jeszcze nie istniejącego np. plik2. W linii poleceń wpisujemy:
$ cat > plik2
_ kursor ustawia się w tym miejscu i możemy rozpocząć wstukiwanie tekstu. Jeżeli chcemy przerwać wpisywanie naciskamy CTRL+D i znajdujemy się z powrotem
na linii poleceń:
$
Wykonajmy ćwiczenie od początku zmieniając nazwę pliku na plik3
$ cat > plik3
Dzien dobry wykonuje dzisiaj
Cwiczenia z linuxa i poznaje
Polecenia zarzadzajace plikami
CTRL + D
$
Jeżeli przeglądniemy teraz zawartość katalogu domowego przy pomocy polecenia ls. To widzimy, że przy pomocy polecenia cat utworzyliśmy plik o nazwie plik3
$ ls –l
-rwxr-x--- 1 piotr oracle 465 maj 27 16:55 plik3
Zawartość tego pliku możemy rzecz jasna wyświetlić przy pomocy polecenia cat.
$ cat plik3
Dzien dobry wykonuje dzisiaj
Cwiczenia z linuxa i poznaje
Polecenia zarzadzajace plikami
$
Istnieje w niektórych wersjach Linuxa program tac (odwrotność cat) który wyświetla zawartość plików w odwrotnej kolejności czyli od tyłu, w takim przypadku, jeżeli wystukamy w lini poleceń:
$ tac plik3
Polecenia zarzadzajace plikami
Cwiczenia z linuxa i poznaje
Dzien dobry wykonuje dzisiaj
Jak zapewne czytelnik zauważył polecenie cat służy nie tylko do wyświetlania plików na ekranie ale dysponuje także innymi funkcjami. Poleceniem, które służy wyłącznie do wyświetlania plików jest polecenie more. Jest to polecenie tym bardziej interesujące, że umożliwia wyświetlanie plików po kawałku. Jeżeli np. dysponujemy plikiem ogromnych rozmiarów i jeżeli użyjemy polecenia cat do jego wyświetlenia na ekranie to cała zawartość pliku po prostu przelatuje na ekranie. Polecenie more pozwala wyświetlać plik fragmentami, przejście od jednego do drugiego fragmentu następuje po naciśnięciu klawisza spacja. Ogólna postać polecenia more wygląda następująco:
more [ -opcja ] [ -liczba wirszy ] [+numer wiersza ] [ plik ]
Opcja → Funkcja
-f → zlicza długie wiersze zapisane w kilku wierszach jako jeden wiersz
-l → ignoruje znak zmiany strony
-q → zatrzymuje wykonywanie polecenia more
-p → blokuje przewijanie ekranu
-s → zbiera wszystkie puste wiersze występujące po kolei w jeden pusty wiersz
-u → blokuje podkreślenia
-liczba wierszy → liczba wierszy która ma zostać jednorazowo
+numer wiersza → rozpoczyna wyświetlenie zawartości pliku od wiersza numer pliku
Kopiowanie usuwanie i zmiana nazwy plików
Najczęściej używanymi poleceniami dotyczącymi plików są polecenia cat, cp , mv i rm. Przeanalizujemy je po kolei. Nikogo chyba nie trzeba przekonywać jak ważną i pożyteczną umiejętnością jest kopiowanie plików. Poniżej przedstawiamy opcje polecenia cp (ang - copy). Ogólna postać polecenia:
cp [ -opcja ] [ źródło ] [ cel ]
Jeżeli chcemy skopiować plik1 do pliku2 to wystarczy w linii poleceń wystukać:
$ cp plik1 plik2
Opcja → Funkcja
-i → oczekuje na zgodę skopiowania (nadpisania) pliku
-p → do pliku docelowego przypisuje atrybuty pliku źródłowego
-r → kopiuje podkatalogi wraz z plikami
Przy używaniu polecenia cp użytkownik musi pamiętać o kilku sprawach: po pierwsze musi wiedzieć skąd dokąd chce skopiować dane pliki. Załóżmy, że ??????????????????????????????Dodaj tutaj Tekst Tata.
Kolejną niezwykle przydatną czynnością jest umiejętność przenoszenie wybranych plików z jednej lokalizacji do innej. Służy do tego polecenie mv (ang. move). Składnia polecenia mv wygląda następująco:
mv [ -opcja ] [ źródło ] [ cel ]
Opcja
-f → usuwa pliki bez pytania o potwierdzenie
-i → czeka na potwierdzenie przed zastąpieniem pliku lub plików
-u → zastępuje pliki docelowe tylko nowszymi plikami źródłowymi
-v → wyświetla dokładne komunikaty
Załóżmy że w naszym katalogu domowym mamy plik którego nazwa brzmi plik_sesja :
$ ls -l
-rwxr-x--- 1 piotr nauka 265 maj 17 19:21 plik_sesja
-rwxr-x--- 1 piotr nauka 365 maj 19 11:45 plikb
-rwxr-x--- 1 piotr nauka 465 maj 27 16:55 plikc
Wiemy także że w katalogach innych użytkowników grupy znajduje się plik o tej samej nazwie i dochodzę do wniosku, że np. ze względów bezpieczeństwa chcę zmienić nazwę plik_sesja na plik_piotr
$ mv plik_sesja plik_piotr
$ ls –l
-rwxr-x--- 1 piotr nauka 265 maj 17 19:21 plik_piotr
-rwxr-x--- 1 piotr nauka 365 maj 19 11:45 plikb
-rwxr-x--- 1 piotr nauka 465 maj 27 16:55 plikc
Przy pomocy polecenia mv możemy także przenieść pliki z jednego katalogu do innego.
$ mv plik_piotr plikc /etc/katalog1
$ ls -l
-rwxr-x--- 1 piotr nauka 365 maj 19 11:45 plikb
Jak widzimy różnica pomiędzy poleceniem cp i mv jest zasadnicza.
Usuwanie plików
W przypadku gdy użytkownik w katalogu domowym ma za dużo plików, musi je od czasu do czasu usuwać. Pliki usuwamy przy pomocy polecenia rm (ang. remowe ). Używając tego polecenia należy zachować szczególną ostrożność, ponieważ w Linuxie nie ma żadnych znanych z innych systemów operacyjnych poleceń cofania usuwania (ang. undelete). Polecenie rm posiada kilka opcji które należy znać i używać:
Opcja → Funkcja
-i → potwierdzenie usunięcia pliku wyświetlone na ekranie
-f → wymuszenie usunięcia
-r
Wykonajmy ćwiczenie, załóżmy że znajdujemy się w katalogu domowym i chcemy sprawdzić jego zawartość, w tym celu wykonamy znane już polecenie:
$ ls –l
-rwxr-x--- 1 piotr nauka 265 maj 17 14:45 plika
-rwxr-x--- 1 piotr nauka 365 maj 19 11:45 plikb
-rwxr-x--- 1 piotr nauka 465 maj 27 16:55 plikc
-rwxr-x--- 1 piotr nauka 265 maj 17 14:45 plikd
Widzimy, że plika i plikd maja tą samą objętość w dodatku zostały utworzone w tym samym czasie, po sprawdzeniu i obejrzeniu zawartości plików (możemy tego dokonać także przy pomocy polecenia cmp) stwierdzamy, że są one identyczne, więc chcemy usunąć plik: plikd
$ rm -i plikd
rm: remove plikd ? wstukujemy y
$ ls -l
-rwxr-x--- 1 piotr nauka 265 maj 17 14:45 plika
-rwxr-x--- 1 piotr nauka 365 maj 19 11:45 plikb
-rwxr-x--- 1 piotr nauka 465 maj 27 16:55 plikc
Porównywanie plików: polecenia cmp comm diff
Często w pracy czy to administratora czy użytkownika sytemu operacyjnego Linux napotykamy się na sytuacje, że musimy sprawdzić czy dwa pliki o różnych nazwach nie są identyczne co do ich zawartości. Poleceniem służącym do porównywania zawartości plików jest polecenie cmp. Polecenie cmp porównuje kolejno znak po znaku (lub bajt po bajcie) zawartości plików i zatrzymuje się (jeżeli nie używamy opcji -l) gdy napotyka pierwszą różnicę. Ogólna postać polecenia ma następującą postać:
cmp [ -opcja ] [ plik1 ] [ plik2 ]
Opcja → Funkcja
-c → wyświetla specyfikacje znaków n.p kod ASCII
-l → powoduje że polecenie nie zatrzymuje się przy pierwszej napotkanej różnicy.
Załóżmy że dysponujemy dwoma plikami tekstowymi – czytelnik może je stworzyć przy pomocy polecenia cat - plik_tekst i plik_dialog. Oto zawartość obu plików.
$ cat plik_tekst
Oto list marka do oli
Z wyznaniem tego co
Zazwyczaj pisza chlopcy
Do kobiet
$ cat plik_dialog
Oto list marka do oli
Z wyznaniem tego co
Zazwyczaj pisza chlopcy
Do dziewczyn
Wykonujemy polecenie cmp:
$ cmp plik_test plik_dialog
plik_test plik_dialog differ : char 4 , line 4
Wyświetlony został komunikat informujący nas o pierwszej napotkanej różnicy między plikami znajdującej się w linii 4.
Polecenie cmp służy do porównywania plików tekstowych o względnie prostej strukturze. Zaawansowanym plikiem do porównywania plików jest polecenie diff. Jest to program o wielu rozbudowanych funkcjach. Jego podstawową zaletą jest utworzenie pliku różnicowego jako rezultatu porównywania dwóch plików przy pomocy tego polecenia. Ogólna postać polecenia diff wygląda następująco.
diff [ -opcja ] [ plik1 ] [ plik2 ]
Opcja → Funkcja
-u → plik różnicowy w formacie GNU unified
-c → trzywierszowy kontekst wokół każdej różnicy
Polecenie diff może wykonywać porównań także na katalogach. W przypadku katalogów polecenie diff będzie porównywał odpowiednie pliki w obu katalogach w kolejności alfabetycznej.
Polecenie comm jest odwrotnością polecenia cmp ponieważ informuje o wspólnych elementach dwóch plików
Tworzymy pusty plik
Linux dysponuje poleceniem touch , którego wykonanie skutkuje utworzeniem pustego pliku:
$ touch plik_nowy
jeżeli wykonamy teraz polecenie ls:
$ ls
plik1 plik2 plik3 plik_nowy
Z każdym plikiem czy obiektem są skojarzone trzy podstawowe daty: utworzenia, modyfikacji i ostatniego dostępu (np. wyświetlenia). Używając polecenie touch można zmienić czas dostępu i modyfikacji skojarzony z plikiem.
$ ls -l
-rwxr-x--- 1 piotr nauka 265 maj 17 14:45 plika
$ touch plika ↑data się
$ ls -l ↓zmieniła
-rwxr-x--- 1 piotr nauka 265 maj 29 10:21 plika
$
Polecenie touch dysponuje następującymi opcjami:
Opcja → Funkcja
-a → zmienia tylko czas dostępu
-m → zmienia tylko czas modyfikacji
-r → zmienia nie na bieżący cza/datę, ale na czas/datę skojarzoną z plikiem referencyjnym
{module Google reklama arty}
Kurs Linux - polecenia i komendy Linux wykonywane na plikach