You're in all Blogs Section

Bash Hotkeys

Häufig benutzte Terminal-Befehle immer wieder eingeben ist lästig. Abhilfe schafft die History, mit der Pfeil-nach-Oben-Taste kann man die letzten Befehle durchblättern. Doch auch das Blättern kann lästig sein. Abhilfe schafft Ctrl+R, womit man in der History suchen kann. Wenn sich befehle ähneln, sucht man damit evtl. auch etwas länger.

Ganz einfach geht es mit Tastenkürzeln, die man in der .bashrc oder der .bash_profile definieren kann.

Ich möchte z.B. mit F1 über SSH zum Host palita.net auf Port 2011 verbinden, unter Verwendung des Keys ~/.ssh/second.pem und dem Benutzernamen palita. Auf dem Host möchte ich außerdem direkt den Befehl tail -f /var/log/messages ausführen.

Jetzt gilt es zunächst herauszufinden, wie bash auf F1 oder sonstige Tasten(-kombinationen) reagieren kann. Hier hilft read. Der Befehl read wartet auf Input und gibt einfach nur aus, was dieser war. Wenn man read startet und die Taste F1 drückt, kommt folgendes dabei raus:

$ read ^[OP 

^[ ist die Escape-Steuersequenz, diese wird mit \e umschrieben; OP bezeichnet dann also F1.

Um für diese Taste ein Kürzel einzurichten, editiert man einfach die Datei ~/.bashrc (unter Mac OS X  die Datei ~/.bash_profile) und fügt z.B. am Ende folgendes ein:

bind '"\eOP":"ssh palita@palita.net -p 2011 -i ~/.ssh/second.pem tail -f /var/log/messages\n"'

Nach dem Speichern und neuem Einloggen wird der Befehl beim Drücken von F1 ausgeführt. Das direkte Ausführen kann man durch entfernen von \n (Newline) verhindern. Damit lassen sich dann z.B. auch einzelne Fragmente an Befehle anfügen, z.B. um sich schonmal das Tippen von cd /var/www/virtual_hosts/ zu sparen.

Tagged with: , , ,
Posted in Tutorials

Grundlagen – BASH (Linux / Mac Terminal)

Grundfunktionen

Hier sind einige Grundfunktionen der Shell, die sich mit Befehlen kombinieren lassen oder Auswirkungen auf andere Befehle haben. In einigen Beispielen werden diese Grundfunktionen verwendet.

Umleitungen

Funktion Beschreibung
ls > liste.txt
Ausgababe von ls nicht im Terminal ausgeben, sondern in die Datei liste.txtschreiben
ls -l >> liste.txt
Ausgabe von ls -l an liste.txt anhängen
grep palita < datei.txt
Den Inhalt von datei.txt als Terminal-Eingabe verwenden
|
Die Pipe ist eine sehr nützliche Funktion. Sie leitet Ausgaben an andere Programme weiter. Um dies näher zu verdeutlichen nachfolgend einige Beispiele
Verwendung der Pipe (|)
befehl1 | befehl2
leitet die Ausgabe von befehl1 direkt an befehl2 weiter
ls -la | grep jpg
Verzeichnisinhalt auflisten, mit grep nur Zeilen, die jpg enthalten ausgeben
ls -la | grep jpg | grep -v foto
wie voriges Beispiel, zusätzlich mit einem zweiten grep alle Vorkommnisse vonfoto nicht herausfiltern und nicht ausgeben (-v)

Historie

Funktion Beschreibung
sudo !!
Den letzten Befehl wiederholen, jedoch den Befehl sudo (als Superuser ausführen) voranstellen. Nützlich auch um z.B. die Ausgabe des letzten Befehls an less weiterzuleiten (nicht vergessen, dass der Befehl erneut ausgeführt wird, nicht nur die Ausgabe wiederholt wird!)
history
die letzten ausgeführten Befehle ausgeben

Automatische Vervollständigung

Die Bash kann standardmäßig Befehle und Dateien automatisch vervollständigen. Möchtest du z.B. den Befehl dmesg ausführen, reicht die Eingabe von dm und das Drücken der Tabulator-Taste (↹), esg wird automatisch angefügt. Sollte es mehr als eine Übereinstimmung geben, wird durch zweimaliges Drücken der Tabulatortaste eine Liste mit möglichen Befehlen ausgegeben. Diese Funktion ist genauso für Dateien gültig, so kann man sich etwa durch die gesamte Ordnerstruktur mit Hilfe von Tab leiten lassen. Um die Datei /var/log/syslog auszugeben, wäre eine einfache Möglichkeit:

catTAB/vTABlogTABsysTAB

Gibt es keine mehrfachen Übereinstimmungen wird automatisch

cat /var/log/syslog

angezeigt und mit Enter ausgeführt.

 

Information

Befehl Beschreibung
man echo
manpage (Handbuch) für den Befehl echo öffnen. Navigation mit Pfeiltasten, beenden mit q
which echo
kompletten Pfad des Befehls echo ausgeben
whereis echo
kompletten Pfad des Befehls echo und seinen Konfigurationsdateien ausgeben
whatis echo
kurze Funktionsbeschreibung über den Befehl echo ausgeben
time echo "Test"
Dauer des Befehls echo “Test” ausgeben
type echo
Informationen zur Programmdatei von echo

Navigation

Befehl Beschreibung
cd /home/
zum Pfad /home/ navigieren (change directory)
pwd
aktuelles Arbeitsverzeichnis ausgeben (print working directory)
cd
zum Heimatverzeichnis (Standardmäßig /home/benutzername/ wechseln
cd -
zum letzen Verzeichnis wechseln
pushd .
aktuellen Pfad zwischenspeichern
popd
zum zwischengespeicherten Pfad wechseln
ls
Verzeichnisinhalt vom aktuellen Verzeichnis ausgeben

ls /verzeichnis/

gibt den Inhalt von /verzeichnis/ aus

ls -l
Verzeichnisinhalt vom aktuellen Verzeichnis als Liste mit Dateiinformationen ausgeben.
Weitere Parameter für ls
-a
auch Versteckte Dateien anzeigen
-h
Dateigrößen in lesbare Werte umrechenen (kByte, MByte, …)
--color=auto
Ausgabe farbig darstellen
ls -lah --color=auto
alle hier aufgeführten Parameter kombiniert

Dateioperationen

Befehl Beschreibung
cp -rv * /ziel
kopiert alle Dateien, Ordner und Unterordner des aktuellen Verzeichnisrekursiv (-r) nach /ziel und gibt währenddessen den Status aus (-v)
mv datei /ziel/
verschiebt datei in den Ordner /ziel/
mv alt.txt neu.txt
ändert den Namen der Datei alt.txt in neu.txt
ln -s original.txt link.txt
erstellt eine Verknüpfung auf den relativen Pfad original.txt mit dem Namenlink.txt
ln -s /pfad/zu/original.txt link.txt
erstellt eine Verknüpfung auf den absoluten Pfad zu original.txt mit dem Namen link.txt
mkdir verzeichnis
erstellt den Ordner verzeichnis im aktuellen Ordner
rm datei
löscht datei
rm -r ordner/
löscht ordner/ mit allen enthaltenen Dateien / Ordnern

Dateibetrachtung

Befehl Beschreibung
cat datei.txt
Inhalt von datei.txt direkt ausgeben
more datei.txt
Datei Seitenweise ausgeben, Navigieren mit Pfeiltasten, Leertaste für nächste Seite.
less datei.txt
wie more, jedoch mehr Funktionen (siehe manpage: man less). q zum beenden
lspci | less
Ausgabe von lspci an less weiterleiten
tail datei.txt
Die letzten Zeilen von datei.txt ausgeben
tail -f datei.txt
Die letzten Zeilen von datei.txt ausgeben und auf Änderungen warten. Wird der Datei etwas hinzugefügt, wird es direkt ausgegeben. Beenden mit STRG + C. Nützlich vor allem für Logdateien
nano datei.txt
öffnet datei.txt in nano, ein einfaches Textbearbeitungsprogramm. Zum beenden STRG+X
vi datei.txt
öffnet datei.txt in vi, ein sehr umfangreiches Textbearbeitungsprogramm. Zum Beenden ESC q! ENTER. Unbedingt manpage vor dem benutzen lesen!
sort datei.txt
gibt datei.txt sortiert aus

Dateisuche

Befehl Beschreibung
locate palita
Suche nach Dateien / Ordnern mit palita im Dateinamen
find -iname palita
Suche nach Dateien & Ordnern im aktuellen Verzeichnis (und darunter) mit palitaim Namen, ignoriere Groß- / Kleinschreibung
find -type f ! -iname '*.jpg'
Suche nach Dateien, die nicht mit .jpg enden
find -type f ! -perm -444
Suche nach Dateien, die nicht von allen Benutzern lesbar sind
grep "palita" * --color
Suche nach dem Vorkommen des Wortes palita im aktuellen Verzeichnis mit farbiger Hervorhebung
grep -i -C 2 "palita" datei.txt
Suche nach dem Vorkommen von palita in datei.txt, ignoriere Groß- / Kleinschreibung und gebe jeweils 2 Zeilen vor und nach dem vorkommen aus
grep -i -v "palita" datei.txt
Gebe alle Zeilen aus, in denen palita nicht vorkommt

Archivierung / ZIP

Befehl Beschreibung
tar cf archiv.tar ordner/
ordner im aktuellen Verzeichnis in die Datei archiv.tar packen
tar xf archiv.tar
archiv.tar entpacken
Weitere Parameter für tar
tar cfz a.tar.gz o/
Archiv a.tar.gz aus Ordner o/ mit gzip komprimieren
tar cfj a.tar.bz o/
Archiv a.tar.bz aus Ordner o/ mit bzip komprimieren
Parameter-Infox = extract (Entpacken), c = create (Erstellen), f = file (Datei zum Packen / Entpacken als erster Parameter), v = verbose (Status während dem (Ent)Packen)
Befehl Beschreibung
zip archiv.zip *
Alle Dateien & Ordner im aktuellen Verzeichnis in archiv.zip speichern
unzip archiv.zip
archiv.zip entpacken

Backup & Synchronisation (rsync)

RSync ist ein mächtiges Tool um Verzeichnisse zu Sichern. Dies eignet sich für Backups, geteilte Ordner über mehrere Rechner, usw. RSync sucht nach Unterschieden von der Quelle zum Ziel und kopiert veränderte und neue Dateien zum Ziel. Mit verschiedenen Parametern können auch nicht mehr vorhandene Dateien der Quelle im Ziel gelöscht werden, um immer zwei identische Verzeichnisse zu haben.

RSync eignet sich hauptsächlich, wenn es eine Quelle und ein Ziel gibt. Wenn zwei Ordner parallel Verändert werden und Synchronisiert werden sollen, sollten Programme wie Unison verwendet werden.

Befehl Beschreibung
rsync -aP --delete --stats /quelle /ziel
Sichert den Ordner /quelle nach /ziel. Gab es vorher bereits eine Sicherung, werden in /quelle nicht mehr vorhandene Dateien in/ziel gelöscht (–delete). Während dem Kopieren wird der Fortschritt angezeigt (-P’). Nach dem Kopieren wird eine Statistik ausgegeben (–stats). Es werden die Standardeinstellungen zum Sichern verwendet (-a).
rsync -aze ssh /quelle benutzer@rechner.de:/ziel
Sichert den Ordner /quelle nach ziel auf den entfernten Rechner mit dem Hostnamen rechner.de in den Ordner /ziel über SSH. Die Dateien werden komprimiert übertragen (-z).

SSH / Tunneling

SSH steht für Secure Shell und meint ein Protokoll und dazugehörige Programme, um sich über das Netzwerk auf einem Sicheren Kanal auf der Konsole eines anderen Rechners zu verbinden. Mit SSH können außerdem Sichere Tunnel für andere Protokolle erstellt werden.

Befehl Beschreibung
ssh hostname
verbindet zur Konsole des Rechners hostname (alternativ kann auch die IP-Adresse angegeben werden)
ssh user@hostname
verbindet sich als Benutzer user
ssh -L 90:localhost:80 hostname
leitet Port 80 von Rechner hostname auf den lokalen Port 90′weiter. In diesem Beispiel wird der Webserver (Port 80) von hostname lokal über Port 90 erreichbar (http://localhost:90). Alle Daten werden dabei verschlüsselt übertragen
ssh -R 5901:localhost:5900 hostname
Leitet den Lokalen Port 5900 (VNC) über einen sicheren SSH-Kanal auf den Rechner hostname weiter. hostname kann jetzt eine verschlüsselte VNC-Verbindung auf den lokalen Rechner über seinen Port 5901 herstellen. Dies ist auch sinnvoll, wenn Port 5900 durch eine Firewall gesperrt wird, der Datenverkehr läuft bei einem Tunnel immer über den SSH-Port 22!
scp lokal.txt benutzer@hostname:/home/kopie.txt
Kopiert die lokale Datei lokal.txt auf den entfernten Rechnerhostname in das Verzeichnis /home/ unter dem Namen kopie.txt.
scp benutzer@hostname:/home/kopie.txt .
Kopiert die entfernte Datei /home/kopie.txt von hostname auf den Lokalen Rechner ins aktuelle Verzeichnis

Datenanalyse, Speicher & Prozesse

Befehl Beschreibung
wc -l datei.txt
Anzahl der Zeilen von datei.txt ausgeben. Andere Zählweisen: -w: Wörter zählen, -m: Buchstaben zählen
lsattr
Dateiattribute auflisten
diff datei1 datei2
Unterschiede zwischen 2 Dateien anzeigen
df -h
Festplattenspeicher Analysieren (-h = human readable / In größtmögliche Einheit umrechnen)
du -h
Dateigrößen (disk usage) des aktuellen Verzeichnis und Dateien anzeigen (-human readable)
du -hs
Größe des aktuellen Ordners inkl. Unterordner
free -m
Speicherauslastung in Megabyte ausgeben
file datei.txt
Dateityp von datei.txt ermitteln
md5sum datei.txt
Prüfsumme (MD5) von datei.txt ausgeben
lsof
geöffnete Dateien anzeigen
top
Prozessviewer, mit q beenden
ps aux
alle Prozesse auflisten
who
eingeloggte Benutzer auflisten

Netzwerk

Befehl Beschreibung
ifconfig
Netzwerkkonfiguration anzeigen
ifconfig eth0
Infos zur ersten Netzwerkkarte (eth0) anzeigen
netstat
Alle Netzwerkverbindungen anzeigen
netstat -tup
Aktive Internetverbindungen ausschließlich Server anzeigen
netstat -tupl
Aktive Serververbindungen ausgeben
iptraf
Programm zur Datenverkehrsanalyse (nicht immer installiert!)
host palita.net
Informationen über Hostname / IP von palita.net
traceroute palita.net
Weg zu palita.net verfolgen
ping -c 5 palita.net
palita.net 5 mal ein Ping senden, um zu sehen, ob der Rechner erreichbar ist und wie lange er für eine Antwort benötigt (manche Server geben trotz Erreichbarkeit aus Sicherheitsgründen keine Antwort)
hostname
eigenen Hostnamen ausgeben
nslookup palita.net
Nameserver-Infos zu palita.net ausgeben
dig @nameserverxy.com palita.net
Nameserver-Infos zu palita.net über den DNS auf namserverxy.com ausgeben
ip addr show
Informationen zu Netzwerkkarten und zugehörigen Adressen ausgeben

Dateidownload (wget)

Befehl Beschreibung
wget http://palita.net/empty.txt
Datei empty.txt von palita.net herunterladen und im aktuellen Verzeichnis abspeichern
wget -c http://palita.net/empty.txt
Vorher abgebrochenen Download fortsetzen (-continue)

Windows Netzwerke (samba)

Befehl Beschreibung
smbtree
SMB Netzwerk-Scanner – listet Windows-Freigaben / Arbeitsgruppen / Domains auf
findsmb
findet Rechner, die Windowsfreigaben bereitstellen
smbclient -L hostname
listet alle verfügbaren Freigaben von hostnameauf
mount -t smbfs -o fmask=666,guest //hostname/share /mnt/share
bindet die Freigabe share im lokalen Rechner als Laufwerk unter /mnt/share ein

Textmanipulation

Befehl Beschreibung
sed 's/string1/string2/g' datei.txt
ersetzt string1 mit string2 in datei.txt
sed '/ *#/d; /^ *$/d' datei.txt
entfernt Kommentare, die mit # beginnen und Leerzeilen aus datei.txt
tr '[:lower:]' '[:upper:]' < datei.txt
Gibt datei.txt in Großbuchstaben aus

Datum / Zeit

Befehl Beschreibung
cal -3
Kalender mit 3 Monaten ausgeben (letzter, aktueller und nächster Monat)
cal 9 1752
Kalender vom September 1752 anzeigen
date
aktuelles Datum + Uhrzeit ausgeben
uptime
Information über die Laufzeit des Systems

Paketverwaltung

Viele Linux-Distributionen verwenden Paketverwaltungsprogramme, um Software auf dem System zu installieren, aktualisieren und löschen. Je nach Distribution gibt es verschiedene Programme, die bekanntesten sinddpkg und rpm. Für dpkg kann apt-get, für rpm kann yum als erweitertes, einfaches Installationstool verwendet werden.

dpkg / apt-get

Enthalten in Debian-Distribitionen (Debian, (X/K/Edu)Ubuntu, …)

Befehl Beschreibung
apt-get install firefox
installiert firefox und alle dazu benötigten Zusatzpakte / Bibliotheken auf dem System
apt-get update
aktualisiert die Paketliste
apt-get upgrade
aktualisiert alle installierten Programme
apt-get dist-upgrade
aktualisiert alle installierten Programme, Kernel-Updates, Distributions-Updates, …
apt-get remove firefox
deinstalliert firefox
apt-get purge firefox
deinstalliert firefox und all seine Konfigurationsdateien
apt-get autoremove
deinstalliert nicht mehr benötigte software / bibliotheken

rpm / yum

Enthalten in Red-Hat ähnlichen Distributionen (Fedora, CentOS, RedHat, …)

Befehl Beschreibung
yum install firefox
installiert firefox und alle dazu benötigten Zusatzpakte / Bibliotheken auf dem System
yum update
überprüft, ob neue Pakete verfügbar sind und aktualisiert sie auf wunsch
yum info firefox
gibt Informationen über das Paket firefox aus
yum erase firefox
deinstalliert firefox
yum search firefox
sucht nach Paketen, die firefox im Namen oder in der Beschreibung enthalten
yum help
gibt mögliche Befehle aus
yum help install
gibt mögliche Parameter für install aus

Anwendungsbeispiele

Hier einige Beispiele von Befehlen und Kombinationen, die gelegentlich hilfreich sein können.

  1. for i in *.JPG; do mv "$i" "${i/.JPG}".jpg; done # Benennt alle Dateien, die mit .JPG enden in .jpg um
  2. >datei.txt # Leert den Inhalt von datei.txt
  3. rename 's/\s+/_/g' * # Leerzeichen mit _ ersetzen
  4. rm bild{6..100}.jpg # Löscht bild6.jpg, bild7.jpg, ... bis bild100.jpg
  5. mail -s "file" deine@mail.tld < file.txt # Sendet eine Email an dich mit dem Inhalt von file.txt
  6. tail -f /var/log/mail.log | grep -i --color error # verfolgt Fehlermeldeungen in mail.log
Tagged with: ,
Posted in Tutorials

Mediawiki Tweaks

Leserechte nur für registrierte Benutzer

Es gibt eine Möglichkeit, Mediawiki so zu konfigurieren, dass nur registrierte Benutzer leserechte haben. Diese Methode funktioniert zwar, dennoch sollte man sich für interne Zwecke überlegen, ob nicht eine andere Wiki-Software besser geeignet sind, da die Benutzer- und Gruppenorganisation von Mediawiki sehr rudimentär gehalten ist.

Zum Ausschalten der Zugriffsrechte für alle Lese- und Schreibvorgänge aller Seiten und Dateien wird folgendes an die LocalSettings.php angefügt:

# Lesen für anonyme Benutzer verbieten
$wgGroupPermissions['*']['read'] = false;
# Folgende Seiten dennoch erlauben
$wgWhitelistRead =  array ("Special:Userlogin");
# Weitere Seiten mit Kommata anfügen,
# z.B. $wgWhitelistRead = array ("Special:Userlogin", "Hauptseite", "XYZ");

Die Seite Special:Userlogin sollte in der Whitelist bleiben, da ansonsten der Login ebenfalls verboten wird und man somit auch selbst keine Seiten lesen kann.

Wichtig: Da hier nur die Leserechte angepasst werden, können sich trotzdem Benutzer registrieren und somit ebenfalls Leserechte erlangen. Zum Deaktivieren von Benutzerregistrierungen siehe “Registrierung deaktivieren”.

Schreibrechte nur für registrierte Benutzer

Um das Editieren und Erstellen von Artikeln nur für registrierte Benutzer zuzulassen einfach folgende Zeilen ans Ende der LocalSettings.php einfügen:

# Anonymes Bearbeiten deaktivieren
$wgGroupPermissions['*']['edit'] = false;

Registrierung deaktivieren

Die Benutzerregistrierung kann deaktiviert werden. Neue Benutzerkonten können aber weiterhin von einem Admin angelegt werden. Zum Deaktivieren der Registrierung folgenden Code ans Ende der LocalSettings.php einfügen:

# Benutzerregistrierung deaktivieren
$wgGroupPermissions['*']['createaccount'] = false;

Ein Administrator kann auf der Spezialseite “Anmelden” ein Neues Benutzerkonto anlegen. Dazu muss der Admin eingeloggt sein, Änderungen am eigenen Account werden dabei natürlich nicht vorgenommen.

IP-Adressen anonymer Benutzer nicht speichern

Standardmäßig verwendet Mediawiki die IP-Adresse eines nicht eingeloggten Benutzers für die Artikelversionen. Diese sind öffentlich einsehbar, sowohl unter der Spezialseite Letzte Änderungen, als auch unter der Versionen / Autoren-Seite jeglicher Seiten. Möchte man die Speicherung der IP-Adressen deaktivieren, muss man die Datei includes/ProxyTools.php bearbeiten.

In dieser Datei sucht man nach dem Code $ip = $ipchain[0]; und fügt $ipchain = array(’0.0.0.0′) vor dieser Zeile ein. Der Code sollte dann folgendermaßen aussehen:

$ipchain = array('0.0.0.0');
$ip = $ipchain[0];

Somit wird jede IP-Adresse auf 0.0.0.0 gesetzt.

Tagged with: ,
Posted in Tutorials

SVN-Hooks: Automatischer Checkout nach Commits

Projekte mit Subversion zu verwalten macht für größere Projekte durchaus Sinn. In Kombination mit trac erhält man sogar noch ein sehr schickes Werkzeug zum Erstellen und Verwalten von Tickets, Milestones, Tags und Branches und noch ein Wiki dazu. Doch wenn mehrere Entwickler an einem Projekt arbeiten, das in einer einheitlichen Umgebung getestet werden soll, muss ständig nach jedem Commit auf der Testumgebung ein Checkout gemacht werden. Das ist zwar nicht viel Aufwand, aber es kann automatisiert werden. Besonders Webprojekte auf Basis dynamischer Skriptsprachen können davon profitieren, wie etwa ein PHP-Projekt, dass auf dem SVN-Server-eigenen Apache live getestet werden soll.

SVN bietet dazu sogenannte Hooks, die bei verschiedenen Events Skripts ausführen. Templates für Hooks befinden sich bereits im SVN-Repository unter /hooks/ – in diesem Beispiel wird ein Checkout in ein definiertes Verzeichnis ausgeführt, sobald ein Commit / Update erfolgt ist.

Dazu sind folgende Schritte notwendig:

  1. Template “post-commit.tpl” in “post-commit” umbenennen
    cd SVNREPO/hooks/
    mv post-commit.tpl post-commit
  2. post-commit So anpassen, dass das “SVNREPO/hooks/bin/autocheckout.sh” Skript ausgeführt wird
    [...]
    REPOS="$1"
    REV="$2"#commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
    #log-commit.py --repository "$REPOS" --revision "$REV"
    ${REPOS}/hooks/bin/autocheckout.sh "$REPOS" "$REV" trunk/ /WEBROOT/MEINPROJEKT

    Die im Template vorhandenen zwei Befehlsaufrufe werden auskommentiert.

  3. autocheckout.sh erstellen
    mkdir bin/
    wget http://palita.net/wp-content/uploads/2011/08/autocheckout.txt bin/autocheckout.sh

    Anmerkung: Dieses Skript wurde übernommen von http://larve.net/people/hugo/2007/05/svn-auto-look-and-checkout

  4. autocheckout.sh und post-commit anpassen
    chmod a+x post-commit bin/autocheckout.sh
  5. Initiales Ausführen & Testen
    sudo -u apache env - ./post-commit WEBROOT/MEINPROJEKT 234

    (234 durch die aktuelle Revision ersetzen, apache durch den Benutzer ersetzen, der Schreibzugriff auf das Webroot hat.)

  6. Commit & Test!

Unter Plesk 9 funktioniert es einwandfrei, jedoch muss dafür eventuell das Webverzeichnis mit Schreibrechten für den Benutzer “apache” versehen werden.

Weblinks:

Tagged with: , ,
Posted in Tutorials

Software-Alternativen

Legende

Zu jedem Programm steht in Klammern, welche Betriebssysteme unterstützt werden. Dabei steht W für Windows, M für MacOS X und L für Linux. So ist z.B. “Programm (W/L)” sowohl für Windows, als auch für Linux verfügbar.

Internet / Netzwerk

Programme, die die Kommunikation über Internet / Netzwerke ermöglichen

Browser

Alternativen zu Microsoft Internet Explorer

  • Firefox (W/L/M) – Schneller, populärer OpenSource-Browser mit Erweiterungsmöglichkeit via Addons.
  • Chrome (W/L/M) – Schneller Browser auf Basis der Gecko-Engine (wie Firefox), mit Cocoa-Frontend
  • Opera (W/L/M) – Kostenlose Internet-Suite (Browser / Mail/ …), proprietär

Chat

Alternativen zu ICQ, Skype, mIRC und anderen IM-Programmen

  • Pidgin (W/L) – Einfaches zu bedienendes Multiprotokoll-Chatprogramm für ICQ, AIM, MSN, YIM, IRC, Jabber, GoogleTalk uvm.
  • Adium (M) – Ähnlich wie Pidgin
  • QIP(W) – ICQ-Alternative, Freeware
  • XChat (W/L/M) – IRC-Client

Email

Alternativen zu Microsoft Outlook (-Express)

  • Thunderbird (W/L/M) – Komfortabler Email-Client mit GPG-Unterstützung (nur mit Plugin)
  • Evolution(W/L/M) – Alternative zu Microsoft Office Outlook, unterstützt MS-Exchange

File-Sharing

Alternativen zu gängigen Torrent- und anderen Filesharing-Programmen

  • Vuze (W/L/M) – Ehemals Azureus, OpenSource BitTorrent-Client
  • JDownloader(W/L/M) – Auf Java basierender Downloadmanager für 1-Click-Hoster (Rapidshare, Uploaded.to, …)
  • Deluge- OpenSource BitTorrent-Client für Linux, Windows und Mac OS X
  • Transmission- Schlanker OpenSource BitTorrent-Client für Linux und Mac OS X

Editoren

Alternativen zu Microsoft Frontpage und Adobe Dreamweaver

  • KompoZer(W/L/M) – Einfacher WYSIWYG-Webseiten-Editor mit enormem Funktionsumfang

Alternativer zu Notepad

  • Notepad ++  Wesentlich umfangreicher als Windows standard Notepad

Online-Banking

  • Hibiscus(W/L/M) – Auf Java basierender HBCI-Client

Multimedia

Programme, die Multimediainhalte wiedergeben oder bearbeiten können

Audiobearbeitung

Alternativen zu Ableton Live und anderen (Mehrspur-)Editoren

  • Audacity (W/L/M) – OpenSource Mehrspureditor mit Effekten
  • Ardour (W/L/M) – Komplette Audiobearbeitungs-Suite, gute Alternative zu Live u.Ä.

Audioplayer

Alternativen zu WinampWindows Media Player und iTunes

  • AmaroK (W/L/M) – Musikplayer, auch geeignet für große Musikdatenbanken
  • VLC (W/L/M) – Player für sehr viele Formate (Audio / Video), unterstützt die meisten Codecs ohne zusätzliche installation

Brennprogramme

Alternativen zu Nero

Grafikbearbeitung

Alternativen zu Adobe PhotoshopIllustrator und Konsorten

  • Gimp (W/L/M) – Grafikbearbeitung, unterstützt Vektoren, kann Adobe-Formate lesen. Sehr gute Alternative zu Photoshop!
  • Inkscape- Hochwertiges Vektorprogramm

3D-Modelling

Alternativen zu Cinema4D u.Ä.

  • Blender (W/L/M) – Sehr umfangreiche Software für 3D Modelierung, Animation, Rendern, interaktives Erstellen und Wiedergabe

VideoPlayer

Alternativen zu Windows Media Player und QuickTime

  • VLC (W/L/M) – Player für seher viele Formate (Audio / Video), unterstützt die meisten Codecs ohne zusätzliche installation
  • MPlayer (W/L/M) – Sehr guter Player, unterstützt sehr viele Formate sowie DVB

Archivierung / Entpacker

Alternativen zu WinZIPWinRAR und Stuff It

  • The Unarchiver (M) – Entpacker für sehr viele Formate (inkl. Zip, Tar, GZip, Rar, 7-zip, …)
  • 7Zip (W) – Archivprogramm (und -Format) mit Unterstützung für sehr viele Formate

VideoBearbeitung

  • Avidemux (W/L/M) - Freie Videobearbeitungssoftware für Linux, Windows und Mac OS X

Sonstige

  • Solfege(W/L/M) – Gehör- und Gesangstrainer
  • TuxGuitar(W/L/M) – Gitarren Tabulatur-Programm, kann GuitarPro-Dateien öffnen
  • XBMC(W/L/M) – Sehr komfortables, schickes MediaCenter-Programm mit sehr vielen Funktionen. Läuft auch auf Microsoft’s XBox
  • MythTV (L/M) – Sehr umfangreiches TV-Mediacenter mit unterstützung für DVB-S und DVB-T, Aufnahmefunktion und Program-Guide (EPG)
  • Eraser (W) um Dateien ”sicher zu löschen” (unter Linux gibt es hierfür “shred” und “wipe”)

Büro

Software zur Produktivität im Büro

Text / Tabelle / Präsentation

Alternativen zu Microsoft Office

  • OpenOffice (W/L/M) – Umfangreiche Office-Suite, inkl. Textverarbeitung (vgl. MS Word), Tabellenkalkulation (vgl. MS Excel), Präsentation (vgl. MS Powerpoint) und weiteren Tools. Kann Microsoft-Office-Dateien lesen und schreiben!

Wörterbücher

  • StarDict (W/L) ist ein offline Wörterbuch-Programm für das viele freie Wörterbücher zur Verfügung stehen.

Desktop Publishing

Alternativen zu Quark XpressInDesign und Pagemaker

  • Scribus (W/L/M) – Professionelle Layout-Erstellung

Programmierung

Alternativen zu komerziellen Editoren und Entwickungsumgebungen

  • Eclipse (W/L/M) – Sehr komfortable Entwicklungsumgebung mit Erweiterbarkeit durch Plugins. Unterstützt SVN. Editoren für Java*, C(#/++), PHP, Python, HTML, XML, UML und weitere. Auch optimierte Ausführungen für PHP, C und weitere erhältlich.
  • Gambas (L) – Alternative zu VisualBasic, sehr VB-Ähnliche Programmiersprache und IDE
Tagged with: , , , ,
Posted in Tutorials

Mac OS X Terminal-Tipps

Da Apple’s Mac OS X auf Unix aufbaut, gibt es die gängigsten Linux-Kommandos auch unter OS X. Daneben gibt es noch einige zusätzliche Befehle und Möglichkeiten, die hier aufgeführt werden.

Um das Terminal unter OS X zu starten öffnet man den Programmordner und findet Terminal.app im Unterordner “Dienstprogramme”.

Zusammenspiel mit Finder / System

open .
open /pfad

1. Öffnet den aktuellen Ordner im Finder, 2. öffnet /pfad im Finder (z.B. /etc, /Applications, /System usw.)

Zwischenablage

pbcopy
pbpaste

1. Sendet STDOUT an die Zwischenablage, 2. Gibt den Inhalt der Zwischenablage aus

Verwendung z.B. mit Pipes:

pwd | pbcopy
cd `pbpaste`

1. Leitet die Ausgabe von pwd (print working directory – aktuelles Verzeichnis ausgeben) an pbcopy weiter
2. Wechselt das Verzeichnis zum Inhalt der Zwischenablage

Dateitracking

sudo opensnoop
sudo opensnoop -f /etc/passwd

1. Zeigt alle angefassten Dateien an und von wem sie verwendet wurden
2. Lauscht auf eine einzelne Datei, z.B. /etc/passwd

Spotlight Dateisuche

mdfind palita
mdfind -name palita
mdfind -name palita -live

1. Sucht nach Dateien, die “palita” beinhalten, 2. sucht nach Dateien, die “palita” im Namen enthalten, 3. wartet auf neue Ergebnisse

Quicklook

qlmanage -p Documents/Stapel*.pdf

1. Zeigt die Schnellvorschau für Documents/Stapel*.pdf an

Sprachausgabe

say Hello World
say -o hi.aiff Hello World
say -f hello_world.txt

1. Leitet “Hello World” an die Sprachausgabe weiter (wird direkt ausgegeben), 2. Leitet Hello World an die Sprachausgabe weiter, die eine Sounddatei davon erstellt, 3. Holt sich den Text von Dateien

Laufwerke / Images

diskutil

1. Tool zur Laufwerksverwaltung. Ohne Parameter werden mögliche Funktionen mit Beschreiung ausgegeben

Tagged with: , ,
Posted in Tutorials

Emails mit procmail vorfiltern

Es hat mich immer genervt, dass alle Emails, die von einem Server ausgehen (z.B. Fail2Ban, logwatch etc.) immer in meinem Postfach landen und als ungelesene Emails irgendwann mein Handy zum Bimmeln bringen, dem ich keine Regeln beibringen kann. Die Lösung ist denkbar einfach, wenn sie mir auch erst heute in den Sinn kam: einfachprocmail die Arbeit machen lassen, nicht die Mailclients.

Procmail ist ein Mailprozessor, der zum serverseitigen Filtern von Emails eingesetzt wird. Um einen Procmail-Filter bei einer QMail-Umgebung (sowohl procmail als auch qmail sind bei Plesk standardmäßig integriert) aufzusetzen, bewegt man sich erst mal ins Verzeichnis des Mailnamen (funktioniert unter einer Plesk-Umgebung in der Regel auch mit Postfix anstelle von QMail).

Für email@domain.com etwa
cd /var/qmail/mailnames/domain.com/email

In diesem Verzeichnis mit dem bevorzugten Editor (vi / nano / …) eine Datei .procmailrc erstellen, und folgenden Inhalt zur Filterung von Server-Mails erstellen:
# .procmailrc
MAILDIR=/var/qmail/mailnames/domain.com/email/Maildir
DEFAULT=${MAILDIR}

# Filter Servermails
:0:
* ^From.*@NERVIGERSERVER.COM
.VERZEICHNIS/new

Dabei NERVIGERSERVER.COM durch die Domain ersetzen, von dem der Server seine Mails sendet, und VERZEICHNISdurch das IMAP-Verzeichnis, in das die Nachricht verschoben werden soll. /new sollte dabei stehen bleiben.

Jetzt die Datei speichern, und die Datei .qmail im selben Verzeichnis editieren.

Die etwa so aussehende Datei
| true
| /usr/bin/deliverquota ./Maildir

wird jetzt so abgeändert, dass neue Emails nicht mehr an Deliverquota sondern an Procmail gesendet werden. Der Veränderte Inhalt der Datei dazu wäre etwa

| true
#| /usr/bin/deliverquota ./Maildir
| preline /usr/bin/procmail -m .procmailrc

Mehr muss nicht unternommen werden. Man sollte natürlich erst mal Testen ob es funktioniert, bevor man sich darauf verlässt, bevor keine Mails mehr ankommen, unter CentOS 5 und Plesk9 sollte es nach dieser Anleitung gar keine Probleme geben. Bei anderen Systemen sind die Pfade eventuell abweichend.

Procmail kann natürlich noch viel mehr, die manpage von procmailex(5) verrät eigentlich alles.

Manpage online: http://www.gsp.com/cgi-bin/man.cgi?section=5&topic=procmailex

Tagged with: , ,
Posted in Tutorials

Mail-Aliase in Apple’s Mail.app

Mail.app ist der mitgelieferte Mailclient von Apple’s OS X. Wenn man – aus welchem Grund auch immer – mehrere Email-Adressen hat, die aber alle für das gleiche Postfach gelten (also Aliase), muss man nicht für jede Adresse ein weiteres Konto anlegen. Eine einfachere Methode wird hier beschrieben.

Zunächst öffnet man die Einstellungen von Mail.app, am einfachsten mit dem in fast allen Mac-Programm gültigen Tastaturbefehl CMD + ,

Unter dem Reiter “Accounts” wählt man jetzt den Account aus, für den die Aliase angelegt werden soll und gibt einfach bei “E-Mail-Adresse” so viele Adressen an wie man möchte, alle getrennt mit einem Komma. Beim Verfassen einer neuen Nachricht kann man jetzt auswählen, von welchem Alias gesendet werden soll.

Tagged with: , ,
Posted in Tutorials

Umstieg auf ejabberd

ejabberd

Openfire hat den Dienst verweigert. Server-to-Server Verbindungen wollten nicht mehr, schuld daran ist ein nicht gefixter bug von Openfire. Ab sofort ist deshalb ejabberd im Einsatz und ersetzt Openfire. Alle Benutzerkonten, Einstellungen und Passwörter konnten übernommen werden, also ändert sich für Benutzer eigentlich nichts…

Tagged with: ,
Posted in Allgemein