• Home
  • Server 2003/2008
  • Windows 7
  • Office
  • Linux
  • Sieci komputerowe
  • Wujek dobra rada
  • Mapa strony
  • Napisz
  • czcionka Zmniejsz czcionkę Zmniejsz czcionkę Powiększ czcionkę Powiększ czcionkę
  • Wydrukuj
  • Email
  • Komentarze (1)
Dogadać się z Linuxem. Powłoka systemu oraz operacje na plikach.
pikolo pikolo

Dogadać się z Linuxem. Powłoka systemu oraz operacje na plikach.

10 lipiec 2015
Dział: Linux
Czytany 19836 razy
Oceń ten artykuł
  • 1
  • 2
  • 3
  • 4
  • 5
(19 głosów)

Terminal w systemie Linux jest tym samym co wiersz poleceń w systemach Windows. Konsola ta jak w przypadku cmd ma nam umożliwić zarządzanie komputerem. Pierwsze uruchomienie konsoli nie zachęca nas do dalszej pracy bo cóż ciekawego może być w oknie z migającym kursorem i czekającym na wpisanie polecenia. Ktoś mógłby zapytać - Po co mi ta umiejętność i po co mam uczyć się poleceń? Wszystko bowiem mogę sobie wyklinać w GUI. No niestety, nie zawsze wszystko znajdziemy w interfejsie graficznym a niektóre opcje, czasem są dość mocno zaszyte wewnątrz systemu. Tak więc umiejętne posługiwanie się konsolą znacznie zwiększa szybkość i skuteczność prowadzonej konfiguracji a także pozwala nam na zautomatyzowanie wykonywanych zadań. I to jest odpowiedź na postawione pytanie.

 

Artykuł jest częścią większą cyklu w którym będę chciał pokazać jak posłużyć się konsolą systemu Linux. W tym wpisie zajmiemy się poznaniem powłoki bash, która jest domyślną formą komunikacji w trybie tekstowym z systemami z rodziny Linux a także poznamy szereg poleceń związanych z obsługą plików.

 

Konsola pierwsze spojrzenie. Konfiguracja środowiska pracy.


 

Pierwsze spotkanie z konsolą systemu Linux w szczególności dla użytkownika, który dopiero co poznaje system Linux nie jest zachęcające ale wystarczy trochę samo zaparcia, ćwiczeń i obycia by stwierdzić, że korzystanie z tej formy komunikacji z systemem ma swoje zalety.

 

Po uruchomieniu konsoli system wita nas znakiem zachęty, zapraszającym do wydawania poleceń.

 image1

 

Znak zachęty w przypadku zwykłego użytkownika przyjmuje postać $ natomiast gdy użytkownikiem jest root (odpowiednik administratora w systemie Windows) znak zachęty zostaje zamieniony na #

 

Znak zachęty możemy modyfikować i ustalać jego wygląd w zależności od naszych potrzeb i upodobań. Aby wyświetlić wartość zmiennej środowiskowej PS1 odpowiedzialnej za budowę informacji pojawiających się w terminalu (ang. prompt) należy użyć polecenia: echo $PS1

 image2

 

Zmianę dokonujemy za pomocą komendy: export PS1='<opcje>'

 

Dostępne opcje to (więcej zobacz: man bash pod kątem zmiennej PS1):

 

\d - data w formacie: Dzień tygodnia Miesiąc Dzień,

\t - czas w formacie 24-godzinnym (HH:MM:SS),

\T - czas w formacie 12-godzinnym (HH:MM:SS),

\@ - czas w formacie 12-godzinnym (am/pm),

\A - czas w formacie 24-godzinnym (HH:MM),

\h - nazwa komputera (hostname) - do pierwszego znaku kropki,

\H - nazwa komputera (hostname),

\n - znak nowej linii,

\r - powrót karetki (ang. carriage return)

\e - znak ucieczki ASCII,

\u - nazwa użytkownika,

\w - ścieżka bieżącego katalogu (w przypadku katalogu $HOME nazwa jest skracana do tyldy (~),

\$ - jeśli numer UID jest 0 to znak: # (root), w przeciwnym wypadku znak: $,

\nnn - znak przedstawiony za pomocą liczby ósemkowej (np. 011),

\\ - backslash,

\[ - start sekwencji nie drukowalnych znaków,

\] - stop sekwencji nie drukowalnych znaków.

 

Do zbudowania promt-a możliwe jest również użycie kolorów. Składnia użycia koloru jest następująca: \[\e[ X;Y;Zm\] <opcja_kolor> \[\e[m\] np. export PS1='\[\e[0;34m\]\u\[\e[m\]'

 image3

gdzie:

 

X – kolor tekstu, Y – kolor tła, Z – efekt – przy czym gdy któregoś elementu nie używamy to go pomijamy.

 image4

 

Tabela opcji:

 

Kolor Tekst Tło Efekt Kod
czarny 30 40 Pogrubienie 1
czerwony 31 41 bez pogrubienia 22
zielony 32 42 podkreślenie 4
żółty 33 43 bez podkreślenia 24
niebieski 34 44 miganie 5
magenta 35 45 bez migania 25
cyjan 36 46    
biały 37 47    

 

 

Zmienne środowiskowe


 

Pierwszą zmienną już Czytelniku poznałeś (zmienna PS1) a nie jest to jedyna zmienna. W systemie Linux istnieje kilkadziesiąt różnych zmiennych. Wszystkich nie przedstawię ale na liście poniżej znajdziesz te zmienne, które wykorzystuje się najczęściej.

 

USER – nazwa aktywnego użytkownika,

HOSTNAME – nazwa hosta,

HOME – katalog domowy aktywnego użytkownika,

TZ – ustawiona strefa czasowa,

EDITOR – zmienna odpowiedzialna za określenie używanego edytora,

PATH – definiuje katalogi, które są przeszukiwane pod kątem wywoływanych poleceń, dzięki tej zmiennej nie musimy wpisywać pełnej ścieżki dostępu do programu,

SHELL – powłoka w której jest uruchomiony terminal,

TERM – rodzaj użytego terminala,

UID – identyfikator zalogowanego użytkownika,

OSTYPE – rodzaj systemu operacyjnego,

LANG – ustawienia językowe,

PWD – katalog roboczy w którym się znajdujemy,

HISTSIZE – rozmiar bufora historii.

 image5

 

Część dostępnych zmiennych można wyświetlić za pomocą polecenia: printenv | more (użycie more powoduje zatrzymanie wyświetlania po zapełnieniu ekranu).

 image6

 

Część zmiennych jest jednoznacznie określona lecz dwie z nich wymagają szerszego omówienia mowa tu o zmiennej PATH oraz EDITOR.

 

Zmienna PATH jak już zostało wspominane odpowiedzialna jest za odnalezienie programów, które są wywoływane w terminalu poprzez polecenia.

 

Gdy chcemy aby wyszukiwanie polecenia rozpoczęło się od aktualnego katalogu roboczego trzeba na początku zmiennej PATH wstawić znak kropki (.) – polecenie: export PATH=".:$PATH" Gdybyśmy chcieli do zmiennej PATH dodać katalog możemy skorzystać z polecenia: PATH=$PATH':<lokalizacja_katalogu>'

 image7

 

1. Sprawdzenie zmiennej PATH,

2. Dodanie do zmiennej PATH znaku kropki (znak nakazuje rozpoczęcie wyszukiwania programu/skryptu od bieżącej lokalizacji),

3. Sprawdzenie faktu przypisania,

4. Dodanie katalogu: /usr/lokal/samba/sbin do zmiennej PATH,

5. Sprawdzenie faktu przypisania.

 

Natomiast do zmiennej EDITOR można przypisać swój ulubiony edytor tekstowy. Poniżej przykład przypisania do zmiennej EDITOR programu mcedit (jakoś wole używać tego edytora niż domyślnie zainstalowanego vi czy nano). Mcedit dostępny jest po zainstalowaniu pakietu Midnight Commander, program ten jest menedżerem plików (jak ktoś pamięta Norton Commander to się nie zawiedzie). Program instalujemy za pomocą polecenia: sudo apt-get install mc

 

1. Zlokalizowanie programu mcedit,

2. Sprawdzenie aktualnej wartości zmiennej EDITOR,

3. Przypisanie do zmiennej EDITOR ścieżki katalogu w której znajduje się program,

4. Sprawdzenie faktu przypisania.

 

 image8

 

 

Kontrola uruchamianych procesów


 

Każde wydane polecenie w powłoce systemu Linux powoduje wykonanie jakiegoś zadania. By móc pracować efektywnie z powłoką trzeba umieć zarządzać uruchomionymi zadaniami. Podczas pracy z powłoką mamy wpływ na sposób zachowania się zadań, możemy wykonać następujące operacje wobec uruchamianych zadań:

 

uruchomić zadanie na pierwszym planie - tj. wydana komenda powoduje uruchomienie zadania przez powłokę a zadanie te działa w powłoce tak że niemożliwe jest wydanie kolejnych komend,

uruchomić zadanie w tle - tj. wydana komenda powoduje uruchomienie zadania przez powłokę a zadanie te działa nie zajmując jej, mamy możliwość wykonywania kolejnych poleceń,

zawieszenie zadania - wstrzymanie pracy zadania,

wznowienie - powoduje kontynuację pracy wcześniej zawieszonego zadania.

 

Z każdą z tych czynności związane jest odpowiednie polecenie, aby wyświetlić listę aktualnie uruchomionych zadań, skorzystaj z polecenia: jobs

 image9

 

Liczba w nawiasie oznacza numer zadania znak + oraz - zadania wywołane po wydaniu poleceń fg oraz bg.

 

Aby uruchomić zadanie w tle na końcu polecenia umieszczamy znak: &

 

Gdy uruchomione jest zadanie a my wciśniemy Ctrl+Z (można też użyć polecenia: suspend) zadanie to zostaje wstrzymane lecz zapamiętywany jest stan zadania.

 

Tak wstrzymane zadanie możemy ponownie uruchomić przy czym mamy dwie możliwości: gdy wykorzystamy polecenie: fg zadanie to zostanie uruchomione na pierwszym planie; gdy zaś zdecydujemy się użyć polecenia: bg zadanie to również zostanie wznowione lecz tym razem w tle.

 

Za pomocą tych dwóch komend możliwe jest wznawianie różnych zadań, domyślnie wydanie samego polecenia fg bądź bg bez żadnych parametrów spowoduje uruchomienie ostatnio wstrzymanego zadania. Gdy zaś chcemy uruchomić, wznowić konkretne zadanie możemy użyć np. komendy: bg %<numer_zadania> Numer zadania poznamy dzięki poznanemu już poleceniu: jobs

 

 

Historia poleceń


 

Wszystkie polecenia, które wpisujemy do konsoli są zapamiętywane tak więc istniej możliwość odwołania się do już wydanego polecenia. Aby wyświetlić listę wydanych poleceń użyj polecenia: history

 image10

 

Po wydaniu polecenia wyświetli się lista ponumerowanych komend, które w powłoce wydaliśmy. Poniżej przedstawiam kilka przykładów wykorzystania listy komend.

 

history <liczba> - wyświetlenie zdefiniowanej liczby ostatnio wydanych poleceń,

history -c – wyczyszczenie historii,

!! – ostatnio wydane polecenie,

!<liczba> - wywołanie polecenia o danym numerze,

!-<liczba> - wywołanie polecenia minus zdefiniowana liczba

 

 

Aliasy


 

System Linux umożliwia tworzenia tzw. aliasów czyli skrótów, które realizują jakieś konkretne polecenie bez konieczności wpisania całej składni polecenia wraz z parametrami.

 

W trakcie poznawania systemu Linux bardzo często miałem nawyk czyszczenia ekranu za pomocą windowsowego polecenia cls a jak wiadomo w powłoce bash te polecenie nie występuje, bo do czyszczenia okna terminala używa się komendy clear bądź tput clear. Aby móc jednak czyścić ekran terminala z wykorzystaniem komendy cls należy stworzyć alias, który będzie łączył ciąg cls z poleceniem clear. Od tej pory wpisanie w oknie polecenia cls wywoła nam komendę clear. Alias tworzymy za pomocą ogólnej składni: alias <nazwa_aliasu>= "<polecenie>" Tak więc chcąc przypisać linuxowe polecenie clear tak aby by było wykonane po wpisaniu cls należy wydać polecenie: alias cls="clear"

 

image11 

Aliasy dodatkowo mogą być wykorzystane do poruszania się po systemie plików. Gdy bardzo często odwołujemy się do jakiegoś miejsca na dysku możemy stworzyć alias, który będzie łączył nam dany folder z przyjazną dla nas nazwą. Poniżej przykład uworzena aliasu dok po wywołaniu, którego będziemy przeniesieni do lokalizacji: /home/luk/Dokumenty

 image12

 

Ciekawe efekty uzyskamy gdy alias połączymy z zmienną.

 image13

 

Połączyliśmy alias dok z zmienną DOK, po wydaniu polecenia dok jesteśmy przekierowani do zmiennej, która powoduje przejście do zdefiniowanego katalogu. Dodatkowo utworzoną zmienną możemy wykorzystać w poleceniach np. kopiowanie plików. Poniżej przykład skopiowania pliku: plik1 do lokalizacji /home/luk/Dokumenty która to lokalizacja została powiązana z zmienną DOK.

 image14

 

Aby przejrzeć listę utworzonych aliasów wydaj komendę: alias

 image15

 

Aby usunąć alias należy skorzystać z polecenia: unalias <nazwa_aliasu>

 

Wszystkie zmienne i aliasy, które utworzyliśmy mają „cykl życia” ustawiony do czasu w którym system operacyjny działa czyli po wykonaniu restartu systemu utworzone definicje zmiennych i aliasów już nie obowiązują. A dodatkowo zmienne i aliasy nie są dostępne dla innych wywołań konsoli. Aby uniknąć konfiguracji tych parametrów po każdorazowym uruchomieniu systemu należy definicje te umieścić w pliku: .bashrc W pliku tym zapisane są Twoje ustawienia a plik ten zlokalizowany jest w katalogu domowym (w przypadku użytkownika root plik znajduje się w /root)

 

Gdy skończymy edytować plik .bashrc należy go przeładować za pomocą polecenia: ..bashrc.

 image16

Po wprowadzeniu zmian (dodanie kropki do już istniejącej zmiennej PATH, dodanie nowej zmiennej DOK oraz utworzenie aliasu cls) i zapisaniu pliku, plik ten należy przeładować za pomocą polecenia: ..bashrc Po przeładowaniu wszystkie wpisy, których dokonaliśmy znajdują swoje odzwierciedlenie w użytych w terminalu poleceniach.

 image17

 

 

Polecenia związane z plikami.


 

Zanim Czytelniku będziesz próbował testować opisane polecenia należy jeszcze chwilkę zatrzymać się i wyjaśnić zasady jakie obowiązują przy stosowaniu znaku spacji i znaków specjalnych. Praca z plikami, które wykorzystują te znaki powoduje pewne problemy gdyż znaki te i występujące po nich ciągi tekstu, często są traktowane jako parametr lub definicja osobnego pliku.

 

W przypadku pliku, który w nazwie zawiera spację oraz znak specjalny by odwołanie do tego pliku zakończyło się sukcesem wystarczy, że nazwę pliku obejmiemy cudzysłowem. Poniżej przykład w którym utworzyłem dwa pliki: pierwszy plik zawiera spacje - nazwa pliku: plik ze spacjami; drugi zaś plik w swojej nazwie zawiera znak specjalny > - nazwa pliku: plikiznanspecjalny> Jak widać tradycyjne odwołanie do obu plików (wykorzystano polecenie: ls - pokaż pliki w katalog) kończy się niepowodzeniem, gdy zaś nazwy plików obejmiemy cudzysłowami wydana komenda kończy się sukcesem.

 image18

 

W przypadku pliku, zaczynającego się od minusa objęcie nazwy pliku cudzysłowem nie wystarczy, gdyż w poleceniu w którym do takiego pliku będziemy próbowali się odwołać uzyskamy informację o błędnej opcji. By udało się zbudować komendę z nazwą pliku rozpoczynającą się od minusa, nazwę tego pliku musimy poprzedzić operatorem: ./

 image19

 

Każde polecenie a raczej wynik uzyskany dzięki wydaniu komendy można zapisać do pliku. Przypuśćmy, że okresowo badamy dostępność jakiegoś hosta i wyniki te chcemy mieć w zewnętrznym pliku. Aby uzyskać nasz cel należy użyć symbolu przekierowania. Są trzy główne symbole przekierowania >,>>,<

 

Aby zrozumieć sposób ich wykorzystania symbole >,>>, połączymy z poleceniem ping, które będzie skanować nam witrynę wp.pl

 

Po wydaniu polecenia: ping -c 3 wp.pl > testwp nie uzyskamy informacji w terminalu, ponieważ zostają one przekierowane do pliku testwp

 

image20 

Użycie polecenia jeszcze raz spowoduje nadpisanie (zastąpienie) już istniejących danych, aby wymusić dopisanie do już istniejącego pliku należy użyć symbolu >> - ping -c 3 wp.pl >> testwp

 

image21

 

Operatora przekazania > można również użyć aby wyniki uzyskane dzięki wydaniu dowolnego polecenia przekierować do innego terminala.

 

W tym celu należy poznać nazwę terminala z którego korzystamy. Nazwę tą poznamy za pomocą polecenia: tty

 

Po otworzeniu kolejnych sesji konsoli możemy za pomocą poznanej nazwy przekierowywać wyniki wydawanych poleceń. Poniżej przykład przekierowania wyników uzyskanych dzięki poleceniu ifconfig – polecenie: ifconfig > /dev/pts/25

 image22

 

Użyte polecenia przekierowania > oraz >> wymuszały zapisanie wyników wydanych poleceń do pliku, natomiast symbol < spowoduje pobranie danych z istniejącego pliku.

 

Poniżej przykład pobrania wyrazów z pliku dane wraz z ułożeniem ich w kolejności alfabetycznej. Dane pobrane z zewnętrznego pliku dzięki użyciu polecenia sort zostają ułożone w kolejności rosnącej tj. od a do z.

 image23

 

Oczywiście nic nie stoi na przeszkodzie aby symbolów przekierowania w jednym poleceniu użyć kilkakrotnie. Spróbujmy więc posortowane wyrazy z przykładu powyżej zapisać do pliku. Zadanie to wykonamy po użyciu komendy: sort < dane > posortowane

 image24

 

Istnieje jeszcze jeden symbol a mianowicie pionowa kreska (Shift+"\"). Symbol ten pozwala nam na utworzenie tzw. potoku (ang. pipe). Potok pozwala nam na połączenie kilku poleceń tak by stanowiły one jedność, bądź bardziej fachowo aby dane wyjściowe jednego programu były danymi wejściowymi dla innego.

 

Taki standardowym przykładem użycia potoku jest sytuacja w której wydajemy polecenia a informacje, które uzyskujemy dzięki wydanej komendzie nie mieszczą się w jednym oknie terminala. Informacji jest tak dużo, że kolejna porcja wypisywanych danych zastępuje te bieżące a my nie mamy możliwości zapoznania się z nim. Natomiast gdy wydamy np. komendę: ls -l | more wyniki uzyskane dzięki poleceniu ls (pokaż pliki w katalogu) zostaną przekazane do aplikacji more powodującej zatrzymanie wyświetlania po zapełnieniu ekranu terminala. Kolejna porcja informacji zostanie wyświetlona po wciśnięciu dowolnego klawisza. Wydane polecenie: ls -l | more jest potokiem ponieważ polecenie to zostało zbudowane z dwóch odrębnych komend a połączonych ze sobą operatorem potoku.

 image25

 

Operatory przekierowania i operator potoku można łączyć tak naprawdę z wszystkimi poleceniami używanymi w powłoce wszystko zależy od celu jaki chcemy osiągnąć. Poniżej jeszcze dwa przykłady w których wykorzystano te operatory.

 

Pierwszy przykład pokazuje wykorzystanie operatorów do zapisu w pliku tekstowym nazw plików (w kolejności alfabetycznej) znajdujących się w danym katalogu (w przykładzie katalog /bin/ - polecenie: ls /bin/ | sort > pliki)

 image26

 

Drugi zaś przykład wyszukuje nam wszystkie pliki z rozszerzeniem jpg a wyniki wraz z sortowaniem zostają zapisane do pliku – polecenie: find / -name *.jpg | sort > zdjęcia

 image27

 

 

Dir i ls – zawartość katalogu


 

Wyświetlenie plików i katalogów znajdujących się w bieżącej lokalizacji następuje po wydaniu polecenia: dir (podobnie jak w systemie Windows).

 image28

 

Wyświetlenie zawartości katalogu może również odbyć się z wykorzystaniem polecenia: ls

 image29

 

Polecenia dir i ls zawierają szereg opcji (zobacz pomoc) lecz te najczęściej używane przełączniki to:

 

ls plik1 plik2 plik3 – listuje tylko wymienione pliki,

ls *.doc – pokaże wszystkie pliki o rozszerzeniu *.doc,

ls katalog1 katalog2 – listuje wymienione katalogi,

ls -l – szczegółowa lista plików wraz z atrybutami,

ls -a – pokaż pliki ukryte (czyli te których nazwa zaczyna się kropką),

ls -R – pokaż dodatkowo zawartość podkatalogów.

 

Dodatkowo fajnym poleceniem by wyświetlić drzewo katalogów i plików jest komenda: tree (w niektórych systemach trzeba doinstalować niezbędne pakiety – sudo apt-get install tree)

 image30

 

Dodatkowe parametry do polecenia tree:

 

-d – pokaż tylko katalogi,

-f – pokaż ścieżkę dostępu,

-a – pokaż wszystko,

-L <poziom> - poziom listowania katalogów,

-H – eksport do HTML-a,

-X – eksport do XML-a.

 

 

Cd oraz pwd – poruszanie się pomiędzy katalogami


 

Przejście pomiędzy katalogami realizujemy za pomocą polecenia: cd <nazwa_katalogu> możliwe jest wpisanie tylko pierwszych liter katalogu i dopełnienie nazwy za pomocą klawisza TAB (wielkość liter ma znaczenie). Przejście do katalogu wyżej następuje po wydaniu polecenia: cd ..

 image31

 

Użycie samego polecenia cd przeniesie nas do katalogu aktualnie zalogowanego użytkownika.

 

 

Mkdir – tworzenie folderu


 

Aby utworzyć katalog/katalogi należy wykorzystać polecenie: mkdir <nazwa_katalogu> Jak widać poniżej można za pomocą polecenia utworzyć wiele katalogów (nazwy katalogów po spacji).

 

image32

 

Aby zaś utworzyć katalog w nazwie którego zawarta jest spacja należy nazwę umieścić w cudzysłowie.

 image33

 

Do utworzenia pliku/plików należy wykorzystać polecenie: ls > <nazwa_pliku> (symbol > - znak przekierowania). Podobnie jak w przypadku polecenia tworzenia katalogu, nazwę pliku zawierającego spację umieszczamy w cudzysłowie.

 image34

 

 

Cp – kopiowanie plików


 

Kopiowanie plików pomiędzy katalogami następuje z wykorzystaniem komendy: cp <element_kopiowany> <lokalizacja> Na przykładzie poniżej, utworzony wcześniej plik o nazwie plik1 został skopiowany do katalogu o nazwie katalog2 (symbol .. nakazuje przejście w strukturze katalogów o jeden poziom wyżej, ponieważ kopiowanie następowało bezpośrednio z folderu katalog1)

 image35

 

Wydanie komendy: cp <nazwa_pliku> <nazwa_pliku> spowoduje utworzenie kopii danego pliku.

 image36

 

Inne przydatne wariacje polecenia cp poniżej:

 

cp tes* podkatalog/ – skopiuje wszystkie pliki zaczynające się na tes do ./podkatalog/

cp -r katalog1 ~ - wydanie polecenia spowoduje skopiowanie katalogu wraz z całą zawartością do katalogu domowego (home/nazwa użytkownika)

cp * katalog1 – kopiowanie wszystkich plików z bieżącej lokalizacji do folderu katalog1 (dodanie -r skopiuje również podkatalogi)

 

 

Mv – przenoszenie plików


 

Za pomocą polecenia: mv przeniesiemy plik bądź zmienimy jego nazwę. Wydanie komendy: mv <bieżąca_nazwa_pliku> <nowa_nazwa_pliku> zmieni nam nazwę pliku. Polecenia możemy również używać do operacji, które odnoszą się do katalogów.

 image37

 

Użycie następującej składni: mv <przenoszone_pliki> <miejsce_docelowe> zmieni nam lokalizację plików/katalogów. Poniżej przeniesienie pliku: plik1 z folderu katalog1 do folderu katalog2

 image38

 

Przy przenoszeniu plików często przydatny okazuje się parametr -u, który to jest odpowiedzialny za przeniesienie plików gdy źródło jest nowsze od celu albo nie ma celu.

 

 

Rm – kasowanie plików/katalogów


 

Aby skasować pliki należy posłużyć się poleceniem: rm <nazwa_pliku>

 image39

 

Dostępne są również przełączniki:

 

rm -r katalog – kasuje wszystko w zdefiniowanym katalogu tj. wszystkie pliki wraz z podkatalogami (--recursive)

rm -f plik – brak pytania o potwierdzenie kasowanych danych (--force)

 

Aby usunąć pusty katalog należy skorzystać z komendy: rmdir <nazwa_katalogu>

 image40

 

 

Chmod – prawa dostępu do plików


 

W systemie Linux każdy plik jak także katalog ma swoje określone prawa dostępu. Prawa te określają, kto i jaką czynność może z danym plikiem/katalogiem wykonać. Mamy do czynienia z prawem do odczytu, zapisu i wykonania. Oczywiście dany plik/katalog może mieć nałożoną różną kombinacje praw. Aby wykonać sprawdzenie praw dostępu posłuż się Czytelniku znanym już Tobie poleceniem: ls -l Na rysunku poniżej zostały przedstawione prawa dostępu do dwóch plików i jednego katalogu.

image41 

Po wyświetleniu praw dostępu do plików i katalogu (to ten pierwszy ciąg znaków od lewej) możemy przejść do analizy obowiązujących praw.

 

Każdy element (tutaj pliki i katalog) posiada zdefiniowane uprawnienia dla trzech grup: prawa dostępu właściciela pliku, prawa dostępu grupy, oraz prawa dostępu pozostałych. Prawa te przybierają formę zapisu dziesięcio elementowego ciągu znaków. Określone znaki na poszczególnych miejscach tego ciągu będą nas informowały o możliwości wykonania na pliku danych operacji. Już wiesz czytelniku, że prawa nakładane są trzem odrębnym grupom i do określenia tych praw zostało zarezerwowane 9 znaków (po trzy znaki na każdą grupę) zaś 10 znak lecz pierwszy w kolejności będzie nam mówił z jakim elementem będziemy mieli do czynienia. Poniżej lista wartości jaka może wystąpić na pierwszym miejscu wraz z opisem:

 

- – zwykły plik,

d – katalog/folder,

l – symlink czyli dowiązanie symboliczne,

s – gniazdo,

f – FIFO,

c – urządzenie znakowe,

b – urządzenie blokowe.

Natomiast prawa są określane za pomocą następujących symboli:

r – prawo do odczytu (wartość 4),

w – prawo do zapisu (wartość 2),

x – prawo do wykonania (wartość 1).

 

Tak więc uzbrojeni w tą wiedzę spróbujmy rozszyfrować prawa elementów zaprezentowanych na rysunku powyżej (wartości podane w nawiasach zostaną omówione za chwilę).

-rw-rw-r-- prawo właściciela do odczytu i zapisu lecz nie do wykonania (ciąg: rw-), prawo grupy do odczytu i zapisu lecz nie do wykonania (ciąg: rw-), pozostali tylko prawo do odczytu (ciąg: r--),

-rw-r--r-- prawo właściciela do odczytu i zapisu lecz nie do wykonania (ciąg: rw-), prawo grupy do odczytu lecz nie do zapisu i wykonania (ciąg: r--), pozostali tylko prawo do odczytu (ciąg: r--),

drwxrwxr-x prawo właściciela do odczytu, zapisu i wykonania (ciąg: rwx), prawo grupy do odczytu, zapisu i wykonania (ciąg: rwx), pozostali prawo do odczytu i wykonania lecz brak praw do zapisu (ciąg: r-x), symbol d oznacza, że mamy do czynienia z katalogiem.

 

Tak więc chcąc zmienić prawa do danego pliku bądź katalogu musimy posłużyć się poleceniem: chmod Ogólna składnia użycia polecenia wygląda następująco: chmod <opcje> <grupa> <uprawnienia> <plik/katalog> bądź chmod <opcje> <wartość_liczbowa> <plik/katalog>

 

W poleceniu stosujemy następujące symbole:

 

grupa docelowa co do których praw mają obowiązywać: u - user, g - group, o - others, a – all

uprawnienia: r - read, w - write, x – execute

+ - dodanie uprawnień, - - odebranie uprawnień

 

Tak więc wykonajmy mały przykład. Naszym zadaniem będzie odebranie prawa odczytu i wykonania grupie pozostali. Jak widzimy poniżej grupa pozostali ma prawo wykonania tych operacji odnośnie folderu katalog1 By odebrać im te uprawnienia należy wydać polecenie: chmod o-r-x katalog1 Po ponownym sprawdzeniu uprawnień można zauważyć, że poszczególne prawa zostały odebrane.

 image42

 

Aby zaś nadać praw odczytu, zapisu i wykonania dla wszystkich grup możemy użyć komendy: chmod a+r+w+x katalog 1 bądź krócej: chmod a+rwx katalog1

 image43

 

Aby odebrać grupie prawo do zapisu i jednocześnie pozostałym odebrać wszystkie prawa skorzystaj z komendy: chmod g-w,o-rwx katalog1

 image44

 

Wcześniej w opisie przy każdym z praw podałem pewne wartości liczbowe, skorzystanie z tych wartości jest znacznie wygodniejszym sposobem nadawania i odbierania praw. Aby zbudować polecenie posłuż się tabelą i przykładem zamieszczonym poniżej. Naszym celem jest nadanie następujących praw do folderu katalog1: prawa użytkownika - wszystkie, prawa grupy - odczyt i wykonanie a dla pozostałych tylko odczyt. By wykonać to zadanie możemy posłużyć się poleceniem: chmod 754 katalog1

 

image45

 

Efekt wydania polecenia.

 image46

 

Skąd ta liczba i jak ją obliczyć? Cyfry w prawach dostępu to:

 

pierwsza cyfra to prawa właściciela do pliku;

druga – grupy właściciela;

trzecia – wszystkich innych.

 

Jeżeli chcemy wykonać nasz zadanie otrzymujemy:

 

prawa właściciela: odczyt+zapis+wykonanie czyli 4+2+1=7,

prawa grupy: odczyt+wykonanie czyli 4+1=5

prawa pozostałych: odczyt czyli 4

 

Tak więc za pomocą tak obliczonego kodu liczbowego możemy przeprowadzić ustawienie uprawnień do plików i katalogów.

 

I na koniec warto wspomnieć jeszcze o jednym parametrze a mianowicie opcji: -R, która pozwala nam ustalić prawa dla wszystkich plików/katalogów znajdujących się np. w katalogu.

 

Na sytuacji przedstawionej na rysunku poniżej wszystkie pliki i podkatalogi znajdujące się w folderze katalog1 mają ustawione wszystkie prawa (sam folder również – pkt 1 oraz pkt 2) Za pomocą komendy: chmod -R 707 katalog1 zostały odebrane wszelkie prawa dla grupy (pkt 3) Po sprawdzeniu praw dla folderu i plików znajdujących się w tym folderze widać, że prawa mają zastosowanie (pkt 5 i pkt 6) z wyjątkiem jednego pliku – plik2 (pkt 7), zmiana praw nie mogła być zastosowana (pkt 4) ponieważ plik ten należy do użytkownika root.

 image47

 

 

Chown, chgrp - zmiana właściciela pliku/katalogu


 

Czasem istnieje potrzeba zmiany właściciela pliku, bądź przypisania do praw pliku danej grupy. Operację tą możemy wykonać za pomocą polecenia: chown. Ogólna składnia polecenia jest następująca: chown <opcje> <użytkownik/grupa> <plik/katalog>

 

Poniżej przykład zmiany właściciela pliku: plik2 Plik ten należy do użytkownika root, po wydaniu polecenia: chown luk plik2 nowym właścicielem pliku staje się użytkownik luk.

 image48

 

Zmiana przynależności do pliku jest również możliwa z użyciem UID użytkownika. Identyfikator UID jest przyznawany każdemu nowemu użytkownikowi i jest on niepowtarzalny. Aby poznać identyfikator użytkownika wydaj polecenie: id <nazwa_użytkownika> Naszym celem będzie ponowne przypisanie praw właściciela użytkownika root do pliku: plik2 UID użytkownika root to 0. Wydanie komendy: chown 0 plik2 spowoduje ustawienie właściciela pliku: plik2 na użytkownika root.

 image49

 

Wprawne oko co niektórych czytelników na pewno zauważyło, że po wydaniu przedstawionych powyżej komend chown zmieniła się tylko przynależność właściciela pliku a nie grupy. By zmienić właściciela pliku odnośnie grupy po zdefiniowaniu nazwy użytkownika podajemy nazwę grupy. Nazwa użytkownika i nazwa grupy są oddzielone dwukropkiem.

 

Poniżej ponownie przykład zmiany właściciela pliku: plik2 tym razem zmianie ulega właściciel i grupa. Gdy nazwa grupy i użytkownika jest taka sam wystarczy, że po definicji użytkownika wstawimy sam dwukropek. Czyli zmianę przynależności dla przykładu poniżej można by było zrealizować za pomocą polecenia: chown luk: plik2

 image50

 

I tu również można wykorzystać identyfikator użytkownika i identyfikator grupy.

 image51

 

Zmiana przynależności samej grupy odbywa się za pomocą przykładowego polecenia: chown :luk plik2 (opuszczamy definicję użytkownika i po dwukropku podajemy nazwę grupy).

 image52

 

Aby zmienić właściciela wszystkich plików i podkatalogów skorzystaj z przełącznika -R.

 image53

 

Innym sposobem zmiany przynależności pliku/katalogu do grupy jest skorzystanie z polecenia: chgrp <nazwa_grupy> <plik/katalog> Poniżej na zrzucie został przedstawiony przykład zmiany grupy dla pliku: plik2 Grupa z root została zmieniona na luk.

 image54

 

 

Find, Locate, Which – wyszukiwanie plików


 

Aby wyszukać dany plik bądź katalog należy użyć polecenia: find -name <nazwa_szukanego elementu> Poniżej przykład odszukania elementów zawierających ciąg tmp.

 image55

 

Użycie znaku gwiazdki powoduje wyszukanie plików pasujących do danego wzorca np. polecenie: find -name temp* spowoduje wyszukanie wszystkich plików zaczynających się od słowa temp

 

Aby znaleźć pliki ze względu na ich rozmiar możemy posłużyć się np. poleceniem find -size 5k – wyszukanie plików, których rozmiar wynosi 5 kB, aby wyszukać pliki o rozmiarze większym niż 5 kB dodajemy znak plus natomiast o rozmiarze mniejszym znak minus np. find -size +5k

 image56

 

Aby odszukać pliki ze względu na uprawnienia do plików możemy posłużyć się poleceniem: find <uprawnienie> Polecenie ukaże pliki o określonym stanie w kontekście użytkownika wydającego polecenie. Uprawnienia jakie możemy wyszukiwać to:

 

-readable – prawo do odczytu,

-writable – prawo do zapisu,

-executable – prawo do wykonania.

 

Jak można zauważyć poniżej użytkownik luk wydaje polecenie odszukania wszystkich plików, które ma prawo czytać a następnie wszystkich plików, które może zapisywać. Dwa pliki: plik2 i plik3 które należą do użytkownika root w wynikach wyszukiwania plików do odczytu pojawiają się lecz w wynikach do zapisu już nie. Użytkownik luk może te pliki przeglądać ponieważ atrybut dla pozostałych ustawiony jest na read dając tym samym prawo do przeglądania wszystkim.

 image57

 

Do wyszukiwania plików pod kątem uprawnień możemy również użyć przełącznika: -perm <kod_chmode> Tworzenie kodu chmod zostało opisane wyżej tak więc chcąc odnaleźć pliki do których użytkownik ma prawo odczytu (bo atrybut odczytu jest ustawiony w sekcji pozostali) można użyć polecenia: find -perm -004 Opcja -type f nakazuje wyświetlenie tylko plików.

 image58

 

Polecenie: find -perm -004 wyświetla te pliki, które mają ustawiony atrybut read w sekcji pozostali, reszta pól nie jest brana pod uwagę, ważne jest by ten konkretny atrybut był zdefiniowany (dlatego w wyniku wyszukiwania zostały umieszczone oba pliki).

 

Aby odnaleźć plik z konkretnie ustawionym atrybutem chmod należy podać samą wartość atrybutu (dlatego tylko jeden plik został umieszczony w wyniku wydania drugiego polecenia, ponieważ tylko ten jeden plik spełnia warunek).

 

Użycie znaku / spowoduje wyszukanie wszystkich plików do których zdefiniowana wartość chmod pasuje. Na rysunku poniżej użytkownik do jednego pliku ma dostęp poprzez to że jest ich właścicielem a do drugiego poprzez członkostwo w grupie pozostali.

 image59

 

Polecenie: find -perm 400 wyszuka tylko te pliki którem mają ustawiony kod chmod na 400 (czyli plik: plik1), drugie polecenie: find -perm 004 pokaże pliki z atrybutem 004 (czyli plik: plik2) natomiast komenda: find -perm /404 wszystkie pliki z ustawionymi atrybutami: 400, 004 oraz 404

 

Poleceniem find oprócz znajdowania plików z określonymi atrybutami może zostać wykorzystane również do odnalezienia plików konkretnego użytkownika bądź grupy.

 

Aby wyszukać pliki, konkretnego użytkownika należy skorzystać z flagi -user bądź -uid. Opcja user jest łączona z nazwą użytkownika ale także jego numerem uid natomiast flaga uid tylko z identyfikatorem użytkownika. Aby poznać numer użytkownika posłuż się poleceniem: id -u <nazwa_użytkownika> bądź echo $UID

 image60

 

Innym poleceniem pozwalającym nam na zlokalizowanie plików jest komenda: locate <nazwa_szukanego_elementu> Aby zignorować wielkość znaków użyj przełącznika -i.

 image61

 

Szybsze wyszukanie plików zapewnia nam polecenie: locate ponieważ polecenie to korzysta z bazy danych, która to przechowuje informacje o położeniu plików. Baza ta co jakiś czas jest aktualizowana przez jedno z zadań programu cron. Manualne odświeżenie bazy następuje po wydaniu komendy: updatedb

 

Do lokalizacji plików wykonywalnych możemy użyć polecenia: which <nazwa_programu> Poniżej jako przykład lokalizacja programu firefox oraz vim.

 image62

 

 

File – informacja o typie pliku


 

Narzędzie file dostarcza nam informacji o tym z jakim plikiem mamy do czynienia. Składnia polecenia: file <nazwa_pliku> Jak można zauważyć na rysunku poniżej wydanie polecenia odnośnie plików: plik, plik2 oraz bash zwróciło nam informację iż pierwszy jest dokumentem XML, drugi plikiem HTML a ostatni zaś plikiem binarnym.

 

image63 

Polecenie: grep jest wykorzystywane do odszukania danej wartości, lub danych które będą pasować do wzorca. Ogólna składnia polecenia jest następująca: grep <opcje> <wzorzec> <przeszukiwany_plik>

 

Poniżej został utworzony plik, który zawiera listę załadowanych modułów i w pliku tym poszukujemy informacji na temat modułu Bluetooth. Po wpisaniu polecenia: grep Bluetooth plik3 nakazującego przeszukanie w plik3 wystąpienia słowa Bluetooth nie uzyskujemy żadnej informacji gdyż szukany ciąg nie wystąpił w przeszukiwanym pliku. A może problemem jest wielkość liter? Aby to sprawdzić w kolejnym poleceniu został dodany przełączki -i który każe poleceniu grep zignorować wielkość liter. Tym razem uzyskujemy informację, że poszukiwany ciąg został odnaleziony.

 image64

 

Wzorce poszukiwanych ciągów tekstowych możemy budować w zależności od kryteriów jakie muszą spełniać. Poniżej na rysunku wzorzec, który każe wyszukać ciągi znaków w których znajdują się litery xyz – polecenie: grep [xyz] plik3

 image65

 

Jeszcze jeden przykład, który szuka tekstu snd_ przy czym tekst ten musi wystąpić a po nim może znajdować się dowolna mała litera od a do z – polecenie: grep snd_[a-z] plik3

 image66

 

Przykładów wykorzystania polecenia grep można podać bardzo wiele, wszystko zależy od tego co tak naprawdę szukamy. A na pewno pomocne będą poniższe wyrażenia, które pozwolą nam na zbudowanie kryteriów, przeszukujących plik pod kątem naszych oczekiwań:

 

[xyz] – pasuje do x lub do y lub do z,

[a-z] – pasuje do wszystkich liter od a do z

[A-Za-z] – pasuje do dowolnej dużej i małej litery,

[0-9] – pasuje do dowolnej z cyfr,

[^xy] – pasuje do wszystkich znaków za wyjątkiem x i y,

. – dowolny znak,

^ – pusty łańcuch na początku linii,

$ – pusty łańcuch na końcu linii,

\< – pusty łańcuch na początku słowa,

\> – pusty łańcuch na końcu słowa.

Oprócz wyrażeń do dyspozycji mamy również opcje:

-i – zignoruj wielkość liter,

-v – wypisz te wiersze, które nie pasują do zbudowanego wzorca,

-f – porównaj wiersze wg wzorców zapisanych w pliku,

-c – zwróć liczbę wierszy pasujących do wzorca,

-n – wypisz numer wiersza, w którym zostało odnalezione dopasowanie,

-l – wypisz tylko nazwy plików w których znajduje się poszukiwany tekst,

-w – wyszukuje konkretny ciąg wyrazowy oznacza to że jeżeli szukany tekst to np. ta to zwrócone zostaną tylko te wartości w których ten tekst wystąpi, nie zostanie zwrócone np. słowo tata

-r – szukanie rekursywnie tzn. przeszukiwane są również podkatalogi,

-E – interpretuje wzorzec jako wyrażenie regularne.

 

Przy używaniu grep należy pamiętać, że aby znaleźć wyrazy zawierające następujące znaki: + | { } ( ) ? . znaki te trzeba zamaskować – maskujemy wykorzystując do tego prawy ukośnik \

To na koniec jeszcze parę przykładów:

 

grep zdjecie\.jpg plik.txt – gdy w poszukiwanym wyrazie chcemy odnaleźć kropkę wówczas znak kropki musimy zamaskować używając do tego prawego ukośnika, szukany ciąg to zdjecie.jpg

grep joan*a plik.txt – użycie * oznacza, że poprzedzający gwiazdkę element będzie dopasowany zero lub dowolną ilość razy, wydanie polecenia zwróci tekst: joana a także joanna czy joannna

grep komputer * – polecenie wyszuka wyraz komputer we wszystkich plikach bieżącego katalogu

grep ka$ plik.txt – wyrazy kończące się na ka czyli np. pralka, walka itd.

grep -E "^a|^b" plik.txt – zostaną wybrane wiersze zaczynające się znakiem a lub b (znak | oznacza lub)

 

 

Kompresja plików – narzędzia ZIP, TAR i RAR


 

W każdym szanującym się systemie istnieje możliwość utworzenia plików archiwum, zawierających skompresowane dane. W systemie Linux najpopularniejszymi narzędziami są programy ZIP i TAR. Programy te pozwalają nam na „pakowanie” wielu plików do jednego archiwum jak i na późniejsze wyodrębnienie tych plików z archiwum.

 

Aby utworzyć plik archiwum ZIP możemy posłużyć się poleceniem: zip <nazwa_archiwum> <pliki> Poniżej zostało utworzone archiwum spakowane.zip zawierające trzy pliki: plik, testwp, zdjecia

 image67

 

Aby spakować cały katalog można posłużyć się symbolem wieloznacznym *.* bądź gdy chcemy dodać pliki określonego rodzaju np. pliki tekstowe - *.txt

 

Dodanie plików do archiwum odbywa się poprzez odwołanie się do wcześniej utworzonego pliku archiwum wraz z nazwą plików, które chcemy dodać. Odwołując się do przykładu powyżej aby do archiwum spakowane.zip dodać plik dane należałoby posłużyć się poleceniem: zip spakowane.zip dane

 

Sprawdzenie zawartości archiwum bez jego rozpakowania możemy wykonać za pomocą komendy: unzip -l <archiwum> Jak można zauważyć plik dane został dodany do pliku archiwum spakowane.zip.

 image68

 

Aby z pliku spakowane.zip wyodrębnić „spakowane” pliki, plik archiwum został przekopiowany do katalogu: /home/Dokumenty/katalog2 a następnie została wydana komenda: unzip <plik_archiwum> nakazująca wyodrębnienie plików.

 image69

 

Narzędzie ZIP jest używane z reguły do kompresji plików, które np. mają zostać wysłane do osoby nie korzystającej z systemu Linux natomiast w przypadku osób posiadających system Linux bardziej odpowiednią opcją wydaje się wybranie drugiego narzędzia a mianowicie TAR.

 

Opis narzędzia wykonam na tym samy zestawie danych jakie zostały wykorzystane do omówienia programu ZIP.

 

Aby użyć narzędzia TAR celem skompresowania plików należy wydać komendę: tar cvzf <nazwa_archiwum> <pliki>

 image70

 

Aby podejrzeć pliki znajdujące się w archiwum skorzystaj z polecenia: tar tvzf spakowane.tar.gz

 image71

 

Aby zaś rozpakować pliki należy użyć komendy: tar xvzf <skapowane_archuwum> Na przykładzie poniżej spakowane archiwum zostało skopiowane do folderu katalog2 i następnie wyodrębniono pliki.

 image72

 

W przypadku plików RAR należy w pierwszej kolejności doinstalować aplikacje odpowiedzialne za obsługę tego typu plików: sudo apt-get install rar unrar (rar potrafi nam kompresować i dekompresować pliki, natomiast unrar tylko dekompresować).

 image73

 

Kompresja plików odbywa się za pomocą polecenia: rar a <nazwa_pliku_rar> <pliki/katalogi> Po wydaniu polecenia następuje kompresja plików.

 image74

 

Test archiwum odbywa się poprzez użycie przełącznika: t

 image75

 

Dodanie pliku do archiwum odbywa się również dzięki ustawionej fladze a z zdefiniowanymi plikami, które chcemy do archiwum dodać (w przykładzie poniżej do wcześniej utworzonego archiwum spakowane.rar został dodany plik dane)

 image76

 

Kasowanie pliku z archiwum możemy wykonać za pomocą przełącznika d (wcześniej dodany plik dane został z archiwum usunięty)

 image77

 

Dekompresja archiwum odbywa się za pomocą polecenia: rar e <plik_rar>

 image78

 

Inne przydatne opcje:

 

-u – aktualizacja plików w archiwum,

-p – ustawienie hasła,

-r – kompresja wraz z podkatalogami,

-c – komentarz do archiwum.

 

 

Stat informacje o stanie pliku bądź sytemu plików.


 

Wydając polecenie stat <nazwa_pliku/katalogu> uzyskamy podstawowe informacje dotyczące danego pliku a także dane o operacjach wykonywanych na pliku (prawa dostępu, właściciel, czasy zmiany, modyfikacji itd.) natomiast dodając przełącznik -f uzyskamy informacje o pliku w kontekście systemu plików.

 image79

 

Dane uzyskane dzięki poleceniu możemy sformatować według własnego uznania poprzez zastosowanie przełączników podanych poniżej. Np. chcąc uzyskać informacje o prawach dostępu do plików w postaci ósemkowej i tradycyjnej należy wydać polecenie: stat -c %a%A <nazwa_pliku>

 image80

 

Prawidłowe specyfikacje formatu dla plików (bez opcji --file-system):

 

%a – prawa dostępu ósemkowo,

%A – prawa dostępu w postaci czytelnej dla człowieka,

%b – liczba zajętych bloków (zobacz %B),

%B – rozmiar w bajtach każdego bloku podanego przez %b,

%C – kontekst bezpieczeństwa,

%d – numer urządzenia dziesiętnie,

%D – numer urządzenia szesnastkowo,

%f – tryb surowy, szesnastkowo,

%F – typ pliku,

%g – numer grupy właściciela pliku,

%G – nazwa grupy właściciela pliku,

%h – liczba dowiązań zwykłych,

%i – numer i-węzła,

%m – miejsce zamontowania,

%n – nazwa pliku,

%N – nazwa pliku w cudzysłowach, rozwiązana jeżeli dowiązanie symboliczne,

%o – optymalny rozmiar wielkości transferu wejścia/wyjścia,

%s – całkowity rozmiar w bajtach,

%t – większy numer urządzenia szesnastkowo,

%T – mniejszy numer urządzenia szesnastkowo,

%u – identyfikator właściciela,

%U – nazwa właściciela,

%w – czytelny dla człowieka czas utworzenia pliku albo - jeżeli nieznany,

%W – czas utworzenia pliku w sekundach albo - jeżeli nieznany,

%x – czytelny dla człowieka czas ostatniego czytania,

%X – czas ostatniego czytania w sekundach,

%y – czytelny dla człowieka czas ostatniej modyfikacji,

%Y – czas ostatniej modyfikacji w sekundach

%z – czytelny dla człowieka czas ostatniej zmiany czasu,

%Z – czas ostatniej zmiany czasu w sekundach.

 

Prawidłowe specyfikacje formatu dla systemów plików:

 

%a – liczba wolnych bloków dostępnych dla zwykłego użytkownika,

%b – całkowita liczba bloków danych w systemie plików,

%c – całkowita liczba i-węzłów w systemie plików,

%d – liczba wolnych i-węzłów w systemie plików,

%f – liczba wolnych bloków w systemie plików,

%i – identyfikator systemu plików szesnastkowo,

%l – maksymalna długość nazw plików,

%n – nazwa pliku,

%s – optymalny rozmiar bloku przy zapisie/odczycie,

%S – podstawowy rozmiar bloku (dla zliczeń bloków),

%t – rodzaj systemu plików szesnastkowo,

%T – rodzaj systemu plików w formie czytelnej dla człowieka.

 

 

Du – wielkość plików/katalogów


 

Aby poznać wielkość jaką pliki bądź katalogi zajmują na dysku możemy skorzystać z polecenia: du Domyślnie wydanie polecenia powoduje wyświetlenie objętości plików i podkatalogów odnośnie katalogu w którym się znajdujemy. Dodanie do polecenia nazwy pliku bądź katalogu spowoduje wyświetlenie objętości pliku/katalogu.

 image81

 

Przydatne opcje:

 

-b – wielkość pliku podawana w bajtach,

-k – wielkość pliku podawana w kilobajtach,

-m – wielkość pliku podawana w megabajtach,

-h – automatyczny dobór wyświetlanej jednostki,

-c – podsumowanie na końcu,

-s – jedynie całkowita wielkość.

 

 

Zawartość pliku


 

W systemie Linux istnieje szereg poleceń pozwalających nam na podejrzenie zawartości interesującego nas pliku. Poniżej przedstawię kilka przykładów, choć zaprezentowaną przeze mnie gamę poleceń pewnie można jeszcze uzupełnić o dodatkowe.

 

Pierwsza polecenie, które chciałbym przedstawić jest to komenda: less Polecenie to umożliwi nam zajrzenie do pliku, przy czym prezentowana wartość wyświetlana jest kolejno po jednej stronie. Wydanie np. polecenia: less /var/log/syslog.1 wyświetli nam zawartość pliku syslog.1

 image82

 

Po wciśnięciu klawisza: h w trakcie działania polecenia zostanie wyświetlona pomoc programu. W pomocy zawarte są informacje dotyczące działania programu dotyczące np. sposobu wyświetlania zawartości pliku.

 

Dodatkowo podczas wywołania programu można skorzystać z szeregu opcji pozwalających nam na określenie sposobu działania programu. Przydatne flagi to:

 

-N – numeracja wyświetlanych wierszy,

-c – wyczyszczenie ekranu, przed wyświetleniem następnego,

-m – informacja o procencie wyświetlonego pliku,

-s – puste wiersze są redukowane do jednego,

-S – wyłączenie zawijania wierszy, teks jest przycięty do szerokości ekranu.

 

Użycie polecenia: head spowoduje wypisanie pierwszych dziesięciu wierszy pliku. Polecenia można używać by szybko zorientować się co w danym pliku się znajduje.

 image83

 

Parametry na, które mamy wpływ to:

 

-<liczba> - wyświetlenie zdefiniowanej liczby wierszy,

-c <liczba> - wyświetlenie zdefiniowanej liczby bajtów pliku,

-q - tryb cichy, polecenie head przy większej ilości zdefiniowanych do wyświetlenia plików nie wyświetla nagłówka pliku zawierającego jego nazwę.

 

Podobnym poleceniem, które możemy użyć do szybkiego zbadania zawartości pliku jest polecenie: tail tylko w przeciwieństwie do head wydanie komendy spowoduje wyświetlenie ostatnich dziesięciu wierszy.

 image84

 

Parametry na, które mamy wpływ to:

 

-<liczba> - wyświetlenie zdefiniowanej liczby wierszy,

-c <liczba> - wyświetlenie zdefiniowanej liczby bajtów pliku,

-q - tryb cichy, polecenie tail przy większej ilości zdefiniowanych do wyświetlenia plików nie wyświetla nagłówka pliku zawierającego jego nazwę,

-f - użycie tej flagi spowoduje otwarcie pliku i jego ciągłe monitorowanie, nowe wiersze będą się pojawiać w miarę dodawania nowych informacji do otwartego pliku. Użycie tego parametru świetnie nadaje się do przeglądania wszelkiego rodzajów logów monitorujących stan systemu.

 

Innym programem, który pozwoli nam na podejrzenie zawartości pliku jest: cat

 image85

 

Niektóre parametry programu to:

 

-s - użycie flagi spowoduje połączenie pustych następujących po sobie wierszy w jeden,

-b - numerowanie nie pustych wierszy,

-n - numerowanie wierszy

 

Gdy istnieje potrzeba numeracji wierszy w danym pliku możemy do tego celu użyć komendy: nl

 image86

 

Parametry:

 

-v <liczba> - rozpoczęcie numeracji od zdefiniowanej liczby,

-i <liczba> - zdefiniowanie licznika numeracji czyli wartość o jaką będą się zmieniały kolejne numerowane wiersze,

-b <a><t><n><pW> - określenie sposobu numerowania: -ba numeracja wszystkich wierszy; -bt numeracja niepustych wierszy; -bn brak numerowania; -pW numerowanie tylko tych wierszy, które zawierają zdefiniowane wyrażenie W,

-n <ln><rn> - wyrównanie numeracji: -nln wyrównanie do lewej strony, -nrn wyrównanie do prawej strony,

-w <liczba> - ustalenie szerokości przeznaczonej na numerację,

-s <znak> - ustalenie znaku, który zostanie wstawiony pomiędzy numerację a tekst (domyślnie jest to znak tabulacji).

 

Aby wydobyć ciągi tekstowe z blików binarnych możemy posłużyć się poleceniem: strings Polecenie przydatne, gdy chcemy poznać wersję czy autora danego programu.

 image87

 

W przypadku potrzeby przeglądnięcia pliku binarnego możemy skorzystać z dwóch programów: pierwszy z nich to od drugi to zaś xxd.

 

W przypadku pierwszego mamy możliwość wyświetlenia zawartości pliku w postaci ósemkowej (domyślna wartość), dziesiętnej (flaga: -Ad) lub heksadecymalnej (flaga: -Ax).

 image88

 

Drugi program dane prezentuje w formie heksadecymalnej bądź binarnej (flaga: -b)

 image89

 

Aby przeglądać pliki PDF możemy skorzystać z programu xpdf lub gv.

 image90

 

I tu chciałbym zakończyć, mam nadzieję, że nie zraziłeś się Czytelniku do takiej formy komunikacji z systemem i że dalej będziesz chciał odkrywać tajniki tej formy dogadania się z Linuxem. W kolejnym wpisie zajmiemy się kontrolą procesów oraz użytkownikami.

 


 

Bibliografia:

 

http://www.computerhope.com/unix/uchmod.htm

http://krnlpanic.com/wp/linux-file-and-directory-permissions-explained/

http://rtfq.net/linux/linux-single-user/permissions-basic-command-line-tutorial/

Ostatnio zmieniany czwartek, 04 luty 2016 21:41
Etykiety
  • BASH
  • Linux
  • Ubuntu
  • history
  • jobs
  • alias
  • ls
  • tty
  • sort
  • find
  • su
  • sudo
  • dir
  • tree
  • cd
  • mkdir
  • cp
  • mv
  • rm
  • rmdir
  • chmod
  • chown
  • chgrp
  • id
  • locate
  • grep
  • zip
  • unzip
  • tar
  • rar
  • stat
  • du
  • head
  • tail
  • cat
  • nl
  • strings
  • od
  • xxd
  • xpdf

Artykuły powiązane

  • Macierze RAID w systemie Linux
  • Atak na warstwę 2 modelu ISO/OSI - preludium
  • Windows i Linux w jednej stali sieci.
  • Serwer Syslog (po raz drugi) z wykorzystaniem systemu Linux.
  • Jest we mnie MOC. Wstęp do PowerShella.
Więcej w tej kategorii: « FTP w wydaniu Linux Ubuntu Dogadać się z Linuxem. Zarządzanie procesami. »

Dodaj komentarz



Odśwież

Wyślij
Skasuj

Komentarze  

# Noah 2017-05-17 06:10
Artykuł super. Czekam na więcej
Cytować
Odśwież komentarze
JComments
Powrót na górę

Wujek dobra rada

Szybkie pytania i szybkie odpowiedzi czyli garść porad do wykorzystania w codziennej pracy z komputerem.

  • Jak utworzyć RAMdysk w systemie Windows? Jak utworzyć RAMdysk w systemie Windows?

    RAMdysk jest wydzieloną częścią pamięci, która w systemie operacyjnym jest widziana jak kolejny dysk/partycja. Praca z tak wydzielona przestrzenią pamięci odbywa się jak z normalnym dyskiem. Dostępne są wszystkie operacje związane z plikami.  

    Napisano poniedziałek, 04 grudzień 2017 21:44
  • Bezpieczny pendrive Bezpieczny pendrive

    Jak zabezpieczyć nasze dane w sytuacji utraty pendiva/karty pamięci.

    Napisano czwartek, 29 czerwiec 2017 12:00
  • Wyszukiwanie plików w systemie Windows Wyszukiwanie plików w systemie Windows

    Krótki opis jak wyszukać pliki przy wykorzystaniu Eksploratora plików.

    Napisano sobota, 17 czerwiec 2017 20:31
  • Diagnostyka pamięci RAM Diagnostyka pamięci RAM

    Jak zdiagnozować uszkodzenie modułu pamięci RAM

    Napisano wtorek, 16 maj 2017 12:39
  • Konwersja maszyny fizycznej na wirtualną (odsłona druga). Konwersja maszyny fizycznej na wirtualną (odsłona druga).

    W poprzednim wpisie (Konwersja maszyny fizycznej na wirtualną) opisałem konwersję maszyny fizycznej do wirtualnej, efektem Naszych działań było przeniesienie systemu działającego na fizycznym hoście do środowiska opartego o oprogramowanie Vmware. Zaś w tym wpisie wykonamy podobne działanie lecz efektem będzie uzyskanie maszyny działającej w VirtualBox.

    Napisano czwartek, 04 maj 2017 11:53
Czytaj więcej...

Najczęściej komentowane

  • Jak wyznaczyć broadcast, adres sieci i liczbę hostów? (+19)
  • Instalacja Windows XP/Vista/7 z pendriv'a. (+12)
  • Dostęp zdalny oraz prawa użytkownika w urządzeniach CISCO (+12)
  • Co w sieci siedzi. Protokół DNS. (+10)
  • Windows i Linux w jednej stali sieci. (+8)

Najnowsze komentarze

  • Dzak 07.09.2020 17:32
    Witam. Nie rozumiem dlaczego zamiast podziału na podsieci nie możemy po prostu ustanowić 7 lokalnych ...
     
  • fgm 03.09.2020 06:47
    jak nie pamietam daty rozszezenia i dokladnej nazwy tylko podobna to jak wyszukac taki plik lub wiele ...
     
  • Andrzej 13.08.2020 07:26
    Usunięcie x z /etc/passwd uważam za niebezpieczne rozwiązanie. Ponieważ po takiej operacji i ustawieniu ...
     
  • Andrzej 13.08.2020 07:15
    To zdanie Utworzenie użytkownika w ten sposób powoduje wyłączenie konta poprzez wstawienie znaku x w ...
     
  • goodbye world 01.07.2020 10:20
    Będą jakieś nowe wpisy?

Ostatnio komentowane

  • Słów kilka o adresacji sieci. (3)
  • Wyszukiwanie plików w systemie Windows (1)
  • Dogadać się z Linuksem. Zarządzanie kontem użytkownika. (3)
  • Yubico czyli jak chronić dostęp do naszych kont (6)
  • Atak na warstwę 2 modelu ISO/OSI - preludium (4)

Popularne tagi

80211 Active Directory arkusz kalkulacyjny CISCO cmd DHCP domena EXCEL filtrowanie formuła FTP funkcja GPO grupy jednostka organizacyjna JEŻELI kontroler LibreOffice Linux MSOffice panel sterowania PowerShell przełącznik rejestr Router Serwer SUMA switch TCP trunk Ubuntu UDP usługi VirtualBox VLAN warstwa 2 warstwa 3 warstwa sieciowa warstwa łącza danych wifi Windows wirtualizacja WORD zakres ŚREDNIA

UWAGA! Ten serwis używa cookies

Brak zmiany ustawienia przeglądarki oznacza zgodę na to.

Zrozumiałem

Created by: clivio.pl

Copyright © Created by: 2022 All rights reserved. Custom Design by Youjoomla.com
Home