Migające conky
Jeśli miga Ci conky, pomóc może dopisanie następującej linii do /etc/X11/xorg.conf:
Load "dbe"
Linię należy dopisać w sekcji Module.
Jeśli miga Ci conky, pomóc może dopisanie następującej linii do /etc/X11/xorg.conf:
Load "dbe"
Linię należy dopisać w sekcji Module.
Co to jest? Otóż jest to ta cała maszyneria, która uruchamia się gdy wciśniesz klawisz [tab]. Po co to? To chyba jasne jak słońce, aby odciążyć palce użytkownika od pisania ogromnych ilości tekstu. Ale zacznijmy od początku.
Większość ludzi, korzystających z komputera, można podzielić na dwie grupy: tych, którzy klepią w terminalu długie i niezrozumiałe komendy oraz tych, którzy nie wiedzą, dlaczego Ci drudzy nie użyją myszki. Lub inaczej: tych, którzy wiedzą jak używać shella oraz znają jego moc oraz tych, którzy są w tej kwestii jeszcze laikami.
Co takiego fajnego jest w pisaniu “długich niezrozumiałych komend”? Chyba to, że jedna taka komenda może Ci zaoszczędzić kilka minut lub nawet godzin klikania myszką, na pewno też to, że nie jest taka niezrozumiała gdy spróbujesz ją pojąć oraz to, że staje się o wiele krótsza gdy użyjesz do tego [tab]a!
Jak działa [tab]? Gdy piszesz jakąś komendę w shellu, możesz w wielu momentach wcisnąć [tab], wtedy komputer postara się dokończyć za ciebie komendę lub podpowiedzieć Ci jakie masz możliwości. Nie powinniśmy oczekiwać cudów, to tylko maszyna. Jednak gdy wiemy kiedy użyć [tab]a, może nam to zaoszczędzić zarówno czasu, jak i zbędnego tłuczenia w klawisze. Powszechne jest dopełnianie [tab]em nazw programów oraz plików, ale nie każdy wie, że [tab] ma o wiele większe możliwości. Poza tym możemy dodawać własne (o czym być może kiedyś napiszę). Ujarzmijmy więc te możliwości na Debianie (dystrybucja, z której w tym momencie piszę).
Najpierw sprawdzimy czy potrzebny nam skrypt jest już w systemie (w Debianie z tego co wiem jest domyślnie):
tomwys@tom:~$ whereis bash_completion bash_completion: /etc/bash_completion.d /etc/bash_completion tomwys@tom:~$
Skrypt, który nam jest potrzebny, to /etc/bash_completion. Dodajemy więc wczytywanie go do ~/.bash_profile:
tomwys@tom:~$ echo '. /etc/bash_completion' >> ~/.bash_profile
Odpalamy nowy terminal i już możemy się cieszyć z nowych możliwości. Podajmy przykład (listing pierwszy to wciskane klawisze, drugi to rezultat na ekranie):
apti[tab][tab][tab]i[tab]bas[tab][tab]h[enter]
tomwys@tom:~$ aptitude autoclean forbid-version purge unhold changelog forget-new reinstall unmarkauto clean hold remove update dist-upgrade install search upgrade download markauto show tomwys@tom:~$ aptitude install bas base bash bash-minimal base-config bash-builtins bash-static base-config-skolelinux bash-completion basket base-files bashdb bastet base-passwd bash-doc bastille tomwys@tom:~$ aptitude install bash Reading package lists... Done Building dependency tree... Done Reading extended state information Initializing package states... Done Reading task descriptions... Done Building tag database... Done E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? tomwys@tom:~$
Gdyby nie [tab] musieli byśmy najpierw dowiedzieć się jaki program jest nam potrzebny, jakie ma parametry i jaki pakiet chcemy zainstalować. Poza tym musieli byśmy wcisnąć 22 klawisze. Tak mając szczątkowe informacje wprowadziliśmy naszą komendę i wcisnęliśmy tylko 16 klawiszy. Gdybyśmy wiedzieli od razu o co nam chodzi, wystarczyło by wcisnąć 12 klawiszy:
apti[tab]i[tab]bash[enter]
Zyskalibyśmy wtedy aż 10 klawiszy, to prawie połowa! A zyski będą się pojawiać przy wielu programach. Rozwiązanie to najlepiej jest wypróbować samemu. Życzę milej zabawy.
Chcąc przelogować się na konto root, popełniłem błąd i zamiast su wpisałem du. Ku mojemu zaskoczeniu, trafiłem na strasznie przydatny program, o którego istnieniu wcześniej nie wiedziałem, z powodu, no cóż trzeba to przyznać, mojego lenistwa. Wcześniej nie chciało mi się szukać tego właściwego programu, więc używałem substytutu w postaci mc.
Ale do rzeczy. du to prosty program konsolowy, służący do rekursywnego obliczania ilości zajmowanego miejsca przez dany katalog czy plik. du wywołane bez parametrów zacznie rekursywanie przeszukiwać dany katalog i wypisywać rozmiary wszystkich plików i katalogów znajdujących się w nim i w podkatalogach. Domyślne wywołanie du nie jest szczególnie poręczne więc przedstawiam inne, bardziej praktyczne.
Najczęstszą operacją, jaką będziemy wykonywać przy pomocy du, będzie prawdopodobnie liczenie rozmiaru pojedynczego katalogu. Możemy to wykonać za pomocą poniższego polecenia:
$ du -sh files/ 7.5G files/
Jak widać za sprawą opcji “h” rozmiar został wyświetlony w “ludzkim” formacie. Opcja “s” służy do tego, by wyświetlone zostało tylko podsumowanie, a nie wszystkie kroki liczenia (spróbuj wykonać to wywołanie bez “s”).
Czasami chcemy zwolnić trochę miejsca na dysku i potrzebujemy wiedzieć, co nam najwięcej tego miejsca zabiera. Przydatne może okazać się takie wywołanie du:
$ du -s * | sort -nr 702352 lib 652540 share 155500 bin 38152 include 19856 sbin 6420 local 608 src 520 lib64 40 games 28 X11R6
du w połączeniu z innymi programami to bardzo mocne narzędzie, którego możemy używać z pod konsoli. du jest przydatne wszędzie tam, gdzie potrzebujemy znać rozmiar katalogu łącznie z jego zawartością. du posiada wiele opcji, których opis możemy znaleźć w manualu.
Wczoraj postanowiłem postawić Debiana od nowa. Jest to jedna z trzech dystrybucji działających obecnie na moim komputerze, pozostałe dwie to LFS i Gentoo. Ponieważ płytkę instalacyjną podarowałem znajomemu, musiałem wypalić nową. Instalacją przebiegała bezproblemowo mniej więcej do momentu, gdy rozpakowywane było jądro. Wtedy trach! - wyłączyli prąd, co zdarza się w mojej okolicy bardzo rzadko. Awaria wyglądała niegroźnie, a powtórzenie instalacji od nowa nie było żadnym problemem, jednak czas pokazał, że było inaczej.
Pierwsza zbuntowała się mysz. Co prawda wcześniej wysiadła już w niej rolka (mechaniczne uszkodzenie wewnątrz), ale teraz już całkiem nie żyła. Podczas startu komputera mruga do mnie tylko swoją diodą, a później pogrąża się w zimowy sen. Mam nadzieję, że tylko myszy się to źle odbiło, jednak mam pewne podejrzenia. Wydaje mi się, że mógł jeszcze ucierpieć akcelerator grafiki na karcie graficznej. Gdy pracuje w trybie „vesa” wszystko jest w porządku, jednak gdy przełączam na sterowniki do karty dostaje czarny ekran. Nawet zabicie Xów nie pomaga. Dopiero zmiana spowrotem na „vesa” lub restart przywraca obraz.
A tu mała zagadka: jak zmieniłem driver w konfiguracji xorg mając tylko czarny ekran przed oczami (z „ati” na „vesa”)?
Odpaliłem Ubuntu z płyty i okazało się, że z kartą graficzną wszystko w porządku. Co za ulga.
I’m going to make changes. I’m making shot, because it may be nice to remind:
# parted GNU Parted 1.7.1 Using /dev/hda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Disk /dev/hda: 80.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 10.7GB 10.7GB primary ext2 2 10.7GB 74.7GB 63.9GB extended lba 5 10.7GB 11.3GB 535MB logical linux-swap 6 11.3GB 63.9GB 52.6GB logical ext3 7 63.9GB 74.7GB 10.7GB logical ext3 3 74.7GB 80.0GB 5371MB primary ext2 (parted)
Niedługo zmiany. Być może kiedyś miło będzie odświerzyć pamięć:
# parted GNU Parted 1.7.1 Using /dev/hda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Disk /dev/hda: 80.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 10.7GB 10.7GB primary ext2 2 10.7GB 74.7GB 63.9GB extended lba 5 10.7GB 11.3GB 535MB logical linux-swap 6 11.3GB 63.9GB 52.6GB logical ext3 7 63.9GB 74.7GB 10.7GB logical ext3 3 74.7GB 80.0GB 5371MB primary ext2 (parted)
When I’m writing this post, Opera using almost 80% of my computer’s RAM. Is it too much? For me it is. I have 256MB of RAM, so 200MB for browser is too much. It’s also strange, because I have only two tabs opened, I don’t use widgets, IRC is disabled. It’s probably cause Opera allocates much ram but frees only little of it. Opera uses much CPU also. Maybe I should think about new web-browser or upgrade my computer hardware. It’s some kind of problem.
W chwili gdy piszę ten wpis Opera wykorzystuje prawie 80% RAMu posiadanego przez mój komputer. Czy to dużo? Dla mnie tak. Mam 256MB RAMu i zajęcie 200MB dla samej przeglądarki to zdecydowanie za dużo. Najlepszy w tym wszystkim jest fakt, że mam otwarte tylko dwa taby, nie mam żadnych widgetów, a IRC jest wyłączony. Zajętość prawdopodobnie bierze się z tego, że Opera chętnie rezerwuje nowy ram, a nie kwapi się zbytnio ze zwalnianiem. Opera oprócz ramu zjada dużo CPU. Może warto by się zastanowić nad wymianą przeglądarki, a może raczej nad rozbudową komputera. Trudna sprawa.
Tuż po instalacji Gentoo natknąłem się na następujący problem:
$ su Password: su: Permission denied Sorry.
Problem wynika z wysokiego poziomu zabezpieczeń zastosowanego w Gentoo. Aby go rozwiązac, powinniśmy wszystkich użytkowników, chcących korzystać z polecenia su, dodać do grupy wheel:
# gpasswd -a nazwa_użytkownika wheel Adding user nazwa_użytkownika to group wheel
Gdzie nazwa_użytkownika to identyfikator użytkownika, który ma mieć uprawnienia do korzystania z su.
$ su Password: #
Zacząłem swoją przygodę z Gentoo. Co prawda kiedyś miałem już tą dystrybucję na dysku, jednak wtedy celem było obejrzenie i ewentualna ocena. Teraz mam zamiar zacząć korzystać z tego systemu.
Muszę niestety zrezygnować z LFS. Nie mam czasu na zarządzanie nim. Potrzebuję czegoś co działa automatycznie. Jedną z możliwości był powrót do Debiana, jednak postanowiłem spróbować czegoś nowego. Gentoo wydało mi się ciekawą i wartą dłuższego wypróbowania dystrybucją.
Pierwsze co rzuciło mi się w oczy, to ułatwiony proces instalacji, w stosunku do tego przez który musiałem przegryźć się kiedyś. Zrezygnowano ze stage1 i stage2 i ogólnie zmieniono kilka rzeczy. Generalnie system mi się podoba, jednak nie obyło się bez wpadek. Pierwszą rzeczą która mnie zaskoczyła był “Segmentation Fault” w xmms. I nie chodzi tu nawet o samo wystąpienie tego błędu tylko o to, że “sam się naprawił” (normalnie jak nie-Linux).
Nie wiem jeszcze czy zostanę przy Gentoo. Jeśli mi się nie spodoba, zwyczajnie wrócę do Debiana.
command.c: In function 'inp_text': command.c:2560: warning: pointer targets in passing argument 1 of 'tt_write' differ in signedness command.c: In function 'init_command': command.c:3005: error: invalid lvalue in assignment command.c:3007: error: invalid lvalue in assignment command.c: In function 'main_loop': command.c:3472: warning: pointer targets in passing argument 1 of 'safe_print_string' differ in signedness make[2]: *** [command.lo] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive-am] Error 2
You can solve this by running a command before make:
sed -i 's/AT_LEAST((int) num_fds,/AT_LEAST( num_fds,/' src/command.cTomasz Wysocki
Pod Linuksem możemy zamontować obraz iso podobnie jak partycje. Wykorzystywane jest do tego jednak urządzenie loop. Najpierw należy sprawdzić czy takie urządzenie posiadamy:
ls /dev/loop*
Jeśli wyświetli nam się lista urządzeń, możemy użyć jedno z nich. Jeśli nie musimy wkąpilować obsługę loop w kernel.
Device Drivers ---> Block devices ---> [*] Loopback device support
Obraz montujemy jako root:
mount -t iso9660 -o ro,loop=/dev/loop0 obraz.iso /mnt/iso/
| Opcja | Znaczenie |
| -t iso9660 | Określa typ obrazu (iso). |
| ro | Podmontowuje tylko do odczytu (zapobiega przypadkowemu uszkodzeniu obrazu) |
| loop=/dev/loop0 | Określa urządzenie loop używane przy montowaniu. |
| obraz.iso | Obraz do podmontowania. |
| /mnt/iso/ | Punkt docelowy montowania. |
Obraz możemy odmontować analogicznie do zwykłej partycji:
umount /mnt/iso
Istnieje także możliwość automatycznego montowania obrazu podczas startu systemu. Wystarczy dodać odpowiedni wpis do /etc/fstab. Np.:
/var/obraz.iso /mnt/iso iso9660 ro,loop=/dev/loop0 0 0
Oczywiście wszystkie opisane czynności możemy wykonać w różnych wariantach (np. montować do odczytu i zapisu). Powodzenia w eksperymentowaniu.
Tomasz “tomwys” Wysocki