Efektywna praca z konsolą w Linuksie

Wpis zamieszczony o 10:46:42, 26 stycznia 2007 Trackback


Od systemu operacyjnego wymagam kilku rzeczy. Po pierwsze – aby działał dokładnie tak jak ja chcę. Po drugie – aby był bezpiecznym systemem. Po trzecie – i chyba najważniejsze – system ma być prosty w codziennej administracji. Nie dla mnie siedzenie 4h i czekanie na zainstalowanie się OpenOffice’a (który po 4 godzinach wyrzuca błąd kompilacji), którego potrzebuje „na wczoraj”. W języku angielskim istnieje piękne słowo określające cechę, której szukam w systemie operacyjnym – „flexible”.

Chciałbym dziś zaprezentować kilka programów//rozwiązań, dzięki którym system którego używam spełnia moje wymagania w 100%. So let’s start:



1. Bash completion – dopełnianie poleceń


Zaszczytne pierwsze miejsce. Bez tej funkcji operacje w konsoli byłyby udręką. W Ubuntu spotykamy podstawowe funkcje dopełniania składni poleceń – rozszerzmy jednak te możliwości.

$ sudo nano -w /etc/bash.bashrc
W powyższym pliku odkomentowujemy linijkę:

if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi


Drugi krok to ściągnięcie mojej paczki z konfiguracją uzupełniania:
$ wget http://night.jogger.pl/files/bash_completion.d.tar.gz
Oraz rozpakowanie jej zawartości o katalogu /etc/bash_completion.d. Od tej chwili możemy używać klawisza TAB w celu dopełniania i obserwować zachowanie konsoli jak na screenie obok.

2. Command not found – a gdzie znajdę?


Ileż to razy, czy to w czasie kompilacji jakiegoś programu, czy w czasie podążania za jakimkolwiek HowTo napotykamy się na coś podobnego do tego:

[09:52:46] night@orion:~$ sd
bash: sd: polecenie nieodnalezione

Cóż zrobić? Ubuntu przychodzi z pomocą!
$ sudo apt-get install command-not-found
Co uzyskaliśmy? Wystarczy spojrzeć na screen.

3. Aptsh – jak nie zepsuć klawiatury


Czasem też spotykamy się z sytuacją, w której musimy wpisywać wiele różnych komend związanych z apt’em. Dobrym przykładem może być:

sudo apt-cache search kicker
sudo apt-get install kicker
sudo apt-cache search aplets | grep kicker
sudo apt-get insta(...)


Prawda że męczące? Dlatego zacząłem używać powłoki aptsh.

sudo apt-get install aptsh

Efekt na screenie obok. Większego komentarza nie potrzebuje. Powłoka zawiera w sobie wszystkie funkcje apt’a + pełne dopełnienia poleceń + podstawowe polecenia bash’a. I jest naprawdę szybka!

4. Aliasy – ratujemy klawiaturę po raz drugi


Powłoka bash umożliwia nam tworzenie aliasów – czyli „skrótów” dłuższych poleceń. Zaprezentuję Wam jeden z przykładów:

nano -w ~/.bashrc

Odnajdujemy aliasy zdefiniowane domyślnie i dodajemy w kolejnej linijce:

(...)
alias grep='grep --color=auto'
(...)


Efekt jak na obrazku obok. :) Cóż – wymyślanie dalszych aliasów pozostawiam Waszej kreatywności.

5. Cpulimit – uspokój swój procesor


Ostatnie miejsce – jednak nie mniej funkcjonalne niż poprzednie. Cpulimit pozwala nam na przyporządkowywanie danemu procesowi odpowiedniego, maksymalnego obciążenia procesora, które może ten proces wygenerować. Nad funkcjonalnością tego rozwiązania nie będę się rozwodził.

sudo apt-get install cpulimit

Tutaj już odsyłam do helpa samego programu.

Oczywiście – nie wyczerpałem tematu. To tylko wierzchołek ogromnej góry lodowej o nazwie „praca w konsoli”. Dzięki możliwościom powłoki bash możemy uzyskać naprawdę zdumiewające efekty i niesamowitą szybkość pracy.
A dla przeciwników Bash’a – oczywiście zdaję sobie sprawę z istnienia innych powłok – w tym zsh. Wiem, że oferują możliwości, które tutaj opisałem w standardzie. Niestety – powłoki te mają pewne ograniczenia i nie są w pełni kompatybilne z najpopularniejszym bashem. Także ich sposób konfiguracji pozostawia wiele do życzenia. I tym stwierdzeniem kończę dzisiejszy wpis.

Enjoy!

Komentarze do “Efektywna praca z konsolą w Linuksie”


  1. A jak „pokolorować” terminal? Wydaje mi się, że wtedy jest wszystko czytelniejsze.


  2. A o kolorowaniu wszystkiego w terminalu będzie kolejny wpis. Na razie tylko wstęp do kolorowania poprzez wprowadzenie koloru do grepa.


  3. Ładnie.


  4. To je dobre ;-)


  5. co do cpulimit, nie lepiej uzyć demona verynice?


  6. Czy lepiej – nie wiem. Ciężko takie rzeczy określić pojęciem „lepiej-gorzej”. W moim odczuciu verynice działa troszkę inaczej niż cpulimit. Verynice działa globalnie – nie chcę takiego działania. Przypuszczam też, że żaden początkujący użytkownik takiego działania by nie chciał. Poza tym – konfiguracja verynice nie zachwyca poczatkującego. A cpulimit jest zwyczajnie proste – coś czego mi potrzeba. Prostota i wygoda przede wszystkim.

    Podsumowywując:
    Verynice: TAK – ale nie dla mnie.


  7. Egzamin z algebry dziś o 17, a ty tutaj blogujesz zamiast się uczyć? Sio do książek :)!


  8. To już dziś?! oO
    argh..aaa

    <oczywiście żart> :-)


  9. Ja porzuciłem Basha na rzecz Zsh. Ale Bash coraz więcej rzeczy pożycza od Zsh ;-)


  10. zsh mnie nie powalił. Wręcz odrzucił sposobem konfiguracji. Bash jest znacznie czytelniejszy i przy odrobinie wysiłku oferuje to samo co zsh (dokładnie to samo). Ostatnio nawet z kumplem z 2 roku z uczelni zrobiliśmy bitwę zsh vs. bash. Wyglądało to mniej więcej tak:
    - a to masz w bashu?! (pokazuje autouzupełnianie poleceń)
    -MAM
    - a to? (autouzupełnianie —configure i innych podobnych)
    - HA MAM!
    - a takie coś? (pokazuje zegar w czasie rzeczywistym w rogu ekranu)
    - (po 3 minutach) HA! w czasie rzeczywistym! (i wyłączyłem bo nie lubię)
    - a to racja. to samo. Ale wolę zsh
    - a ja bash.


    Ot :-)


  11. Dobra, dobra, ale w Bashu z tego co wiem to robie ls l[tab] pokazuje mi dwa katalogi na literę l i mogę tak tabować a i tak nie będe miał tego co chcę? Zsh mi po kilku tabach (zależy ile możliwości jest) wstawi odpowiednią nazwę. Poprawia również błedy jak coś źle wklepiesz z palca.
    Powodzenia na egzaminie ;-)


  12. Lepszy wajig od aptsh.


  13. Zamiast apt-get/apt-cache używam aptitude z interfejsem w ncurses. Tam pojedyncze literki wyzwalają komendy.

    A co do bash/zsh – mówiłem ci że ciężko mi sobie przypomnieć co takiego w zsh jest… teraz np. przypomniałem sobie o „|&” (przekierowanie do rurki i stdout, i stderr), wielokrotny tab => kolejne dopasowania, „AUTO_CD” (przechodzenie do katalogów bez użycia polecenia „cd”), „AUTO_PUSHD” (automatyczne odkładanie katalogów do których się wchodzi na stos, można wrócić do poprzedniego poleceniem „popd”), uproszczona składnia pętli i dopełnianie z kolorowaniem, prawy prompt i w ogóle więcej zmiennych rzeczy można też wrzucić do prompta (tych rzeczy bash nie miał kiedy zaczynałem używać zsh).

    Wszystko to drobiazgi, ale jak się to zbierze do kupy…


  14. No tak, o oczywistościach się zapomina:
    „**/*.txt” == $(find -name ‘*.txt’)
    ale wygląda na to, że to ostatnio do basha dodali…


  15. Seban - co do funkcji o których wspomniałeś - muszę się zgodzić. Tego bash'ek nie potrafi. :-)
    Azrael – przetestowałem wajig - zostaję przy aptsh :)

    Liori – konkrety „za” zsh. Być może kolejny wpis (po wpisie dot. kolorowania w bashu) będzie o zsh, jego możliwościach i konfiguracji? :-)

    Dziękuję za komentarze! Miło wiedzieć że to czytacie xX

    ps. kurczę, formatowanie komentarzy siada - wyłączę textile chyba...


  16. Wajig ma prostszą składnię poleceń i nie trzeba do niego uruchamiać osobnego shella.


  17. Świetny wpis Night, masa rzeczy się przyda! (:


  18. Dzięki za wpis! Dla takich klikaczy jak Ja to i tak czarna magia, ale te parą usprawnień zawsze się przyda /to piekielne TAB – „czy wyświetlić wszystkie 523.456 możliwości ;)”.
    Nawet ja się do tego przekonuje „wget -c costamcostam.zip” i sie ssa, bez skomplikowanych programów itp.Chce dwa pliki – proszę bardzo otwieram druga konsole… ta prostota urzeka mnie swym pięknem.


  19. bq. Chce dwa pliki – proszę bardzo otwieram druga konsole… ta prostota urzeka mnie swym pięknem.

    Jeszcze prościej jest odpalić wgeta w tle i nie musieć odpalać drugiej konsoli :>
    wget -b
    man wget


  20. spać studenty :)


  21. Aptsh do mnie nie przemawia – również wolę Wajiga ;)


  22. Chyba nie mam repozytoriów z których mógłbym pobrać „command_not_found”. Wie ktoś jakie potrzebuje?

    A co do pozostałych, to dopełnianie nazw w BASHu i aliasy mi się niezwykle przydadzą. :-)

    Do aptsh’a podchodzę sceptycznie… chyba jednak zrobię sobie rozwiązanie za pomocą aliasów dla mojego apt’a.

    Pozdrawiam, Rafał.


  23. bq. Chyba nie mam repozytoriów z których mógłbym pobrać „command_not_found”. Wie ktoś jakie potrzebuje?

    Jaja sobie robisz???

    bq. Do aptsh’a podchodzę sceptycznie… chyba jednak zrobię sobie rozwiązanie za pomocą aliasów dla mojego apt’a.

    To użyj wajiga - on ma prosty i jednolity zestaw komend.


  24. Azrael: Wajig przyjemniejszy. :-) A command-not-found naprawdę nie wiem jak zainstalować.
    sudo apt-get install command-not-found
    Naprawdę mi nie działa:
    E: Nie udało się odnaleźć pakietu command-not-found


  25. Przecież właśnie napisałeś jak to zrobić.


  26. Musisz mieć aktywne repo universe


  27. [14:35:05] night@orion:~$ sudo apt-cache policy command-not-found
    Password:
    command-not-found: Zainstalowana: 0.1.0 Kandydująca: 0.1.0 Tabela wersji: *** 0.1.0 0 500 http://pl.archive.ubuntu.com edgy/universe Packages


  28. Problem w tym, że wszystkie universe’y mam aktywne. Próbowałem wcześniej zrobić ap-get update i nic nie dało.

    Mam dappera i w tym pewnie problem.


  29. potwierdzam, również korzystam z 6.06.1 i zarówno „cpulimit” jak i „command-not-found” brak w repo


  30. http://jakilinux.org/newsy/efektywna-praca-z-konsola-w-linuksie/
    No cóż – nie ma to jak się pojawić na main-page jednego z większych serwisów newsowych dot. Linuksa w Polsce.. to wspaniałe wyróżnienie thx! :)


  31. Jeszcze powrócę do kwestii zsh – jako powłoka do interaktywnej pracy jest dużo wygodniejszy.

    Mi na przykład spodobała się funkcja autocd. Dzięki temu wogóle nie muszę pisać `cd katalog`. Samo `katalog` wystarczy.

    Kolejna rzecz to „zsh mime setup”. Uruchamia pliki na podstawie rozszerzeń, zatem `movies/film.avi`, zamiast `mplayer movies/film.avi`.

    Chociaż warto mieć gdzieś dobrze skonfigurowany plik .bashrc. Nie wszędzie zsh jest zainstalowany :/


  32. Wajiga też można uruchomić jako shella (tak jak aptsh).
    <<azrael@laptop:~>> wajig
    JIG> search beryl
    beryl - Compositing window manager, decorator and theme support - Beryl
    (...)
    JIG> install beryl
    Czytanie list pakietów... Gotowe
    Budowanie drzewa zależności
    Reading state information... Gotowe
    beryl jest już w najnowszej wersji.


  33. Cześć postępowałem według twoich instrukcji by móc korzystać z dopełniania poleceń i właściwie wszystko byłoby ok tylko przy włączaniu terminalu wyskakuje mi coś takiego http://www.fotosik.pl/pokaz_obrazek/37dfb9c10dfc8a33.html
    . Zastanawiam się czy gdzieś nie wstawiłem niepotrzebnego znaku jednak nie widzę nic w tym stylu w bash.bashrc czy bash_completion. Wiesz może czym jest to spowodowane? Pozdrawiam

Dodaj komentarz

Textile jest włączony. Zobacz składnię (wiki.jogger.pl)

code