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ć:
- * (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:
- <: Kieruje zawartość pliku do polecenia. Na przykład wyjście polecenia dla mniej .bashrc jest taki sam jak mniej < .bashrc.
- >: Kieruje dane wyjściowe polecenia do pliku. Komenda ls /etc > listy.txt zapisuje dane wyjściowe w pliku lists.txt.
- >>: 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.
Chcesz przyspieszyć przepływ pracy w Pythonie za pomocą kilku prostych poleceń? Wyrażenia regularne są twoim przyjacielem.
Czytaj dalej
- Linux
- Podstawowe informacje o Linuksie
- Powłoka Bash dla Linuksa
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.
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ć