Linux tips

De meeste tips zijn gebaseerd op een ubuntu systeem.


Van less naar edit en weer terug

Je bekijkt een file met less en wilt toch iets editten. Afsluiten, vi starten, etc. Dat kan eenvoudiger.
Maak een environment variabele aan via ~/.bashrc
EDITOR=vim
Als je nu in less/more zit en je tikt een "v" dan kom je in vi en na :wq kom je weer in less.
<<

Extra fonts installeren onder ubuntu

Extra fonts installeren zoals de standaard windows true type fonts
$ sudo apt-get install msttcorefonts
$ sudo fc-cache -f -v
<<

Bevestiging bij overschrijven

Bij een kopieer of verplaats aktie worden standaard doelbestanden overschreven. Met de -i optie wordt gevraagd of dat mag.
$ cp -i [bron] [doel]
$ mv -i [bron] [doel]
<<

Handige find opties

zoek alle files op 'string' in deze direcotry en dieper.
-print0 geeft output achter elkaar zodat xargs, met de optie -r0 aan, dit beter kan behappen. zonder deze beide commando's kan het commando eruit klappen bij erg veel files.
 $ find -type f -print0 | xargs -r0 grep -F 'string'
zoek in alle gewone files naar 'string' in deze directorie
 $ find -maxdepth 1 -type f | xargs grep -F 'string'
Vind files niet leesbaar door iedereen (bijvoorbeeld voor een website)
 $ find -type f ! -perm -444
Vind files maar alleen op eigen systeem dus niet op gemounte systemen. Belangrijke optie om te voorkomen dat enorme gemounte filesystems doorzocht worden zonder nut.
 $ find -xdev *.jpg
verwijder tijdelijke file
 $ find *.tmp -exec rm {} \;
Verwijder jpg files ouder dan 30 dagen
 $ find *.jpg -mtime +30 -exec rm {} \;
Zoek files groter dan 1Mb
 $ find -size +1000k
Zoek lege files
 $ find . -empty OF find . -size 0c
Zoek files grote dan 100Mb en verplaats naar tmp
 $ find . -size +100000k | mv {} /tmp/ \;
Zoek tussen 100k en 500k
 $ find . -size +99k -and -size -499k
<<

crontab voorbeelden

syntax: minuut uur dag maand dow commando. dow: 1=maandag, 0 en 7=zondag
 0 0 * * * /dir/command       elke nacht om middernacht
 0,30 * * * * /dir/command    elk half uur
 0 0 * * 1,4 /dir/command     elke maandag en donderdag
 0 0 1 * 5 /dir/command       elke 1e en elke vrijdag
 0-55/5 * * * * /dir/command  elke 5 minuten
<<

Bash history

De bash historie kent een probleem wanneer twee of meer terminals tegelijk open staan. De historie wordt alleen opgeslagen als de terminal afsluit en dus wordt alleen de historie van de laatste terminal bewaard.

Dit is op te lossen door in de ~/.basrh aan te geven dat elke regel direct opgeslagen moet worden in de bash historie

Voeg de volgende regels toe:
  shopt -s histappend
  PROMPT_COMMAND='history -a'
Het eerste commando zorgt ervoor dat de historiefile toegevoegd wordt ipv overschreven en de volgende regel zorgt dat na elke regel de historie wordt toegevoegd.

zoeken in bash history control-R in bash geeft een zoekprompt waarna een string ingegeven kan worden waarop gezocht moet worden.

of, als alternatief
 $ history | grep "foo" 

Profielen in gnome terminal

Handig om sessies naar andere machines andere (achtergrond) kleuren te geven en zo het overzicht te bewaren zonder steeds naar de prompt te hoeven kijken.

In gnome-terminal maak profiles aan via menu edit/profiles.
Geef commando op bijvoorbeeld "ssh sjaak@machine" en een afwijkende achtergrondkleur

Roep aan met: $ gnome-terminal --window-with-profile=sjaak

De profielen staan in: ~/.gconf/apps/gnome-terminal/profiles/
<<

Uncomplicated FireWall

ufw is een front-end voor ip-tables en standaard geinstalleerd in ubuntu 8.04. Als hij niet geinstalleerd is kun je het toevoegen met:
 $ sudo apt-get install ufw
De firewall (front-end voor ip-tables) is extreem snel op te starten, er zijn maar een paar commando's nodig
 $ sudo ufw enable/disable
 $ sudo ufw logging on/off
 $ sudo ufw status
 $ sudo ufw allow 80
 $ sudo ufw allow 80/tcp
 $ sudo ufw deny 53/udp
 $ sudo ufw delete allow 80
 $ sudo ufw allow from 192.168.1.2
 $ sudo ufw allow 23 from 192.168.1.3
 $ sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25  (weiger tcp verkeer vanaf klas A subnet naar port 25 op de
   ethernet interface met 192.168.0.1 adres op deze host).
 $ sudo ufw allow from 10.0.0.0/8 (sta alle verkeer toe van private subnet 10)
Een gui is er ook:
 $ wget http://gufw.tuxfamily.org/latest-ufw-deb.html
Installeer gui:
 $ sudo dpkg -i gufw_x.x.xx-all.deb
<<

sudo zonder wachtwoord

Het sudo systeem van onder andere ubuntu is op zich prachtig. Je hoeft niet meer als root in te loggen en het root wachtwoord is onbekend en moeilijk. Als je de beheerder bent is het wel lastig dat je steeds bij een sudo opdracht je wachtwoord in moet geven.
De oplossing is om voor een enkele user het wachtwoord te disablen en wel als volgt.

Sudo heeft zijn configuratie staan in: /etc/sudoers
Door hierin een regel toe te voegen hoef je geen wachtwoord meer in te geven.

##USERNAME## ALL=NOPASSWD:ALL

Bijvoorbeeld:

sjaak ALL=NOPASSWD:ALL
<<

ica client installeren op ubuntu

Ica client geeft wat foutmeldingen bij installatie op ubuntu. Door eerst 2 packages te installeren gaat alles goed.
  $ sudo apt-get install libxaw6 libmotif3
<<

Photofiltre onder wine

Een compact en mooi freeware programma om fotos te bewerken is PhotoFiltre. Kleurbewerkingen en allerlei filters behoren tot de mogelijkheden.
Photofiltre is voor windows maar draait uitstekend onder wine en is een goede aanvulling op de linux installatie
<<

userdir in apache2

Om in apache2 de userdirs in te schakelen moet een module aangezet worden. Met de userdir wordt bedoeld http://site/~user. Hiervoor moet een public_html directorie aangemaakt worden in de homedirectorie van een gebruiker. Deze moet leesrechten hebben voor iedereen evenals execute rechten op de homedir.
 $ sudo a2enmod userdir
Conf files staan in /etc/apache2/mods-available en enabled configuraties staan in /etc/apache2/mods-enabled

gebruik a2enmod om te enablen, a2dismod om modules te disablen
<<

File rechten bij kopieren vanaf een memory card (foto's)

Bij het kopieren van foto's van een kaart in een cardreader (vfat) naar een schijf hebben andere gebruikers geen leesrechten.
Om bij removable media de rechten voor andere gebruikers op read te zetten:
 $ gconf-editor
     system/storage/default_options/vfat
     edit/umask/edit 077->022
Het standaard masker van 077 geeft files de rechten RW------- en directories de rechten RWX------
Het masker 022 geeft files de rechten RW-R--R-- en directories de rechten RWXR-XR-X
<<

xmms op ubuntu 8.04

Op de een of andere manier is xmms niet meer via een package te installeren vanaf versie 8.04 van ubuntu. Aangezien dit wel een fijne player is hierbij de tip hoe xmms toch te installeren.
 $ sudo apt-get update
 $ sudo apt-get install build-essential
 $ sudo apt-get install autotools-dev automake1.9 libtool gettext libasound2-dev libaudiofile-dev libgl1-mesa-dev libglib1.2-dev libgtk1.2-dev libesd0-dev libice-dev libmikmod2-dev libogg-dev libsm-dev libvorbis-dev libxxf86vm-dev libxml-dev libssl-dev build-essential make
 $ mkdir effe
 $ cd effe
 $ wget http://xmms.org/files/1.2.x/xmms-1.2.11.tar.gz 
 $ tar xvf xmms-1.2.11.tar.gz
 $ cd xmms-1.2.11/
 $ ./configure --prefix=/usr
 $ make
 $ sudo make install
<<

Lijst met goede linux software

Toch maar een lijstje met goede linux software. Vaak zijn de paketten er wel maar weten we van het bestaan niet af. Zo staat bijvoorbeeld Thunar in het menu maar is standaard ook nautilus als filemanager geinstalleerd en deze doet er niet voor onder.
  • nautilus - filemanager, standaard geinstalleerd
  • ufraw - programma om RAW foto's aan te passen, standaard package
  • xmms - Winamp clone, standaard package tot ubuntu 7.10, daarna zie tip 13.
  • google earth - satelietfoto's van de wereld, installatie .bin file via google.
  • hugin - foto stitcher voor panorama foto's, standaard package
  • imagemagick - set commandline tools voor het bewerken van plaatjes, standaard package
  • webcam - commandline tool voor het nemen van snapshots van een webcam en uploaden naar een ftp server, standaard geinstalleerd
  • motion - commandline tool voor het nemen van snapshots van een webcam wanneer er beweging wordt gedetecteerd. standaard geinstalleerd <<

    Snel screenshots maken van (deel van) het scherm

    Installeer imagemagick met:
     $ sudo apt-get install imagemagick
    
    Maak het volgende script aan:
      #!/bin/bash
      import /home/[user]/Desktop/screenshot_`date +%d-%m-%Y_%H:%M:%S`.png
    
    En maak het executable met:
     $ chmod u+x [filenaam]
    
    Maak een nieuwe entry aan in de balk met: rechtsklik op de balk, add to panel, custom application launcher en geef het een naam en icon. Vul bij commando de naam van het script in inclusief path en klaar.
    Door op het icoon te klikken wordt de cursor een kruis en kun je een vlak tekenen. Het geselecteerde gebied wordt opgeslagen als een png op de desktop. Omdat de datum is opgenomen in de filenaam is altijd te zien wanneer de file is gemaakt en hebben ze altijd een unieke naam zodat een volgende niet de vorige overschrijft.
    Imagemagick bevat trouwens nog vele handige commandline tools zoals convert voor het maken van borders om plaatjes, plaatsen van teksten in plaatjes, blurren, resizen, knippen en roteren. Ook identify is een commandline optie waarmee exif data is uit te lezen van foto's.
    <<

    Temperatuur info bekijken van het systeem

    Met het programma lmsensors is onder andere de temperatuur info op te vragen van het systeem. Handig als je de pc in een kast zet zoals ik om te zien of de koeling voldoende is.
     $ sudo apt-get install lmsensors
     $ sudo sensors-detect
     $ sudo apt-get install xsensors
    
    Sensors detect is nodig om te zien welke sensors door het moederbord ondersteund worden. Daarna moet of opnieuw opgestart worden of de genoemde commando's moeten even met de hand ingeklopt worden met: modprobe xxxx; modprobe yyyy; etc. om de modules te laden. Het programma xsensors is een applet waarmee de waarden op een van de balken te plaatsen is (rechtsklik op gewenste balk, add to panel, etc.).
    <<

    Videostreams weergeven

    Standaard ontbreken nogal wat plugins/codecs om videostreams weer te geven die op internet veel aanwezig zijn. De ubuntu-restricted-extras installeert een hele waslijst waarna ze het wel doen.
     $ sudo apt-get install ubuntu-restricted-extras
     $ sudo apt-get install mplayer (of zit die al in bovenstaande?)
    
    <<

    default editor wijzigen

    Standaard in ubuntu is de standaard editor nano. Bijvoorbeeld bij editten van de crontab wordt deze gebruikt. Veel mensen die niet uit de windows hoek komen zullen liever vi als editor willen en dat kan met onderstaande commando. Er kan gekozen worden uit diverse alternatieven waaronder vi.
     $ sudo update-alternatives --config editor
    
      There are 4 alternatives which provide `editor'.
    
        Selection    Alternative
      -----------------------------------------------
                1    /usr/bin/vim.tiny
                2    /bin/ed
      *+        3    /bin/nano
                4    /usr/bin/vim.basic
    
      Press enter to keep the default[*], or type selection number: 4
      Using '/usr/bin/vim.basic' to provide 'editor'.
    
    <<

    Webserver met apache2 inclusief php5 en mysql support

    install apache2
     $ apt-get install apache2
    
    Install PHP5 support for apache2 in debian etch
     $ apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi
    
    Install mysql support
     $ sudo apt-get install libapache2-mod-auth-mysql php5-mysql
    
    Install openssl using the following command
     $ apt-get install openssl ssl-cert
    
    <<

    static ip adres instellen

    Edit de file: /etc/network/interfaces en wijzig de instellingen van de thernet interface als volgt (uiteraard met het ip adres, masker en gateway van de eigen omgeving):
    auto eth0
    iface eth0 inet static
       address 10.0.0.10
       netmask 255.255.255.0
       network 10.0.0.0
       broadcast 10.0.0.255
       gateway 10.0.0.138
    
    Zorg ook dat de dns instellingen fixed worden ingesteld want die komen mee met het dhcp request. De dns instellingen staan in /etc/resolv.conf
    Vaak kan hier het ip adres van de adsl router worden ingesteld maar de ip adressen van de dns servers van de provider mag ook.
    nameserver 10.0.0.138
    
    Soms kan het handig zijn een tweede ip adres op een interface te zetten, dit kan als volgt.
    auto eth0:1
    iface eth0:1 inet static
       address 192.168.1.60
       netmask 255.255.255.0
    
    <<

    Na upgrade werkt php niet meer in homefolders

    edit /etc/apache2/mods-available/php5.conf

    mark out dit deel:
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
    
    <<

    Harddisk echt helemaal wissen

    <<
    Echt wissen kan alleen door alle data te overschrijven met andere data. Dit kan onder linux met het commando shred en dd. Het onderstaande shred commando schrijft de harddisk 50x over. Het dd commando schrijft de harddisk 1x over met random data.
    shred -vfz -n 50 /dev/cciss/c0d0
    
    dd if=/dev/urandom of=/dev/cciss/c0d0 bs=1M
    
    De harde schijf in het voorbeeld heeft een wat vreemde devicenaam omdat deze in een hardwarematige raid 5 zit. <<

    <<
    Website door Wouter Barendsen, 2005-2024