Linux terminal - zestaw przydatnych trików
Przy okazji ostatniego wydanie Ubuntu 20.04 jak zwykle w komentarzach rozgorzała dyskusja (albo walki troli jak kto woli) o wyższości jednego systemu nad drugim. Mam wrażenie graniczące z pewnością, że większość czytelników dużo lepiej zna Windows niż Linux i mierzy go miarą swoich przyzwyczajeń i znajomości tego pierwszego.
W związku z powyższym chciałem przybliżyć nieco jeden z mocniejszych aspektów systemów *nix tj. siłę terminala a konkretnie pokazać kilka trików terminalowych ułatwiających życie. Celowo piszę *nix ponieważ w większości porady poniżej można wykorzystać na innym znanym systemie z pnia Unix czyli MacOS
Oto lista komend która pozwoli lepiej wykorzystać siłę terminala.
- [ strzałka góra i doł ] odszukiwanie komendy w historii. Ok odpaliliśmy okienko terminala. Załóżmy że całkiem niedawno wykonywaliśmy już jakąś dosyć skomplikowaną komendę i chcemy ją wykonać jeszcze raz - strzałka do góry i w dół pozwoli nam ją odszukać w historii i wykonać ponownie komendę którą już raz wywołaliśmy
- [ ctrl + strzałka lewo lub prawo ] wpisujemy długą komendę i orientujemy się że gdzieś w środku jest zły parametr będąc już na końcu wywołania. Wciskając ctrl+ strzałka lewo możemy słowo po słowie dotrzeć do miejsca błędnego wpisu i go zmodyfikować.
- [ ctrl + r ] odszukiwanie rekursywne podobnie jak w poprzednim punkcie ale znamy już nazwę komendy przynajmniej częściowo w tym wypadku należy użyć skrótu ctrl+r pojawi się informacja o trybie wyszukiwania komendy w historii: (reverse-i-search) - teraz wpisując kolejne znaki wyszukamy komendę z historii (wybieramy poprzez enter). Dodatkowo w tym trybie także możemy używać strzałek gór dół aby wybrać komendę z już zawężonej do wyszukania listy.
- [ ctrl + k ] usunięcie wpisywanej linii od kursora do końca linii.
- [ ctrl + u ] usunięcie wpisywanej komendy od kursora do początku linii
- [ ctrl + x i ponownie ctrl+x] Zaczynamy pisać wyjątkowo długą komendę i przypominamy sobie że trzeba ją poprzedzić komendą sudo. W miejscu którym jesteśmy wciskamy ctrl + x przeskakujemy do początku linii wpisujemy to co potrzeba. Następnie wracamy do miejsca gdzie byliśmy przez ponowne naciśnięcie ctrl + x
- [q lub ctrl + d lub ctrl + c lub ctrl + x ] odpaliliśmy przez przypadek jakiś program i nie wiemy jak z niego wyjść :) Oprócz literki q są trzy komendy które prawdopodobnie pozwolą nam go zakończyć to ctrl + d lub ctrl + c lub ctrl + x
- [ ssh username@nazwahosta -p port ] W świecie windows króluje wizualny klient terminali rdp. W świecie unix najczęstszym sposobem łączenia się z innym serwerem jest klient i serwer ssh. Warto dodać że tego typu połączenie w przeciwieństwie do ftp jest szyfrowane.
- [ xdg-open nazwa_pliku ] otwieranie pliku graficznego lub innego w terminalu
- [ zapisanie hostów ssh w pliku ~/.ssh/config ] Jeśli łączycie się ze dużą ilością serwerów przez ssh warto zapisać ich adresy pod aliasami w pliku ~/.ssh/config Tutaj znajdziecie pełniejszy opis jak dodać listę swoich hostów. Podstawowa składnia zapisu jak poniżej. Teraz wystarczy wpisać: ssh mycustomerhost aby połączyć się z serwerem z wszystkimi parametrami zdefiniowanymi w pliku config.
host mycustomerhost HostName some.domain.net Port 50022 User superuser LocalForward 9999 127.0.0.1:8001 LocalForward 8889 127.0.0.1:15672 host other HostName example.com Port 7878 User tertulian
Powyższa lista nie jest w żaden sposób kompletna ani w żadnym razie nie jest listą najważniejszych komend terminala a jedynie podzbiór tych które autor uważa za wyjątkowo przydatne w swojej codziennej pracy.
Jeśli macie swoje ulubione skróty zachęcam do podzielenia się nimi w komentarzu!
W następnym wpisie chciałbym krótko omówić listę kilku bardzo przydatnych terminalowych narzędzi takich jak multiplekser tmux i file manager lf.
EDIT!
W komentarzach dodaliście sporo dodatkowych trików/komend/podpowiedzi. O części z nich w ogóle nie słyszałem, inne tak weszły mi w krew że aż o nich zapomniałem. Oto krótka lista tych najbardziej oczywistych wyciągnięta ze zbiorowej mądrości czytelników:
- [ tab ] - załóżmy że chcemy skopiować plik: o_bradzo_dlugiej_i_skomplikowanej_nazwie.txt zaczynamy pisać: > cp o_bar i w tym miejscu wciskamy tabulator. Istnieje spora szansa że nazwa pliku zostanie autouzupełniona jeśli nazwa pliku jest unikalna. Jeśli nie jest unikalna, system pokaże pasujące dopasowania.
- [ ctrl + a oraz ctrl + e ] przejście odpowiednio do początku i końca linii
- [dodanie aliasów w pliku.bashrc] jeśli używasz powłoki bash (domyślna w ubuntupochodnych) to edytując plik .bashrc można zadeklarować własne skróty komend. Np. domyślnie już wpisany w Ubuntu alias listowania plików z dodatkowymi informacjami ll zadeklarowany jako: alias ll='ls -alF' lub inny podobny alias la='ls -A'