Update der Zsh - fortune-cookies
Submitted by Christian Schneider on Fri, 2009-03-13 03:08
Ich hab vorhin neue fortune-cookies hochgeladen, welche alle Tipps von http://strcat.de/zsh/ enthalten. Zu finden sind die fortune-cookies unter http://www.strcat.de/tmp/zsh-fortunes.tar.gz. Nach dem Herunterladen können die mit
Die Cookies aktualisiere nur unregelmäßig! Neue Tipps/Oneliner werden zuerst hier im Blog und anschließend auf http://strcat.de/zsh/ veröffentlicht (kann aber einige Tage dauern bis letzter aktuell mit dem Blog ist). Ich werd bei Interesse mal ein Script schreiben mit dem man aus der index.html meiner Zsh-Seite automatisch ein Cookie-File für fortune(8) erstellt. Das GIT-Repo der zsh-lovers von grml.org update ich demnächst wenn ich die zsh-lovers(1) aktualisiert hab.
tar -xzf zsh-fortunes.tar.gz entpackt werden und es wird ein Verzeichnis Namens zsh-fortune erstellt, in dem zwei Dateien liegen. Zum einen die zsh-fortunes welches die "Rohdatei" des Cookiefiles ist und zum anderen die zsh-fortunes.dat welches die eigentliche Datenbank ist, die von fortune(8) gelesen wird. Beide Dateien müssen in ein Verzeichnis kopiert werden und können dann mit fortune zsh-fortunes angezeigt werden. Nach dem Kopieren die passenden Rechte mit chmod(1) setzen (0644 reicht) und dann sollte ein fortune -f das neu hinzugekommene Cookie anzeigen. Alternativ dazu kann man fortune(8) direkt das Verzeichnis angeben, in dem die Cookies liegen; also fortune ~/cookies/zsh-fortunes oder whatever.Die Cookies aktualisiere nur unregelmäßig! Neue Tipps/Oneliner werden zuerst hier im Blog und anschließend auf http://strcat.de/zsh/ veröffentlicht (kann aber einige Tage dauern bis letzter aktuell mit dem Blog ist). Ich werd bei Interesse mal ein Script schreiben mit dem man aus der index.html meiner Zsh-Seite automatisch ein Cookie-File für fortune(8) erstellt. Das GIT-Repo der zsh-lovers von grml.org update ich demnächst wenn ich die zsh-lovers(1) aktualisiert hab.
Tip #154, #155, #156, #157, #158, #159, #160
Submitted by Christian Schneider on Sun, 2009-03- 8 16:53
# List all files older than 15mins
$ ls -ldrt -- *(mm+15)
# Just regular files
$ ls -ldrt -- *(.mm+15)
# the age of the pointed to file for symlinks
$ ls -Lldrt -- *(-mm+15)
# Use find(1) to find all directories except the ".svn" ones, then use grep on all *.c/*.h/*.S
# files in each directory.
$ setopt extendedglob
$ grep pattern (^.svn/)#*.[xhS](.) # skips dot files and dot directories
# or - without Zsh
$ find . -type d ! -name .svn | sed 's/./\\&/g;s|.*|grep whatever &/*.[xhS]|' | sh
# Quote from Usenet
# > I need to write a script that searches through a folder on my Linux
# > home server and copies only files where the width is greater than the
# > height, but it also needs to flatten the directory structure and
# > rename files as it copies. So the first picture found may be several
# > directories deep in the source but this should be copied to the root
# > of the SD card and named say 00000001.JPG and the next file found
# > where width > height should be copied and renamed 00000002.JPG.
width_greater_than_height() {
local w h
identify -format '%w %h' ${1-$REPLY} |
read w h && ((w > h))
}
typeset -Z8 i=0
setopt extendedglob
for f (**/*.(#i)jp(e|)g(D.+width_greater_than_height)) {
((i++))
cp -- $f /path/to/dest/$i.JPG
}
# remove leading zeros
$ var=00004402
$ echo ${var##0#}
# or
$ var=00004402
$ echo ${var/(#m)<->/$((MATCH))}
# find all directories, list their contents and output the first item in the above list.
$ print -rl /home/me/**/*(D/e{'reply=($REPLY/*(N[-1]:t))'})
# rename a section of a filename, i. e. example.1.{txt,conf,db} or 12345.1.{wav,ogg,mp3} and
# change the 1 to a 2 in the filename while preserving the rest of it.
$ zmv -n '(*.)(<->)(.[^.]#)' '$1$(($2+1))$3' # would rename x.0001.y to x.2.y.
$ zmv -n '(*.0#)(<->)(.[^.]#)' '$1$(($2+1))$3'# Rename files to lower case
$ zmv '*' '${(L)f}'
Mental note to self: fortune(6)-Cookies, meine Zsh-Seite und zsh-lovers(1) aktualisieren und das zsh-lovers - Repo von grml.org sync'en.
enable == disable
Submitted by Christian Schneider on Thu, 2009-02-12 01:16
Jo. Is so! Zumindest wenn man sich z. B. mutt-1.5.19.tar.gz herunterlädt, entpackt und mit der Tab-Completion der Zsh arbeitet. Das sieht dann so aus:
Ich bin zu müde dafür.
$ zsh -fMutt nur als Beispiel, weil ich die Sourcen grad parat hatte. Wer Zeit/Lust hat kann einen Bugreport schreiben bzw.
$ autoload -U compinit ; compinit
$ cd mutt-1.5.19
$ ./configure --enable-<TAB>
--enable-debug -- Enable debugging support
--enable-dependency-tracking -- do not reject slow dependency extractors
--enable-dependency-tracking -- speeds up one-time build
--enable-exact-address -- Enable regeneration of email addresses
--enable-external-dotlock -- Force use of an external dotlock program
--enable-fcntl -- Do NOT use fcntl() to lock files
--enable-flock -- Use flock() to lock files
--enable-full-doc -- Omit disabled variables
--enable-gpgme -- Enable GPGME support
--enable-hcache -- Enable header caching
--enable-iconv -- Disable iconv support
--enable-imap -- Enable IMAP support
--enable-largefile -- omit support for large files
--enable-locales-fix -- The result of isprint() is unreliable
--enable-mailtool -- Enable Sun mailtool attachments support
--enable-nfs-fix -- Work around an NFS with broken attributes caching
--enable-nls -- Do not use Native Language Support
--enable-pgp -- Disable PGP support
--enable-pop -- Enable POP3 support
--enable-smime -- Disable SMIME support
--enable-smtp -- include internal SMTP relay support
--enable-warnings -- Turn off compiler warnings (not recommended)
${^fpath}/_configure(N) umschreiben.Ich bin zu müde dafür.
Alles geht mit der Zsh ja nu auch wieder nich
Submitted by Christian Schneider on Thu, 2008-11- 6 13:56
$ grep HG ~Z/zshmisc
hash -d HG=~/download/Source/Repos # HG/GIT/SVN/..- Repos
$ HG
Error! Correct HG to hg ? [No/Yes/Abort/Edit]:
[ Ich hasse es wenn meine Shell denkt sie weiss es besser als ich! ]
$ nocorrect hash -d HG=~/download/Source/Repos
$ HG
Error! Correct HG to hg ? [No/Yes/Abort/Edit]:
[ Haette mich auch gewundert ]
Na gut.. dann werd ich entweder meine hash-Builtins aendern oder damit leben muessen *sigh*
// Edit: Man sollte evtl. erst die *.zwc neu kompilieren bevor man die Schnauze aufreisst *sigh*
Meine Dotfiles sind wieder online
Submitted by Christian Schneider on Tue, 2008-11- 4 14:18
Meine Dotfiles sind wieder online. Vorerst habe ich sie auf http://github.com/strcat/dotfiles/tree/master ausgelagert, weil es das Updaten fuer mich einfacher macht. Ggf. werde ich sie wieder wie davor auf eine normale Seite stellen, aber das wird sich zeigen.
Um mein Repo zu clonen einfach
Um mein Repo zu clonen einfach
git clone git://github.com/strcat/dotfiles.git eingeben und es wird ein Verzeichnis Namens dotfiles erstellt, in dem dann meine Konfigurationsdateien enthalten sind. Sollte ich irgendwelche vergessen haben, dann einfach kurz Bescheid sagen und ich kuemmere mich drum.
Zsh 4.3.9 released
Submitted by Christian Schneider on Mon, 2008-11- 3 17:19
http://www.zsh.org/mla/users/2008/msg01041.html
I've uploaded 4.3.9 to ftp.zsh.org. The main changes are a few fixes to
the internals of the completion system which turned up at the last
minute, plus a fix to deconfuse argument handling for builtins that do
there own option handling; otherwise it will behave like 4.3.8.
Zsh: Release 4.3.7 / 4.3.8
Submitted by Christian Schneider on Wed, 2008-10-29 12:10
You might notice that version 4.3.7 is on the FTP server. However, I'm
just uploading 4.3.8 with a fix for a completion bug that just turned
up, so you'll probably want to wait. I'll announce when it's ready.
Guckst Du: zsh-4.3.8.tar.bz2 / zsh-4.3.7.tar.bz2
(via zsh-users #01024)
Tip #153 - Mandelbrot with zsh?!
Submitted by Christian Schneider on Fri, 2008-10-17 23:27
function most_useless_use_of_zsh {
integer colours
if (( $# )); then
colours=$1
else
colours=$(echotc Co) || return 1
fi
local lines columns colour a b p q i pnew
((columns=COLUMNS-1, lines=LINES-1, colour=0))
for ((b=-1.5; b<=1.5; b+=3.0/lines)) do
for ((a=-2.0; a<=1; a+=3.0/columns)) do
for ((p=0.0, q=0.0, i=0; p*p+q*q < 4 && i < colours*4; i++)) do
((pnew=p*p-q*q+a, q=2*p*q+b, p=pnew))
done
((colour=(i/4)%colours))
print -nP "%${colour}K %k"
done
echo
done
}Wenn ich aufhoeren wuerde im MLA und bei dotfiles.org zu stoebern, dann wuerd ich es evtl. hinkriegen meine Dotfiles upzudaten.. wobei.. wenn ich sie einfach so hochlade, dann sind es ja die gleichen wie damals und das is ja auch langweilig :>
Buch "Zsh - Die magische Shell" ist da
Submitted by Christian Schneider on Thu, 2008-10- 9 13:56
Guckst Du unter https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=198. Ich wusste bis dato gar nicht das es das Buch ueberhaupt gibt bzw. das an einem solchen geschrieben wird, deswegen wundert es mich umso mehr das ich vorhin eins per Post bekommen hab.
Wie dem auch sei.. in dem Buch wird u. a. auf meine Zsh-Seite verwiesen und die bedarf dringend eines Updates; bei Interesse und wenn ich Zeit hab, werd ich dann auch meine Dotfiles wieder ausmisten und online stellen.
Wie dem auch sei.. in dem Buch wird u. a. auf meine Zsh-Seite verwiesen und die bedarf dringend eines Updates; bei Interesse und wenn ich Zeit hab, werd ich dann auch meine Dotfiles wieder ausmisten und online stellen.
Tip #152 - simplify and if then else
Submitted by Christian Schneider on Mon, 2008-10- 6 23:03
Man beachte den Titel des Postings 
ist die komplizierte Version. Die einfache(n) Version(en) ist
(Originalthread zsh-users #00899)
. o O ( Von wegen meine Einzeiler sind eklig. Ich glaub ich muss meine Dotfiles mal ausmisten und wieder oeffentlich zugaenglich machen )
if [[ "$LOGNAME" != davidr ]]
then
cd /o/inetpub/wwwdev/www.some.co.uk/epsystem/epadmin
else
cd /c/inetpub/wwwdev/www.some.co.uk/epsystem/epadmin
if
ist die komplizierte Version. Die einfache(n) Version(en) ist
cd ${${${LOGNAME:#davidr}:+/o}:-/c}/inetpub/wwwdev/www.some.co.uk/epsystem/epadminodercd /$([[ "$LOGNAME" != davidr ]] && echo o || echo c)/inetpub/wwdev/blabla
(Originalthread zsh-users #00899)
. o O ( Von wegen meine Einzeiler sind eklig. Ich glaub ich muss meine Dotfiles mal ausmisten und wieder oeffentlich zugaenglich machen )













Last ten comments: