xautolock -exit 2>/dev/null; xautolock -corners "+---" -time 10 -notify 30 -locker "xlock -mode random"
#!/usr/bin/expect
set myserver "10.0.0.1"
set myport "21"
send "Try to connect to server $myserver port $myport\n"
spawn telnet $myserver $myport
expect "220 " { send "USER ftp\n" }
expect "331 " { send "PASS foo\n" }
expect "230 " { send "PASV\n" }
expect "227 " { send "HELP\n" }
expect "214 " { interact }
wget ftp://... -nv -O - | split ....
/usr/bin/rsync --rsync-path=/usr/local/bin/rsync -rlpe ssh QUELLE ZIEL
rsync --compress --progress --no-whole-file -rlpe ssh remote:/path/file file
ls -lS
stat myfile.txt
cat /var/log/syslog | grep ^"`date +%b\ %d`"
# date +'%Y%m%d_%H%M%S'
20081103_1759026
grep -ve ^\ *\#'\|'^$ /etc/*.conf
echo "ABC123DEF456GHI" | grep --color [0-9H]
ABC123DEF456GHI
echo "ABC123DEF456GHI" | grep -E --only-matching [0-9H]+
123
456
H
grep --files-with-match foo *
echo "ABC123DEF456GHI" | sed 's/[0-9H]\+/_&_/g'
ABC_123_DEF_456_G_H_I
echo "ABC223DEF456GHI" | sed s/"\([0-9]\+\)"/"_\1_"/
ABC_223_DEF456GHI
echo foo bar | sed s/foo/Hello/ | sed s/bar/world/
echo foo bar | sed -e s/foo/Hello/ -e s/bar/world/
grep error /var/log/syslog | awk '{ print $3 }'
awk '/error/ { print $3 }' /var/log/syslog
EXAMMLEund möchte das zweite M durch ein P ersetzen.
M(?=L)Der Unterscheid zu
MList dabei, dass das L im ersten Fall bei einer Ersetzung nicht mit ersetzt würde, im zweiten Fall aber schon.
M(?!M)So sucht man einen String, der nicht mit CA anfängt
^(?!CA)
awk 'BEGIN {FS=" - "} {print $1 $2 $3}'
awk 'BEGIN {FS="\t"} {print $3}
echo foo,bar,test | awk 'BEGIN {FS=","} {split($0,a,","); for (i=1; i<=NF; i++) print a[i]; }'
echo 42 11 | awk '{print $1*1000, $2}'
cat foo | awk '{mycol2 += $2; mycol3 += $3}; END {print mycol2":"mycol3}'
cat foo | awk '$1>45 {print $0}'
cat foo | awk 'NR>11 { print $0 }'
cat foo | awk '$2~/FooBar/ {print $0}'
echo 1 2 | awk '{ printf("%.3d %s\n", $1, $2) }'
less -S
watch -n3 cat /proc/mdstat
diff -ubB FOO BAR
expr FooBar-5.2 : ".*-5.2"
mount -t smbfs -o username=uname,password=passwd //smbserv/share /destination
mlabel -i /dev/sdc1 ::FOOBAR
nice --5 make dep clean bzImage modules bzlilo modules_install
/usr/src/linux/Documentation/kernel-parameters.txt
48x48 ppm -> pgm -> pbm -> xbm
cat file.xbm | xbm2ikon > file.48
compface file.48 file.face
gs -sPDFPassword=password -sDEVICE=pswrite -dNOPAUSE -sOutputFile=out.ps in.pdf
a2ps --medium A4dj -E -o /tmp/pretty.ps A B C D ...
Unicode / utf-8: u2ps ...(gnome-u2ps)
psbook normal.ps | psnup -2 -m25 > book.ps
transcode -i myVobFolder -o movie.avi -y xvid -x vobSkalieren
-B 4Einen anderen Audiokanal auswählen, wählt man einen nicht existierenden Kanal, werden die VOB Dateien einmal durchsucht, nichts konvertiert und eine fast leere Datei erzeugt
-a1Encoder Bitrate
-w 1800Clipping, scheidet oben und unten 16 Reihen ab
-j 16,0Lineare Interpolation für Interlaced Videos
-I1Ergebnis noch mal schneiden
avisplit -c -i movie.avi -t 00:00:00.00-00:05:10.00,00:11:59.00-00:22:41.00tcaud benutzen
-y xvid,tcaudDivX erzeugen
-y ffmpeg -F mpeg4Alternative mit mencoder
cat *.vob | mencoder -oac mp3lame -ovc xvid -xvidencopts pass=1 - -o movie.avi;
cat *.vob | mencoder -oac mp3lame -ovc xvid -xvidencopts pass=2:bitrate=700 - -o movie.avi;
mencoder -oac pcm -ovc copy -ofps 30000/1001 -o Movi.avi Movi.mkv
nice transcode -i vts_01_6.vob -o soundtrack.wav -y null,wav -x vob -e 44000
mplayer -ao pcm:fast:file=audio.wav -vo null -vc null video.avi
mencoder 'mf://*.jpg' -mf type=jpg:fps=10 -xvidencopts bitrate=1600 -ovc xvid -oac copy -o output.avi
animate -delay 10 *.jpg
animate -help
convert -delay 10 *.jpg out.gif
convert large.jpg -resize 120x120 small.jpgBilder von einem Ereignis, aber mit mehreren Kameras aufgenommen? So kann man das Datum aus dem exif Header der JPEG Bilder vor den Dateinamen setzten um alle Bilder chronologisch sortieren zu können
convert large.jpg -resize 50% small.jpg
for i in *.jpg; do d=`exif -t 0x9003 $i | grep Value | sed s/^" Value: "// | sed s/\ /_/g | sed s/:/-/g`; mv "$i" "$d""_""$i"; doneDas Datum in allen Dateien von 2005 auf 2006 ändern
for i in *;
do
n=`exif -t 0x9004 "$i" | grep ^" Value: " | sed s/^" Value: "// | sed s/2005/2006/`;
x="exif --ifd=EXIF -t 0x9004 --set-value=\"$n\" $i";
eval "$x";
done
alias unix2dos='recode lat1..ibmpc'
alias dos2unix='recode ibmpc..lat1'
iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./oldfile.htm > ./newfile.html
setfacl -m u:foo:r-- DEST
setfacl -x u:foo DEST
setfacl -m g:bar:r-- DEST
setfacl -x g:bar DEST
setfacl -m d:u:foo:r-- DIR
setfacl -m d:g:bar:r-- DIR
setfacl -m m:r-- DEST
setfacl -m d:m:r-- DIR
alias my_mozilla='mozilla -remote "ping()" && mozilla -remote "openURL (,new-window)" || mozilla -splash'
sa-learn --dump | grep non-token\ data: | grep nspam$'\|'nham$
sa-learn --dump | grep -v non-token\ data: | sort -n
(echo "Hello world"; uuencode file1.txt ReadThis.txt; uuencode file2.txt AndThis.txt) | mailx -s subject foo@example.com
echo "Hello world" | mutt -a file1.txt foo@example.com
sftp -o "batchmode no" -b meinebefehle.sftp user@computer
lcd /home/foo/4upload/
cd /tmp/uploaded/
put Backup1.img
put Backpu2.img
quit
| Name | (Bytes) |
|---|---|
| DVD | 4590200 |
| CD | FIXME |
ssh root@otherhost -c blowfish 'cd /YOURPATH; tar -f - -p -P -c --exclude=/YOURPATH/tmp --exclude=/YOURPATH/var/cache /' | dd of=/daten/backup.tar
tar --multi-volume --tape-length=1024 -cf archive.tar foo // n archive.001.tar n ...
tar --multi-volume --tape-length=1024 -c -f archive.tar -f archive001.tar -f archive002.tar -f ... foo
tar --multi-volume --tape-length=1024 --new-volume-script=/usr/local/bin/tar_changer.sh -cf archive.tar foo
tar --multi-volume -t -f archive.tar -f archive001.tar -f archive002.tar -f ...
#!/bin/sh
new_vol=`echo $TAR_VOLUME | awk '{printf "%04d\n", $1;}'`
new_name="$TAR_ARCHIVE"
new_name="`echo "$new_name" | sed s/"\."tar$//`"
new_name="`echo "$new_name" | sed s/"\."[0-9][0-9]*$//`"
new_name="$new_name"".""$new_vol"".tar"
echo "For volume $TAR_VOLUME of $TAR_ARCHIVE the next file name will be: $new_name"
if [ -e "$new_name" ]; then
echo "Error: file already exists!"
exit 1
else
echo "$new_name" >&$TAR_FD
fi
par2 create myparfiles foo*
mkisofs -udf -allow-limited-size -o foo.img foo
mount /dev/hda1 / -o remount,rw;
dd if=/dev/zero of=/delme1 bs=4048; rm /delme1;
mount /dev/hda1 / -o remount,ro;
dd if=/dev/hda1 bs=4048 | bzip2 > /mountpoint/image_hda1.bz;
ssh host -c blowfish 'dd if=/dev/hda1 bs=4048 | bzip2' | dd of=/image_hda1.bz
xterm: xset b off
setterm -blength
echo 'set bell-style visible' >> ~/.inputrc
chmod ABCD FILEA:
4=user ID, 2=group ID, 1=stickyB(Eigentümer), C(Gruppe), D(Rest):
4=r, 2=w, 1=x
if=/dev/hda of=/tmp/mbrbackupwithouttable.img bs=446 count=1
if=/dev/hda of=/tmp/mbrbackupwithtable.img bs=512 count=1
grub> find /boot/grub/stage1
grub> root (hd0,3)
grub> setup (hd0)
grub> setup (hd0,3)
export LESS="-i"
echo Cool | sed s/c/T/i
echo fOo | tr "[:lower:]" "[:upper:]" # FOO
echo fOo | tr "[:upper:]" "[:lower:]" # foo
sort -k 3,3 -k 2,2 -k 6,6n
# echo "1:1:1
1:1:0" | sort -t : -k 3
1:1:0
1:1:1
# fruits=(apple banana strawberry)
# echo ${fruits}
apple
# echo ${fruits[1]}
banana
# echo ${fruits[*]}
apple banana strawberry
# echo ${#fruits[*]}
3
# echo ${fruits[*]}
apple banana strawberry
# for ((idx=(${#fruits[*]}-1); idx>=0; idx--)); do echo ${fruits[$idx]}; done
strawberry
banana
apple
| !! | Den letzten Befehl erneut ausführen |
| !-3 | Drei Befehle zurück gehen |
| !mount | Den letzten Befehl wiederholen der mit mount losging |
| !!:s/mount/umount/ | Den letzten Befehl wiederholen und mount durch umount ersetzen |
| ^mount^umount^ | Kurzform |
| export HISTSIZE=1000 | Die letzten 1000 Befehle merken |
| export HISTCONTROL=ignoreboth | Eingaben die mit einem Leerzeichen beginnen nicht speichern und bei zwei aufeinanderfolgenden identischen Eingaben nur eine merken |
| shopt -s histappend | Die letzte geschlossene Bash Sitzung überschreibt nicht mehr die History aller vorher geschlossenen |
| shopt -s histverify | Befehle die man mit ! zurückgeholt hat werden nicht gleich ausgeführt |
| Shortcut | Beschreibung |
|---|---|
| Ctrl+A | Zum Anfang der Zeile |
| Ctrl+E | Zum Ende der Zeile |
| Ctrl+U | Vom Cursor zum Anfang der Zeile alles ausschneiden und in die Zwischenablage kopieren |
| Ctrl+K | Vom Cursor zum Ende der Zeile alles ausschneiden und in die Zwischenablage kopieren |
| Ctrl+W | Vom Cursor bis zum Anfang des Wortes alles ausschneiden und in die Zwischenablage kopieren |
| Ctrl+Y | Aus der Zwischenablage einfügen |
find / -printf "%CY%Cm%Cd%CI%CM | %d | %i | %s | %h | %f\n"find kann für jede gefundene Datei einen Prozess starten oder aber einen Prozess einmalig starten und ihm alle gefundenen Dateien als Parameter übergeben
find / -exec echo '{}' +
find / -exec echo '{}' ';'
find /foo -type f -ctime +165
find /foo -type f -ctime 165
find /foo -type f -ctime -165
find /foo -size +3000000c
find /foo -size +3M
| Befehl | Beschreibung | Findet z.B. | Findet z.B. nicht |
|---|---|---|---|
| # find . -perm 400 # find . -perm u=r |
Findet Dateien mit genau diesen Rechten | -r-------- | -r--r----- |
| # find . ! -perm 400 # find . ! -perm u=r |
Findet Dateien deren Rechte gerade nicht genau so sind | -rwxrwxrwx | -r-------- |
| # find . -perm -440 # find . -perm -u=r,g=r |
Mindestens diese Rechte müssen alle gesetzt sein | -rwxrwxrwx -rw-r--r-- lrwxrwxrwx |
-r-------- ----r----- |
| # find . -perm /440 # find . -perm /u=r,g=r |
Mindestens eines der Rechte muss gesetzt sein | -rwxrwxrwx -r-------- ----r----- |
--w------- |
find /tmp/tg1/ -type l | while read link
do
if [ -h "$link" -a ! -e "$link" ];
then echo "$link";
fi;
done
find /tmp/tg1/ -printf '%Y %p \n' | grep ^N\ | sed s/^N\ //
find /mnt/mnt/ -L -samefile /mnt/mnt/bin/foo
netstat -rn
route delete default
route add default 1.2.3.4
ioreg -l | grep IOBa
# pwd
/tmp
# pushd /etc/network/
# pushd /var/log/
/var/log /etc/network /tmp
# pushd /usr/sbin/
/usr/sbin /var/log /etc/network /tmp
# dirs
/usr/sbin /var/log /etc/network /tmp
# pushd
/var/log /usr/sbin /etc/network /tmp
# pwd
/var/log
# pushd
/usr/sbin /var/log /etc/network /tmp
# pwd
/usr/sbin
# pushd +2
/etc/network /tmp /usr/sbin /var/log
/# pwd
/etc/network
# dirs
/etc/network /usr/sbin /var/log
# popd
/usr/sbin /var/log
# pwd
/usr/sbin
# popd
/var/log
# pwd
/var/log
echo "$OLDPWD"
# echo /etc/group /etc/passwd >/dev/nullMit
# echo !$
echo /dev/null
ESC .kann das letzte Token auch an der aktuellen Stelle eingefügt werden.
# cp backup2008a.tar /mnt/streamer/backup2008a.tar 2>/dev/null
# echo $_
/mnt/streamer/backup2008a.tar
# cp backup2008.tar /mnt/streamer/Das ersetzt aber nur das erste Vorkommen, wie man auch an der ausgeschriebenen Version sieht
# ^2008^2009^
cp backup2009.tar /mnt/streamer/
# cp backup2008a.tar backup2008b.tar /mnt/streamer/
# !!:s/2008/2009/
cp backup2009a.tar backup2008b.tar /mnt/streamer/
# cp -v backup2008a.tar backup2008b.tar /mnt/streamer/
# !!:gs/2008/2009/
exec 3>&1
exec 1>>/var/log/mylogfile.txt
...
exec 1>&3
exec 3>&-
cat foo.txt | sed s/t/T/ | sponge foo.txt
$ ssh foo@bar.example.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/cygdrive/p/.ssh/id_dsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /cygdrive/p/.ssh/id_dsa
Permission denied (publickey).
$ CYGWIN=nontsec ssh foo@bar.example.com
# free -m
# df -ah
# top -n1
htop
# vmstat 5 3
smartctl --all /dev/sda
memstat -w
lsof +D /mnt/foo
fuser /mnt/foo
# nproc
6
# make -j $(nproc)
zcav /dev/sdb > zcav.txtMit bonnie++ einen Benchmark verschiedener Operationen auf einem Datenträger erstellen.
gnuplot
set yrange [0:*]
set format y '%g Blocks/s'
set format x '%g MB'
plot "zcav.txt" using 1:2 title "Foo"
bonnie++ -u root -d /mnt/mnt/
ps -efnoch ein weiteres ps mit mehr Optionen
prstat -a
truss -f /bin/date
truss -fp PID
/usr/ucb/ps -auxww
digest -v -a md5 foo
# perl -MCPAN -e 'install HTML::CalendarMonthSimple'
# cpan
cpan> install HTML::CalendarMonthSimple
require HTML::CalendarMonthSimple;
perl -d myPerlScript.pl
ls *.txt | xargs gzip
ls *.txt | xargs -n1 gzip
ls *.txt | xargs -n1 gzip &
ls *.txt | xargs -n1 -P5 gzip