Mit Hilfe von dim lassen sich Verzeichnisinhalte nach Dateiendungen und Dateinamen gruppiert darstellen. Im FreeBSD-Portbaum findet man dim unter sysutils/dim:
# cd /usr/ports/sysutils/dim && make install clean
Zeigt man den Inhalt eines Verzeichnisses mit ls(1) an, so wird der Inhalt alphabetisch ausgegeben:
# ls work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog epoll.c evrpc-internal.h mac/
Makefile.am epoll_sub.c evrpc.c min_heap.h
Makefile.in evbuffer.c evrpc.h missing
README evdns.3 evsignal.h mkinstalldirs
README.chromium evdns.c evutil.c poll.c
aclocal.m4 evdns.h evutil.h quotes.patch
autogen.sh event-config.h http-internal.h sample/
buffer.c event-internal.h http.c select.c
compat/ event.3 install-sh signal.c
config.guess event.c kqueue.c strlcpy-internal.h
config.h.in event.h libevent.gyp strlcpy.c
config.sub event_rpcgen.py* linux/ sys-queue-macros.patch
configure* event_tagging.c log.c test/
configure.in evhttp.h log.h
devpoll.c evport.c ltmain.sh
Verwendet man dim, so werden die Dateien spaltenweise nach Dateiendungen und falls identische Dateinamen vorhanden sind zeilenweise sortiert dargestellt:
# dim work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog Makefile.am Makefile.in aclocal.m4 autogen.sh
README README.chromium config.h.in ltmain.sh
compat buffer.c
config.guess devpoll.c config.sub
configure epoll.c configure.in
epoll_sub.c
evbuffer.c
evdns.3 evdns.c evdns.h
event.3 event.c event.h
event_rpcgen.py event_tagging.c event-config.h
install-sh evport.c event-internal.h
libevent.gyp evhttp.h
linux evrpc.c evrpc.h
mac evrpc-internal.h
missing evsignal.h
mkinstalldirs evutil.c evutil.h
quotes.patch http.c http-internal.h
sample kqueue.c
sys-queue-macros.patch log.c log.h
test poll.c min_heap.h
select.c strlcpy-internal.h
signal.c
strlcpy.c
Mit der -s Option wird zusätzlich noch die Dateigrösse angezeigt:
# dim -s work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog 11k Makefile.am 3k Makefile.in 32k aclocal.m4 .2m autogen.sh .2k
README 1k README.chromium .9k config.h.in 6k ltmain.sh .1m
compat .5k buffer.c 9k
config.guess 44k devpoll.c 10k config.sub 32k
configure .7m epoll.c 8k configure.in 9k
epoll_sub.c 1k
evbuffer.c 10k
evdns.3 11k evdns.c 85k evdns.h 18k
event.3 17k event.c 22k event.h 37k
event_rpcgen.py 44k event_tagging.c 9k event-config.h 7k
install-sh 4k evport.c 12k event-internal.h 3k
libevent.gyp 1k evhttp.h 11k
linux .5k evrpc.c 16k evrpc.h 16k
mac .5k evrpc-internal.h 2k
missing 10k evsignal.h 2k
mkinstalldirs .7k evutil.c 6k evutil.h 5k
quotes.patch .8k http.c 66k http-internal.h 4k
sample .5k kqueue.c 11k
sys-queue-macros.patch 1k log.c 4k log.h 2k
test .5k poll.c 9k min_heap.h 5k
select.c 8k strlcpy-internal.h .3k
signal.c 8k
strlcpy.c 2k
Mehr Informationen zu dim erhält man mit der -h Option.
Möchte man herausfinden wie Dateisysteme mit dem mount Befehl gemountet werden, so kann die -d und -v Option von mount verwendet werden. Folgendes Beispiel zeigt welche Befehle von einem mount -a im Single-User-Mode ausgeführt würden. Die einzelnen Befehle werden dabei nur angezeigt und nicht ausgeführt:
# mount -adv
mount -t ufs -o rw -o update /dev/ad4s3a /
mount -t tmpfs -o rw tmpfs /tmp
mount -t ufs -o rw /dev/ad4s3f /usr
mount -t ufs -o rw /dev/ad4s3d /var
mount -t procfs -o rw proc /proc
Mehr Informationen zu mount findet man in der Manpage mount(8).
Mit Hilfe von llgal kann auf der Kommandozeile aus einem Verzeichnis mit Fotos eine statische Fotogalerie generiert werden, welche danach auf ein Webserver geladen werden kann. Im FreeBSD -Portbaum findet mann llgal unter www/llgal:
# cd /usr/ports/www/llgal && make install clean
Möchte man die Fotogalerie erstellen, wechselt man in das Verzeichnis mit den Fotos und führt llgal aus:
# llgal
Listing entries in . : 100.00%
Preparing entries: 100.00%
Found 13 entries in current directory
Using '/usr/local/share/llgal/slidetemplate.html' as HTML slide template.
Creating individual slides: 100.00%
Using '/usr/local/share/llgal/indextemplate.html' as HTML index template.
Creating the index.html file: 100.00%
No llgal.css in .llgal/, getting a copy from /usr/local/share/llgal
Eine index.html Datei als Startseite wurde dabei automatisch generiert. Danach kann das ganze Verzeichnis auf ein Webserver geladen werden. Ein Galerie-Titel kann mit der --title Option festgelegt werden. Mit der --sy Option können alle Bilder auf eine bestimmte Höhe in Pixel angepasst werden:
# llgal --title "Meine Fotos" --sy 480
Alle Optionen von llgal erhält man mit der -h Option.
Möchte man aus verschiedenen Dateien die gespeicherten Meta-Daten auslesen so kann dazu IExtract verwendet werden. Im FreeBSD -Portbaum findet man IExtract unter sysutils/iextract:
# cd /usr/ports/sysutils/iextract && make install clean
Nun können die in einer Datei gespeicherten Meta-Daten ausgelesen werden:
# IExtract bookmarks.html gravatar.jpg qemu.png pack.gif qemu.png Lied.mp3 pf-firewall-eurobsdcon.pdf zusammenfassung.doc
bookmarks.html - My Bookmarks 25.05.2005 15:00:04
gravatar.jpg - Created with The GIMP 27.10.2005 15:06:51
qemu.png - 06.01.2006 14:22:44
pack.gif - Created with The GIMP 03.07.2005 09:18:21
qemu.png - 06.01.2006 14:22:44
Lied.mp3 - Irgendein Interpreter! Sein Lied! 07.04.2005 15:48:03
pf-firewall-eurobsdcon.pdf - Brannmur med OpenBSDs PF Peter N. M. Hansteen pdfpagemode Foredrag for BLUG 15.11.2006 17:41:00
zusammenfassung.doc - Kapitel 1 OSI-Referenzmodell 14.04.2005 06:56:12
Möchte man Verzeichnisse rekursiv durchsuchen, so kann dazu die -r Option verwendet werden. Alle Optionen von IExtract erhält man mit der -h Option.
Möchte man aus einer CSV-Datei ein LaTeX-Dokument generieren so kann dazu csv2latex verwendet werden. Im FreeBSD Portbaum findet man csv2latex unter textprox/csv2latex:
# cd /usr/ports/textproc/csv2latex && make install clean
Nun kann ein LaTeX-Dokument aus der CSV-Datei generiert werden:
# csv2latex links.csv > links.tex
Soll der generierte LaTeX-Code in ein bestehendens Dokument integriert werden, so kann der LaTeX-Dokumentenkopf mit der --nohead Option nicht erstellt werden:
# csv2latex --nohead links.csv > links.tex
Werden in der CSV-Datei nicht Kommas sondern zum Beispiel Semikolons als Trennzeichen verwendet so kann das Trennzeichen mit der --separator Option festgelegt werden:
# csv2latex --separator s links.csv > links.tex
Alle Optionen von csv2latex erhält man, wenn csv2latex ohne Optionen aufgerufen wird.
Mit Hilfe von ftasv kann der Status eines Apache-Servers auf der Kommandozeile abgefragt werden. Dies ist besonders nützlich, wenn die Server-Status-Seite des Apaches durch ein Problem nicht mehr erreichbar ist. Im FreeBSD Portbaum findet man ftasv unter www/ftasv:
# cd /usr/ports/www/ftasv && make install clean
Damit ftasv verwendet werden kann, muss das Status-Modul aktiviert und der Apache entsprechend konfiguriert werden:
LoadModule status_module libexec/apache2/mod_status.so
<IfModule mod_status.c>
ScoreBoardFile /var/run/apache_status
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
</Location>
</IfModule>
Nachdem die neue Konfiguration aktiviert wurde, kann der Apache-Status als root mit ftasv ausgelesen werden:
# ftasv /var/run/apache_status
6473 _ 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/templates/paefchen/tinderstyle.css HTTP/1.1
6805 K 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/ HTTP/1.1
7026 _ 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/templates/paefchen/images/hdr_fill.png HTTP/1.1
7094 _ 93.186.xx.xx tinderbox.chruetertee.ch GET /tb/index.php?action=latest_buildports_rss HTTP/1.1
7331 _ tinderbox.chruetertee.ch tinderbox.chruetertee.ch GET /server-status?auto HTTP/1.1
7589 C 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/templates/paefchen/tinderstyle.js HTTP/1.1
41883 _ 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/templates/paefchen/images/hdr_fill.png HTTP/1.1
42153 _ 212.47.xx.xx tinderbox.chruetertee.ch GET /tinderbox/index.php HTTP/1.1
42155 C 83.76.xx.xx tinderbox.chruetertee.ch GET /tb/templates/paefchen/images/hdr_fill.png HTTP/1.1
Mehr Informationen findet man in der Datei /usr/local/share/doc/ftasv/README.
Mit Hilfe von wc können verschiedene Informationen zu einer Textdatei ermittelt werden. Mit der -l Option können die Anzahl Zeilen einer Datei gezählt werden:
# wc -l chruetertee-latin1.tex
18199 chruetertee-latin1.tex
Möchte man die Anzahl Wörter einer Datei zählen, so kann die -w Option verwendet werden:
# wc -w chruetertee-latin1.tex
91070 chruetertee-latin1.tex
Die Anzahl Zeichen einer Datei wird mit der -m Option angezeigt:
# wc -m chruetertee-latin1.tex
774362 chruetertee-latin1.tex
Die Läge der längsten Zeile einer Datei bestimmt man mit der -L Option:
# wc -L chruetertee-latin1.tex chruetertee.tex
20928 chruetertee-latin1.tex
1548 chruetertee.tex
20928 total
Auf FreeBSD ist wc standardmässig im Basissystem vorhanden. Mehr Informationen zu wc findet man in der Manpage wc(1).
Möchte man aus einer Datei alle LaTeX-Befehle ausfiltern, so dass nur noch der Text angezeigt wird, kann man dazu detex verwenden. Im FreeBSD Portbaum findet man detex unter print/detex:
# cd /usr/ports/print/detex && make install clean
Nun ruft man detex mit der LaTeX -Datei auf und alle LaTeX-Befehle werden entfernt:
# head -20 chruetertee-latin1.tex
\documentclass[10pt]{article}
\usepackage{fullpage, graphicx, url}
\setlength{\parskip}{1ex}
\setlength{\parindent}{0ex}
\title{chruetertee.ch}
\begin{document}
\section*{chruetertee.ch}
\subsection*{Fotos auf der Kommandozeile aufbessern}
[ Befehl der Woche ] by Beat @ 26.12.2009 11:21 CET
Mit HIlfe von aaphoto lassen sich Fotos auf der Kommandozeile aufbessern, zum Beispiel automatisch die Farben korrigiert. Im FreeBSD Portbaum findet man aaphoto unter graphics/aaphoto:
\begin{verbatim}
# cd /usr/ports/graphics/aaphoto && make install clean
\end{verbatim}
Ruft man aaphoto ohne Optionen auf, werden automatisch die Farben des Bildes verbessert und dieses in einer neuen Datei gespeichert:
\begin{verbatim}
# detex chruetertee-latin1.tex | head -20
chruetertee.ch
chruetertee.ch
Fotos auf der Kommandozeile aufbessern
[ Befehl der Woche ] by Beat @ 26.12.2009 11:21 CET
Mit HIlfe von aaphoto lassen sich Fotos auf der Kommandozeile aufbessern, zum Beispiel automatisch die Farben korrigiert. Im FreeBSD Portbaum findet man aaphoto unter graphics/aaphoto:
Ruft man aaphoto ohne Optionen auf, werden automatisch die Farben des Bildes verbessert und dieses in einer neuen Datei gespeichert:
Mehr Informationen zu detex findet man in der Manpage detex(1).
Mit Hilfe von tree lässt sich eine Verzeichnisstruktur graphisch als Baum darstellen. Im FreeBSD Portbaum findet man tree unter sysutils/tree:
# cd /usr/ports/sysutils/tree && make install clean
Nun kann eine Baumansicht aller Dateien eines Verzeichnisses und dessen Unterverzeichnisse angezeigt werden:
# tree /usr/ports/www/fluxcms
/usr/ports/www/fluxcms
|-- Makefile
|-- distinfo
|-- files
| |-- patch-install-dist-conf-config.xml
| |-- pkg-deinstall.in
| `-- pkg-message.in
|-- pkg-descr
`-- pkg-plist
1 directory, 7 files
Mit Hilfe der -p Option werden zusätzlich die Rechte und mit der -h Option die Grösse einer Datei angezeigt:
# tree -ph /usr/ports/www/fluxcms
/usr/ports/www/fluxcms
|-- [-rw-r--r-- 1.2K] Makefile
|-- [-rw-r--r-- 242] distinfo
|-- [drwxr-xr-x 512] files
| |-- [-rw-r--r-- 323] patch-install-dist-conf-config.xml
| |-- [-rw-r--r-- 332] pkg-deinstall.in
| `-- [-rw-r--r-- 1.1K] pkg-message.in
|-- [-rw-r--r-- 280] pkg-descr
`-- [-rw-r--r-- 158K] pkg-plist
1 directory, 7 files
Mehr Informationen und alle Optionen von tree findet man in der Manpage tree(1).
Ändert sich ein SSH Schlüssels eines Rechner, weil dieser zum Beispiel neu aufgesetzt wurde, so muss der alte Eintrag in der known_hosts-Datei gelöscht werden. Dies kann zum Beispiel von Hand mit einem Editor oder automatisch mit unssh gemacht werden. Im FreeBSD -Portbaum findet man unssh unter security/unssh:
# cd /usr/ports/security/unssh && make install clean
Versucht man mit dem alten Eintrag in der known_hosts auf den neuen Rechner zu verbinden, so wird eine entsprechende Meldung angezeigt:
# ssh test.chruetertee.ch
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the DSA host key has just been changed.
The fingerprint for the DSA key sent by the remote host is
05:9f:e5:9c:ff:9f:0a:85:30:21:f8:60:95:e3:e5:9b.
Please contact your system administrator.
Add correct host key in /home/beat/.ssh/known_hosts to get rid of this message.
Offending key in /home/beat/.ssh/known_hosts:25
DSA host key for test.chruetertee.ch has changed and you have requested strict checking.
Host key verification failed.
Nun wird der alte Eintrag mit unssh gelöscht:
# unssh test.chruetertee.ch
Found test.chruetertee.ch, deleting...OK
all done, deleted 1 entries
Danach kann man sich wieder mit dem Rechner verbinden. Dabei sollte der SSH Fingerprint überprüfen werden, welcher danach wieder in die known_hosts-Datei geschrieben wird.