Created
July 18, 2012 20:00
-
-
Save Koala/3138503 to your computer and use it in GitHub Desktop.
useful shell and linux things
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
useful linux things | |
############################################################################### | |
Seiten per wget downloaden: | |
wget -r -l0 -R htm,html http://www.example.com | |
-r - Rekursiv | |
-l 0 - Ebenenangabe | |
-R - ziehe alles ausser das was auf "htm" oder "html" endet | |
Das Speichern der Seiten erfolgt in dem Ordner, in dem man sich gerade in der | |
Shell befindet. Also aufpassen, von wo aus der Aufruf erfolgt! | |
############################################################################### | |
ogg in mp3 umwandeln: | |
Dazu gibt es das Perlscript ogg2mp3. | |
Aufruf: ogg2mp3 Verzeichnis_mit_ogg_Dateien/ | |
Es werde alle ogg-Dateien die sich in diesem Verzeichnis befinden umgewandelt. | |
Weitere Optionen siehe: ogg2mp3 -h | |
Hinweis: Systemlast 100% | |
############################################################################### | |
RSA-Passwort erzeugen: | |
ssh-keygen -b 1024 -t rsa -f .ssh/identit | |
############################################################################### | |
Passwortfreier Zugriff auf andere Server | |
Es wird einmal ein RSA-Passwort erzeugt mit dem Kommando | |
ssh-keygen -b 1024 -t rsa -f ${HOME}/.ssh/identity | |
Das Passwort sollte mindestens 10 Zeichen enthalten und natürlich nicht mit | |
dem Benutzerpasswort übereinstimmen. | |
Für einen passwortfreien Zugriff auf andere Rechner wird die Datei | |
${HOME}/.ssh/identity.pub auf dem anderen Rechner als | |
${HOME}/.ssh/authorized_keys abgespeichert. Wenn beide Rechner auf das | |
gleiche Benutzerverzeichnis zugreifen, bedeutet dies nichts anderes als | |
cp ${HOME}/.ssh/identity.pub ${HOME}/.ssh/authorized_key | |
Zu Beginn einer Sitzung am Rechner wird einmal mit ssh-add das RSA-Passwort | |
eingegeben. Danach erfolgt der der Zugriff auf andere Rechner passwortfrei. | |
############################################################################### | |
Beispiel für ein Testbackup | |
[EMail: DebianUserGerman Betr.: Backup eines kompletten Rechners | |
Datum: 03.12.2005 20:48] | |
t_antepoth@sofa:~/tt> dd bs=1 count=11G if=/dev/zero of=lall.dmp | |
t_antepoth@sofa:~/tt> du -sh lall.dmp | |
11G lall.dmp | |
t_antepoth@sofa:~/tt> GZIP=1 ; tar cvzf lall.dmp.tar.gz lall.dmp | |
t_antepoth@sofa:~/tt> rm lall.dmp | |
t_antepoth@sofa:~/tt> tar xvzf lall.dmp.tar.gz lall.dmp | |
t_antepoth@sofa:~/tt> l lall* | |
-rw-r--r-- 1 t_antepoth users 10893734912 2005-12-03 20:30 lall.dmp | |
-rw-r--r-- 1 t_antepoth users 10572180 2005-12-03 20:38 | |
lall.dmp.tar.gz | |
t_antepoth@sofa:~/tt> | |
############################################################################### | |
CD läßt sich nicht entfernen unter KDE | |
lsof /dev/gerätename | |
zeigt an, welches Programm noch darauf zugreift (und kann es dann killen) | |
############################################################################### | |
Welches Programm ist gerade mit dem Internet verbunden? | |
lsof -i -n | |
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME | |
kopete 4781 koala 11u IPv4 11433 TCP 192.168.61.1:37615->64.12.25.132:5190 (ESTABLISHED) | |
kopete 4781 koala 13u IPv4 11431 TCP 192.168.61.1:58884->216.155.193.152:5050 (ESTABLISHED) | |
ssh 4852 koala 3u IPv4 11505 TCP 192.168.61.1:34229->81.3.11.90:ssh (ESTABLISHED) | |
ssh 5256 koala 3u IPv4 15151 TCP 192.168.61.1:59901->81.3.11.90:ssh (ESTABLISHED) | |
############################################################################### | |
w - Show who is logged on and what they are doing. | |
koala@david:~$ w | |
23:44:01 up 2:17, 9 users, load average: 1,85, 1,43, 1,26 | |
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT | |
koala tty1 - 21:27 2:16m 0.12s 0.01s /bin/sh /usr/bin/X11/startx | |
koala pts/2 :0 21:28 2:15m 0.05s 0.04s tail -f /tmp/syslog_all | |
koala pts/3 :0 21:28 2:15m 13.07s 13.06s top | |
############################################################################### | |
EMails von root@localhost an eine andere Adresse umleiten. | |
Eine Datei /root/.forward anlegen. | |
Dort muss dann drinstehen der Benutzername an den die Mail weitergeleitet wird | |
und der Hinweis das eine Kopie an root geht: | |
<Username> | |
\root | |
############################################################################### | |
Verzeichnisinhalt drucken | |
Schreibe Verzeichnisinhalt in eine Datei, dann kannst du diese Drucken | |
david:/mnt/sda2# ls -laR > /tmp/sda2.txt | |
############################################################################### | |
du - Verzeichnisgröße - Nützliches mit dem Befehl "du" | |
Was kann/macht der Befehl "du" ? | |
Möchte man wissen wie groß die Verzeichnisgrößen sind, dann kommt der Befehl "du" ins Spiel. | |
du -s (Verzeichnisname) oder (*) | |
Zeigt die Größe des angegebenen Verzeichnis oder mit * alle Verzeichnisgrößen an | |
du -s (Verzeichnisname) oder (*) | sort -nr | |
Zeigt die Größe des angegebenen Verzeichnis oder mit * alle Verzeichnisgrößen an und sortiert diese nach der Größe. | |
du -s (Verzeichnisname) oder (*) | sort -nr >ausgabedatei | |
Zeigt die Größe des angegebenen Verzeichnis oder mit * alle Verzeichnisgrößen an, sortiert diese nach der Größe und schreibt das Ergebnis in eine Datei. | |
du -sch (Verzeichnisname) oder (*) | |
eine weiter Ausgabe der Verzeichnisgröße | |
DAS FUNKTIONIERT AM BESTEN: | |
du -s * | sort -nr > /ramdisc/dusort.txt | |
############################################################################### | |
Procedure to mount ISO images under Linux | |
http://www.cyberciti.biz/tips/how-to-mount-iso-image-under-linux.html | |
1) You must login as a root user, if not root user then switch to root user using following command: | |
$ su - | |
2) Create the directory i.e. mount point: | |
# mkdir -p /mnt/disk | |
3) Use mount command as follows to mount iso file called disk1.iso: | |
# mount -o loop disk1.iso /mnt/disk | |
4) Change directory to list files stored inside an ISO image: | |
# cd /mnt/disk | |
# ls -l | |
... und wenn nicht mehr benötigt: | |
umount /mnt/disk | |
fertig | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
useful shell things | |
############################################################################### | |
Moreover to debug your script, you may use the following command: | |
bash -x ./move.sh -d /tmp/To/ | |
############################################################################### | |
> gibt es in der bash, abgesehen von der .bash_history, eine Möglichkeit, | |
> die manuellen Kommandoaufrufe mitzuloggen? | |
Es gibt snoopy, das arbeitet als exec-Wrapper und loggt *jeden* | |
exec-Aufruf.Es loggt halt wirklich *viel*. | |
############################################################################### | |
test-Bedingungen | |
Ausdruck Beispiel Erklärung | |
-d verzeich. [ -d /tmp ] Ist wahr, wenn die Datei existiert und ein Verzeichnis ist. | |
-f datei [ -f txt.txt ] Ist wahr, wenn die Datei existiert und eine normale Datei ist. | |
-w datei [ -w text.txt ] Ist wahr, wenn die Datei existiert und den Schreibzugriff erlaubt. | |
-x datei [ -x script.sh ] Ist wahr, wenn die Datei existiert und die Ausführung erlaubt. | |
-n string [ -n "$name" ] Ist wahr, wenn die übergebene Zeichenkette nicht leer ist. | |
str1 = str2 [ "$1" = "Hallo" ] Ist wahr, wenn beide Zeichenketten identisch sind. | |
z1 -eq z2 [ 1 -eq $summe ] Ist wahr, wenn beide Zahlen gleich groß sind (in Bedingungen wird zwischen Zahlen und Zeichenketten unterschieden). | |
z1 -lt z2 [ 17 -lt $zahl ] Ist wahr, wenn die erste Zahl kleiner als die zweite Zahl ist (lt = lower then). | |
z1 -gt z2 [ 28 -gt $tag ] Ist wahr, wenn die erste Zahl größer als die zweite Zahl ist. | |
z1 -ne z2 [ $zahl -ne 7 ] Ist wahr, wenn beide Zahlen ungleich sind. | |
! ausdruck [ ! 1 -eq $zahl ] Ist wahr, wenn der Ausdruck falsch ist (also eine Negierung). | |
############################################################################### | |
Primary Meaning | |
[ -a FILE ] True if FILE exists. | |
[ -b FILE ] True if FILE exists and is a block-special file. | |
[ -c FILE ] True if FILE exists and is a character-special file. | |
[ -d FILE ] True if FILE exists and is a directory. | |
[ -e FILE ] True if FILE exists. | |
[ -f FILE ] True if FILE exists and is a regular file. | |
[ -g FILE ] True if FILE exists and its SGID bit is set. | |
[ -h FILE ] True if FILE exists and is a symbolic link. | |
[ -k FILE ] True if FILE exists and its sticky bit is set. | |
[ -p FILE ] True if FILE exists and is a named pipe (FIFO). | |
[ -r FILE ] True if FILE exists and is readable. | |
[ -s FILE ] True if FILE exists and has a size greater than zero. | |
[ -t FD ] True if file descriptor FD is open and refers to a terminal. | |
[ -u FILE ] True if FILE exists and its SUID (set user ID) bit is set. | |
[ -w FILE ] True if FILE exists and is writable. | |
[ -x FILE ] True if FILE exists and is executable. | |
[ -O FILE ] True if FILE exists and is owned by the effective user ID. | |
[ -G FILE ] True if FILE exists and is owned by the effective group ID. | |
[ -L FILE ] True if FILE exists and is a symbolic link. | |
[ -N FILE ] True if FILE exists and has been modified since it was last read. | |
[ -S FILE ] True if FILE exists and is a socket. | |
[ FILE1 -nt FILE2 ] True if FILE1 has been changed more recently than FILE2, or if FILE1 exists and FILE2 does not. | |
[ FILE1 -ot FILE2 ] True if FILE1 is older than FILE2, or is FILE2 exists and FILE1 does not. | |
[ FILE1 -ef FILE2 ] True if FILE1 and FILE2 refer to the same device and inode numbers. | |
[ -o OPTIONNAME ] True if shell option "OPTIONNAME" is enabled. | |
[ -z STRING ] True of the length if "STRING" is zero. | |
[ -n STRING ] or [ STRING ] True if the length of "STRING" is non-zero. | |
[ STRING1 == STRING2 ] True if the strings are equal. "=" may be used instead of "==" for strict POSIX compliance. | |
[ STRING1 != STRING2 ] True if the strings are not equal. | |
[ STRING1 < STRING2 ] True if "STRING1" sorts before "STRING2" lexicographically in the current locale. | |
[ STRING1 > STRING2 ] True if "STRING1" sorts after "STRING2" lexicographically in the current locale. | |
[ ARG1 OP ARG2 ] "OP" is one of -eq, -ne, -lt, -le, -gt or -ge. These | |
arithmetic binary operators return true if "ARG1" is | |
equal to, not equal to, less than, less than or equal to, | |
greater than, or greater than or equal to "ARG2", | |
respectively. "ARG1" and "ARG2" are integers. | |
############################################################################### | |
Operation Effect | |
[ ! EXPR ] True if EXPR is false. | |
[ ( EXPR ) ] Returns the value of EXPR. This may be used to override the normal precedence of operators. | |
[ EXPR1 -a EXPR2 ] True if both EXPR1 and EXPR2 are true. | |
[ EXPR1 -o EXPR2 ] True if either EXPR1 or EXPR2 is true. | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
############################################################################### | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment