Pokazywanie postów oznaczonych etykietą linuks. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą linuks. Pokaż wszystkie posty

2015-10-06

Finch - Instant Messaging client

Konfiguracja konsolowego komunikatora Finch znajduje się w katalogu ~/.purple - przenosząc się na inną maszynkę linuxową warto zabrać ten właśnie katalog ze sobą. :-)

2015-09-30

Dysk SSD i Linuks Mint/Ubuntu

Kilka rzeczy, które warto ustawić mając system Mint/Ununtu zainstalowany na dysku SSD.

Swap

W pliku /etc/sysctl.conf dodajemy na dole następujące zmienne:

vm.swappiness = 1
vm.vfs_cache_pressure=50

Ja u siebie wyłączyłem swapa całkowicie (mam sporo ramu i mały dysk SSD):

vm.swappiness = 0

Wyłączenie "access time stamp"

W pliku /etc/fstab dla partycji dysku SSD dodajemy parametr noatime:

UUID=fcbaca8f-a6f7-4fa4-981a-8cd979a2e59d /               ext4    noatime,errors=remount-ro 0       1

Włączenie TRIM

Dysk SSD powinien być regularnie czyszczony. Czyszczenia można dokonać wykonując polecenie:

sudo fstrim -v /

Gdzie znak / to partycja dysku SSD. Jeśli mamy więcej dysków/partycji to dla każdego/każdej z nich wykonujemy to polecenie osobno. Dobrym zwyczajem jest wykonywanie tego polecenia podczas startu systemu. Aby tego dokonać należy w pliku /etc/rc.local dodać linie (przed exit 0):

# Run fstrim at boot
LOG=/var/log/trim.log
fstrim -v / >> $LOG
echo "Time: $(date)" >> $LOG

exit 0

Kilka dodatkowych zabiegów

Aby zmniejszyć ilość zapisów na dysku warto również unikać hibernacji oraz defragmentacji dysku SSD. Można również ograniczyć lub wyłączyć cache w przeglądarkach www.

źródło: http://www.leniwiec.org/

2015-05-10

Utworzenie lokalnej domeny przy użyciu Apache2 i Virtual Hosts

Aby utworzyć lokalną domenę (np. http://test.lh), która zastąpiłaby adres http://localhost/test/ wystarczy kilka prostych ruchów:
  • Tworzymy katalog test w katalogu /var/www/html/
  • Tworzymy plik index.html w katalogu test
  • Dajemy uprawnienia 0775 dla katalogu test
  • W pliku index.html wpisujemy hello world!
  • Tworzymy plik test_lh.conf w katalogu /etc/apache2/sites-available/
  • W pliku test_lh.conf wpisujemy:
    
      ServerAdmin marcin.zaremba@gmail.com
      ServerName test.lh
      ServerAlias *.test.lh
      DocumentRoot /var/www/html/test
      ErrorLog /var/log/apache2/test_error.log
      CustomLog /var/log/apache2/test_access.log combined
      
        # enable the .htaccess rewrites
        AllowOverride All
        Allow from All
        Require all granted
      
    
    
    Uwaga! Zamiast id="/var/www/html/test" piszemy po prostu /var/www/html/test.
  • W katalogu /etc/apache2/sites-enabled/ tworzymy link symboliczny do /etc/apache2/sites-available/test_lh.conf
    ln -s /etc/apache2/sites-available/test_lh.conf /etc/apache2/sites-enabled/test_lh.conf
  • W pliku /etc/hosts dodajemy linijkę 127.0.0.1 test.lh
  • Uruchamiamy przeglądarkę, wpisujemy w pasek adresy test.lh i cieszymy się z napisu hello world!

Skrypt do tworzenia lokalnej domeny


Na githubie umieściłem skrypt, który wykonuje wszystkie opisane ruchy w sposób automatyczny. Wystarczy wpisać w konsoli:
sudo ./addLocalHost.sh test
a wszystkie wyżej opisane kroki wykonają się za nas i będziemy mogli cieszyć się nową lokalną domeną test.lh.

Poniżej przedstawiam kod, który wykonuje to zadanie:

2014-12-30

Android 5.0.1 i Nexus 4 - instalacja pod Linux Mint 17

Aby zainstalować najnowszego w tej chwili Androida (5.0.1) na telefonie Nexus 4 w środowisku linuksowym (Mint 17) wystarczy kilka małych kroków.

Instalacja Java JDK

Przede wszystkim zaczynamy od zainstalowania Oraclowej Javy JDK - poniżej instrukcja jak tego dokonać:

  • Usuwamy openjdk
sudo apt-get update && apt-get remove openjdk*
  • Rozpakowujemy ściągnięty plik
tar -zxvf jdk-...
  • Tworzymy katalog java w katalogu opt
sudo mkdir -p /opt/java
  • Przenosimy rozpakowaną javę do nowo utworzonego katalogu java (w moim przypadku to jdk1.8.0_25 ale w Twoim może być już inna)
sudo mv jdk1.8.0_25 /opt/java
  • Ustawiamy zainstalowaną JDK jako domyślną
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.8.0_25/bin/java" 1
sudo update-alternatives --set java /opt/java/jdk1.8.0_25/bin/java

  • Nadajemy uprawnienia
sudo chmod 0775 /usr/bin/java
sudo chmod -R 0775 /opt/java/jdk1.8.0_25/
  • Sprawdzamy czy wszystko gra
java -version

Instalacja Android Studio

Aby zainstalować platform-tools/ i móc cieszyć się poleceniami fastboot czy adb wystarczy zainstalować Android Studio.

Uruchomienie modułu debuggowania USB w telefonie

Aby móc połączyć się z telefonem należy uruchomić moduł debuggowania USB. Opcja ta znajduje się w ustawieniach telefonu w zakładce "Opcje programistyczne". Domyślnie opcje programistyczne są niewidoczne - aby je aktywować należy wejść w "Informacje o telefonie" i siedem razy kliknąć w Numer kompilacji.

Sprawdzenie połączenia komputera z telefonem

Aby sprawdzić czy telefon jest widoczny przez system operacyjny komputera można uruchomić przykładowe polecenie:
adb reboot bootloader
Wcześniej oczywiście należy podłączyć telefon z komputerem przy pomocy kabla USB. Jeśli telefon zrestartuje się i przejdzie do bootloadera to znaczy, że wszystko jest ok.

Instalacja systemu Android 5.0.1

Aby zainstalować Androida 5.0.1 należy wejść na stronę https://developers.google.com/android/nexus/images pobrać odpowiednią wersję systemu i wykonać polecenia znajdujące się w dziale Flashing Instructions.

2014-06-03

[linuks] Synchronizacja katalogów za pomocą rsync i ssh

Za pomocą poniższej komendy możemy skopiować zawartość katalogu dir z komputera remotehost na lokalny komputer. Ponowne odpalenie tej komendy spowoduje zsynchronizowanie katalogu dir na lokalnym komputerze z katalogiem dir na komputerze remotehost.

rsync -avz -e 'ssh -p 2222' remoteuser@remotehost:/remote/dir /this/dir/

W tym przykładzie łączymy się z komputerem remotehost za pomocą ssh po niestandardowym porcie 2222.

2014-02-20

[linux] Kontrola jasności - Mint 16 i Acer V3-772g

W poprzednim wpisie napisałem jak ominąć problem czarnego ekranu przy instalacji środowiska linuksowego. Za powstawanie tego problemu odpowiada zmienna nomodeset. Powoduje ona niestety inny problem - uniemożliwia regulowanie jasności - tak się dzieje na wielu maszynach - między innymi na testowanym przeze mnie Acerze V3-772g. Aby umożliwić wspomnianą regulację należy w pierwszej kolejności zainstalować bumblebee:
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
sudo reboot
Po restarcie upewniamy się, że nie ma nouveau:
lsmod | grep nouveau
Następnie w pliku /etc/default/grub usuwamy nomodest i dodajemy acpi_backlight=vendor oraz acpi_osi=Linux do zmiennych - ostatecznie wyglądają one następująco:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="acpi_osi=Linux"
Na koniec aktualizujemy gruba:
sudo update-grub
I restart. Mam nadzieję, że to już koniec tych sprzętowych wpisów. ;)

2014-02-11

[apache] Zmiana użytkownika z www-data na innego

Zmiana apache'owego użytkownika z domyślnego www-data na innego (np. marcin) jest bardzo prosta - standardowo wszystko znajduje się w pliku /etc/apache2/envvars. Trzeba zmienić dwie linijki (jeśli chcemy zmienić również grupę) z:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

na:

#export APACHE_RUN_USER=www-data
export APACHE_RUN_USER=marcin
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_GROUP=marcin

2013-07-26

Instalacja statystyk Awstats pod Ubuntu

Instalacja i konfiguracja statystyk z Apache'a na przykładzie strony twoja_domena.pl

Instalacja:
sudo apt-get install awstats
opcjonalnie również:
apt-get install libnet-ip-perl
apt-get install libgeo-ipfree-perl

Utworzenie pliku konfiguracyjnego:
sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.twoja_domena.pl.conf

Edycja pliku konfiguracyjnego:
# apache2
LogFile="/var/log/apache2/access.twoja_domena.log"

# domain name
SiteDomain="twoja_domena.pl"
HostAliases="localhost 127.0.0.1 twoja_domena.pl"

LogFormat=1
opcjonalnie można aktywować pluginy:
LoadPlugin="tooltips"
LoadPlugin="geoipfree"

Odpalamy pierwszy raz statystyki:
sudo /usr/lib/cgi-bin/awstats.pl -config=twoja_domena.pl -update

Po jakimś czasie (może nawet kilku minutach) powinno się pojawić coś w tym stylu:
Create/Update database for config "/etc/awstats/awstats.twoja_domena.pl.conf" by AWStats version 7.0 (build 1.971)
From data in log file "/var/log/apache2/access.twoja_domena.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 2075
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 54 corrupted records,
 Found 0 old records,
 Found 2021 new qualified records.

W katalogu /etc/apache2/sites-available/ w którym znajduje się konfiguracja apache'a danej strony (u mnie jest to /etc/apache2/sites-available/twoja_domena_pl) należy dodać:
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstatsicons/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

Na koniec robimy restart Apache'a:
/etc/init.d/apache2 restart

oraz dodajemy generowanie statystyk do Crontaba:
0 */3 * * * /usr/lib/cgi-bin/awstats.pl -config=twoja_domena.pl -update > /dev/null

Jeśli chcemy zrestartować awstatsa:
sudo su - root
cd /var/lib/awstats
rm *
logout

źródło:
- http://jeromejaglale.com/doc/ubuntu/awstats
- https://help.ubuntu.com/community/AWStats

2012-09-24

Repozytorium git na niestandardowym porcie ssh

Może się zdarzyć że serwer, na którym znajduje się repozytorium git działa na niestandardowym porcie ssh. W takim wypadku musimy zmodyfikować standardowe sposoby sposoby łączenia się z gitem. W przypadku "klonowania" projektu wpisujemy zamiast:
git clone git@domain.com:project_name
polecenie:
git clone ssh://git@domain.com:/
Jeśli zmiana nastąpiła w momencie, w którym projekt już istnieje to musimy zmienić ustawienia znajdujące się w pliku .git/config:
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@domain.com:project_name
na:
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = ssh://git@domain.com:port/project_name
źródło: http://readystate4.com/2011/03/30/working-with-git-repos-on-non-standard-ports/

2012-07-01

Tunelem SSH do Apache'a

Załóżmy, że masz na jakimś serwerze Apache'a, którego nie chcesz wystawiać na świat a jednocześnie chcesz mieć do niego dostęp z każdego miejsca na świecie. :-) Nie chcesz otwierać na firewallu portu 80 ani żadnego innego oprócz tego, przez który logujesz się do maszyny za pomocą SSH (np. 9999). W takim przypadku z pomocą przychodzi tunelowanie - wystarczy zamiast:
ssh -p 9999 user@adres.mojego-serwera.pl
wpisać:
ssh -p 9999 user@adres.mojego-serwera.pl -L 9980:localhost:80
Po takim zabiegu wchodzimy w przeglądarkę, wpisujemy w pole adresu:
http://localhost:9980
i już jesteśmy na Apache'u serwera, który "stoi" na zamkniętym porcie 80.

2011-11-26

[linux] Boot z Grub'a

Miałem dziś małą zabawę z instalacją Ubuntu na laptopie Toshiby. To archaiczny sprzęt, na którym instalacja systemu to prawdziwa męka. Po wielu próbach udało mi się zainstalować na nim Ubuntu - jednak zainstalowałem system na dysku zewnętrznym przez USB a później włożyłem dysk do czeluści tego laptopa. :-) Oczywiście system nie wstał ale odpalił się Grub, w którym wystarczyło wpisać:
root (hd0,1)
linux /vmlinuz root=/dev/sda1
initrd /initrd.img
boot
Po tym zabiegu wszystko pięknie śmiga... :-)

2011-06-19

[unix][curl] Download wielu plików z zabezpieczonego katalogu

Jeśli nie masz uprawnień do przeglądania zawartości katalogu www - tzn. otrzymujesz komunikat typu:

Forbidden

You don't have permission to access /images/xyz/ on this server.
Apache Server at www.tajemny-host.com Port 80

a do tego znasz mniej więcej nazewnictwo plików znajdujących się w katalogu to jest szansa, że uda Ci się pobrać zawartość. Wszystko dzięki curl - wystarczy, że wpiszesz z linii poleceń:


curl http://www.tajemny-host.com/images/img[00-99]_[A-Z].jpg -o img#1_#2.jpg

Przyjąłem tutaj, że pliki w katalogu xyz mogą mieć nazwy typu img28_C.jpg albo img47_A.jpg. Curl za pomocą powyższej linijki kodu ściągnie tego typu pliki bez większego problemu - fantastyczna sprawa. :-)

2011-03-28

[eclipse] Subversion Native Library Not Available

Instalując plugin Subclipse do Eclipse'a natknąłem się na błąd:
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/amd64/server:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/amd64:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/../lib/amd64:/usr/lib64/xulrunner-addons:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

Do rozwiązania tego problemu pod Mint'em wystarczy:

1. Zainstalowanie libsvn-java


sudo apt-get install libsvn-java

2. Edycja eclipse.ini


W pliku eclipse.ini (znajduje się w katalogu eclipse) należy po linii -vmargs dopisać:
-Djava.library.path=/usr/lib/jni
Na koniec wystarczy zrestartować Eclipse i wszystko powinno śmigać.

2011-03-25

Własne aliasy w bash'u

Linux Mint jak każda dystrybucja GNU/Linux'owa umożliwia tworzenie aliasów. To fantastyczny wynalazek dzięki któremu można w prosty sposób stworzyć sobie skróty długich, często używanych komend terminalowych. Na przykład zamiast wpisywania czegoś takiego:

ssh -p 666 m4rc1no5@host
można dzięki aliasom zdefiniować sobie skrót w stylu:

goto_host

Co należy zrobić żeby stworzyć sobie taki skrót?

Po pierwsze .bashrc


Dodajemy w .bashrc kod:

#wczytanie aliasow
if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases
fi
Plik .bashrc powinien znajdować się w katalogu domowym. Jesli tam go nie ma to trzeba go utworzyć i wpisać tam kod znajdujący się wyżej.

Po drugie .bash_aliases


W katalogu domowym tworzymy plik .bash_aliases i umieszczamy w nim własne aliasy - na przykład:

alias goto_host='ssh -p 666 m4rc1no5@host'

Po tych fantastycznych i banalnych dwóch krokach otwieramy nowy terminal, wpisujemy

goto_host
i cieszymy się z dobrodziejstw jakie dają nam aliasy. :-)

2010-12-07

[unix][xml] XMLStarlet Command Line XML Toolkit

XMLStarlet to bajeranckie narzędzie do wszelkich działań na plikach XML z poziomu linii poleceń. Można za jego pomocą m.in. przeglądać, edytować w walidować tego typu pliki.
Aby obejrzeć możliwości tego cudeńka zapraszam do dokumentacji.

2010-07-28

[unix] Cloc - obliczanie ilości linii kodu

Jeśli chcesz sprawdzić ile linii kodu ma Twoja aplikacja polecam Cloc'a (Count Lines of Code). Jest to skrypt napisany w Perlu - wystarczy ściągnąć na dysk, uruchomić wskazując program, który chcemy zbadać i wcisnąć enter:

./cloc-1.51.pl /var/www/test/

Cloc przeskanuje pliki znajdujące się w katalogu test i wyrzuci wynik wyglądający mniej więcej tak:

456 text files.
450 unique files.
164 files ignored.

http://cloc.sourceforge.net v 1.51 T=2.0 s (146.0 files/s, 16437.5 lines/s)
---------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------
PHP 265 3947 10352 15815
CSS 9 165 172 1036
Javascript 6 20 278 575
Bourne Shell 10 54 142 218
SQL 2 13 0 88
---------------------------------------------------------------------
SUM: 292 4199 10944 17732
---------------------------------------------------------------------

Cloc wspiera wiele języków programowania i ma mnóstwo fajnych opcji o których warto sobie poczytać w deszczowe dni... :)

2010-04-25

[unix] edytor vi

Czasem zdarza mi się edytować ogromne pliki tekstowe - takie, które 'ważą' ponad 1GB. Zwykły edytor nie daje sobie rady z otworzeniem takiej ilości danych. Z pomocą w takim wypadku przychodzi edytor vi. Nie jest dla mnie zbyt intuicyjny dlatego właśnie o nim wspominam - może się przydać taki wpis w przyszłości.

Najważniejsze polecenia (dla mnie):

# wyjście bez zapisania zmian
:q!

# zapisanie zmian
:w

# wyjście z zapisaniem zmian
:x

# zamiana wszystkich nazwa1 na nazwa2 w danej linii (gdzie jest kursor)
:s/nazwa1/nazwa2/g

# zamiana wszystkich nazwa1 na nazwa2 w całym pliku
:%s/nazwa1/nazwa2/g
Więcej o edytorze można przeczytać na Wikipedii.