If-Koubou

Przewodnik dla początkujących w Skrypty Shell 3: Więcej podstawowych poleceń i łańcuchów

Przewodnik dla początkujących w Skrypty Shell 3: Więcej podstawowych poleceń i łańcuchów (Jak)

Nauczyłeś się tworzyć skrypty, używać argumentów i budować pętle. Przyjrzyjmy się teraz bardziej podstawowym poleceniom, manipulowaniu plikami tekstowymi i przekierowaniu danych wejściowych i wyjściowych do plików i innych poleceń.

Kilka podstawowych użytecznych poleceń

Udostępniliśmy już podstawowy podział skryptów powłoki i przykładowy zarys pętli, ale pamiętaj, aby zapoznać się z tymi artykułami, jeśli dotychczas nie trafiłeś w nasz przewodnik po skryptach powłoki.

Wiersz poleceń jest wspaniały z wielu powodów, a przekierowanie jest jednym z najbardziej znanych. Gdybyś musiał zanotować i odtworzyć wyjście każdego polecenia, aby podjąć dalsze działanie lub użyć czegoś innego, wszyscy oszaleliśmy dawno temu. Przekierowanie pozwala nam użyć tego wyjścia i zapisać go lub natychmiast użyć go jako wejścia dla innego polecenia. Możemy również używać plików jako danych wejściowych dla innych poleceń.

Zanim przejdziemy dalej, omówmy kilka podstawowych poleceń, które mogą być przydatne w wielu różnych miejscach.

Echo - To polecenie po prostu drukuje (wyświetla) cały argument w linii poleceń jako wynik

echo argument ze spacjami

Jak widać, znaki specjalne muszą być "uciekł", więc są traktowane normalnie. Odbywa się to za pomocą odwrotnego ukośnika (\) przed postacią. Lepiej używać cudzysłowów. Polecenie echo działa również ze zmiennymi.

Jak widać, pojedyncze i podwójne cudzysłowy zachowują się inaczej. Aby uzyskać więcej informacji, sprawdź Czym jest różnica między pojedynczą a podwójną kwotą w powłoce Bash?

kot - To polecenie wyświetla zawartość plików tekstowych jako wynik.

cat file_to_be_read

Załóżmy, że tworzymy ten plik tekstowy w nano:

Kiedy używamy polecenia cat w pliku, możemy zobaczyć jego wynik.

grep - To jedno z najpotężniejszych i najbardziej użytecznych poleceń dostępnych w Linuksie. To skrót od Global / Regular Expression Print. Przegląda plik i wypisuje dowolną linię pasującą do określonego wzorca. Ponieważ ten wzorzec opiera się na "regularnej ekspresji", zwięzła linia może dać wiele dopasowanych wzorów. Bo nie, możesz wpisać rybaka do wyszukiwania.

plik grep

Zapewniam cię, Grep może zrobić więcej, ale na razie trzymajmy się łatwiejszych rzeczy.

Przekierowywanie wyników

Aby przekierować wyjście polecenia do pliku, używamy znaku specjalnego, większego niż symbol (>).

Zmieńmy naszą listę, dobrze? Wprowadź następujące polecenie:

echo pepperoni> lista

Możesz zobaczyć, że echo nie wyświetla już linii, a kiedy patrzymy na zawartość pliku "list", widzimy, co tam echo.

Zwróć też uwagę, że poprzednia zawartość "listy" została usunięta. Spróbuj ponownie:

Może to być przydatne, gdy chcesz ponownie użyć pliku, ale często chcemy go tylko dodać do istniejącego pliku. W tym celu używamy dwóch następujących po sobie symboli większych niż:

echo żółtych papryki >> lista

Łatwy! Użyjmy tego polecenia, aby stworzyć większą listę, dobrze?

No to jedziemy. Myślę, że widzisz, dlaczego tak wielu maniaków używa wiersza poleceń do tworzenia list rzeczy do zrobienia i tym podobnych, ale robi się jeszcze lepiej.

Pobieramy dane wyjściowe polecenia i umieszczamy je w pliku:

ls -al /> ~ / rootlist

Tworzenie list plików, ich edycja, a następnie uruchamianie poleceń na tych, których szukasz, nigdy nie było prostsze. Podczas wykonywania tych podstawowych funkcji w linii poleceń działają one dobrze również w skryptach.

Rury lub łańcuchy

Piping jest tak nazwany, ponieważ używa potoku (|; współdzielony z \ key na większości klawiatur). Zasadniczo pobiera dane wyjściowe z jednego polecenia i przekazuje je bezpośrednio do drugiego. Możesz tworzyć długie łańcuchy poleceń, aby uzyskać w ten sposób bardzo konkretne pożądane wyjście, i jest to bardzo wygodne dla poleceń takich jak grep.

Działa bardzo podobnie jak ">", z tym wyjątkiem, że może być wielokrotnie łączony, a jego działanie jest bardziej ogólne, ponieważ nie musi przechodzić przez plik tekstowy.

Jak widać, grep rozróżnia wielkość liter. Możesz użyć flagi "-i", aby ignorować wielkość liter.

Przekierowywanie danych wejściowych

Możesz także pobierać dane wejściowe z plików dla poleceń, używając symbolu mniejszego niż (<).

cat <lista

"To nie różni się od używania argumentu!", Możesz powiedzieć. Cóż, w tym przypadku będziesz poprawny. Tam, gdzie naprawdę przydatne jest przekierowanie wejścia, jest łączenie poleceń razem.

Powiedzmy, że chcemy odfiltrować każde słowo, które ma "pep" z naszego aktualnego pliku "list" do nowego pliku o nazwie "rewizje".

grep pep revisions

Ponówmy to polecenie i dodajmy sortowanie.

grep pep revisions

Spowoduje to użycie "pep" jako wyszukiwanego terminu z pliku wejściowego "lista", posortuj go w porządku alfabetycznym (wszystkie wyrazy pisane dużymi literami, po których następuje wszystkie małe litery), a następnie wyprowadź je do pliku "wersji".

Aby zilustrować polecenie sort, spójrzmy na następujący przykład:

Jak widać, dodanie flagi "-f" do polecenia sort pozwala ignorować wielkość liter. Ułatwia nam to alfabetyzację linii w plikach tekstowych i ignorowanie wielkich liter, gdy nie ma to znaczenia.

Prosty skrypt

Stwórzmy skrypt, który ma następującą postać:

skryptowy plik listy wyszukiwania

To zajmie termin i użyje grep do przeszukiwania pliku listy, sortowania wyników, a następnie wyprowadzania ich do innego pliku.

Oto katalog, w którym testujemy skrypt w:

I możemy stworzyć listę tego, co tutaj, a następnie uruchomić skrypt.

Proszę bardzo! Im więcej uczysz się zasad wyrażeń regularnych, tym dokładniej możesz utworzyć polecenie wyszukiwania. I wszystko, co jest ważne w cudzysłowach, może zastąpić twój pierwszy argument!

Jeśli chodzi o sortowanie, możesz zrobić więcej niż tylko sortować alfabetycznie. Spójrz na stronę man dla niektórych z następujących poleceń:

  • tsort - bardziej zaawansowana funkcja sortowania topologicznego
  • tr - pozwala mapować określone postacie na inne postacie i transkrybować je.
  • uniq - usuwa wszelkie nieunikalne (czytaj: duplikaty)
  • awk - bardzo zaawansowany język / funkcja przetwarzania tekstu, która może być używana do oddzielania pól w nazwach plików
  • wycinanie, wklejanie / łączenie - polecenia przydatne do izolowania pól z plików tekstowych i dodawania nowych danych do kolumn
  • look - wyszukiwania takie jak grep, ale używa pliku słownika (który może być określony przez użytkownika) do wyszukiwania
  • wc - pozwala uzyskać liczbę słów, liczbę linii, liczbę znaków i więcej

Przyjrzeliśmy się dzisiaj kilku podstawom, które mogą być równie użyteczne w linii poleceń, jak w skryptach. Dane tekstowe często stanowią sedno rzeczy, których używamy codziennie, więc umiejętność pracy z nimi, wyszukiwania i manipulowania nimi jest kluczowa.

Jakie są twoje ulubione skrypty? Czy masz jakieś specjalne skrypty do plików tekstowych? Podziel się tym, co wiesz w komentarzach!