Bądź: Wyszukaj na stronie z użyciem Google
reklama:

środa, 10 grudnia 2008

Bash: ułatwiamy sobie życie (podstawy)

Autor: , 23:42, środa, 10 grudnia 2008


W tym poście chciałem przedstawić pewne skróty używane w bashu, dzięki którym będzie można w nim pracować szybciej i przyjemniej. Napiszę też jedno przydatne polecenie bardzo związane z tą powłoką. Dla zaawansowanych użytkowników są to rzeczy banalne, jednak czasem można spędzić trochę czasu w konsoli, nie zdając sobie sprawy z pewnych udogodnień.

Najpierw: co to jest bash? Jest to program, zwany dzięki któremu wykonywane są polecenia wpisywane w tzw. emulatorze terminala (dowolnym: xterm, gnome-terminal, xfce4-terminal, konsole, ...). Istnieją, obok basha, również inne powłoki systemowe.
Więcej informacji, jak zawsze, w Wikipedii.

A teraz po kolei.
* Magiczny przycisk tabulacji. Dopełnia wpisywany ciąg. Wpiszcie fragment programu, np. gnome i wciśnijcie dwukrotnie klawisz tab. Wyświetlą się polecenia zaczynające się od gnome (po pierwszym "tabie" możecie usłyszeć "piknięcie" - powłoka informuje nas tak, że istnieje wiele możliwych dopełnień). Jeśli występuje tylko jedno polecenie zaczynające się od podanego ciągu, jego nazwa uzupełni się samoczynnie po pierwszym wciśnięciu klawisza tab.
To dopełnianie działa także w kontekście nazw plików, katalogów, a nawet - w niektórych przypadkach - dla parametrów poleceń (wpiszcie apt-get inst i wciśnijcie tab; jeśli macie odpowiednio skonfigurowanego basha - pojawi się polecenie "apt-get install"; w Ubuntu 8.04 funkcja jest włączona domyślnie; jeśli nie działa, sprawdźcie, czy macie zainstalowany pakiet bash-completion, jeżeli takie coś Wam odpowiada).
* Przyciski "strzałka w górę" i "strzałka w dół" pozwalają na nawigację po porzednio wpisanych/kolejnych poleceniach. W dodatku, historia poleceń jest zapisywana do pliku .bash_history i jest pamiętana (standardowo 500 ostatnich poleceń).
* Bieżącą linię można edytować; działają klawisze "strzałek" (lewo, prawo), home i end.
Z tego co mi wiadomo, w DOS-ie można było uzyskać część takiej funkcjonalności (w Windowsie 98 również) po uruchomieniu programu doskey - tak przy okazji.
* Korzystanie z historii.
- history - wyświetla historię
- history | less - wyświetla historię, pozwala na przewijanie tekstu; q - zakończ
Polecenie history wyświetla numerki przy poleceniach, np.
860 nautilus /tmp
gdy wpiszemy !860, wykona się podane polecenie! (Numery wpisujcie uważnie, żeby nie uruchomić niechcąco niepożądanego polecenia, którego użyliście wcześniej.)
- Ale jest coś lepszego niż to. Magiczna kombinacja ctrl + r. Dzięki niej można wpisać fragment wcześniej wywołanego polecenia (usuwanie znaków przyciskiem backspace) i enterem uruchomić, bez ponownego "wklepywania".
* Usunięcie od bieżącej pozycji w linii do jej końca: ctrl + k.
* Usunięcie od bieżącej pozycji w linii do jej początku: ctrl + w.
* Zakończenie "wiszącego" programu uruchomionego w koncoli: ctrl +c.
Uwaga: a) ctrl + c nie zawsze działa, b) najczęściej takie coś powoduje natychmiastowe i nieprawidłowe zakończenie programu (np. bez zapisania zmian).

To by było na tyle. Oczywiście lista ta przedstawia tylko niektóre ciekawe funkcje. Jeśli uważasz, że nie wspomniałem o czymś ciekawym i przydatnym (ewentualnie: ciekawym lub przydatnym) - możesz napisać to w komentarzu.

Tagi: ,

Komentarze 8 comments
Szczęsny Maciej pisze...

Można też np. wpisywać !-2, co oznacza przedostatnie wykonane polecenie, !-1 natomiast to inaczej !! a !! nazywane jest w gwarze linuxowej "bang-bang", !txt - wykonanie ostatniego polecenia, które zaczyna się od "txt", !?txt - wykonanie ostatniego polecenia, które w swojej nazwie ma "txt".

Szczęsny Maciej pisze...

crtl + p <=> strzałka w górę
ctrl + n <=> strzałka w dół
ctrl + b <=> strzałka w lewo
ctrl + f <=> strzałka w prawo
ctrl + a <=> przycisk Home
ctrl + e <=> przycisk End
ctrl + l <=> czyści ekran zostawiając ostatnią komendę

Szczęsny Maciej pisze...

Wielkość historii jest przechowywana w zmiennej $HISTSIZE. Może ona być różna dla różnych dystrybucji.

Jaro pisze...

Bardzo przydatne :) O większości wiedziałem ale za resztę dzięki wielkie. Powiedzcie no tylko jeszcze jak np. przypisać aby wpisane w konsoli gdziekolwiek bym nie był polecenie "clr" wywoływało taki sam skutek jak wciśnięcie klawiszy ctrl_l (zostawienie tylko ost. komendy na ekranie).

QkiZ pisze...

A da się zmienić ustawienia tych klawiszy? Na przykład chciałbym aby kasowanie od kursora do początku wiersza odbywało się po naciśnieciu ctrl+backspace (jak w Amidze).

Szczęsny Maciej pisze...

Jaro trochę nie za bardzo mogę sobie to wyobrazić, rozumiem że chcesz np napisać jakies polecenie, dajmy na to "gedit" a potem "clr" (czyli: $ gedit clr) i chcesz żeby ekran się wyczyścił pozostawiając tylko "gedit". Raczej odpali się wtedy gedit i będzie chciał zapisywać dane do pliku clr. Jest polecenie "clear" które czyści ekran, ale to jest oddzielne polecenie. Jeżeli chcesz żeby "clr" robiło za "clear" to musisz dodać alias tymczasowo (wpisując w konsoli: alias clr=clear) na daną sesję basha lub na stałe edytując plik ~/.bashrc i dopisując w odpowiednie miejsce: alias clr='clear'

sqsh pisze...

ctrl+d logout

Jaro pisze...

Szczęsny dzięki ci wielkie! Właśnie o taką komendę mi chodziło! Nigdy nie wiedziałem jak wyczyścić cały ekran i zostawić tylko na górze znak zachęty.Z tym clr trochę zamotałem, chodziło mi właśnie o alias. Teraz wiem też jak aliasy na stałe ustawiać. Dziękować i za to :)
A polecenie clrscr było bodajże na Commodore dostępne :P I miało taki sam efekt jak tu clear.

Prześlij komentarz


Popularne posty

Etykiety