- Loeschen von Paketen mittels aptitude und search pattern um mehrere Pakete gleichzeitig zu loeschen, aber nicht alle hintereinander einzugeben. Das kann man mit ~n. Hier ein klassisches Beispiel wo ich das anwende. Rausfinden welcher Kernel gerade laeuft, rausfinden was es alles an alten Kernel Images auf dem System gibt, loeschen aller linux-image-2.6.32-3*:
$ uname -a $ sudo aptitude search linux-image | grep "^i" $ sudo aptitude purge ~nlinux-image-2.6.32-3
- Manchmal hat man Systeme, bei denen kein DNS verfuegbar ist. Das fuehrt dann dazu, dass einige Sachen extrem lange dauern, weil Sie versuchen irgendetwas ueber DNS aufzuloesen und dann erst weiter machen wenn es einen Timeout gibt. Als erstes sollte man dann pruefen, dass der eigene Hostname in der /etc/hosts korrekt auf localhost gemappt ist. Oft rgibt es dann auch noch Sinn in der /etc/ssh/sshd_config den folgenden Schalter zu aktivieren:
UseDNS no
- Manchmal moechte man bei einem Apache Webserver etwas fuer einen bestimmten IP Bereich direkt freigeben, und ansonsten soll ein Passwort eingegeben werden. Jeweils das eine von beiden ist einfach realisiert. Wenn man beides moechte, braucht man die Satisfy Direktive. Klassisches Beispiel dafuer:
<Location "/foo"> Order deny,allow Deny from all AuthName "Foo Login" AuthUserFile /path/to/.htpasswd AuthType Basic Require valid-user Allow from 192.168 Satisfy Any ProxyPass http://localhost:8080/foo/ timeout=6000 ProxyPassReverse http://localhost:8080/foo/ </Location>
- bash Klammern. Immer wieder spannend, deswegen hier mal eben aus meinem Kopf heraus festgehalten wie ich mit ihnen arbeite:
-
() = Subshell. Benutze ich zum Beispiel beim anlegen von Sicherheitskopien mit:
$ mv foo.txt foo.txt-$(date -I)
- [] in Schleifen = Ruft das Programm „[“ auf, oder auch „test“. In einer if [ ! -d „/tmp“ ]; echo „directory /tmp does not exist.“; fi Schleife wird bei dem [ das Programm mit dem Namen „[“ aufgerufen. Liegt zum Beispiel unter /usr/bin/[ und hat auch eine eigene manpage.
-
[[]] in Schleifen = Bash eigene Funktion. Darin kann man dann auch Regex verwenden. Beispiel
$ FOO=1234 $ if [[ $FOO =~ ^[0-9]*$ ]]; then echo "OK"; else echo "NO"; fi OK $ FOO=1234a $ if [[ $FOO =~ ^[0-9]*$ ]]; then echo "OK"; else echo "NO"; fi NO $
-
{} = Variablen und Listen. Ich nutze das um in Skripten Variablen besser ersichtlich zu machen, zum Beispiel
/bin/bash FOO=foo.txt mv ${FOO} ${FOO}_$(date -I)
Ausserdem fuer Listen, zum Beispiel wenn man mehrere Ordner mit Unterordnern anlegen moechte:
mkdir -p /tmp/foo/bar/{one,two,three,four}/
Nicht zu vergessen die ganzen build-in Shell Funktionen bei den Klammern, z.B. hier, da, dort, guckstu, minneminne
-
() = Subshell. Benutze ich zum Beispiel beim anlegen von Sicherheitskopien mit: