Poradnik dla początkujących do tworzenia skryptów Shell 3 Więcej podstawowych poleceń i łańcuchów
Nauczyłeś się tworzyć skrypty, używać argumentów i budować pętle. Teraz rzućmy okiem na kilka podstawowych poleceń, manipulowanie plikami tekstowymi i przekierowanie 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 nie zdążyłeś jeszcze opuścić naszego przewodnika 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ć wyniki każdego polecenia, aby podjąć dalsze działania 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ą ukośnika odwrotnego (\) 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ź Co jest różnicą 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 jest oparty 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
Widać, ż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 kolejnych symboli większych niż:
echo żółtych papryki >> lista
Łatwy! Użyjmy tego polecenia, aby utworzyć większą listę, powinniśmy?
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 także 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żna tworzyć długie łańcuchy poleceń, aby uzyskać bardzo konkretne pożądane wyjście w ten sposób i jest to bardzo wygodne dla poleceń takich jak grep.
Działa bardzo podobnie jak ">", z tym wyjątkiem, że może być wielokrotnie połą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 wejść
Możesz także pobierać dane wejściowe z plików dla poleceń, używając symbolu mniejszego niż (<).
kot < list
"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 wspólne łączenie poleceń.
Powiedzmy, że chcemy odfiltrować każde słowo, które ma "pep" w nim z naszego obecnego "list" pliku do nowego pliku o nazwie "rewizje".
grep pep revisions
Ponówmy to polecenie i dodajmy sortowanie.
grep pep revisions
To użyje "pep" jako wyszukiwanego terminu z pliku wejściowego "lista", posortuj go w kolejności alfabetycznej (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 listterów 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łowie, 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
- cut, paste / join - 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 nieco podstawom, które mogą być równie użyteczne w linii poleceń, jak w skryptach. Dane tekstowe często stanowią sedno rzeczy, z których korzystamy 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!