Najpotężniejszą cechą powłoki Linux Bash jest jej zdolność do obchodzenia się z plikami i wydajnego przekierowywania ich danych wejściowych i wyjściowych. Linux używa znaków specjalnych lub symboli znanych jako metaznaki, które nadają specjalne znaczenie poleceniom powłoki w odniesieniu do wyszukiwania plików i połączenia poleceń.

Metaznaki są pomocne przy wyświetlaniu, usuwaniu i kopiowaniu plików w systemie Linux. Jednak funkcja każdego metaznaku różni się w zależności od polecenia, z którym go używasz.

Ten artykuł zawiera szczegółowy przewodnik po różnych typach metaznaków w systemie Linux. Na koniec wyjaśnimy, w jaki sposób te znaki specjalne pomagają w łączeniu i rozszerzaniu poleceń.

Powłoka systemu Linux umożliwia zapisywanie naciśnięć klawiszy podczas wpisywania poleceń, używając metaznaków między nazwami plików lub katalogów. Znaki te pomagają odnosić się do grupy plików lub katalogu, w którym można je wyświetlić, przenieść lub wykonać inne czynności.

Oto kilka pasujących do plików metaznaków, które powłoka Linuksa może zinterpretować:

instagram viewer
  • * (gwiazdka): Dopasowuje pojedyncze lub wielokrotne wystąpienia znaku
  • ? (Znak zapytania): Dopasowuje pojedynczy znak lub wystąpienie wzorca
  • [ ] (Nawiasy kwadratowe): Pasuje do dowolnej liczby, symbolu lub alfabetu rozdzielonego myślnikiem podanej w nawiasach kwadratowych

Idealnym sposobem na ćwiczenie metaznaków w Linuksie jest utworzenie nowego pustego folderu wewnątrz /tmp informator.

sudo mkdir /tmp/meta

Teraz przejdź do /tmp/meta katalog przy użyciu polecenie cd oraz utwórz nowe puste pliki za pomocą dotyku, w następujący sposób:

dotknij apple.txt cydr.sh ocet.php cat.txt cytryna.txt sok.sh sum.sh 

Użyj następujących poleceń, aby przetestować „*metaznak i wyświetl wyniki:

ls c*
Wyjście:
catfish.sh cat.txt cider.sh
ls c * h
Wyjście:
sum.sz cydr.sz
ls * r *
Wyjście:
cydr.sh ocet.php
sudo rm *p*

Wspomniane polecenie usunie wszystkie pliki zawierające w nazwie literę „p”. Możesz zweryfikować zmianę za pomocą polecenia ls w następujący sposób:

ls
Wyjście:
catfish.sh cat.txt cider.sh sok.sh cytryna.txt

Oto kilka przykładów „?metaznak do dopasowywania wzorca:

jest?*
Wyjście:
apple.txt
Czy to c? T*
Wyjście:
catfish.sh cat.txt

Ostatnie polecenie pasuje do dowolnego pliku, który zaczyna się od C i ma T jako trzecią literę (cat.txt, catfish.sh, itp.).

Teraz użyj [śr]* opcja z poleceniem ls, aby wyświetlić wszystkie pliki, które zaczynają się od: a lub v, w następujący sposób:

ls [śr]*
Wyjście:
apple.txt ocet.sh

Możesz zmodyfikować powyższe polecenie, aby wyświetlać tylko pliki, które kończą się literą T:

ls [ac]*[t]
Wyjście:
apple.txt catfish.txt cat.txt

Podobnie możesz użyć liter oddzielonych myślnikiem, aby zdefiniować zakresy i wyświetlić listę plików w następujący sposób:

ls [a-j]*
Wyjście:
apple.txt catfish.sh cat.txt cider.sh juice.sh

Aby lepiej zrozumieć przekierowanie w Bash, każdy proces w systemie Linux ma deskryptory plików, znane jako standardowe wejście (stdin/0), standardowe wyjście (stdout/1) i błąd standardowy (stderr/2). Określają pochodzenie danych wejściowych polecenia i decydują, gdzie wysłać dane wyjściowe i komunikaty o błędach.

Metaznaki przekierowania ułatwiają modyfikowanie tych akcji przez przekierowywanie przepływu we/wy zawartości. Ogólnie rzecz biorąc, powłoka Linuksa odczytuje dane wejściowe polecenia z klawiatury i zapisuje dane wyjściowe na ekranie. Przekierowanie wejściowe umożliwia poleceniu odczytanie zawartości pliku zamiast klawiatury, podczas gdy przekierowanie wyjściowe zapisuje dane wyjściowe polecenia do pliku.

Innymi słowy, metaznaki przekierowania plików w systemie Linux umożliwiają przekierowanie zawartości do (>) i od (<) pliki. Trzy podstawowe metaznaki przekierowania to:

  1. <: Kieruje zawartość pliku do polecenia. Na przykład wyjście polecenia dla mniej .bashrc jest taki sam jak mniej < .bashrc.
  2. >: Kieruje dane wyjściowe polecenia do pliku. Komenda ls /etc > listy.txt zapisuje dane wyjściowe w pliku lists.txt.
  3. >>: Dołącza dane wyjściowe polecenia do zawartości pliku.

wc oznacza liczbę słów i można go użyć do wyświetlenia różnicy między plikiem przed i po dołączeniu go do wyniku.

Związane z: Zrozumienie standardowego we/wy w systemie Linux

Metaznak rozwijania nawiasów klamrowych umożliwia rozwinięcie znaków w katalogach, nazwach plików lub innych argumentach wiersza polecenia. Na przykład możesz utworzyć nowy katalog klamra w środku /tmp folder i utwórz zestaw plików za pomocą polecenia dotykowego w następujący sposób:

sudo mkdir /tmp/nawias; cd /tmp/nawias
test dotykowy{1,2,3,4,5}

Teraz możesz sprawdzić, czy dotyk utworzył pliki, czy nie za pomocą polecenia ls.

ls
Wyjście:
test1 test2 test3 test4 test5

Możesz określić wiele list, aby generować nazwy plików na podstawie kombinacji elementów na liście. Na przykład:

dotyk {jabłko, cydr, ocet}. {owoce, płyn, kwaśny}
dotknij {a, b, c}.{1,2,3}

Ostatnie polecenie utworzy następujące pliki w bieżącym katalogu:

Pierwsze polecenie używa dwóch zestawów nawiasów klamrowych do kojarzenia nazw plików w każdym zestawie z drugim. Możesz także napisać ostatnie polecenie jako dotknij {a..c}.{1..3} aby określić zakres między a i c oraz 1 i 3.

Oprócz tworzenia plików możesz także użyć rozwinięcia nawiasów, aby usunąć lub skopiować pliki do innych lokalizacji.

Oto tabela z niektórymi niezbędnymi metaznakami do łączenia i rozszerzania poleceń wraz z ich nazwami, opisem i przykładami do przećwiczenia:

Nazwa Opis Przykład
Rura (|) Łączy dane wyjściowe polecenia jako dane wejściowe z innym poleceniem. kot /etc/passwd | grep root
Średnik (;) Umożliwia wykonywanie poleceń sekwencyjnych, jedna po drugiej. cd /etc; ls-la; chmod +x /tmp/script.php
Ampersand (&) Uruchamia procesy lub polecenia w tle. znajdź / -perm -u=s -type f &
Dolar ($) Rozszerza wyrażenie arytmetyczne i przekazuje je do powłoki echo "całkowita liczba plików w tym katalogu to: $(ls | wc -l)"
Przekierowanie zerowe (2>) Kieruje standardowe komunikaty o błędach do pliku /dev/null twoja_komenda 2>/dev/null
Okrąg (^) Dopasowuje dowolny wzorzec, który zaczyna się od wyrażenia, po którym następuje ^ cd /etc/ssh; ls | grep ^s

Metaznaki Linuksa są również znane jako symbole wieloznaczne, które nadają specjalne znaczenie poleceniom i kontrolują ich zachowanie. Metaznaki optymalizują wydajność pracy użytkownika w środowisku produktywnym podczas pracy z plikami/katalogami oraz łączenia/rozszerzania poleceń powłoki systemu Linux.

Poza tym metaznaki są również elementami składowymi wyrażeń regularnych. Ponadto, nauka o metaznakach i ich użyciu jest ważną umiejętnością, którą musisz posiadać, jeśli chcesz zostać użytkownikiem pro-Linuksa.

Przewodnik dla początkujących po wyrażeniach regularnych w Pythonie

Chcesz przyspieszyć przepływ pracy w Pythonie za pomocą kilku prostych poleceń? Wyrażenia regularne są twoim przyjacielem.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Linux
  • Podstawowe informacje o Linuksie
  • Powłoka Bash dla Linuksa
O autorze
Rumaisa Niazi (5 opublikowanych artykułów)

Rumaisa jest niezależnym pisarzem w MUO. Nosiła wiele kapeluszy, od matematyka po entuzjastę bezpieczeństwa informacji, a teraz pracuje jako analityk SOC. Jej zainteresowania obejmują czytanie i pisanie o nowych technologiach, dystrybucjach Linuksa i wszystkim, co dotyczy bezpieczeństwa informacji.

Więcej od Rumaisy Niazi

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować