X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=doc%2Fgrmlzshrc.t2t;h=05a02750b5dbad648d1e3c78022d4d8939c4ec84;hb=91e66592c4348014dda162477eb7116c45a2326e;hp=0a2b1d7b27650c48c9f5825b04ef72f7b013e55a;hpb=751844150b4aff77e796ec0460972dd868e66f3b;p=grml-etc-core.git diff --git a/doc/grmlzshrc.t2t b/doc/grmlzshrc.t2t index 0a2b1d7..05a0275 100644 --- a/doc/grmlzshrc.t2t +++ b/doc/grmlzshrc.t2t @@ -1,13 +1,13 @@ GRMLZSHRC -August, 2009 +July, 2011 %!target: man %!postproc(man): "^(\.TH.*) 1 " "\1 5 " = NAME = -grmlzshrc - grml's zsh setup +grmlzshrc - Grml's zsh setup = SYNOPSIS = @@ -15,7 +15,7 @@ grmlzshrc - grml's zsh setup = DESCRIPTION = -The grml project provides a fairly exhaustive interactive setup (referred to +The Grml project provides a fairly exhaustive interactive setup (referred to as //grmlzshrc// throughout this document) for the amazing unix shell zsh (http://zsh.sourceforge.net). This is the reference manual for that setup. @@ -26,10 +26,19 @@ features are enabled in every version). //grmlzshrc// behaves differently depending on which user loads it. For the root user (**EUID** == 0) only a subset of features is loaded by default. This behaviour can be altered by setting the **GRML_ALWAYS_LOAD_ALL** STARTUP -VARIABLE (see below). Also the umask(1) for the root user is set to 022, -while for regular users it is set to 002. So read/write permissions -for the regular user and her group are set for new files (keep that -in mind on systems, where regular users share a common group). +VARIABLE (see below). + +Users may want to keep an up-to-date version of the setup (possibly from the +git-sources) in //~/.zshrc//. If that happens on a system where the global +zshrc is also a //grmlzshrc// (but possibly an older one), you can inhibit +loading the global version by doing: +\ +``` +echo setopt no_global_rcs >> ~/.zshenv +``` + +Note, that this will disable //ANY// global files, except for the global +zshenv file. = STARTUP VARIABLES = Some of the behaviour of //grmlzshrc// can be altered by setting certain shell @@ -43,6 +52,62 @@ Or by setting them permanently in **zshrc.pre** (See AUXILIARY FILES below). If set to a value greater than zero and //acpi// installed, //grmlzshrc// will put the battery status into the right hand side interactive prompt. +: **COMMAND_NOT_FOUND** +A non zero value activates a handler, which is called when a command can not +be found. The handler is defined by GRML_ZSH_CNF_HANDLER (see below). + +: **GRML_ALWAYS_LOAD_ALL** +Enables the whole Grml setup for root, if set to a non zero value. + +: **GRML_ZSH_CNF_HANDLER** +This variable contains the handler to be used by COMMAND_NOT_FOUND (see above) +and defaults to "/usr/share/command-not-found/command-not-found". + +: **GRMLSMALL_SPECIFIC** +Set this to zero to remove items in zsh config, which do not work in +grml-small. + +: **HISTFILE** +Where zsh saves the history. Default: ${HOME}/.zsh_history. + +: **HISTSIZE** +Number of commands to be kept in the history. On a Grml-CD this defaults to +500, on a hard disk installation to 5000. + +: **MAILCHECK** +Sets the frequency in seconds for zsh to check for new mail. Defaults to 30. +A value of zero turns off checking. + +: **NOCOR** +Non zero values deactivate automatic correction of commands. + +: **NOMENU** +If set to zero (default), allows selection from a menu, if there are at least +five possible options of completion. + +: **NOPRECMD** +A non zero value disables precmd and preexec commands. These are functions +that are run before every command (setting xterm/screen titles etc.). + +: **REPORTTIME** +Show time (user, system and cpu) used by external commands, if they run longer +than the defined number of seconds (default: 5). + +: **SAVEHIST** +Number of commands to be stored in ${HISTFILE}. Defaults to 1000 on a Grml-CD +and to 10000 on an installation on hard disk. + +: **watch** +As in tcsh(1) an array of login/logout events to be reported by the shell +builtin "log". For details see zshparam(1). Defaults to (notme root). + +: **ZSH_NO_DEFAULT_LOCALE** +Import "/etc/default/locale", if set to zero (default). + +: **ZSH_PROFILE_RC** +A non zero value causes shell functions to be profiled. The results can be +obtained with the zprof builtin command (see zshmodules(1) for details). + = FEATURE DESCRIPTION = This is an in depth description of non-standard features implemented by @@ -240,10 +305,29 @@ If X is running this is set to "firefox", otherwise to "w3m". Set to "yes". Some applications read this to learn about properties of the terminal they are running in. +: **EDITOR** +If not already set, sets the default editor. Falls back to vi(1), +if vim(1) is not available. + +: **LESS_TERMCAP_*** +Some environment variables that add colour support to less(1) for viewing +man pages. See termcap(5) for details. + +: **MAIL** +The mailbox file for the current user is set to /var/mail/$USER, if not +already set otherwise. + +: **PAGER** +Set less(1) as default pager, if not already set to something different. + : **QTDIR** Holds the path to shared files for the C++ application framework QT (version 3 or 4). +: **SHELL** +Set explicitly to /bin/zsh, to prevent certain terminal emulators to +default to /bin/sh or /bin/bash. + == OPTIONS == Apart from zsh's default options, //grmlzshrc// sets some options @@ -340,9 +424,18 @@ Deletes a word left of the cursor; seeing '/' as additional word separator. : **CTRL-x-1** Jump right after the first word. +: **CTRL-x-M()** +Create directory under cursor or the selected area. +To select an area press ctrl-@ and use the cursor. +Use case: you type "mv abc ~/testa/testb/testc/" and remember that the +directory does not exist yet -> press **CTRL-xM** and problem solved. + : **CTRL-x-p** Searches the last occurence of string before the cursor in the command history. +: **CTRL-x-z** +Display help on keybindings and zsh line editor. Press consecutively to page through content. + : **CTRL-z** Brings a job, which got suspended with CTRL-z back to foreground. @@ -359,6 +452,11 @@ Converts plaintext files to HTML using vim. The output is written to If 915resolution is available, issues a warning to the user to run it instead to modify the resolution on intel graphics chipsets. +: **accessed()** +Lists files in current directory, which have been accessed within the +last N days. N is an integer to be passed as first and only argument. +If no argument is specified N is set to 1. + : **agoogle()** Searches for USENET postings from authors using google groups. @@ -369,10 +467,22 @@ Sets all ulimit values to "unlimited". Prints a colored table of available ansi color codes (to be used in escape sequences) and the colors they represent. +: **any()** +Lists processes matching given pattern. + : **aoeu(), asdf(), uiae()** Pressing the 'asdf' keys toggles between dvorak or neon and us keyboard layout. +: **apache2-ssl-certificate()** +Advices the user how to create self signed certificates. + +: **asc()** +Login on the host provided as argument using autossh. Then reattach a GNU screen +session if a detached session is around or detach a currently attached screen or +else start a new screen. This is especially useful for roadwarriors using GNU +screen and ssh. + : **audioburn()** Burns the files in ~/ripps (see audiorip() below) to an audio CD. Then prompts the user if she wants to remove that directory. You might need @@ -390,16 +500,25 @@ Simple backup of a file or directory using cp(1). The target file name is the original name plus a time stamp attached. Symlinks and file attributes like mode, ownership and timestamps are preserved. -: **brltty()** -The brltty(1) program provides a braille display, so a blind person can access -the console screen. This wrapper function works around problems with some -environments (f. e. utf8). +: **cdiff()** +Runs a recursive diff(1) over two given directories trying to find the +smallest set of changes. Three lines of context will be printed and binary +files filtered out. : **cdrecord()** If the original cdrecord is not installed, issues a warning to the user to use the wodim binary instead. Wodim is the debian fork of Joerg Schillings cdrecord. +: **cdt()** +Creates a temporary directory using mktemp. Then changes current +working directory to it. + +: **changed()** +Lists files in current directory, which have been changed within the +last N days. N is an integer to be passed as first and only argument. +If no argument is specified N is set to 1. + : **check_com()** Returns true if given command exists either as program, function, alias, builtin or reserved word. If the option -c is given, only returns true, @@ -413,9 +532,27 @@ grml systems with autologin. Changes current directory to the one supplied by argument and lists the files in it, including file names starting with ".". -: **d()** -Presents a numbered listing of the directory stack. Then changes current -working directory to the one chosen by the user. +: **cvsa()** +Adds and commits the given files using cvs(1). The commit message will be +'initial checkin'. + +: **cvsd()** +Shows a cvs diff of the arguments in $PAGER. + +: **cvsl()** +Shows the cvs log in $PAGER. + +: **cvsq()** +Runs a cvs update. + +: **cvsr()** +Generates a changelog using rcs2log and shows it in $PAGER. + +: **cvss()** +Shows cvs status of given files. + +: **dchange()** +Shows the changelog of given package in $PAGER. : **debbug()** Searches the Debian bug tracking system (bugs.debian.org) for Bug numbers, @@ -428,6 +565,11 @@ Shows bug report for debian given by number in mailbox format. Tells the user to use grml-debootstrap, if she wants to install debian to harddisk. +: **deswap()** +A trick from $LINUX-KERNELSOURCE/Documentation/power/swsusp.txt. It brings +back interactive responsiveness after suspend, when the system is swapping +heavily. + : **dirspace()** Shows the disk usage of the directories given in human readable format; defaults to $path. @@ -435,10 +577,31 @@ defaults to $path. : **disassemble()** Translates C source code to assembly and ouputs both. +: **dmoz()** +Searches for the first argument (optional) in the Open Directory Project +(See http://www.dmoz.org/docs/en/about.html). + +: **dnews()** +Shows the NEWS file for the given package in $PAGER. + : **doc()** Takes packagename as argument. Sets current working directory to /usr/share/doc/ and prints out a directory listing. +: **dwicti()** +Looks up the first argument (optional) in the german Wiktionary +which is an online dictionary (See: http://de.wiktionary.org/). + +: **edalias()** +Edit given alias. + +: **edfunc()** +Edit given shell function. + +: **ewicti()** +Looks up the first argument (optional in the english Wiktionary +which is an online dictionary (See: http://en.wiktionary.org/). + : **exirename()** Renames image files based on date/time informations in their exif headers. @@ -452,6 +615,9 @@ Switches the key combinations for changing current workspace under fluxbox(1) from Alt-[0-9] to Alt-F[0-9] and vice versa by rewriting $HOME/.fluxbox/keys. Requires the window manager to reread configuration to take effect. +: **freload()** +Reloads an autoloadable shell function (See autoload in zshbuiltins(1)). + : **genthumbs()** A simple thumbnails generator. Resizes images (i. e. files that end in ".jpg", ".jpeg", ".gif" or ".png") to 100x200. Output files are named "thumb-[,] + +: **lsdisk()** +Uses udev's /dev/disk to list block devices with their LABEL, UUID and IDs. + : **makereadable()** Creates a PostScript and a PDF file (basename as first argument) from source code files. @@ -560,6 +729,10 @@ source code files. : **man2()** Displays manpage in a streched style. +: **manzsh()** +Shows the zshall manpage and jumps to the first match of the regular +expression optionally given as argument (Needs qma(1)). + : **mcd()** Creates directory including parent directories, if necessary. Then changes current working directory to it. @@ -571,9 +744,12 @@ output (unified format) to a timestamped file. : **memusage()** Prints the summarized memory usage in bytes. +: **mggogle()** +Searches Google Groups for a USENET message-ID. + : **minimal-shell()** -Spawns a absolute minimal Korn shell. It references no files in /usr, so -that file system can be unmounted. +Spawns a minimally set up MirBSD Korn shell. It references no files in /usr, +so that file system can be unmounted. : **mkaudiocd()** Renames all mp3 files in ~/ripps (see audiorip above) to lowercase and @@ -593,12 +769,29 @@ Creates a directory with first parameter as name inside $MAILDIR_ROOT Runs "make install" and logs the output under ~/.errorlogs/; useful for a clean deinstall later. -: **new()** +: **modified()** Lists files in current directory, which have been modified within the -last N days. N is an integer required as first and only argument. +last N days. N is an integer to be passed as first and only argument. +If no argument is specified N is set to 1. + +: **netcraft()** +Asks netcraft.com for informations about the site given as argument. -: **ogg2mp3_192()** -Recodes an ogg file to mp3 with a bitrate of 192. +: **nt()** +A helper function for the "e" glob qualifier to list all files newer +than a reference file. +\ +Example usages: +``` +% NTREF=/reference/file +% ls -l *(e:nt:) +% # Inline: +% ls -l *(e:'nt /reference/file':) +``` + +: **oleo()** +Translates the given word using the english - german online +dictionary dict.leo.org. : **peval()** Evaluates a perl expression; useful as command line @@ -607,10 +800,21 @@ calculator, therefore also available as "calc". : **plap()** Lists all occurrences of the string given as argument in current $PATH. +: **profile()** +Runs a command in $SHELL with profiling enabled (See startup variable +ZSH_PROFILE_RC above). + : **purge()** -Removes typical temporary files (i. e. files like "*~", ".*~", "#*#", "*.o", -"a.out", "*.core", "*.cmo", "*.cmi" and ".*.swp") from current directory. -Asks for confirmation. +Removes temporary files from current directory. Asks for confirmation. Uses sudo if necessary. +In detail it purges + - common temp files like "*~", ".*~", "#*#", "*.o", "a.out", "*.orig", "*.rej", "*.cmo", "*.cmi" and ".*.swp" + - core dumps + - debconf backup files: "*.dpkg-old", "*.dkpg-new", "*.dpkg-dist" + - gentoo dispatch-conf backups: ".cfg0000_*", ".mrg0000_*" + - precompiled python code ("*.pyc", "*.pyo") as long as matching "*.py" source is also present + - LaTeX temp files i.e. "*.(log|toc|aux|nav|snm|out|tex.backup|bbl|blg|bib.backup|vrb|lof|lot|hd|idx)" for any present "*.tex" + - ghc temp files, as long as matching "*.hs" or "*.lhs" is also present + - "*.mood(D)" Files which are missing their corresponding audio file : **readme()** Opens all README-like files in current working directory with the program @@ -623,6 +827,11 @@ Reloads functions given as parameters. Checks whether a regular expression (first parameter) matches a string (second parameter) using perl. +: **rundirs()** +Takes as first parameter a quoted string containing an exectuable command or function with arguments. +Following that it takes a bunch of directories, which will then be traversed, executing the +first argument in each one. E.g.: rundirs purge . **/*(/-/) + : **salias()** Creates an alias whith sudo prepended, if $EUID is not zero. Run "salias -h" for details. See also xunfunction() below. @@ -633,6 +842,9 @@ findings in default pager. On exit of the pager the user is prompted for a number. The shells readline buffer is then filled with the corresponding command line. +: **setenv()** +Reimplementation of the csh(1) builtin setenv. + : **show-archive()** Lists the contents of a (compressed) archive with the appropriate programs. The choice is made along the filename extension. @@ -644,8 +856,14 @@ Lists the content of a gzipped tar archive in default pager. Shows the content of a zip archive in default pager. : **simple-extract()** -Tries to uncompress/unpack given file with the appropriate programs. The -choice is made along the filename ending. +Tries to uncompress/unpack given files with the appropriate programs. If an URI +starting with https, http or ftp is provided simple-extract tries to download +and then uncompress/unpack the file. The choice is made along the filename +ending. simple-extract will not delete the original archive (even on .gz,.bz2 or +.xz) unless you use the '-d' option. + +: **sll()** +Prints details of symlinks given as arguments. : **slow_print()** Prints the arguments slowly by sleeping 0.08 seconds between each character. @@ -683,21 +901,25 @@ certificate. First and only parameter must be a file containing a certificate. Use /dev/stdin as file if you want to pipe a certificate to this function. -: **startx()** -Initializes an X session using startx(1) if /etc/X11/xorg.conf exists, else -issues a Warning to use the grml-x(1) script. Can be overridden by using -/usr/bin/startx directly. +: **Start(), Restart(), Stop(), Force-Reload(), Reload()** +Functions for controlling daemons. +``` +Example usage: +% Restart ssh +``` : **status()** Shows some information about current system status. -: **swspeak()** -Sets up software synthesizer by calling swspeak-setup(8). Kernel boot option -swspeak must be set for this to work. +: **swiki()** +Searches articles in the german Wikipedia for the term given as argument. : **trans()** Translates a word from german to english (-D) or vice versa (-E). +: **uchange()** +Shows upstreams changelog of a given package in $PAGER. + : **udiff()** Makes a unified diff of the command line arguments trying hard to find a smaller set of changes. Descends recursively into subdirectories. Ignores @@ -729,15 +951,32 @@ line options, she always wants, in her .zshrc.local. : **vman()** Use vim(1) as manpage reader. +: **whatwhen()** +Searches the history for a given pattern and lists the results by date. +The first argument is the search pattern. The second and third ones are +optional and denote a search range (default: -100). + +: **weather()** +Retrieves and prints weather information from "http://weather.noaa.gov". +The first and only argument is the ICAO code for the desired station. +For a list of ICAO codes see +"http://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code". + +: **wikide()** +Looks up the argument on Wikipedia (german). + +: **wikien()** +Looks up the argument on Wikipedia (english). + +: **wodeb()** +Searches the list of official debian packages for the term given as +first argument. The optional second argument denotes the distribution +(stable, testing or unstable) and defaults to unstable. + : **xcat()** Tries to cat(1) file(s) given as parameter(s). Always returns true. See also xunfunction() below. -: **xinit()** -Initializes an X session using xinit(1) if /etc/X11/xorg.conf exists, else -issues a Warning to use the grml-x(1) script. Can be overridden by using -/usr/bin/xinit directly. - : **xsource()** Tries to source the file(s) given as parameter(s). Always returns true. See zshbuiltins(1) for a detailed description of the source command. @@ -839,10 +1078,19 @@ while watching a movie. : **CO** (//./configure//) Prepares compilation for building program from source. +: **cp** (//nocorrect cp//) +cp(1) without spelling correction. + : **da** (//du -sch//) Prints the summarized disk usage of the arguments as well as a grand total in human readable format. +: **dbp** (//dpkg-buildpackage//) +Builds binary or source packages from sources (See: dpkg-buildpackage(1)). + +: **debs-by-size** (//grep-status -FStatus -sInstalled-Size,Package -n "install ok installed" | paste -sd " \n" | sort -rn//) +Prints installed Packages sorted by size (descending). + : **default** (//echo -en [ escape sequence ]//) Sets font of xterm to "-misc-fixed-medium-r-normal-*-*-140-*-*-c-*-iso8859-15" using escape sequence. @@ -862,6 +1110,10 @@ can watch videos on a virtual tty. : **g** (//git//) Revision control system by Linus Torvalds. +: **ge** (//grep-excuses//) +Searches the testing excuses files for a specific maintainer (See: +grep-excuses(1)). + : **grep** (//grep --color=auto//) Shows grep output in nice colors, if available. @@ -874,6 +1126,9 @@ Scans for new devices and updates /etc/fstab according to the findings. : **grml-version** (//cat /etc/grml_version//) Prints version of running grml. +: **hbp** (//hg-buildpackage//) +Helper program to maintain Debian packages with mercurial. + : **http** (//python -m SimpleHTTPServer//) Basic HTTP server implemented in python. Listens on port 8000/tcp and serves current directory. Implements GET and HEAD methods. @@ -893,6 +1148,9 @@ Runs the function H-Glob() to expand or explain wildcards. : **hide** (//echo -en [ escape sequence ]//) Tries to hide xterm window using escape sequence. +: **hidiff** (//histring -fE '^Comparing files .*|^diff .*' | histring -c yellow -fE '^\-.*' | histring -c green -fE '^\+.*'//) +If histring(1) is installed, highlight important stuff in diff(1) output. + : **huge** (//echo -en [ escape sequence ]//) Sets huge font in xterm ("-misc-fixed-medium-r-normal-*-*-210-*-*-c-*-iso8859-15") using escape sequence. @@ -923,6 +1181,9 @@ if available. Includes file names starting with "." except "." and : **ll** (//ls -l --color=auto//) Lists files in long colored output format. +: **llog** (//$PAGER /var/log/syslog//) +Opens syslog in pager. + : **ls** (//ls -b -CF --color=auto//) Lists directory printing octal escapes for nongraphic characters. Entries are listed by columns and an indicator for file type is appended @@ -967,11 +1228,30 @@ Lists only executable files. : **md** (//mkdir -p//) Creates directory including parent directories, if necessary +: **mdstat** (//cat /proc/mdstat//) +Lists all active md (i.e. linux software raid) devices with some information +about them. + : **medium** (//echo -en [ escape sequence ]//) Sets medium sized font ("-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-15") in xterm using escape sequence. +: **mkdir** (//nocorrect mkdir//) +mkdir(1) without spelling correction. + +: **mq** (//hg -R $(readlink -f $(hg root)/.hg/patches)//) +Executes the commands on the versioned patch queue from current repository. + +: **mv** (//nocorrect mv//) +mv(1) without spelling correction. + +: **rd** (//rmdir//) +Short rmdir(1) (remove directory). + +: **rm** (//nocorrect rm//) +rm(1) without spelling correction. + : **screen** (///usr/bin/screen -c ${HOME}/.screenrc//) If invoking user is root, starts screen session with /etc/grml/screenrc as config file. If invoked by a regular user, start a screen session @@ -993,6 +1273,12 @@ anybody else. Grants read, write and execute permission of a file to the owner and read-only plus execute permission to anybody else. +: **S** (//screen//) +Short for screen(1). + +: **s** (//ssh//) +Short for ssh(1). + : **semifont** (//echo -en [ escape sequence ]//) Sets font of xterm to "-misc-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-iso8859-15" using @@ -1009,11 +1295,25 @@ escape sequence. If user is running a grml live-CD, dont ask for any password, if she wants a root shell. +: **term2iso** (//echo 'Setting terminal to iso mode' ; print -n '\e%@'//) +Sets mode from UTF-8 to ISO 2022 (See: +http://www.cl.cam.ac.uk/~mgk25/unicode.html#term). + +: **term2utf** (//echo 'Setting terminal to utf-8 mode'; print -n '\e%G'//) +Sets mode from ISO 2022 to UTF-8 (See: +http://www.cl.cam.ac.uk/~mgk25/unicode.html#term). + : **tiny** (//echo -en [ escape sequence ]//) Sets tiny xterm font ("-misc-fixed-medium-r-normal-*-*-80-*-*-c-*-iso8859-15") using escape sequence. +: **tlog** (//tail -f /var/log/syslog//) +Prints syslog continuously (See tail(1)). + +: **top10** (//print -l ? ${(o)history%% *} | uniq -c | sort -nr | head -n 10//) +Prints the ten most used shell commands. + : **truec** (//truecrypt [ mount options ]//) Mount a truecrypt volume with some reasonable mount options ("rw,sync,dirsync,users,uid=1000,gid=users,umask=077" and "utf8", if @@ -1023,6 +1323,19 @@ available). Performs a system update followed by a system upgrade using aptitude; run by sudo, if necessary. See au and ag above. +: **url-quote** (//autoload -U url-quote-magic ; zle -N self-insert url-quote-magic//) +After calling, characters of URLs as typed get automatically escaped, if necessary, to +protect them from the shell. + +: **0** (//return 0//) +Gives a clean prompt (i.e. without $?). + +: **$(uname -r)-reboot** (//kexec -l --initrd=/boot/initrd.img-"$(uname -r)" --command-line=\"$(cat /proc/cmdline)\" /boot/vmlinuz-"$(uname -r)"//) +Reboots using kexec(8) and thus reduces boot time by skipping hardware initialization of BIOS/firmware. + +: **...** (//cd ../..///) +Changes current directory two levels higher. + : **?** (//qma zshall//) Runs the grml script qma (quick manual access) to build the collected man pages for the z-shell. This compressed file is kept at @@ -1217,10 +1530,10 @@ Beckert . = COPYRIGHT = -Copyright (c) 2009, grml project +Copyright (c) 2009-2011 Grml project This manpage is distributed under the terms of the GPL version 2. Most parts of grml's zshrc are distributed under the terms of GPL v2, too, -except for **accept-line()** and **vcs_info()**, which are distributed under -the same conditions as zsh itself (which is BSD-like). +except for **accept-line()** which are distributed under the same conditions +as zsh itself (which is BSD-like).