Verwendet man die tcsh, so können die besuchten Verzeichnisse mit Hilfe von pushd zwischengespeichert werden:
# pwd
/usr/home/test
# pushd /usr/local/tinderbox
/usr/local/tinderbox ~
# pwd
/usr/local/tinderbox
# pushd /tmp
/tmp /usr/local/tinderbox ~
Die gemerkten Verzeichnisse können durch dirs angezeigt werden:
# dirs
/tmp /usr/local/tinderbox ~
Verwendet man die -v Option, werden die gemerkten Verzeichnisse auf eine andere Weise dargestellt:
# dirs -v
0 /tmp
1 /usr/local/tinderbox
2 ~
Mit popd kann man wieder in die gemerkten Verzeichnisse zurückwechseln. Dabei wechselt man bei der ersten Eingabe von popd in das erste gespeicherte Verzeichnis, bei der zweiten Eingabe in das zweite gespeicherte Verzeichnis usw.
# pwd
/tmp
# popd
/usr/local/tinderbox ~
# pwd
/usr/local/tinderbox
# popd
~
# pwd
/usr/home/test
Mehr Informationen zur tcsh findet man in der Manpage tcsh(1).
[ FreeBSD ]
by Beat
@ 25.06.2009 20:29 UTC
Möchte man täglich alte Dateien in /tmp löschen, kann folgende Zeile in der /etc/periodic.conf eingefügt werden:
daily_clean_tmps_enable="YES"
Danach werden täglich die Dateien in /tmp gelöscht, die seit drei Tagen nicht mehr verwendet wurden. Die gelöschten Dateien werden im täglichen Statusmail angezeigt:
[...]
Removing old temporary files:
/tmp/piwik/db.opt
/tmp/piwik/piwik_user.frm
/tmp/piwik/piwik_user.MYI
/tmp/piwik/piwik_user.MYD
[...]
Möchte man die Anzahl Tage verändern, so kann dies durch setzen von daily_clean_tmps_days gemacht werden. Dateien die nicht gelöscht werden sollen, können in daily_clean_tmps_ignore aufgeführt werden. Sollen die gelöschten Dateien nicht im täglichen Statusmail aufgeführt werden, kann daily_clean_tmps_verbose auf NO gesetzt werden. Standardmässig sind die Variablen folgendermassen gesetzt:
daily_clean_tmps_days="3" # If not accessed for
daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix"
daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group" # Don't delete these
daily_clean_tmps_verbose="YES" # Mention files deleted
[ FreeBSD ]
by Beat
@ 25.06.2009 20:24 UTC
Möchte man wöchentlich die installierten Ports angezeigt bekommen, von denen im Portsbaum eine neuere Version existiert, kann folgende Zeile in der /etc/periodic.conf eingefügt werden:
weekly_status_pkg_enable="YES"
Danach werden die entsprechenden Ports im wöchentlichen Statusmail aufgeführt:
[...]
Check for out of date packages:
ccache-2.4_7 needs updating (port has 2.4_8)
maatkit-1972 needs updating (port has 3119)
mysql-client-5.0.75 needs updating (port has 5.0.83)
mysql-server-5.0.75 needs updating (port has 5.0.83)
portlint-2.11.1 needs updating (port has 2.11.2)
postgresql-client-8.2.9 needs updating (port has 8.2.13)
postgresql-server-8.2.9 needs updating (port has 8.2.13)
rrdtool-1.2.29 needs updating (port has 1.2.30)
rsync-3.0.3 needs updating (port has 3.0.6)
screen-4.0.3_5 needs updating (port has 4.0.3_6)
subversion-freebsd-1.5.5_1 needs updating (port has 1.6.2)
[...]
Mit Hilfe von symlinks lassen sich symbolische Links innerhalb eines Systems finden und deren Status angezeigen. Im FreeBSD Portbaum findet man symlinks unter sysutils/symlinks:
# cd /usr/ports/sysutils/symlinks && make install clean
Nun kann mit Hilfe von symlinks in einem Verzeichnis (in diesem Beispiel das Verzeichnis c) nach symbolischen Links gesucht werden. Mit der -v Option werden auch relative Links angezeigt. Die -s Option sucht nach Links welche ihr Ziel auch auf einem kürzerem Weg erreichen könnten. Diese werden als "lenghty" gekennzeichnet. Links welche als "dangling" markiert sind, zeigen auf ein Ziel welches nicht mehr existiert. Als "messy" gekennzeichnete Links enthalten unnötige Zeichen:
# symlinks -sv c
relative: /tmp/a/b/c/foo -> ../foo
absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo
lengthy: /tmp/a/b/c/ok -> ../c/test
dangling: /tmp/a/b/c/fail -> ../c/tes
messy: /tmp/a/b/c/mess -> ../c//test
Mit der -d Option können nun Links entfernt werden, deren Ziel nicht mehr existiert:
# symlinks -d c
absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo
dangling: /tmp/a/b/c/fail -> ../c/tes
deleted: /tmp/a/b/c/fail -> ../c/tes
messy: /tmp/a/b/c/mess -> ../c//test
Verwendet man die -r Option, können auch Verzeichnisse rekursiv nach symbolischen Links durchsucht werden. Durch die -c Option können absolute in relative Links umgewandelt werden. Ausserdem werden dabei überflüssige Zeichen aus den Links entfernt. Mit der -t Option können die Änderungen zuerst begutachtet werden, ohne das diese ausgeführt werden:
# symlinks -rt b
absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo
changed: /tmp/a/b/c/bar -> ../../../../tmp/a/b/foo
messy: /tmp/a/b/c/mess -> ../c//test
changed: /tmp/a/b/c/mess -> ../c/test
# symlinks -rc b
absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo
changed: /tmp/a/b/c/bar -> ../../../../tmp/a/b/foo
messy: /tmp/a/b/c/mess -> ../c//test
changed: /tmp/a/b/c/mess -> ../c/test
Mehr Informationen zu symlinks findet man in der Manpage symlinks(8).
[ FreeBSD ]
by Beat
@ 14.06.2009 20:45 UTC
Sind in einem FreeBSD-Port mehrere Server angegeben, von denen der Quellcode eines Programms heruntergeladen wird, so wird die Liste der Server der Reihe nach abgearbeite, bis der Quellcode erfolgreich heruntergeladen werden kann. Möchte man die Reihenfolge der Server zufällig wählen, kann folgender Eintrag in der /etc/make.conf gemacht werden:
RANDOMIZE_MASTER_SITES=yes
Damit die Server zufällig ausgewählt werden können, muss /usr/games/random installiert sein. Ist dies nicht der Fall, so kann random(6) wie folgt nachinstalliert werden:
# cd /usr/src/games/random && make && make install
Verwendet man den FreeBSD-Bootmanager um auf einem Rechner verschiedene installierte Betriebssysteme starten zu können, so kann mit boot0cfg und der -v Option die aktuelle Konfiguration ausgelesen werden:
# boot0cfg -v /dev/ad4
# flag start chs type end chs offset size
1 0x00 0: 1: 1 0x07 1023:119:63 63 245866257
2 0x00 1023:255:63 0x12 1023:239:63 474541200 13849920
3 0x80 1023:255:63 0xa5 1023:254:63 245866320 228661650
version=2.0 drive=0x80 mask=0xf ticks=182 bell=# (0x23)
options=packet,noupdate,nosetdrv
volume serial ID b8b8-b8b8
default_selection=F1 (Slice 1)
Möchte man nun ändern, von welchem Slice beim nächsten Neustart standardmässig gestartet werden soll, so kann die Slice-Nummer mit der -s Option an boot0cfg übergeben werden:
# boot0cfg -s 3 /dev/ad4
# boot0cfg -v /dev/ad4
# flag start chs type end chs offset size
1 0x00 0: 1: 1 0x07 1023:119:63 63 245866257
2 0x00 1023:255:63 0x12 1023:239:63 474541200 13849920
3 0x80 1023:255:63 0xa5 1023:254:63 245866320 228661650
version=2.0 drive=0x80 mask=0xf ticks=182 bell=# (0x23)
options=packet,noupdate,nosetdrv
volume serial ID b8b8-b8b8
default_selection=F3 (Slice 3)
Standardmässig wartet der Bootmanager 10 Sekunden (was ~182 Ticks entspricht), bevor vom konfigurierten Standardslice gebootet wird. Möchte man diese Dauer ändern, kann mit der -t Option die Anzahl Ticks angegeben werden, wie lange gewartet werden soll. Im folgenden Beispiel wird die Zeit auf 91 Ticks eingestellt, was ~5 Sekunden entspricht:
# boot0cfg -t 91 /dev/ad4
# boot0cfg -v /dev/ad4
# flag start chs type end chs offset size
1 0x00 0: 1: 1 0x07 1023:119:63 63 245866257
2 0x00 1023:255:63 0x12 1023:239:63 474541200 13849920
3 0x80 1023:255:63 0xa5 1023:254:63 245866320 228661650
version=2.0 drive=0x80 mask=0xf ticks=91 bell=# (0x23)
options=packet,noupdate,nosetdrv
volume serial ID b8b8-b8b8
default_selection=F3 (Slice 3)
Mehr Informationen zu boot0cfg findet man in der Manpage boot0cfg(8).
Mit Hilfe von pkg_add_it lässt sich nach einem FreeBSD Paket suchen. Das Paket kann nach erfolgreicher Suche mit pkg_add_it direkt installiert werden. Stimmen mehrere Pakete mit der Sucheingabe überein, wird eine Liste mit den Suchresultaten angezeigt, aus welcher das gewünschte Paket ausgewählt werden kann. Im FreeBSD Portbaum findet man pkg_add_it unter ports-mgmt/pkg_add_it:
# cd /usr/ports/ports-mgmt/pkg_add_it && make install clean
Verwendet man die --remote Option, werden die Pakete auf einem entfernten Server gesucht. Mit der Variable OSRELEASE wird die verwendete FreeBSD -Version angegeben, mit PACKAGEROOT kann der Server angegeben werden auf dem die Pakete gesucht werden sollen. Ist PACKAGEROOT nicht gesetzt, so wird ftp.FreeBSD.org verwendet. Mit der -L Option wird nur nach Paketen gesucht, diese können danach aber nicht direkt installiert werden:
# setenv OSRELEASE 7.2-release
# pkg_add_it -L --remote dwatch
==>> NOTICE: INDEX file was not found in current dir, I'll fetch it..
==>> NOTICE: PACKAGEROOT was not defined..
==>> Using default PACKAGEROOT - ftp://ftp.freebsd.org/
INDEX 100% of 17 MB 416 kBps 00m00s
==>> Total packages found: 4
==>> List of packages matching the given pattern...
#####################################################################
(001) dwatch-0.1.1 (in sysutils)
Description: Dwatch - A Daemon Watcher
Maintained by: ports@FreeBSD.org
(002) cmdwatch-0.2.0_1 (in sysutils)
Description: Watches the output from a command at specified intervals
Maintained by: beat@FreeBSD.org
(003) jbidwatcher-2.0.1 (in misc java)
Description: A Java-based application allowing you to monitor eBay auctions
Maintained by: shurd@sasktel.net
(004) bidwatcher-1.3.17_8 (in misc)
Description: Bid monitor for eBay
Maintained by: obrien@FreeBSD.org
#####################################################################
==>> Total packages found: 4
Möchte man lokal gespeicherte Pakete für die Suche und Installation verweden, so kann mit der --local Option ein lokales Verzeichnis angegeben werden, in dem die Pakete gespeichert sind:
# pkg_add_it -L --local /usr/ports/packages/All/ kde
==>> Total packages found: 7
==>> List of packages matching the given pattern..
#####################################################################
(001) kde-windeco-crystal-1.0.7.tbz (in /usr/ports/packages/All)
(002) kdebase-3.5.10_2.tbz (in /usr/ports/packages/All)
(003) kdebase-kompmgr-3.5.10.tbz (in /usr/ports/packages/All)
(004) kde-xdg-env-1.0_3,1.tbz (in /usr/ports/packages/All)
(005) kdegraphics-3.5.10.tbz (in /usr/ports/packages/All)
(006) kdelibs-3.5.10.tbz (in /usr/ports/packages/All)
(007) kdehier-1.0_11.tbz (in /usr/ports/packages/All)
#####################################################################
==>> Total packages found: 7
Nun kann das gefundene Paket installiert werden. Dazu wird die entsprechende Nummer des Pakets eingegeben:
# pkg_add_it --remote dwatch
==>> Total packages found: 4
==>> List of packages matching the given pattern...
#####################################################################
(001) dwatch-0.1.1 (in sysutils)
Description: Dwatch - A Daemon Watcher
Maintained by: ports@FreeBSD.org
(002) cmdwatch-0.2.0_1 (in sysutils)
Description: Watches the output from a command at specified intervals
Maintained by: beat@FreeBSD.org
(003) jbidwatcher-2.0.1 (in misc java)
Description: A Java-based application allowing you to monitor eBay auctions
Maintained by: shurd@sasktel.net
(004) bidwatcher-1.3.17_8 (in misc)
Description: Bid monitor for eBay
Maintained by: obrien@FreeBSD.org
#####################################################################
==>> Total packages found: 4
==>> Choose the package number you wish to install [1-4]: 2
==>> NOTICE: PACKAGEROOT was not defined..
==>> Using default PACKAGEROOT - ftp://ftp.freebsd.org/
Fetching ftp://ftp.freebsd.org//pub/FreeBSD/ports/i386/packages-7.2-release/sysutils/cmdwatch-0.2.0_1.tbz... Done.
# pkg_info -Ix dwatch
cmdwatch-0.2.0_1 Watches the output from a command at specified intervals
Mehr Informationen zu pkg_add_it findet man in der Manpage pkg_add_it(1).