Linux Professional Institute Learning Logo.
Przejdź do głównej treści
  • Strona Główna
    • Wszystkie Zasoby
    • Materiały Dydaktyczne LPI
    • Zostań Współautorem
    • Partnerzy Wydawniczy
    • Zostań Partnerem Wydawniczym
    • FAQ
    • Współautorzy
    • Harmonogram
    • Kontakt
  • LPI.org
2.1 Lekcja 1
Temat 1: Społeczność Linuxa i kariera w środowisku Open Source
1.1 Ewolucja Linuksa i popularne systemy operacyjne
  • Wkrótce...
1.2 Najważniejsze aplikacje Open Source
  • 1.2 Lekcja 1
1.3 Oprogramowanie i licencje typu open source
  • 1.3 Lekcja 1
1.4 Umiejętności ICT i praca w systemie Linux
  • 1.4 Lekcja 1
Temat 2: Poruszanie się po systemie Linux
2.1 Podstawy wiersza poleceń
  • 2.1 Lekcja 1
  • 2.1 Lekcja 2
2.2 Korzystanie z wiersza poleceń w celu uzyskania pomocy
  • 2.2 Lekcja 1
2.3 Korzystanie z katalogów i listy plików
  • 2.3 Lekcja 1
  • 2.3 Lekcja 2
2.4 Tworzenie, przenoszenie i usuwanie plików
  • 2.4 Lekcja 1
Temat 3: Siła wiersza poleceń
3.1 Archiwizacja plików za pomocą wiersza poleceń
  • 3.1 Lekcja 1
3.2 Wyszukiwanie i wyodrębnianie danych z plików
  • 3.2 Lekcja 1
  • 3.2 Lekcja 2
3.3 Przekształcanie poleceń w skrypt
  • 3.3 Lekcja 1
  • 3.3 Lekcja 2
Temat 4: System operacyjny Linux
4.1 Wybór systemu operacyjnego
  • Wkrótce...
4.2 Zrozumienie sprzętu komputerowego
  • 4.2 Lekcja 1
4.3 Gdzie są przechowywane dane
  • 4.3 Lekcja 1
  • 4.3 Lekcja 2
4.4 Komputer w sieci
  • 4.4 Lekcja 1
Temat 5: Bezpieczeństwo i uprawnienia do plików
5.1 Podstawy bezpieczeństwa i identyfikacja typów użytkowników
  • 5.1 Lekcja 1
5.2 Tworzenie użytkowników i grup
  • 5.2 Lekcja 1
5.3 Zarządzanie uprawnieniami do plików i prawami własności plików
  • 5.3 Lekcja 1
5.4 Katalogi i pliki specjalne
  • 5.4 Lekcja 1
How to get certified
  1. Temat 2: Poruszanie się po systemie Linux
  2. 2.1 Podstawy wiersza poleceń
  3. 2.1 Lekcja 1

2.1 Lekcja 1

Certyfikat:

Linux Essentials

Wersja:

1.6

Temat:

2 Poruszanie się po systemie Linux

Cel nauki:

2.1 Podstawy wiersza poleceń

Lekcja:

1 z 2

Wstęp

Nowoczesne dystrybucje Linuxa posiadają szeroką bardzo gamę graficznych interfejsów użytkownika, ale administrator zawsze musi wiedzieć, jak pracować z wierszem poleceń, znanym również jako powłoka. Powłoka to program umożliwiający komunikację tekstową między systemem operacyjnym a użytkownikiem. Zwykle jest to program w trybie tekstowym, który odczytuje dane wejściowe użytkownika i interpretuje je jako polecenia systemu.

W systemie Linux istnieje wiele różnych powłok, oto tylko kilka z nich:

  • Powłoka Bourne-again (Bash)

  • Powłoka C (csh lub tcsh, rozszerzona csh)

  • Powłoka Korn (ksh)

  • Powłoka Z (zsh)

W systemie Linux najpopularniejszą powłoką jest powłoka Bash, która jest również używana w poniższych przykładach i ćwiczeniach.

Podczas korzystania z powłoki interaktywnej, użytkownik wprowadza polecenia w tak zwanym wierszu poleceń. W każdej dystrybucji Linuxa domyślny wiersz poleceń może wyglądać nieco inaczej, ale zwykle ma następującą strukturę:

username@hostname current_directory shell_type

W systemie Ubuntu lub Debian GNU / Linux wiersz polecenia dla zwykłego użytkownika będzie wyglądał podobnie do poniższego:

carol@mycomputer:~$

A wiersz polecenia superużytkownika będzie wyglądał następująco:

root@mycomputer:~#

W systemie CentOS lub Red Hat Linux wiersz poleceń dla zwykłego użytkownika będzie wyglądał następująco:

[dave@mycomputer ~]$

A wiersz poleceń superużytkownika będzie wyglądał następująco:

[root@mycomputer ~]#

Wyjaśnijmy znaczenie poszczególnych elementów tej struktury:

username (nazwa użytkownika)

Nazwa użytkownika, który uruchamia powłokę

hostname (nazwa hosta)

Nazwa hosta, na którym działa powłoka. Istnieje również polecenie hostname, które służy do wyświetlania lub zmiany nazwy hosta w systemie.

current_directory (bieżący_katalog)

Katalog, w którym obecnie znajduje się powłoka. Tylda (~) oznacza, że ​​powłoka znajduje się w katalogu domowym bieżącego użytkownika.

shell_type (typ_powłoki)

$ wskazuje, że powłoka jest uruchamiana przez zwykłego użytkownika.

# wskazuje, że powłoka jest uruchamiana przez superużytkownika z uprawnieniami administratora root.

Ponieważ nie potrzebujemy żadnych specjalnych uprawnień, w poniższych przykładach użyjemy nieuprzywilejowanego znaku zachęty. Ze względu na przejrzystość, po prostu użyjemy znaku zachęty $.

Struktura wiersza poleceń

Większość poleceń w wierszu poleceń ma tę samą podstawową strukturę:

polecenie  [opcja(e)/parametr(y)...]  [argument(y)...]

Rozważmy następujące polecenie jako przykład:

$ ls -l /home

Wyjaśnijmy przeznaczenie każdego elementu polecenia:

Command (Polecenie)

Przykład programu ls uruchomionego przez użytkownika w powyższym przykładzie.

Option(s)/Parameter(s) (Opcja(e)/parametr(y))

“Przełącznik” (“switch”) w pewien sposób modyfikuje zachowanie polecenia, na przykład -l w powyższym przykładzie. Dostęp do opcji można uzyskać w postaci krótkiej i długiej. Na przykład -l jest identyczne z zapisem --format=long.

Można również łączyć kilka opcji, a w przypadku krótkiej formy litery można zwykle pisać razem. Na przykład następujące polecenia robią to samo:

$ ls -al
$ ls -a -l
$ ls --all --format=long
Argument(s) (Argument(y))

Dodatkowe informacje wymagane przez program, takie jak nazwa pliku lub ścieżka, na przykład /home w powyższym przykładzie.

Jedyną obowiązkową częścią tej struktury jest samo polecenie. Ogólnie wszystkie inne elementy są opcjonalne, ale program może wymagać określenia pewnych opcji, parametrów lub argumentów.

Note

Większość poleceń wyświetla krótki przegląd dostępnych opcji, gdy są uruchamiane z parametrem --help. Wkrótce poznamy dodatkowe sposoby, aby dowiedzieć się więcej o poleceniach Linuxa.

Typy poleceń

Powłoka obsługuje dwa typy poleceń:

Polecenia wewnętrzne (wbudowane)

Te polecenia są częścią samej powłoki, a nie samodzielnymi programami. Takich poleceń jest około 30. Ich głównym celem jest wykonywanie zadań wewnątrz powłoki (np. cd, set, export).

Polecenia zewnętrzne

Te polecenia znajdują się w poszczególnych plikach. Zwykle są to programy binarne lub skrypty. Kiedy uruchamiane i wykonywane jest polecenie, które nie jest poleceniem wbudowanym w powłokę, powłoka używa zmiennej PATH w celu wyszukania pliku wykonywalnego o tej samej nazwie co polecenie. Oprócz programów, które są instalowane za pomocą menedżera pakietów, użytkownicy mogą również tworzyć własne polecenia zewnętrzne.

Polecenie type pokazuje, jakiego typu jest dane polecenie:

$ type echo
echo is a shell builtin
$ type man
man is /usr/bin/man

Quoting (znaki cudzysłowu)

Jako użytkownik Linuxa będziesz musiał tworzyć lub manipulować plikami lub zmiennymi na wiele różnych sposobów. Jest to łatwe podczas pracy z krótkimi nazwami plików i pojedynczymi wartościami. Sytuacja staje się jednak bardziej skomplikowana, gdy wykorzystywane są m.in. spacje, znaki specjalne i zmienne. Powłoki zapewniają funkcję zwaną “Quoting”, która zawiera takie dane w różnych typach cudzysłowów (" ", ' '). W Bashu istnieją trzy rodzaje cudzysłowów:

  • Podwójne cudzysłowy

  • Pojedyncze cudzysłowy

  • Znaki ucieczki

Na przykład, następujące polecenia nie zachowują się w ten sam sposób z powodu róznych cudzysłowów:

$ TWOWORDS="two words"
$ touch $TWOWORDS
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 two
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 words
$ touch "$TWOWORDS"
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
$ touch '$TWOWORDS'
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 15:00 '$TWOWORDS'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
Note

Linia z TWOWORDS= to zmienna bash, którą sami stworzyliśmy. Zmienne wprowadzimy później. Ma to na celu jedynie pokazanie, jak cudzysłowy wpływają na wynik zmiennych.

Podwójne cudzysłowy

Podwójne cudzysłowy informują powłokę, że tekst między cudzysłowami ("...") jest traktowany jako zwykłe znaki. Wszystkie znaki specjalne tracą znaczenie, z wyjątkiem $ (znak dolara), \ (backslash - ukośnik odwrotny) i ` (backquote - cudzysłów odwrotny), dzięki czemu można nadal używać zmiennych, podstawiania poleceń i funkcji arytmetycznych.

Na przykład podwójne cudzysłowy nie mają wpływu na podstawienie zmiennej $USER:

$ echo I am $USER
I am tom
$ echo "I am $USER"
I am tom

Z drugiej strony znak spacji traci znaczenie jako separator argumentów:

$ touch new file
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 file
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 new
$ touch "new file"
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:19 new file

Jak widać, polecenie touch w pierwszym przykładzie tworzy dwa oddzielne pliki, ponieważ polecenie interpretuje dwa ciągi jako oddzielne argumenty. W drugim przykładzie, polecenie interpretuje oba ciągi jako jeden argument, czyli tylko jedną nazwę pliku, dlatego tworzy tylko jeden plik. Najlepszą praktyką jest jednak unikanie znaku spacji w nazwach plików. Zamiast tego można użyć podkreślenia (_) lub kropki (.).

Pojedyncze cudzysłowy

Pojedyncze cudzysłowy nie mają wyjątków takich jak podwójne cudzysłowy. Unieważniają one jakiekolwiek specjalne znaczenie każdego znaku. Weźmy jeden z powyższych przykładów:

$ echo I am $USER
I am tom

Po zastosowaniu pojedynczych cudzysłowów zobaczysz inny wynik:

$ echo 'I am $USER'
I am $USER

Polecenie wyświetla teraz dokładny ciąg znaków bez zastępowania zmiennej.

Znaki ucieczki

Możemy użyć znaków ucieczki, aby usunąć specjalne znaczenie znaków z Basha. Wracając do zmiennej środowiskowej $USER:

$ echo $USER
carol

Widzimy, że domyślnie zawartość zmiennej jest wyświetlana w terminalu. Jeśli jednak poprzedzimy znak dolara znakiem backslasha (\), to specjalne znaczenie znaku dolara zostanie anulowane. To z kolei nie pozwoli Bashowi rozwinąć wartości zmiennej w celu uwzględnienia nazwy użytkownika osoby wykonującej polecenie, zatem zamiast tego Bash zinterpretuje nazwę zmiennej dosłownie:

$ echo \$USER
$USER

Jeśli pamiętasz, podobny wynik możemy osiągnąć za pomocą pojedynczych cudzysłowów, ponieważ zapewniają one, że treść zawarta między cudzysłowami jest dokładnie taka, jaka znajduje się między tymi pojedynczymi cudzysłowami. Jednak znak ucieczki działa inaczej, mówiąc Bashowi, aby zignorował jakiekolwiek specjalne znaczenie, jakie może mieć znak po nim.

Ćwiczenia z przewodnikiem

  1. Podziel poniższe wiersze na poszczególne elementy: polecenia, opcje / parametry i argumenty:

    • Przykład: cat -n /etc/passwd

      Polecenie:

      cat

      Parametr(y):

      -n

      Argument(y):

      /etc/passwd

    • ls -l /etc

      Polecenie:

      Parametr(y):

      Argument(y):

    • ls -l -a

      Polecenie:

      Parametr(y):

      Argument(y):

    • cd /home/user

      Polecenie:

      Parametr(y):

      Argument(y):

  2. Sprawdź, jakiego typu są następujące polecenia:

    Przykład:

    pwd

    Wbudowane w powłokę

    mv

    Polecenie zewnętrzne

    cd

    cat

    exit

  3. Pokaż wynik następujących poleceń, które używają cudzysłowów:

    Przykład:

    echo "$HOME is my home directory"

    echo /home/user is my home directory

    touch "$USER"

    touch 'touch'

Ćwiczenia eksploracyjne

  1. Utwórz 5 plików ponumerowanych od 1 do 5 z prefiksem game (game1, game2, …​) za pomocą jednego polecenia i używając rozszerzenia nawiasów klamrowych w Bash (patrz strona podręcznika Bash).

  2. Usuń wszystkie 5 plików, które właśnie utworzyłeś jednym poleceniem, używając innego znaku specjalnego (przejrzyj Rozwijanie nazw plików na stronach podręcznika Bash).

  3. Czy istnieją inne sposoby, aby dwa polecenia współdziałały ze sobą? Jakie to są sposoby?

​

Podsumowanie

W tym laboratorium nauczyłeś się:

  • Pojęcia dotyczące powłoki systemu Linux

  • Co to jest powłoka Bash

  • Struktura wiersza poleceń

  • Wprowadzenie do cudzysłowów (Quoting)

Komendy wykorzystywane w ćwiczeniach:

bash

Najpopularniejsza powłoka na komputerach z systemem Linux.

echo

Wyświetla tekst w terminalu.

ls

Wyświetla zawartość katalogu.

type

Wskazuje sposób wykonania określonego polecenia.

touch

Tworzy pusty plik lub aktualizuje datę modyfikacji istniejącego pliku.

hostname

Pokazuje lub zmienia nazwę hosta systemu.

Odpowiedzi do ćwiczeń z przewodnikiem

  1. Podziel poniższe wiersze na poszczególne elementy: polecenia, opcje / parametry i argumenty:

    • ls -l /etc

      Polecenie:

      ls

      Parametr(y):

      -l

      Argument(y):

      /etc

    • ls -l -a

      Polecenie:

      ls

      Parametr(y):

      -l -a

      Argument(y):

    • cd /home/user

      Polecenie:

      cd

      Parametr(y):

      Argument(y):

      /home/user

  2. Sprawdź, jakiego typu są następujące polecenia:

    cd

    Wbudowane w powłokę

    cat

    Polecenie zewnętrzne

    exit

    Wbudowane w powłokę

  3. Pokaż wynik następujących poleceń, które używają cudzysłowów:

    touch "$USER"

    tom

    touch 'touch'

    Tworzy plik o nazwie touch

Odpowiedzi do ćwiczeń eksploracyjnych

  1. Utwórz 5 plików ponumerowanych od 1 do 5 z prefiksem game (game1, game2, …​) za pomocą jednego polecenia i używając rozszerzenia nawiasów klamrowych w Bash (patrz strona podręcznika Bash).

    Za pomocą zakresów można wyrazić liczby od 1 do 5 w ramach jednego polecenia:

    $ touch game{1..5}
    $ ls
    game1  game2  game3  game4  game5
  2. Usuń wszystkie 5 plików, które właśnie utworzyłeś jednym poleceniem, używając innego znaku specjalnego (przejrzyj Rozwijanie nazw plików na stronach podręcznika Bash).

    Ponieważ wszystkie pliki zaczynają się od game i kończą pojedynczym znakiem (w tym przypadku liczbą od 1 do 5), można użyć ? jako znaku specjalnego dla ostatniego znaku w nazwie pliku:

    $ rm game?
  3. Czy istnieją inne sposoby, aby dwa polecenia współdziałały ze sobą? Jakie to są sposoby?

    Tak, jedno polecenie może na przykład zapisać dane do pliku, który jest następnie przetwarzany przez inne polecenie. Linux może również zbierać dane wyjściowe jednego polecenia i używać ich jako danych wejściowych dla innego polecenia. Nosi to nazwę potoku (piping) i zostanie omówione w późniejszej lekcji.

Linux Professional Insitute Inc. Wszelkie prawa zastrzeżone. Odwiedź stronę Learning Materials: https://learning.lpi.org
Dzieło jest udostępnione na licencji Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Następna lekcja

2.1 Podstawy wiersza poleceń (2.1 Lekcja 2)

Przeczytaj następną lekcję

Linux Professional Insitute Inc. Wszelkie prawa zastrzeżone. Odwiedź stronę Learning Materials: https://learning.lpi.org
Dzieło jest udostępnione na licencji Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

LPI jest organizacją non-profit.

© 2022 Linux Professional Institute (LPI) jest światowym standardem certyfikacji i organizacją wspierającą karierę profesjonalistów open source. Posiadając ponad 200 000 certyfikatów, LPI jest pierwszą i największą na świecie neutralną w stosunku do dostawców jednostką certyfikującą Linuksa i open source. LPI certyfikuje profesjonalistów w ponad 180 krajach, przeprowadza egzaminy w wielu językach i posiada setki partnerów szkoleniowych.

Naszym celem jest stworzenie ekonomicznych i kreatywnych możliwości dla każdego poprzez powszechny dostęp do wiedzy i umiejętności open source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Skontaktuj się z nami
  • Polityka prywatności i plików cookiey

Zauważyłeś błąd lub chcesz pomóc ulepszyć tę stronę? Prosimy daj nam znać.

© 1999–2022 The Linux Professional Institute Inc. Wszelkie prawa zastrzeżone.