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