27Jun

Poradnik dla początkujących do tworzenia skryptów Shell 3: Więcej podstawowych poleceń &Więzy

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ń

Daliś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 do tej pory opuściłeś nasz przewodnik po skryptach powłoki.

Wiersz polecenia 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ć go do 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 wierszu poleceń jako wyjściowy argument

z spacjami

Jak widać, znaki specjalne muszą być "uniknięte", aby były 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ź Co jest różnica między pojedynczą a podwójną kwotą w powłoce Bash?

cat - 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, że 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( & gt;).

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

echo pepperoni & gt;list

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

Należy również pamiętać, że poprzednia zawartość "listy" została usunięta. Spróbuj jeszcze raz:

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:

echo yellow peppers & gt;lista

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

Idziemy. 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 / & gt;~ / 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.

Orurowanie lub łańcuchowanie

Piping jest tak nazwany, ponieważ używa rury,( |; współdzielony z \ key na większości klawiatur).Zasadniczo pobiera dane wyjściowe z jednego polecenia i przekazuje je bezpośrednio innemu. 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 podobnie jak "& gt;", z tym wyjątkiem, że może być wielokrotnie połączony, a jego efekt jest bardziej ogólny, 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ż( & lt;).

cat & lt;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" w nim z naszego obecnego "list" pliku do nowego pliku o nazwie "rewizje".

grep pep & lt;lista & gt;wersje

Zmieńmy to polecenie i dodajmy sortowanie.

grep pep & lt;lista |sortuj & gt;korekty

Użyje "pep" jako wyszukiwanego hasła z pliku wejściowego "lista", posortuje go w porządku alfabetycznym( wszystkie wyrazy pisane dużymi literami, po których następuje wszystkie małe litery), a następnie wypisze je w pliku "korekty".

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ć:

skrypt searchterm listfile

To zajmie termin i użyje grep do przeszukania pliku listy, posortowania wyników, a następnie wyprowadzenia ich do innego pliku.

Oto katalog, w którym testujemy skrypt w:

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

Masz! 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 między sobą.
  • uniq - usuwa każdy nieunikalny( odczyt: duplikat) awk
  • - bardzo zaawansowany język / funkcję przetwarzania tekstu, który może być używany do oddzielania pól w nazwach plików
  • wycinanie, wklejanie / łączenie - polecenia przydatne do izolowania pól od plików tekstowych i dodawanianowe dane w kolumny wygląd
  • - 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ęna niektórych innych podstawach dzisiaj, 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!