Terminal dla bardziej zaawansowanych

Opublikowano

Jeśli wiesz co to terminal, korzystasz z niego na co dzień, to znajdziesz tutaj kilka ciekawych porad, które usprawnią Twoją pracę.

Oh my ZSH

Od kilku wersji systemu macOS, domyślną powłoką systemową jest ZSH. Jego możliwości mogą zostać rozszerzone poprzez bibliotekę Oh my ZSH, która pozwala zarządzać konfiguracją ZSH oraz zawiera ponad 300 opcjonalnych pluginów usprawniających codzienną pracę. Jeśli któreś z następujących pojęć jest Ci znane, na pewno znajdziesz coś użytecznego w tym pakiecie dla siebie: git, homebrew, php, python, docker, etc.

Instalacja Oh my ZSH

Aby zainstalować bibliotekę, wykonaj poniższy skrypt w terminalu:

sh -c "$(curl -fsSL [<https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh>](<https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh>))"

Konfiguracja Oh my ZSH

Wszelkie ustawienia znajdują się w katalogu domowym, w pliku:

 ~/.zshrc

To tutaj można ustawić motyw, dodać nowe plugin’y, skonfigurować sporo dodatkowych funkcji. Po zainstalowaniu, już czysta wersja biblioteki dodaje sporo użytecznych funkcjonalności, jak np. po wpisaniu polecenia cd a następnie wciśnięciu dwukrotnie Tab , można za pomocą strzałek wybierać katalogi z wyświetlonej listy podpowiedzi poniżej wpisywanego polecenia.

Pluginy w Oh my ZSH

Możliwości terminala można rozszerzać poprzez instalowanie/włączanie dodatkowych pluginów, których lista jest na prawdę spora. Pełną listę oficjalnych dodatków znajdziesz tutaj.

Po wybraniu interesujących nas pluginów należy je dodać w pliku konfiguracyjnym ~/.zshrc, gdzie należy odszukać linijkę, która wygląda podobnie jak poniżej:

plugins=(git)

Następnie w nawiasie należy umieścić kolejne plugin’y, które chcemy aktywować. Moja przykładowa konfiguracja wygląda następująco:

plugins=(git
         zsh-autosuggestions
         sublime
         macos)

Instalacja każdego z pluginów jest opisana w instrukcjach poszczególnych pluginów. Najczęściej ogranicza się to do dopisania nazwy w pliku konfiguracyjnym, ale nieraz wymaga także uprzedniej instalacji pluginu w systemie poprzez Homebrew lub klonując repo do katalogu z plugin’ami Oh my ZSH.

⚠️ Warto pamiętać by jednak nie przesadzać z ilością dodanych wtyczek, ponieważ ich nadmierna ilość może prowadzić do powolniejszego uruchamiania się terminala.

Przykładowe plugin’y, które okazały się bardzo przydatne dla mnie, to:

zsh-autosuggestions

Wtyczka zsh-autosuggestions podpowiada polecenia w miarę jak je wpisujemy. Swoje predykcje opiera na historii uprzednio użytych przez nas poleceń.

Podgląd działania wtyczki zsh-autosuggestions

Funkcja jest bardzo przydatna, gdy mamy do czynienia z wpisaniem długich poleceń, np. przy klonowaniu repozytorium itd.

Instalacja wtyczki, oprócz dodania nazwy do zmiennej plugins w pliku konfiguracyjnym wymaga uprzednio także wykonania poniższego polecenia:

git clone [<https://github.com/zsh-users/zsh-autosuggestions>](<https://github.com/zsh-users/zsh-autosuggestions>) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

sublime

Kolejną wtyczką jest sublime która dodaje kilka aliasów, pozwalających szybko i sprawnie otwierać pliki z poziomu terminala w edytorze Sublime Text, który nota bene bardzo polecam.

Przykłady użycia:

  • st – otwiera aplikacje Sublime Text, jeśli dodamy jako parametr ścieżkę pliku, zostanie on otworzony w aplikacji,
  • stt – otwiera aplikację Sublime Text z ustawionym kontekstem na bieżący folder.

Wtyczka posiada więcej funkcjonalności, jednak te powyższe wydają się być najbardziej przydatne w codziennym użytkowaniu.

⚠️ Należy pamiętać, by wcześniej zainstalować Sublime Text w systemie.

macos

Wtyczka macos dodaje szereg aliasów dla wygodniejszego korzystania z terminala. Niektóre z nich to:

  • tab — otwórz bieżący katalog w nowej karcie
  • ofd — otwórz bieżący katalog w Finder
  • pfd — zwróć ścieżkę okna w Finder będącego na wierzchu
  • pfs — zwróć ścieżkę zaznaczenia w Finder będącego na wierzchu
  • cdf — przechodzi do ścieżki z okna w Finder będącego na wierzchu
  • cdx — przechodzi do katalogu obecnie otwartego projektu w Xcode.app
  • showfiles — pokaż ukryte pliki w Finder
  • hidefiles — ukryj ukryte pliki w Finder

Własne aliasy

Oprócz aliasów utworzonych poprzez dodanie pluginów, można stworzyć własne aliasy w terminalu, z których często korzystamy. Dla większej przejrzystości, stworzyłem osobny plik w katalogu domowym, w którym mam zdefiniowane wszystkie moje aliasy.

Jeśli masz już zainstalowaną wtyczkę sublime z powyższego punktu, możesz łatwo utworzyć nowy plik w katalogu domowym wpisując:

st ~/.aliases

Powyższe polecenie uruchomi nowe okno Sublime Text gdzie możesz zdefiniować własne aliasy. Po wprowadzeniu treści zapisz plik. Dla przykładu mój plik wygląda następująco:

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."

alias bu="brew update && brew upgrade"
alias now='date +"%T"'
alias ports='lsof -iTCP -sTCP:LISTEN'

alias wakeupnas='wakeonlan 00:00:00:00:00:00'
alias internet='ifconfig en0 inet'

Teraz krótkie wyjaśnienie, do czego służą powyższe aliasy.

Pierwsze 4 aliasy pozwalają nawigować w górę struktury drzewa katalogów za pomocą samych kropek.

bu – aktualizacja narzędzia brew oraz zainstalowanych aplikacji

now – zwraca obecną godzinę

ports – zwraca aktualnie otwarte porty w systemie

wakeupnas – skrót wysyłający pakiet do adresu MAC mojego serwera NAS, dzieki czemu zrealizowana jest funkcjonalność Wake On Lan.

internet – zwraca konfigurację karty sieciowej, w moim przypadku WiFi.

Aby aliasy były inicjowane przy starcie terminala, czyli abyśmy mogli z nich korzystać, należy dodać utworzony właśnie plik .aliases do pliku ~/.zprofile, poprzez dodanie do niego wpisu:

source ~/.aliases

Po wszystkim zrestartuj terminal i możesz cieszyć się nowymi funkcjami.

Przydatne programy

Poniżej lista przydatnych wg mnie programów, które używam w terminalu:

  • htop
  • wakeonlan
  • archey
  • youtube-dl
  • webp
  • swiftlint
  • exiftool
  • rbenv

Jest to tylko krótki wycinek, czy też bardziej podpowiedź do rozpoczęcia poszukiwań własnych programów potrzebnych w pracy. Wszystkie powyższe są dostępne za pomocą homebrew.

Style i profile

Nie należy oceniać nic po okładce, ale jednak wygląd ma znaczenie. Dlatego warto ustawić odpowiedni motyw kolorystyczny i czcionki wg własnych upodobań.

Ponad 130 profili dostępnych jest tutaj na github. Jest w czym wybierać. Profil instalujemy otwierając wybrany plik o rozszerzeniu .terminal. Następnie w Preferencjach Terminala, zakładce Profile, należy wybrać nowo dodany profil, ustawić go jako domyślny, a w zakładce Ogólne ustawić aby otwierał nowe okno z tym właśnie profilem.

Dla mnie odpowiednim okazał się profil o nazwie Fideloper. Całość wygląda tak:

Podgląd motywu Fideloper

Dla lepszego efektu, dodałem wpis w pliku ~/.zprofile, by na początku ekranu był prezentowany wynik z programu archey, który prezentuje podstawowe informacje o systemie. Wygląda to bardzo przejrzyście i ładnie.

Podgląd skonfigurowanego wyglądu terminala

Podsumowanie

Myślę, że efekt końcowy jest ciekawy i wygląda przejrzyście. Jeśli masz więcej interesujących pomysłów na rozszerzenie terminala, podziel się nimi w komentarzu.

Macuser poleca (-10% zniżki z poniższego linku):

Advertisement

Autor: macuser

Na co dzień pracuje jako iOS Developer, a w czasie wolnym uwielbia tworzyć muzykę w swoim domowym studio. Lubi czytać książki na temat psychologii, technik marketingu, oraz być ciągle na bieżąco z nowymi trendami w świecie technologii.