5 komend Basha, które sprawią Ci frajdę
Shell Scripting daje tyle frajdy! A da Ci jeszcze więcej, jak rozeznasz się w tych wszystkich jego narzędziach. Do pokazania tego wszystkiego, co chcę pokazać, użyję Terminala. Jeśli chcecie korzystać z Linuksowego wiersza poleceń na Windowsie, otwórzcie PowerShell lub wiersz poleceń i wpiszcie bash. Możecie również wyszukać bash w pasku wyszukiwania i otworzyć bash w oknie komend. Większość z narzędzi, które chcę tutaj omówić, nie jest preinstalowana. Trzeba je więc zinstalować. Ja używam Homebrew, bo działam na MacOS.
Fragment pochodzi ze strony internetowej poświęconej Homebrew:
Homebrew instaluje wszystko to, czego potrzebujesz, a czego Apple lub Twój Linux nie mają.
Homebrew instaluje pakiety do swojego własnego katalogu, a następnie tworzy symlink dla jego plików w /usr/local.
Tak to właśnie wygląda:
$ brew install <name-of-package>
tldr
-
$ brew install tldr
:tldr
to narzędzie, które pokazuje Ci, jak użyć danej komendy Basha. Na przykład:
$ tldr grep
tldr grep
$ tldr find
tldr find
tldr
zadziała z praktycznie każdą komendą basha. Spójrzmy na kilka sposobów, w jakie możemy jej użyć.
TL;DR to skrót od “Too Long; Didn’t Read” - zazwyczaj umieszcza się go pod zbyt długimi wpisami internetowymi jako wyraz dezaprobaty wobec tego, jak bardzo autor się rozpisał.
ShellCheck
-
$ brew install shellcheck
:shellcheck
wykorzystuje się do sprawdzania, czy w skryptach wszystko gra. Uwaga:ShellCheck
obsługuje tylkosh/bash
.
$ shellcheck <name-of-bash-file>
ShellCheck ma na celu:
Zwrócenie uwagi i wyjaśnienie prostych problemów ze składnią, które wyrzucają zagadkowe informacje o błędach.
Zwrócenie uwagi i wyjaśnienie bardziej zaawansowanych problemów semantycznych, które powodują, że shell zachowuje się dziwnie i niezgodnie z intuicją.
Zwrócenie uwagi na przypadki szczególne oraz pułapki, które mogą sprawić, że działający skrypt przestanie działać przy odpowiednich warunkach.
Źródło: GitHub
Dla zademonstrowania działania ShellCheck
użyję skryptu, który znalazłam tutaj. Oto ten sam skrypt w VIM:
example.sh
Oto wynik komendy ShellCheck
:
shellcheck example.sh
Zrobiło to na mnie duże wrażenie!
history
-
$ history
: komenda ta daje listę komend, których właśnie użyliśmy w terminalu bash. Jest to znacznie lepszy sposób na przeglądanie poleceń, niż używanie strzałki w górę (łatwo się wtedy zgubić i nic nie znaleźć).
fzf
-
$ brew install fzf
:fzf
to narzędzie, które działa jak interaktywy grep (grep to narzędzie dopasowujące wzorce).
Biorąc pod uwagę skrypt example2.sh
, w pliku możemy interaktywnie wyszukać czegokolwiek, przesyłając zawartość pliku do fzf
:
cat example2.sh | fzf
cat example2.sh | fzf
Aby wyjść z trybu wyszukiwania, naciśnij Esc + q + Enter. Plik, który tutaj pokazałam, nie jest oczywiście w stanie pokazać pełni możliwości fzf.
broot
-
$ brew install broot
: nals
nie zawsze łatwo się patrzy. Wyświetla ono po prostu wszystkie pliki i katalogi w terminalu. Jest więc nieefektywne, jeśli chodzi o nawigację i lokalizowanie niektórych plików/folderów. Zamiast tego możemy wykorzystaćbroot
- narzędzie, które w prosty sposób wyświetla listę katalogów i plików. Gdy znajdujesz się katalogu, o który Ci chodzi, wpiszbroot
i naciśnij enter. Pojawi się wtedy lista katalogów i plików (skoordynowane kolorami w celu dopasowania do typu). Możesz wejść do katalogu, aby dokładniej zobaczyć jego zawartość.broot
pozwala również otworzyć plik bezpośrednio z terminala w domyślnej aplikacji dla tego typu plików.
Prawda, że świetne? Sprawdź sam!
Oryginał tekstu w języku angielskim możesz przeczytać tutaj.