X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=doc%2Fgrmlzshrc.t2t;h=f939765820f71b5fb09411ede2978bcbb5433456;hb=7b4ae7e4cc78f3474909e193566c46e588c52472;hp=f96d1aeafafe5daae866985dcbe304f4266b3e0d;hpb=284b053de6aab8a8efae47453c4c2e9000092491;p=grml-etc-core.git diff --git a/doc/grmlzshrc.t2t b/doc/grmlzshrc.t2t index f96d1ae..f939765 100644 --- a/doc/grmlzshrc.t2t +++ b/doc/grmlzshrc.t2t @@ -1,13 +1,13 @@ GRMLZSHRC -June, 2010 +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 @@ -48,7 +57,7 @@ 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. +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) @@ -62,7 +71,7 @@ grml-small. 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 +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** @@ -85,9 +94,13 @@ 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 +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). @@ -285,9 +298,6 @@ available via the usual history lookup widgets. //grmlzshrc// sets some environment variables, which influence the behaviour of applications. -: **BROWSER** -If X is running this is set to "firefox", otherwise to "w3m". - : **COLORTERM** Set to "yes". Some applications read this to learn about properties of the terminal they are running in. @@ -296,6 +306,10 @@ of the terminal they are running in. 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. @@ -407,9 +421,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. @@ -441,10 +464,16 @@ 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 @@ -468,16 +497,20 @@ 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. @@ -496,9 +529,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, @@ -511,6 +562,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. @@ -518,10 +574,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. @@ -535,6 +612,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. @@ -633,6 +726,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. @@ -644,6 +741,9 @@ 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 minimally set up MirBSD Korn shell. It references no files in /usr, so that file system can be unmounted. @@ -671,8 +771,24 @@ Lists files in current directory, which have been modified 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. -: **ogg2mp3_192()** -Recodes an ogg file to mp3 with a bitrate of 192. +: **netcraft()** +Asks netcraft.com for informations about the site given as argument. + +: **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 @@ -681,10 +797,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 @@ -697,6 +824,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. @@ -707,6 +839,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. @@ -718,8 +853,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. @@ -757,21 +898,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 @@ -814,15 +959,21 @@ 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. @@ -924,10 +1075,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. @@ -947,6 +1107,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. @@ -959,6 +1123,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. @@ -978,6 +1145,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. @@ -1008,6 +1178,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 @@ -1052,11 +1225,33 @@ 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. + +: **rmcdir** (//'cd ..; rmdir $OLDPWD || cd $OLDPWD//) +rmdir current working directory + : **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 @@ -1078,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 @@ -1094,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 @@ -1108,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 @@ -1302,10 +1530,10 @@ Beckert . = COPYRIGHT = -Copyright (c) 2009-2010 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).