Narzędzia użytkownika

Narzędzia witryny


so:intro

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
so:intro [2023/02/27 22:56]
jkonczak
so:intro [2025/04/07 19:59] (aktualna)
jkonczak
Linia 24: Linia 24:
 <​html><​small></​html>​ <​html><​small></​html>​
  
-GNU/Linux+Linux, dystrybucja Linuksa, ​GNU/Linux
   * [[https://​www.gnu.org/​gnu/​gnu.html|GNU]] to zbiór wolnego oprogramowania,​ które łącznie tworzy system operacyjny uzupełniony o szeroki wybór oprogramowania użytkowego [[https://​www.gnu.org/​manual/​blurbs.html]]   * [[https://​www.gnu.org/​gnu/​gnu.html|GNU]] to zbiór wolnego oprogramowania,​ które łącznie tworzy system operacyjny uzupełniony o szeroki wybór oprogramowania użytkowego [[https://​www.gnu.org/​manual/​blurbs.html]]
   * jądro GNU, [[https://​www.gnu.org/​software/​hurd/​|Hurd]],​ nie jest jeszcze na zadowalającym poziomie (od 30 lat…)   * jądro GNU, [[https://​www.gnu.org/​software/​hurd/​|Hurd]],​ nie jest jeszcze na zadowalającym poziomie (od 30 lat…)
   * więc oprogramowanie GNU jest zwykle uruchamiane na kernelu Linux   * więc oprogramowanie GNU jest zwykle uruchamiane na kernelu Linux
   * większość dystrybucji Linuksa zawiera dużą ilość oprogramowania nie będącego częścią GNU (i niekoniecznie będącego wolnym bądź otwartym oprogramowaniem)   * większość dystrybucji Linuksa zawiera dużą ilość oprogramowania nie będącego częścią GNU (i niekoniecznie będącego wolnym bądź otwartym oprogramowaniem)
 +  * kilka dystrybucji Linuksa jest w większości oparte na wolnym i/lub otwartoźródłowym oprogramowaniu spoza projektu GNU i dostępnym na licencjach niezwiązanych z GNU
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 58: Linia 59:
   * Apple w swoich systemach (np. MacOS) dostarcza zmodyfikowane narzędzia z BSD [[https://​opensource.apple.com/​releases/​|[1]]] [[https://​github.com/​apple-oss-distributions/​file_cmds|[2]]] [[https://​github.com/​apple-oss-distributions/​text_cmds|[3]]]   * Apple w swoich systemach (np. MacOS) dostarcza zmodyfikowane narzędzia z BSD [[https://​opensource.apple.com/​releases/​|[1]]] [[https://​github.com/​apple-oss-distributions/​file_cmds|[2]]] [[https://​github.com/​apple-oss-distributions/​text_cmds|[3]]]
   * Minimalistyczne i wbudowane systemy często używają [[https://​www.busybox.net/​downloads/​BusyBox.html|BusyBox]]a   * Minimalistyczne i wbudowane systemy często używają [[https://​www.busybox.net/​downloads/​BusyBox.html|BusyBox]]a
-  * Android używa [[https://​www.landley.net/​toybox/​|toybox]]a [[https://​cs.android.com/​android/​platform/​superproject/​+/​master:​external/​toybox/​toys/​posix/​|[4]]]+  * Android używa [[https://​www.landley.net/​toybox/​|toybox]]a [[https://​cs.android.com/​android/​platform/​superproject/main/+/main:​external/​toybox/​toys/​posix/​|[4]]]
   * Dłuższa lista alternatywnych zestawów jest np. tutaj: [[https://​wiki.archlinux.org/​title/​core_utilities]]   * Dłuższa lista alternatywnych zestawów jest np. tutaj: [[https://​wiki.archlinux.org/​title/​core_utilities]]
 <​html></​small></​html>​ <​html></​small></​html>​
  
-POSIX standaryzuje zarówno [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​V3_chap02.html|powłokę]] +POSIX standaryzuje zarówno [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​utilities/​V3_chap02.html|powłokę]] 
-jak i kluczowe [[https://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​contents.html|narzędzia]].+jak i kluczowe [[https://​pubs.opengroup.org/​onlinepubs/​9799919799/​utilities/​contents.html|narzędzia]].
  
 ==== Jak dostać się do shella ==== ==== Jak dostać się do shella ====
Linia 77: Linia 78:
   * programy dołączane do środowisk graficznych Linuksa: [[https://​docs.xfce.org/​apps/​terminal/​start|xfce4-terminal]],​ [[https://​en.wikipedia.org/​wiki/​GNOME_Terminal|GNOME Terminal]], [[https://​konsole.kde.org/​|konsole]]   * programy dołączane do środowisk graficznych Linuksa: [[https://​docs.xfce.org/​apps/​terminal/​start|xfce4-terminal]],​ [[https://​en.wikipedia.org/​wiki/​GNOME_Terminal|GNOME Terminal]], [[https://​konsole.kde.org/​|konsole]]
   * MacOS domyślne używa aplikacji [[https://​en.wikipedia.org/​wiki/​Terminal_(macOS)|Terminal]]   * MacOS domyślne używa aplikacji [[https://​en.wikipedia.org/​wiki/​Terminal_(macOS)|Terminal]]
-  * popularne są też wyjeżdżające z góry terminale przywoływane/​chowane prostym skrótem klawiszowym:​\\ [[https://​apps.kde.org/​yakuake/​|yakuake]] / [[http://guake-project.org/|guake]] / [[https://​github.com/​lanoxx/​tilda|tilda]]+  * popularne są też wyjeżdżające z góry terminale przywoływane/​chowane prostym skrótem klawiszowym:​\\ [[https://​apps.kde.org/​yakuake/​|yakuake]] / [[https://guake.github.io/|guake]] / [[https://​github.com/​lanoxx/​tilda|tilda]]
  
 <​html></​small></​html>​ <​html></​small></​html>​
Linia 101: Linia 102:
 W tej chwili wszystkie istotne systemy operacyjne (włącznie z Windows) mają domyślnie zainstalowaną komendę ''​ssh''​. W tej chwili wszystkie istotne systemy operacyjne (włącznie z Windows) mają domyślnie zainstalowaną komendę ''​ssh''​.
  
-<​html>​<small></​html>+<​small>​
  
 SSH (Secure SHell) szyfruje cały ruch. Poprzednik SSH – telnet – wszystko, włącznie z hasłami, wysłał czystym tekstem. SSH (Secure SHell) szyfruje cały ruch. Poprzednik SSH – telnet – wszystko, włącznie z hasłami, wysłał czystym tekstem.
  
-<html></small></html>+Przy uwierzytelnianiu hasłem, klient musi wysłać do serwera swoje hasło. 
 +\\ 
 +Krytyczne dla bezpieczeństwa jest sprawdzenie przez klienta że faktycznie 
 +komunikuje się z docelowym serwerem, a nie z podszywającym się pod niego 
 +serwerem który, odpowiednio spreparowany,​ pozwoli wykraść hasło 
 +([[https://​docs.ssh-mitm.at/​user_guide/​authentication.html#id2|gotowe narzędzie]]) 
 +i/lub przechwycić sesję. 
 +\\ 
 +Do sprawdzania tożsamości serwera używa się [[https://​pl.wikipedia.org/​wiki/​Kryptografia_klucza_publicznego|kryptografii asymetrycznej]]:​ 
 +serwer ma swój (tajny) klucz prywatny i na początku każdego połączenia wysyła 
 +klientowi klucz publiczny, a klient weryfikuje czy klucz wysłany przez serwer 
 +odpowiadający posiadanemu kluczowi prywatnemu. 
 +\\ 
 +Dlatego klient SSH przy pierwszym połączeniu do każdego serwera prosi 
 +użytkownika o sprawdzenie klucza, następnie dopisuje go do bazy kluczy 
 +(w OpenSSH trzymanej w pliku ''​~/​.ssh/​known_hosts''​) 
 +i sprawdza przy każdym kolejnym połączeniu. 
 + 
 +</small>
  
 ~~Zadanie.#​~~ Uruchom emulator terminala. Wykonaj komendy ''​date''​ i ''​echo $SHELL''​. ​ ~~Zadanie.#​~~ Uruchom emulator terminala. Wykonaj komendy ''​date''​ i ''​echo $SHELL''​. ​
Linia 115: Linia 134:
 ~~Zadanie.#​~~ Używając SSH i swojego konta zaloguj się na ''​polluks.cs.put.poznan.pl''​. ~~Zadanie.#​~~ Używając SSH i swojego konta zaloguj się na ''​polluks.cs.put.poznan.pl''​.
  
 +=== Jak zakończyć pracę z powłoką ===
 +
 +Komenda ''​exit''​ kończy pracę bieżącej powłoki. \\
 +Podobnie działa zasygnalizowanie końca pliku (wciśnięcie //​Ctrl//​+//​d//​) w pustej linii.
 ===== Korzystanie z pomocy ===== ===== Korzystanie z pomocy =====
  
Linia 168: Linia 191:
 Opcje są zwykle zdefiniowane w krótkiej formie ''​-o''​ gdzie ''​o''​ to pojedynczy znak bądź długiej ''​--opcja''​ gdzie ''​opcja''​ to nazwa opcji. Opcje są zwykle zdefiniowane w krótkiej formie ''​-o''​ gdzie ''​o''​ to pojedynczy znak bądź długiej ''​--opcja''​ gdzie ''​opcja''​ to nazwa opcji.
 \\ \\
-<​html><​small></​html>​Nieliczne programy używają tylko długich opcji poprzedzonych pojedynczym ''​-''​ (np. ''​find'',​ ''​convert'',​ ''​ffmpeg''​).<​html></​small></​html>​+<​html><​small></​html>​Nieliczne programy używają tylko długich opcji poprzedzonych pojedynczym ''​-''​ (np. ''​find'',​ ''​magick'',​ ''​ffmpeg''​).<​html></​small></​html>​
 \\ \\
 Krótkie opcje można łączyć w następujący sposób: ''​ls -color''​ jest równoważne ''​ls -c -o -l -o -r''​ (i różne od ''​ls --color''​) Krótkie opcje można łączyć w następujący sposób: ''​ls -color''​ jest równoważne ''​ls -c -o -l -o -r''​ (i różne od ''​ls --color''​)
Linia 212: Linia 235:
 ==== Wyświetlanie zawartości katalogu ==== ==== Wyświetlanie zawartości katalogu ====
  
-Plecenie ​''​**ls [//​katalog//​]**''​ wyświetla listę plików w katalogu ''​katalog''​. \\ Bez podania argumentów ''​ls''​ wyświetli bieżący katalog.+Polecenie ​''​**ls [//​katalog//​]**''​ wyświetla listę plików w katalogu ''​katalog''​. \\ Bez podania argumentów ''​ls''​ wyświetli bieżący katalog.
 \\ \\
-Domyślnie ''​ls''​ nie wyświetla ukrytych plików. Przełącznik **''​-a''​** ​i ''​--all''​ zmieniają ​to zachowanie.+Domyślnie ''​ls''​ nie wyświetla ukrytych plików. Przełącznik **''​-a''​** ​zmienia ​to zachowanie.
 \\ \\
-Przełącznik **''​-l''​** ​/ ''​--list'' ​wyświetla szczegółową listę plików zawierającą m. inn. dla każdego pliku jego właściciela,​ rozmiar i datę modyfikacji.+Przełącznik **''​-l''​** wyświetla szczegółową listę plików zawierającą m. inn. dla każdego pliku jego właściciela,​ rozmiar i datę modyfikacji.
  
 ~~Zadanie.#​~~ Wyświetl pliki w ''/​usr/​share/​zoneinfo/''​ i ''​../​../​../​../​../​bin''​. ​ ~~Zadanie.#​~~ Wyświetl pliki w ''/​usr/​share/​zoneinfo/''​ i ''​../​../​../​../​../​bin''​. ​
Linia 259: Linia 282:
  
 <​html></​small></​html>​ <​html></​small></​html>​
 +
 +==== Wildcard, regex, … ====
 +<​small>​
 +
 +W informatyce wykorzystuje się wyrażenia opisujące oczekiwany wynik, do których
 +następnie mogą być dopasowane dane.
 +\\
 +Przykładowo //linie, które zaczynają się od słowa, po których następuje znak
 +równości//​ można zwykle zapisać wyrażeniem regularnym ''​^\w+=''​.
 +\\
 +(Takiego wyrażenia można użyć zarówno do wybrania pasujących linii z pliku jak
 +i sprawdzenia czy podana linia pasuje.)
 +
 +Istnieje wiele pomysłów jak mają wyglądać i działać takie wyrażenia.
 +
 +W powłoce najczęściej wykorzystuje się
 +//​[[https://​pl.wikipedia.org/​wiki/​Wieloznacznik|wildcard]]//​y
 +i [[https://​en.wikipedia.org/​wiki/​Regular_expression|wyrażenia regularne]]. \\
 +
 +Składnia i implementacja zarówno wildcardów jak i wyrażeń regularnych różni się
 +między aplikacjami / językami programowania.
 +\\
 +W powłoce używa się składni opisanej m. inn. w podręczniku systemowym:
 +''​[[https://​man7.org/​linux/​man-pages/​man7/​glob.7.html|man 7 glob]]'',​
 +''​[[https://​man7.org/​linux/​man-pages/​man7/​regex.7.html|man 7 regex]]''​
 +
 +</​small>​
  
 ==== Dopasowywanie nazw plików ==== ==== Dopasowywanie nazw plików ====
  
-Przetwarzając tekst wpisany przez użytkownika powłoka próbuje zastąpić każde słowo zawierające znaki **''​*''​**,​ **''?''​** lub wyrażenia w kwadratowych nawiasach **''​[…]''​**. Każde słowo zawierający takie znaki jest nazywane [[https://​en.wikipedia.org/​wiki/​Glob_(programming)|glob]]em.+Przetwarzając tekst wpisany przez użytkownika powłoka próbuje zastąpić ​nazwami pasujących plików ​każde słowo zawierające znaki **''​*''​**,​ **''?''​** lub wyrażenia w kwadratowych nawiasach **''​[…]''​**. Każde słowo zawierający takie znaki jest nazywane [[https://​en.wikipedia.org/​wiki/​Glob_(programming)|glob]]em.
  
-''​*''​ rozwija się do dowolnego tekstu ​''?''​ rozwija się do dowolnego znaku''​[ace]''​ rozwija się do ''​a'',​ ''​c'',​ lub ''​e''​, natomiast ​''​[f-h]''​ do ''​f'',​ ''​g'',​ lub ''​h''​.+''​*''​ rozwija się do dowolnego tekstu ​\\ 
 +''?''​ rozwija się do dowolnego znaku \\ 
 +''​[ace]''​ rozwija się do ''​a'',​ ''​c'',​ lub ''​e'' ​\\ 
 +''​[f-h]''​ do ''​f'',​ ''​g'',​ lub ''​h''​
  
 Jeżeli istnieje co najmniej jeden plik pasujący do globa, to powłoka zastępuje glob wszystkimi pasującymi nazwami plików. Jeżeli żaden plik nie pasuje, to glob pozostaje niezmieniony. Jeżeli istnieje co najmniej jeden plik pasujący do globa, to powłoka zastępuje glob wszystkimi pasującymi nazwami plików. Jeżeli żaden plik nie pasuje, to glob pozostaje niezmieniony.
Linia 287: Linia 340:
  
 <​html></​small></​html>​ <​html></​small></​html>​
- 
- 
-==== Kopiowanie, przenoszenie,​ i usuwanie plików ==== 
- 
-<​html><​small></​html>​ 
- 
-Do utworzenia pustego pliku możesz użyć ''​touch //​plik//''​. \\ Aby utworzyć plik z zawartością,​ możesz użyć ''​echo //​zawartość//​ > //​plik//''​. \\ Polecenia ''​touch''​ i ''​echo'',​ jak również znaczenie ''>''​ zostaną omówione później. 
- 
-Aby wyświetlić plik, użyj ''​cat //​plik//''​. 
-<​html></​small></​html>​ 
- 
-=== Katalogi === 
- 
-**''​mkdir //​dir//''​** tworzy nowy katalog. 
-\\ 
-<​html><​small></​html>​ 
-''​mkdir -p //​dir1/​dir2/​dir3//''​ tworzy katalog ''​dir1'',​ i katalog ''​dir2''​ w ''​dir1'',​ i katalog ''​dir3''​ w ''​dir1/​dir2''​. 
-Podając przełącznik ''​-p''​ polecenie ''​mkdir''​ nie wyświetla błędu jeśli katalog już istnieje. 
-<​html></​small></​html>​ 
- 
-Do usunięcia pustego katalogu można użyć ''​rmdir //​dir//''​. 
- 
-~~Zadanie.#​~~ Stwórz następujące drzewo katalogów: 
-  . 
-  ├── foo 
-  │   ├── baz 
-  │   │   └── bar 
-  │   └── bar 
-  └── foobaz 
-      └── bar 
-  
-~~Zadanie.#​~~ Usuń katalog ''​foo/​baz''​. 
- 
-=== Twarde i symboliczne dowiązania === 
- 
-Wiele wpisów w katalogach może wskazywać na ten sam plik. Nazywa się to [[https://​en.wikipedia.org/​wiki/​Hard_link|twardym dowiązaniem]] (//hard link//). \\ 
-Wpis w katalogu może również wskazywać na inny wpis w katalogu. Nazywa się to [[https://​en.wikipedia.org/​wiki/​Symbolic_link|dowiązaniem symbolicznym]] (//soft link// / //symbolic link//, zwykle skracane do //​symlink//​). 
- 
-Wszystkie Linuksowe systemy [[https://​en.wikipedia.org/​wiki/​Comparison_of_file_systems#​File_capabilities|obsługują]] dowiązania twarde do zwykłych plików i symlinki do dowolnych ścieżek (np. pliku lub katalogu). 
- 
-Aby utworzyć twarde łącze, można użyć **''​ln //​źródło//​ //​cel//''​**. 
-\\ 
-Aby utworzyć symlink, można użyć **''​ln -s //​źródło//​ //​cel//''​**. 
- 
-~~Zadanie.#​~~ Stwórz plik ''​plik1''​ z zawartością. Stwórz twarde dowiązanie do pliku ''​plik1''​ o nazwie ''​plik2''​. Zmodyfikuj ''​plik2''​. Wyświetl ''​plik1''​. 
- 
-<​html><​small></​html>​ 
- 
-~~Zadanie.#​~~ Komenda ''​ls''​ może wyświetlić ilość twardych dowiązań. Sprawdź gdzie ta informacja jest wyświetlana. 
- 
-Miejsce na dysku wykorzystywane przez plik wraca do puli wolnej przestrzeni gdy liczba dowiązań spadnie do 0 (wszystkie wpisy w katalogach, które wskazują na plik są usunięte) i plik nie jest już otwarty w żadnym procesie. 
- 
-<​html></​small></​html>​ 
- 
- 
-~~Zadanie.#​~~ Utwórz w swoim katalogu domowym symlink o nazwie ''​TMP''​ wskazujący na ''/​tmp''​. Zmień katalog na ''​TMP''​. Co wypisuje ''​pwd''?​ 
- 
-~~Zadanie.#​~~ Utwórz w swoim katalogu domowym symlink o nazwie ''​loop''​ wskazujący na twój katalog domowy. Wejdź do ''​loop''​. I wejdź jeszcze raz do ''​loop''​. 
- 
-~~Zadanie.#​~~ Utwórz symlink do nieistniejącej ścieżki. Wyświetl zawartość katalogu w którym jest ten symlink. 
- 
-<​html><​small></​html>​ 
- 
-Polecenie ''​readlink [-f] //​cel//''​ rozwiązuje wszystkie symlinki i wyświetla [[https://​en.wikipedia.org/​wiki/​Canonicalization|kanoniczną]] postać ścieżki. 
- 
-System plików Windows NTFS też obsługuje dowiązania. Tworzenie ich jest możliwe np. poleceniem [[https://​learn.microsoft.com/​en-us/​windows-server/​administration/​windows-commands/​mklink|mklink]]. 
- 
-<​html></​small></​html>​ 
- 
-=== Kopiowanie i przenoszenie plików === 
- 
-Pliki można kopiować komendą **''​cp''​** i przenosić (bądź zmieniać nazwę) komendą **''​mv''​** (nazwy pochodzą odpowiednio od słów //copy// i //move//). 
- 
-Podstawowa składnia to ''​cp/​mv //​źródło//​… //​cel//''​. \\ 
-Można podać wiele plików źródłowych jeżeli cel jest katalogiem. \\ 
-Jeśli cel jest plikiem, to zostanie bez ostrzeżenia nadpisany <​html><​small></​html>​(o ile nie zostanie użyty przełącznik ''​-i''​ bądź ''​-n''​)<​html></​small></​html>​. 
- 
-<​html><​small></​html>​ 
- 
-Domyślnie ''​cp''​ odmówi kopiowania katalogu. Przełącznik ''​-r''​ pozwoli skopiować rekurencyjnie katalog z zawartością. 
- 
-<​html></​small></​html>​ 
- 
-''​cp''​ kopiując plik tworzy nowy plik z aktualną datą, domyślnymi uprawnieniami itp. 
-\\ 
-Aby skopiować rekursywnie,​ zachować daty, uprawnienia i inne, można użyć przełącznika **''​-a''​** (''​--archive''​). 
- 
-<​html><​small></​html>​ 
- 
-Z przełącznikiem ''​-l''​ program ''​cp''​ tworzy twarde dowiązania zamiast kopiować pliki. Można to połączyć z ''​--recursive''​. 
- 
-<​html></​small></​html>​ 
- 
-~~Zadanie.#​~~ Skopuj jednym poleceniem pliki ''/​etc/​os-release''​ i ''/​etc/​SUSE-brand''​ do bieżącego katalogu. 
- 
-~~Zadanie.#​~~ Wykonaj ''​mkdir someDir && for F in plik{1..3}; do echo $RANDOM$RANDOM > someDir/$F; done''​ które stworzy katalog ​ ''​someDir''​ z trzema plikami w środku. 
- 
-~~Zadanie.#​~~ Skopiuj rekurencyjnie ''​someDir''​ i zawartość. 
- 
-~~Zadanie.#​~~ Przenieś nowo utworzony katalog do środka katalogu ''​someDir''​. 
- 
-~~Zadanie.#​~~ Zmień nazwę katalogu ''​someDir''​ na inną. 
- 
-<​html><​small></​html>​ 
- 
-~~Zadanie.#​~~ Skopiuj nowo nazwany katalog podając przełączniki ''​-al''​. Zmień wybrany plik w którymkolwiek z katalogów. Treść których plików uległa zmianie? <​html><​small></​html>​ (Wyświetl je ''​cat //​nazwa_pliku//''​ lub wyświetl daty modyfikacji plików z dokładnością do sekundy przez \\ ''​ls -l --time-style=+%H:​%M:​%S …''​ lub ''​tree -D --timefmt=%H:​%M:​%S …''​)<​html></​small></​html>​ 
- 
-<​html></​small></​html>​ 
- 
-=== Kopiowanie plików do/z maszyny zdalnej === 
- 
-Za pomocą SSH można kopiować pliki. Jeśli ktoś ma dostęp do SSH na zdalnej maszynie, to może kopiować pliki komendą **''​scp''​**.\\ 
-''​scp''​ rozumie ''//​nazwa//''​ jako ścieżkę do lokalnego pliku i ''//​użytkownik//​@//​host//://​nazwa//''​ jako ścieżkę do pliku na zdalnej maszynie. Zdalne względne ścieżki są rozwiązywane względem katalogu domowego.\\ 
-''​scp''​ przyjmuje przełącznik ''​-r''​ do rekursywnego kopiowania katalogów. 
- 
-<​html><​small></​html>​ 
- 
-MS Windows ma domyślnie komendę ''​scp'',​ ale zwykle wygodniej jest korzystać z [[https://​en.wikipedia.org/​wiki/​Comparison_of_FTP_client_software#​Protocol_support|menadżerów plików]] wspierających SSH. 
- 
-<​html></​small></​html>​ 
- 
-Większość serwerów SSH wspiera też protokół SFTP, pozwalający na wygodniejsze kopiowanie plików.\\ 
-**''​sftp //​użytkownik//​@//​host//''​** uruchamia linię poleceń ''​sftp''​. Działają w niej ''​ls''​ i ''​cd''​ do nawigowania po zdalnych plikach oraz ''​get''​ i ''​put''​ do przenoszenia plików. ''​help''​ pokaże wszystkie wspierane komendy. 
- 
-~~Zadanie.#​~~ Stwórz plik w katalogu ''/​tmp''​ swojego komputera. Skopiuj go do katalogu domowego użytkownika ''​student''​ na innym komputerze. 
- 
-~~Zadanie.#​~~ Skopiuj ten plik do katalogu ''/​tmp''​ innego komputera. 
- 
-~~Zadanie.#​~~ Skopiuj ten plik do katalogu ''/​tmp''​ innego komputera używając ''​sftp''​. 
- 
-<​html><​small></​html>​ 
-=== Rsync === 
- 
-Program ''​[[https://​en.wikipedia.org/​wiki/​Rsync|rsync]]''​ jest powszechnie używany do kopiowania plików i katalogów. Wydajnie porównuje pliki źródłowe z docelowymi i kopiuje tylko różnice. Może kopiować dane do/z zdalnych urządzeń, a także może kompresować dane przesyłane przez sieć dla zwiększenia przepustowości. ''​rsync''​ jest też powszechnie używany do tworzenia kopii zapasowych. 
- 
-<​html></​small></​html>​ 
- 
-=== Usuwanie plików === 
- 
-Program usuwający pliki nazywa się **''​rm''​** (or remove). 
- 
-''​rm''​ domyślnie nie usunie katalogów (niezależnie czy są puste) ani plików chronionych przed zapisem. 
- 
-Aby usunąć katalog poleceniem ''​rm''​ (wraz z całą zawartością) trzeba dodać przełącznik ''​-r''​. 
- 
-Aby usunąć plików zabezpieczony przed zapisem (i nie wyświetlać ostrzeżenia jeśli plik który nakazano usunąć nie istnieje) można użyć przełącznika ''​-f''​ (''​--force''​). 
- 
-Przypadkowo bądź nieprawidłowo użyte ''​rm -rf …''​ jest częstą przyczyną utraty danych. Szczególnie uważaj na wszystkie ''​*''​ i to do czego się rozwiną. 
- 
-''​rm''​ przyjmuje przełączniki **''​-I''​** i ''​-i''​ które proszą o potwierdzenie usunięcia plików. ''​-I''​ pyta raz przed rozpoczęciem usuwania wielu plików, a ''​-i''​ pyta przed usunięciem każdego pliku z osobna. 
- 
-~~Zadanie.#​~~ Stwórz wiele plików komendą ''​touch file_{a..z}''​. \\ Usuń wszystkie te pliki jednym poleceniem ''​rm''​ 1) bez przełączników 2) z przełącznikiem ''​-f''​ \\ 3) z przełącznikiem ''​-I''​ 4) z przełącznikiem ''​-i''​. 
- 
-~~Zadanie.#​~~ Powtórz komendę usuwającą pliki z poprzedniego zadania po usunięciu plików. \\ Potem powtórz tą komendę raz jeszcze z przełącznikiem ''​-f''​. 
- 
-~~Zadanie.#​~~ Stwórz katalog i usuń go używając ''​rm''​. 
  
  
so/intro.1677534986.txt.gz · ostatnio zmienione: 2023/02/27 22:56 przez jkonczak