[zakładka] Bash dla początkujących: 21 przydatnych poleceń

Materiał, którego tłumaczenie dzisiaj publikujemy, przeznaczony jest dla tych, którzy chcą opanować linię poleceń Linuksa. Umiejętność efektywnego wykorzystania tego narzędzia pozwala zaoszczędzić mnóstwo czasu. W szczególności porozmawiamy tutaj o powłoce Bash i 21 przydatnych poleceniach. Porozmawiamy także o tym, jak używać flag poleceń i aliasów Bash, aby przyspieszyć wpisywanie długich instrukcji.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń

Przeczytaj także na naszym blogu serię publikacji na temat skryptów bashowych

Warunki

Kiedy nauczysz się pracować z wierszem poleceń Linuksa, zetkniesz się z wieloma koncepcjami pomocnymi w nawigacji. Niektóre z nich, jak „Linux” i „Unix” lub „Shell” i „terminal”, są czasami mylone. Porozmawiajmy o tych i innych ważnych terminach.

Unix to popularny system operacyjny opracowany przez Bell Labs w latach 1970. XX wieku. Jej kod został zamknięty.

Linux to najpopularniejszy system operacyjny typu Unix. Jest obecnie używany na wielu urządzeniach, w tym na komputerach.

Terminal (terminal) lub emulator terminala to program umożliwiający dostęp do systemu operacyjnego. Możesz mieć jednocześnie otwartych wiele okien terminala.

Shell (shell) to program umożliwiający wysyłanie do systemu operacyjnego poleceń napisanych w specjalnym języku.

Bash oznacza Bourne Again Shell. Jest to najpopularniejszy język powłoki używany do interakcji z systemem operacyjnym. Ponadto powłoka Bash jest domyślna w systemie macOS.

Interfejs linii komend (Command Line Interface, CLI) to metoda interakcji człowieka z komputerem, podczas której użytkownik wprowadza polecenia z klawiatury, a komputer wykonując te polecenia, wyświetla użytkownikowi komunikaty w formie tekstowej. Interfejs CLI służy głównie do uzyskiwania aktualnych informacji o określonych podmiotach, na przykład o plikach, oraz do pracy z plikami. Interfejs wiersza poleceń należy odróżnić od graficznego interfejsu użytkownika (GUI), który wykorzystuje głównie mysz. Interfejs wiersza poleceń jest często nazywany po prostu wierszem poleceń.

Scenariusz (skrypt) to mały program zawierający sekwencję poleceń powłoki. Skrypty zapisywane są do plików, można ich używać wielokrotnie. Pisząc skrypty, możesz używać zmiennych, warunków, pętli, funkcji i innych funkcji.

Teraz, gdy omówiliśmy już ważne terminy, chcę zaznaczyć, że będę tutaj używać zamiennie terminów „Bash”, „powłoka” i „wiersz poleceń”, a także terminów „katalog” i „folder”.

Standardowy strumienie, którego tutaj użyjemy, jest wejściem standardowym (wejście standardowe, stdin), standardowe wyjście (standardowe wyjście, stdout) i standardowe wyjście błędu (błąd standardowy, stderr).

Jeśli w przykładowych poleceniach, które zostaną podane poniżej, znajdziesz coś takiego my_whatever - oznacza to, że ten fragment należy zastąpić czymś swoim. Na przykład nazwa pliku.

Zanim przejdziemy do analizy poleceń, którym poświęcony jest ten materiał, przyjrzyjmy się ich liście i krótkiemu opisowi.

21 poleceń Basha

▍Uzyskiwanie informacji

  • man: Wyświetla podręcznik użytkownika (pomoc) dla polecenia.
  • pwd: wyświetla informacje o katalogu roboczym.
  • ls: wyświetla zawartość katalogu.
  • ps: Umożliwia przeglądanie informacji o uruchomionych procesach.

▍Manipulacja systemem plików

  • cd: zmień katalog roboczy.
  • touch: utwórz plik.
  • mkdir: utwórz katalog.
  • cp: Skopiuj plik.
  • mv: Przenieś lub usuń plik.
  • ln: utwórz łącze.

▍Przekierowanie we/wy i potoki

  • <: przekierowanie stdin.
  • >: przekierowanie stdout.
  • |: potokował wyjście jednego polecenia na wejście innego polecenia.

▍Czytanie plików

  • head: przeczytaj początek pliku.
  • tail: przeczytaj koniec pliku.
  • cat: Przeczytaj plik i wydrukuj jego zawartość na ekranie lub połącz pliki.

▍Usuwanie plików, zatrzymywanie procesów

  • rm: Usuń plik.
  • kill: zatrzymaj proces.

▍Wyszukaj

  • grep: szukać informacji.
  • ag: zaawansowane polecenie wyszukiwania.

▍Archiwizacja

  • tar: tworzenie archiwów i praca z nimi.

Porozmawiajmy o tych poleceniach bardziej szczegółowo.

Szczegóły zespołu

Na początek zajmijmy się poleceniami, których wyniki wydawane są w formularzu stdout. Zwykle wyniki te pojawiają się w oknie terminala.

▍Uzyskiwanie informacji

man command_name: wyświetla przewodnik poleceń, czyli informacje pomocy.

pwd: wyświetla ścieżkę do bieżącego katalogu roboczego. W trakcie pracy z wierszem poleceń użytkownik często musi dowiedzieć się, gdzie dokładnie w systemie się znajduje.

ls: wyświetla zawartość katalogu. To polecenie jest również używane dość często.

ls -a: Pokaż ukryte pliki. flaga zastosowana tutaj -a polecenia ls. Użycie flag pomaga dostosować zachowanie poleceń.

ls -l: Wyświetla szczegółowe informacje o plikach.

Należy pamiętać, że flagi można łączyć. Na przykład - tak: ls -al.

ps: Wyświetl działające procesy.

ps -e: Wyświetla informacje o wszystkich uruchomionych procesach, a nie tylko tych związanych z bieżącą powłoką użytkownika. Polecenie to jest często używane w tej formie.

▍Manipulacja systemem plików

cd my_directory: zmień katalog roboczy na my_directory. Aby przejść o jeden poziom wyżej w drzewie katalogów, użyj my_directory względna ścieżka dostępu ../.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
polecenie CD

touch my_file: tworzenie pliku my_file wzdłuż podanej ścieżki.

mkdir my_directory: utwórz folder my_directory wzdłuż podanej ścieżki.

mv my_file target_directory: przenieś plik my_file do folderu target_directory. Określając katalog docelowy, musisz użyć bezwzględnej ścieżki do niego (a nie konstrukcji typu ../).

zespół mvmoże być również używany do zmiany nazw plików lub folderów. Na przykład może to wyglądać tak:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: utwórz kopię pliku my_source_file i umieść go w folderze target_directory.

ln -s my_source_file my_target_file: utwórz dowiązanie symboliczne my_target_file na plik my_source_file. Jeśli zmienisz łącze, oryginalny plik również ulegnie zmianie.

Jeśli plik my_source_file zostaną wówczas usunięte my_target_file pozostanie. Flaga -s polecenia ln umożliwia tworzenie linków do katalogów.

Porozmawiajmy teraz o przekierowaniu we/wy i potokach.

▍Przekierowanie we/wy i potoki

my_command < my_file: zastępuje standardowy deskryptor pliku wejściowego (stdin) na plik my_file. Może to być przydatne, jeśli polecenie oczekuje na wprowadzenie danych z klawiatury, a dane te są już zapisane w pliku.

my_command > my_file: przekierowuje wyniki polecenia, tj. to, co normalnie by się tam znalazło stdout i wyprowadzić na ekran do pliku my_file. Jeśli plik my_file nie istnieje – jest tworzone. Jeśli plik istnieje, zostanie nadpisany.

Na przykład po wykonaniu polecenia ls > my_folder_contents.txt zostanie utworzony plik tekstowy zawierający listę zawartości bieżącego katalogu roboczego.

Jeśli zamiast symbolu > skorzystaj z konstrukcji >>, wówczas pod warunkiem, że istnieje plik, do którego przekierowywane jest wyjście polecenia, plik ten nie zostanie nadpisany. Dane zostaną dodane na końcu tego pliku.

Przyjrzyjmy się teraz przetwarzaniu potoku danych.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
Dane wyjściowe jednego polecenia są podawane na wejście innego polecenia. To jak łączenie jednej rury z drugą

first_command | second_command: symbol przenośnika, |, służy do wysyłania danych wyjściowych jednego polecenia do innego polecenia. Do czego wysyła polecenie znajdujące się po lewej stronie opisywanej struktury stdout, Popaść w stdin polecenie po prawej stronie symbolu potoku.

W systemie Linux dane można przesyłać potokowo za pomocą dowolnego dobrze sformułowanego polecenia. Często mówi się, że wszystko w Linuksie jest potokiem.

Możesz łączyć wiele poleceń za pomocą symbolu potoku. To wygląda tak:

first_command | second_command | third_command

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
Potok kilku poleceń można porównać do potoku

Należy pamiętać, że gdy polecenie znajduje się po lewej stronie symbolu |, wyprowadza coś do stdout, to, co wygeneruje, jest natychmiast dostępne jako stdin drugi zespół. Czyli okazuje się, że wykorzystując potok mamy do czynienia z równoległym wykonywaniem poleceń. Czasami może to prowadzić do nieoczekiwanych rezultatów. Szczegóły na ten temat można przeczytać tutaj.

Porozmawiajmy teraz o czytaniu danych z plików i wyświetlaniu ich na ekranie.

▍Czytanie plików

head my_file: czyta linie z początku pliku i wyświetla je na ekranie. Możesz przeczytać nie tylko zawartość plików, ale także to, co wyprowadzają polecenia stdinużywając tego polecenia jako części potoku.

tail my_file: czyta linie z końca pliku. Tego polecenia można również użyć w potoku.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
Głowa (głowa) jest z przodu, a ogon (ogon) z tyłu

Jeśli pracujesz z danymi przy użyciu biblioteki pandas, wówczas polecenia head и tail powinien być ci znany. Jeżeli tak nie jest, spójrz na powyższy rysunek, a z łatwością je zapamiętasz.

Rozważ inne sposoby odczytu plików, porozmawiajmy o poleceniu cat.

Zespół cat albo drukuje zawartość pliku na ekranie, albo łączy wiele plików. Zależy to od tego, ile plików zostanie przekazanych do tego polecenia po wywołaniu.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
polecenie kota

cat my_one_file.txt: gdy do tego polecenia zostanie przekazany pojedynczy plik, zostanie on wyprowadzony do stdout.

Jeśli dasz mu dwa pliki lub więcej plików, zachowuje się inaczej.

cat my_file1.txt my_file2.txt: po otrzymaniu kilku plików jako danych wejściowych polecenie to łączy ich zawartość i wyświetla, co się wydarzyło stdout.

Jeśli wynik łączenia plików wymaga zapisania jako nowy plik, można skorzystać z operatora >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Porozmawiajmy teraz o tym, jak usunąć pliki i zatrzymać procesy.

▍Usuwanie plików, zatrzymywanie procesów

rm my_file: usunąć plik my_file.

rm -r my_folder: usuwa folder my_folder oraz wszystkie pliki i foldery, które zawiera. Flaga -r wskazuje, że polecenie zostanie uruchomione w trybie rekurencyjnym.

Aby system nie pytał o potwierdzenie za każdym razem, gdy plik lub folder zostanie usunięty, użyj flagi -f.

kill 012345: Zatrzymuje określony działający proces, dając mu czas na bezpieczne zamknięcie.

kill -9 012345: Wymusza zakończenie określonego uruchomionego procesu. Zobacz flagę -s SIGKILL oznacza to samo co flaga -9.

▍Wyszukaj

Do wyszukiwania danych można używać różnych poleceń. W szczególności - grep, ag и ack. Zacznijmy naszą znajomość tych poleceń od grep. Jest to sprawdzone i niezawodne polecenie, które jednak jest wolniejsze niż inne i nie jest tak wygodne w użyciu jak inne.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
polecenie grepa

grep my_regex my_file: wyszukiwania my_regex в my_file. Jeśli zostanie znalezione dopasowanie, zwracany jest cały ciąg dla każdego dopasowania. Domyślny my_regex traktowane jako wyrażenie regularne.

grep -i my_regex my_file: Wyszukiwanie odbywa się bez uwzględniania wielkości liter.

grep -v my_regex my_file: zwraca wszystkie wiersze, które nie zawierają my_regex. Flaga -v oznacza inwersję, przypomina operatora NOT, występujący w wielu językach programowania.

grep -c my_regex my_file: Zwraca informację o liczbie dopasowań szukanego wzorca znalezionego w pliku.

grep -R my_regex my_folder: wykonuje wyszukiwanie rekurencyjne we wszystkich plikach znajdujących się w określonym folderze oraz w folderach w nim zagnieżdżonych.

Porozmawiajmy teraz o zespole ag. Przyszła później grep, jest szybszy, wygodniej jest z nim pracować.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
polecenie ag

ag my_regex my_file: zwraca informację o numerach linii oraz samych liniach, w których znaleziono dopasowania my_regex.

ag -i my_regex my_file: Wyszukiwanie odbywa się bez uwzględniania wielkości liter.

Zespół ag automatycznie przetworzyć plik .gitignore i wyklucza z danych wyjściowych zawartość folderów lub plików wymienionych w tym pliku. To jest bardzo wygodne.

ag my_regex my_file -- skip-vcs-ignores: zawartość plików automatycznej kontroli wersji (np .gitignore) nie jest brany pod uwagę w wyszukiwaniu.

Ponadto, aby powiedzieć zespołowi ag na których ścieżkach plików chcesz wykluczyć z wyszukiwania, możesz utworzyć plik .agignore.

Na początku tej sekcji wspomnieliśmy o poleceniu ack. Zespoły ack и ag bardzo podobne, można powiedzieć, że są w 99% wymienne. Jednak zespół ag działa szybciej, dlatego to opisałem.

Porozmawiajmy teraz o pracy z archiwami.

▍Archiwizacja

tar my_source_directory: łączy pliki z folderu my_source_directory do jednego pliku tarball. Takie pliki są przydatne do przesyłania komuś dużych zestawów plików.

[zakładka] Bash dla początkujących: 21 przydatnych poleceń
polecenie tar

Pliki tar wygenerowane przez to polecenie to pliki z rozszerzeniem .tar (Archiwum taśm). Fakt, że słowo „taśma” (taśma) ukryte jest w nazwie polecenia i w rozszerzeniu nazw plików, które tworzy, wskazuje, jak długo to polecenie istnieje.

tar -cf my_file.tar my_source_directory: tworzy plik tar o nazwie my_file.tar z zawartością folderu my_source_directory. Flaga -c oznacza „stwórz” (stworzenie) i flagę -f jako „plik” (plik).

Aby wyodrębnić pliki z .tar-file, użyj polecenia tar z flagami -x („ekstrakt”, ekstrakcja) i -f („plik”, plik).

tar -xf my_file.tar: wyodrębnia pliki z my_file.tar do bieżącego katalogu roboczego.

Porozmawiajmy teraz o tym, jak kompresować i dekompresować .tar-akta.

tar -cfz my_file.tar.gz my_source_directory: tutaj za pomocą flagi -z („zip”, algorytm kompresji) wskazuje, że algorytm powinien być używany do kompresji plików gzip (GNUzip). Kompresja plików oszczędza miejsce na dysku podczas przechowywania takich plików. Jeżeli planowane jest na przykład przesłanie plików innym użytkownikom, przyczynia się to do szybszego pobierania takich plików.

Rozpakuj plik .tar.gz możesz dodać flagę -z do polecenia wyodrębnienia zawartości .tar-files, które omówiliśmy powyżej. To wygląda tak:

tar -xfz my_file.tar.gz
Warto zaznaczyć, że zespół tar Jest wiele innych przydatnych flag.

Aliasy Basha

Aliasy Bash (zwane także aliasami lub skrótami) służą do tworzenia skróconych nazw poleceń lub ich sekwencji, których użycie zamiast zwykłych poleceń przyspiesza pracę. Jeśli masz pseudonim bu, co ukrywa polecenie python setup.py sdist bdist_wheel, to aby wywołać to polecenie, wystarczy użyć tego aliasu.

Aby utworzyć taki alias wystarczy dodać do pliku poniższe polecenie ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Jeśli w twoim systemie nie ma pliku ~/.bash_profile, możesz go utworzyć samodzielnie za pomocą polecenia touch. Po utworzeniu aliasu uruchom ponownie terminal, po czym będziesz mógł używać tego aliasu. W tym przypadku wprowadzenie dwóch znaków zastępuje wprowadzenie ponad trzech tuzinów znaków polecenia, do którego jest przeznaczone zespoły Pakiety Pythona.

В ~/.bash_profile możesz dodać aliasy dla często używanych poleceń.

▍Wyniki

W tym poście omówiliśmy 21 popularnych poleceń Bash i omówiliśmy tworzenie aliasów poleceń. Jeśli interesuje Cię ten temat - tutaj cykl publikacji poświęconych Bashu. Tutaj Można znaleźć wersję PDF tych publikacji. Ponadto, jeśli chcesz nauczyć się języka Bash, pamiętaj, że podobnie jak w przypadku każdego innego systemu programowania, kluczowa jest praktyka.

Drodzy Czytelnicy! Jakie polecenia przydatne dla początkujących dodałbyś do tych omówionych w tym artykule?

Przeczytaj także na naszym blogu serię publikacji na temat skryptów bashowych

[zakładka] Bash dla początkujących: 21 przydatnych poleceń

Źródło: www.habr.com

Dodaj komentarz