Linux / FreeBSD notities

Dit is mijn overzichtje met wat handige dingetjes voor Linux en FreeBSD. Vooral omdat je niet alles regelmatig gebruikt wil het nog wel eens wegzakken, en dan vind ik zo’n lijstje wel handig. Ooit op een papiertje slingerend op mijn bureau, nu netjes op internet zodat het overal voor mij en iedereen die geinteresseerd is beschikbaar is.

LET OP: dit overzicht is in de loop der jaren gegroeid, en regelmatig niet bijgehouden. Het is dus zeker niet compleet, maar er kunnen ook heel goed verouderde dingen of fouten in staan. Gebruik het dus puur als referentie, en lees bij gebruik altijd eerst de man-pages van het betreffende commando!

» RPMs

installeren rpm -ihv rpmnaam.rpm
updaten rpm -Uhv rpmnaam.rpm
deinstalleren rpm -e rpmnaam.rpm
lijst geinstalleerde rpm -qa
opvragen versie rpm -q packagenaam
opvragen info over rpm rpm -qip rpmnaam.rpm
opvragen files in rpm rpm -qlp rpmnaam.rpm
source rpm’s installeren rpmbuild –rebuild rpmnaam.src.rpm
rpm -Uhv /usr/src/redhat/RPMS/i386/rpmnaam.rpm

» APT

her-synchroniseer package index apt-get update
update alle packages apt-get dist-update
installeren/updaten package+depts apt-get install packagenaam
deinstalleren package apt-get remove packagenaam
zoek in packages voor woord apt-cache search woord
opvragen info over package apt-cache show packagenaam

» Yum

list beschikbare packages yum list available
list voor beschikbare updates yum check-update
update alle packages yum update
installeren package+depts yum install packagenaam
updaten package+depts yum update packagenaam
deinstalleren package yum remove packagenaam
zoek in packages voor woord yum search woord

» Tarballs

.tar.gz uitpakken tar -zxvf tarball
.tar.bz2 uitpakken tar -jxvf tarball
.tar.gz maken tar -zcvf naam.tar.gz files/dirs
.tar.bz2 maken tar -jcvf naam.tar.bz2 files/dirs

» Postfix

Postfix virtual mailhosting: vi /etc/postfix/virtual
postmap /usr/local/etc/postfix/virtual
Postfix reloaden: postfix reload
Postfix voor domein, primary: vi /etc/postfix/main.cf
» voeg domein toe aan mydestination
Postfix voor domein, backup: vi /etc/postfix/main.cf
» voeg domein toe aan relay_hosts
Postfix queue legen: postsuper -d ALL

» Handige commando’s

Gebruiker toevoegen useradd username
Gebruiker verwijderen incl. homedir+mailspool userdel -r username
Verwijder bestand definitief en direct rm -rf bestand of directory (pas op!)
Scherm in abnormal state herstellen reset
Overzicht alle processen met PIDs en user ps aux
Killen van een proces bij proces id kill PID of kill -9 PID
Killen van een proces bij naam killall procesnaam of killall -9 procesnaam
Screen-sessie reattachen screen -rd
Info over Linux/kernel/enz uname -a
Info over uptime uptime of w
Procmail mail statistieken bekijken mailstat -k procmail-logfile
Bekijken kernelmodules lsmod
Bestaande partities bekijken fdisk -l
IP traffic statistics/monitor iptraf
Kleinere self-compiled executables strip executablefile
Mounten FAT(32) filesystem mount -t vfat /dev/hdX /mnt/dir
Read only mounten FAT(32) filesystem mount -t vfat -o ro /dev/hdX /mnt/dir
Read only mounten FAT(32) filesystem (2) mount -t vfat -r /dev/hdX /mnt/dir
Mounten NTFS filesystem mount -t ntfs -r /dev/hdX /mnt/dir
Mounten SMB filesystem mount -t smbfs -o username=user //nt-share /mnt/dir
Commando als job uitvoeren commando & (bv: make & )
Aanpassen services per runlevel (/etc/rcN.d/): ntsysv OF chkconfig (zie man-pages)
Locate-database updaten: updatedb (draait ook in een cron-job)
DNS zone transfer (niet altijd toegestaan) dig AXFR domein @authoritive nameserver
Promiscuous mode aanzetten op eth1 ifconfig eth1 promisc
Promiscuous mode uitzetten op eth1 ifconfig eth1 -promisc
IP-adres aan netwerkinterface koppellen ifconfig eth1 up IP netmask mask
Default gateway instellen route add default gw default_gateway
Perl CPAN shell perl -MCPAN -e shell
Complete dir wget-ten met bandwidthlimit wget -r -l 1 –limit-rate=3k -P . url/
Alle bestanden in een dir voorzien van prefix for name in *; do mv $name prefix_$name; done
Lijst met openstaande bestanden bekijken lsof
Nummer 20 van een audio-cd rippen cdparanoia -v -w 20
Ogg met kwaliteit 6 maken van een wav-file oggenc -q 6 wav-file
Blockoverzicht van iptables bekijken iptables -L -v
Logging op tty12 (console: alt-f12) echo *.* /dev/tty12 >> /etc/syslog.conf
sa-learn sa-learn –spam –showdots ~/Maildir/.spam.2004-*/*
pflogstats cat /var/log/maillog | pflogstats.pl
Bekijk beschikbare services ls /etc/init.d/
Service aansturen service name optie (bv: service iptables panic) of /etc/init.d/servicenaam optie (bv: /etc/init.d/httpd graceful)

» Stapsgewijs kernel compileren
- inloggen als user (!)
- source uitpakken en kopieren naar /usr/src/linux-versie
- cd /usr/src/linux-versie
- overnieuw beginnen in een bestaande kerneltree? Dan eerst een make mrproper !
- make menuconfig of make oldconfig voor alleen nieuwe features in deze kernelversie

- (of: make config / make xconfig / make gconfig)
- make dep (alleen voor kernel 2.4!)
- make bzImage modules
- su
- make modules_install
- cp arch/i386/boot/bzImage /boot/bzImage-versie
- cp System.map /boot/System.map-versie
- cd /boot && rm System.map && ln -s System.map-versie System.map

- mkinitrd /boot/initrd-versie.img versie (niet noodzakelijk)
- bootloader aanpassen: vi /boot/grub/grub.conf of vi /etc/lilo.conf && lilo
- reboot

» Volgorde opstartscripts

/etc/rc.d/rc.sysinit
/etc/rcN.d/* (N = runlevel)
/etc/rc.d/rc.local

» Noodgevallen
bij booten in LILO/Grub commando geven: linux single init=/bin/bash
(en dan bv. /sbin/e2fsck -v -y (-c) /dev/hd… (-c doet een hele grondige check)

» Ongepartitioneerde ruimte benutten
fdisk (herpartitioneren)
mkfs.ext2 (formatteren)
vi /etc/fstab

» Belangrijke directory’s

directory omschrijving
/bin standaard commando’s
/boot (zelfgebakken) kernels en bootgegevens
/dev devices
/home userdirectory’s
/tmp tijdelijke bestanden
/var/tmp tijdelijke bestanden
/etc diversen, zoals config-bestanden, systeembestanden, netwerkbestanden
/etc/rc.d
/etc/rc.d/init.d
opstartscripts
/etc/init.d services/daemons
/etc/sysconfig/ systeemconfiguratie-files
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
jobs die eens in de aangegeven tijd draaien, worden aangestuurd door anacron
/proc pseudo filesysteem met systeeminformatie, kernelinformatie, procesinformatie
/lib libraries
/lib/modules kernel-modules
/mnt standaard mount directories
/root userdirectory voor root
/sbin standaard systeemcommando’s
/usr/bin gebruiker/zelfgeinstalleerde commando’s
/usr/sbin gebruiker/zelfgeinstalleerde systeemcommando’s
/usr/share documentatie, voorbeeldbestanden, configuratiebestanden van programma’s
/usr/doc
/usr/share/doc
faq’s, howto’s, documentatie
/usr/src kernelsource
/var data zoals spools, logs, publieke html-bestanden
/var/spool mail-, print-, newsspools, databestanden
/var/log logbestanden
/var/www/html/ standaard Apache publieke html-directory

» Belangrijke bestanden

file omschrijving
/var/log/messages systeemlog
/var/log/maillog maillog
/etc/inittab configfile van init
/etc/fstab standaard/bij boot gemounte bestandssystemen

» Partities

Een Usenet-posting over partitie’s en groottes daarvan. Nogal verouderde informatie, maar het is wel een aardige richtlijn.

Subject: Re: Install Linux   [editted by JP]
From: Eric <eric [at] dehont.2y.net>
Newsgroups: hccnet.linux
Date: Sat, 15 Sep 2001 23:41:17 +0200
Message-ID: <3BA3CAFD.5C5BFB36 [at] dehont.2y.net>

[...]
Om in de toekomst probleemloos te kunnen upgraden zonder userdata kwijt
te raken zou ik willen adviseren om ook altijd minimaal een /home
partitie aan te maken. Dan kun je zelfs een complete verse install doen,
desnoods van een heel andere distributie, zolang je de /home-partitie
maar niet formatteert. Maar als je alleen maar wat wilt spelen is een /
en een swap inderdaad voldoende.

Persoonlijk hanteer ik het volgende diskplan:
/           500 MB
/boot       200 MB (Bij RH maar liever onder de 1024ste sector houden)
/usr          3 GB
/var/spool  500 MB (zodat je nog kunt inloggen na bv. een mail-bom)
/home         3 GB
/windows      3 GB (FAT)
/swap         1 GB
/home2        wat ik nog aan ruimte over heb

Ik heb in mijn PC 96 MB Ram en 12,5 GB schijfruimte (2,5 + 10).

» X-server / Desktop manager / Window manager

X-server: Zorgt voor de hardwarebesturing (grafisch, muis, toetsenbord) en behandeld de communicatie met de desktop manager en window manager.
Vb: XFree86
Desktop manager: Zorgt voor wat er op het scherm te zien is (icoontjes, taskbar, virtual desktops, enz).
Vb: Gnome, KDE (kdm), CDE
Window manager: Tekent de kozijnen van je vensters, regelt welke applicatie toetsenbordinvoer krijgt, enz.
Vb: Enlightenment, IceWM, WindowMaker, FVWM, PHWM, KDE (kwm)
Let op: KDE is zowel een desktop manager als een window manager, beide met hetzelfde uiterlijk.

» FreeBSD notities
Updates installeren:
cd /root
cvsup -L 2 -g standard-supfile
cd /usr/src
make buildworld
make installworld

PHP4 uit de ports uitbreiden met de GD-module (als voorbeeld voor hoe dingen te installeren uit de ports):
cd /usr/ports/www/mod_php4
less Makefile
» lezen dat je in /usr/ports/lang/php4/Makefile moet zijn.
less /usr/ports/lang/php4/Makefile
» lezen dat je WITH_module en WITHOUT_module kan gebruiken, en dat GD de naam van module is.

vi /etc/make.conf
» toevoegen:

#php4 met GD-module
WITH_GD=yes

make
make deinstall  (of make && make deinstall && make install om alles in 1 keer te doen)

make install

Geinstalleerde ports: pkg_info
sshd opnieuw opstarten: kill -HUP `cat /var/run/sshd.pid`
firewall aanpassen: vim /etc/ipf.rules && ipf -Fa -f /etc/ipf.rules            #TAKE CARE!

Software uit ports starten/restarten/stoppen: /usr/local/etc/rc.d/naam.sh start|stop|restart
bijvoorbeeld: /usr/local/etc/rc.d/mysql-server.sh restart