[ FreeBSD ]
by Beat
@ 31.12.2010 16:20 UTC
Gibt man versehentlich binäre Daten in einem Terminal aus, kann es vorkommen das die Terminaleinstellungen verändert werden, so dass die Schrift nicht mehr lesbar ist oder das Terminal mit clear nicht mehr geleert werden kann. In diesem Falle können die Terminaleinstellungen wie folgt zurückgesetzt werden:
# tput init
# clear
[ FreeBSD ]
by Beat
@ 31.12.2010 14:50 UTC
Mit Hilfe von lockf kann eine Lock-Datei erstellt werden während ein Befehl ausgeführt wird, so dass zum Beispiel der gleiche Befehl nicht gleichzeitig nochmals ausgeführt wird. Im folgenden Beispiel wird die Datei /tmp/lock als Lock-Datei verwendet während der Befehl sleep 5 ausgeführt wird:
# lockf /tmp/lock sleep 5
Startet man nun einen zweiten Befehl mit lockf und der gleichen Lock-Datei so wird mit der Ausführung des zweiten Befehles solange gewartet bis die Lock-Datei nicht mehr vorhanden ist:
# /usr/bin/time -h lockf /tmp/lock whoami
beat
4.60s real 0.00s user 0.00s sys
Mit Hilfe der -t Option kann angegeben werden wieviele Sekunden lockf maximal wartet. Ist nach Ablauf dieser Zeit die Lock-Datei noch vorhanden bricht lockf ab:
# lockf -t 1 /tmp/lock whoami
lockf: /tmp/lock: already locked
Auf FreeBSD ist lockf standardmässig im Basissystem vorhanden. Mehr Informationen zu lockf findet man in der Manpage lockf(1).
[ FreeBSD ]
by Beat
@ 31.12.2010 14:38 UTC
Seit FreeBSD 7.3 und 8.1 können die rc.d-Skripte auch mit Hilfe von service ausgeführt werden. Im folgenden Beispiel wird getestet ob der Apache-Webserver läuft:
# service apache22 status
apache22 is running as pid 8052.
Desweiteren können Services auch gestartet, gestoppt oder neugestartet werden. Mit Hilfe der -e Option werde alle Services angezeigt, welche beim Systemstart automatisch gestartet werden:
# service -e
/etc/rc.d/hostid
/etc/rc.d/hostid_save
/etc/rc.d/ip6addrctl
/etc/rc.d/cleanvar
/etc/rc.d/devd
/etc/rc.d/pflog
/etc/rc.d/pf
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/etc/rc.d/dmesg
/etc/rc.d/virecover
/etc/rc.d/motd
/etc/rc.d/ntpd
/usr/local/etc/rc.d/mysql-server
/usr/local/etc/rc.d/tinderd
/usr/local/etc/rc.d/apache22
/etc/rc.d/sshd
/etc/rc.d/sendmail
/etc/rc.d/cron
/etc/rc.d/jail
/etc/rc.d/mixer
/etc/rc.d/bgfsck
Auf FreeBSD ist service seit FreeBSD 7.3 und 8.1 standardmässig im Basissystem vorhanden. Mehr Informationen zu service findet man in der Manpage service(1).
Mit Hilfe von wdiff lassen sich die einzelnen Wörter von zwei Dateien vergleichen. Im FreeBSD-Portbaum findet man wdiff unter textproc/wdiff:
# cd /usr/ports/textproc/wdiff && make install clean
Werden nun zwei Dateien mit wdiff verglichen, wird angezeigt welche Wörter hinzugekommen und welche entfernt wurden:
# cat datei1
I like FreeBSD.
# cat datei2
I love FreeBSD.
http://www.FreeBSD.org/
# wdiff datei1 datei2
I [-like-] {+love+} FreeBSD.
{+http://www.FreeBSD.org/+}
Mit der -s Option wird zusätzlich eine Statistik über die Veränderungen angezeigt:
# wdiff -s datei1 datei2
I [-like-] {+love+} FreeBSD.
{+http://www.FreeBSD.org/+}
datei1: 3 words 2 66% common 0 0% deleted 1 33% changed
datei2: 4 words 2 50% common 1 25% inserted 1 25% changed
Mehr Informationen zu wdiff findet man in der Manpage wdiff(1).
Mit Hilfe von pdfgrep kann eine PDF-Datei wie mit grep(1) durchsucht werden. Im FreeBSD-Portbaum findet man pdfgrep unter textproc/pdfgrep:
# cd /usr/ports/textproc/pdfgrep && make install clean
Nun kann die PDF-Datei nach Wörtern oder regulären Ausdrücken durchsucht werden und alle Zeilen welche den Suchbegriff beinhalten werden ausgegeben:
# pdfgrep "zpool upgrade" zfsadmin.pdf
Upgrading ZFS Storage Pools (zpool upgrade) .............21
Upgrading ZFS Storage Pools (zpool upgrade)
Upgrading ZFS Storage Pools (zpool upgrade)
version to take advantage of the latest features by using the zpool upgrade command. In
you can upgrade your pools with the zpool upgrade command to take advantage of the pool
action: Upgrade the pool using âzpool upgradeâ. Once this is done, the
# zpool upgrade -v
Then, you can run the zpool upgrade command to upgrade your pools. For example:
# zpool upgrade -a
zpool upgrade, 78
Mit der -n Option wird die Seitezahl angezeigt auf welcher Seite im Dokument man die angezeigte Zeile findet:
# pdfgrep -n "zpool upgrade" zfsadmin.pdf
3: Upgrading ZFS Storage Pools (zpool upgrade) .............21
13: Upgrading ZFS Storage Pools (zpool upgrade)
21: Upgrading ZFS Storage Pools (zpool upgrade)
21: version to take advantage of the latest features by using the zpool upgrade command. In
78: you can upgrade your pools with the zpool upgrade command to take advantage of the pool
78: action: Upgrade the pool using âzpool upgradeâ. Once this is done, the
78: # zpool upgrade -v
79: Then, you can run the zpool upgrade command to upgrade your pools. For example:
79: # zpool upgrade -a
192: zpool upgrade, 78
Mehr Informationen zu pdfgrep findet man in der Manpage pdfgrep(1).
Mit Hilfe von lam lassen sich die Zeilen von mehreren Dateien zusammenführen. Im folgenden Beispiel werden drei verschiedene Dateien verwendet:
# cat datei1
1
2
3
4
5
# cat datei2
a
b
c
d
e
# cat datei3
z
y
x
w
v
Nun lassen sich mit lam die jeweiligen Zeilen zusammenführen:
# lam datei1 datei2 datei3
1az
2by
3cx
4dw
5ev
Mit der -S Option kann ein Trennzeichen definiert werden, welches zwischen die Zeilen der verschiedenen Dateien dargestellt wird:
# lam datei1 -S " " datei2 datei3
1 a z
2 b y
3 c x
4 d w
5 e v
# lam datei1 -S "\
" datei2 datei3
1
a
z
2
b
y
3
c
x
4
d
w
5
e
v
Auch lassen sich jeweils zwei Zeilen einer einzelnen Datei zu einer verbinden:
# lam - - < datei1
12
34
5
Auf FreeBSD ist lam standardmässig im Basissystem vorhanden. Mehr Informationen zu lam findet man in der Manpage lam(1).
Mit Hilfe von logins lassen sich Informationen über lokale Systembenutzer auslesen. Mit der -d Option kann herausgefunden werden welche Benutzer identische Benutzer-IDs haben:
# logins -d
root 0 wheel 0 Charlie &
toor 0 wheel 0 Bourne-again Superuser
Möchte man auslesen, welche Benutzer der gleichen Gruppen angehören, so kann die -g Option verwerdet werden:
# logins -g wheel
root 0 wheel 0 Charlie &
beat 1001 users 1001 Beat Gätzi
Informationen über einen Benutzer erhält man mit der -l Option:
# logins -l beat
beat 1001 users 1001 Beat Gätzi
Für Informationen über die sekundären Gruppen der Benutzer verwendet man die -m Option. Durch die -t Option wird die Ausgabe nicht nach der Benutzer-ID sondern nach dem Benutzernamen sortiert:
# logins -m -t
_dhcp 65 _dhcp 65 dhcp programs
_pflogd 64 _pflogd 64 pflogd privsep user
avahi 558 avahi 558 Avahi Daemon User
beat 1001 users 1001 Beat Gätzi
wheel 0
vboxusers 920
bin 3 bin 7 Binaries Commands and Source
bind 53 bind 53 Bind Sandbox
clamav 106 clamav 106 Clam Antivirus
mail 6
daemon 1 daemon 1 Owner of many system processes
games 7 games 13 Games pseudo-user
haldaemon 560 haldaemon 560 HAL Daemon User
kmem 5 nogroup 65533 KMem Sandbox
mailnull 26 mailnull 26 Sendmail Default User
man 9 man 9 Mister Man Pages
messagebus 556 messagebus 556 D-BUS Daemon User
minbif 926 minbif 926 Minbif Daemon User
news 8 news 8 News Subsystem
nobody 65534 nobody 65534 Unprivileged user
operator 2 operator 5 System &
polkit 562 polkit 562 PolicyKit Daemon User
pop 68 mail 6 Post Office Owner
proxy 62 proxy 62 Packet Filter pseudo-user
pulse 563 pulse 563 PulseAudio System User
root 0 wheel 0 Charlie &
operator 5
smmsp 25 smmsp 25 Sendmail Submission User
sshd 22 sshd 22 Secure Shell Daemon
test 1002 test 1002 Testbenutzer
toor 0 wheel 0 Bourne-again Superuser
tty 4 nogroup 65533 Tty Sandbox
uucp 66 uucp 66 UUCP pseudo-user
www 80 www 80 World Wide Web Owner
Informationen über das home-Verzeichnis und die verwendete Shell erhält man mit der -x Option. Verwendet man die -u Option werden keine Systembenutzer angezeigt:
# logins -x -u
beat 1001 users 1001 Beat Gätzi
/home/beat
/bin/csh
test 1002 test 1002 Testbenutzer
/home/test
/bin/tcsh
Auf FreeBSD ist logins standardmässig im Basissystem vorhanden. Mehr Informationen zu logins findet man in der Manpage logins(1).