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 =
= 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.
//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
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)
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**
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**
//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.
: **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.
//grmlzshrc// comes with a wide array of defined shell functions to ease the
user's life.
-: **2html()**
-Converts plaintext files to HTML using vim. The output is written to
-<filename>.html.
-
: **855resolution()**
If 915resolution is available, issues a warning to the user to run it instead
to modify the resolution on intel graphics chipsets.
: **allulimit()**
Sets all ulimit values to "unlimited".
-: **ansi-colors()**
-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.
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
-to tell audioburn which cdrom device to use like:
-"DEVICE=/dev/cdrom audioburn"
-
-: **audiorip()**
-Creates directory ~/ripps, if it does not exist. Then rips audio CD into
-it. Then prompts the user if she wants to burn a audio CD with audioburn()
-(see above). You might need to tell audiorip which cdrom device to use like:
-"DEVICE=/dev/cdrom audioburn"
-
: **bk()**
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
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.
: **cvss()**
Shows cvs status of given files.
-: **d()**
-Presents a numbered listing of the directory stack. Then changes current
-working directory to the one chosen by the user.
-
: **dchange()**
Shows the changelog of given package in $PAGER.
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.
-
: **disassemble()**
Translates C source code to assembly and ouputs both.
instance of firefox running, attaches to the first window found and opens the
URL in a new tab (this even works across an ssh session).
-: **fluxkey-change()**
-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-<original
-filename>". Creates an index.html with title "Images" showing the
-thumbnails as clickable links to the respective original file.
-//Warning:// On start genthumbs() silently removes a possibly existing "index.html"
-and all files and/or directories beginning with "thumb-" in current directory!
-
: **get_tw_cli()**
Fetches 3ware RAID controller software using get_3ware(1).
: **google()**
Searches the search engine Google using arguments as search string.
-: **greph()**
-Searches the zsh command history for a regular expression.
-
: **hex()**
Prints the hexadecimal representation of the number supplied as argument
(base ten only).
: **hidiff()**
Outputs highlighted diff; needs highstring(1).
-: **hl()**
-Shows source files in less(1) with syntax highlighting. Run "hl -h"
-for detailed usage information.
-
-: **ic_get()**
-Queries IMAP server (first parameter) for its capabilities. Takes
-port number as optional second argument.
-
: **ipv6-tunnel()**
Sets up an IPv6 tunnel on interface sit1. Needs one argument -
either "start", "stop" or "status".
: **iwclient()**
Searches a wireless interface and runs dhclient(8) on it.
-: **lcheck()**
-Lists libraries that define the symbol containing the string given as
-parameter.
-
: **limg()**
Lists images (i. e. files ending with ".jpg", ".gif" or ".png") in current
directory.
-: **linenr()**
-Prints specified range of (numbered) lines of a file.
-Usage: linenr <start>[,<end>] <file>
-
: **makereadable()**
Creates a PostScript and a PDF file (basename as first argument) from
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)).
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
-replaces spaces in file names with underscores. Then mkaudiocd()
-normalizes the files and recodes them to WAV.
-
-: **mkiso()**
-Creates an iso9660 filesystem image with Rockridge and Joliet extensions
-enabled using mkisofs(8). Prompts the user for volume name, filename and
-target directory.
-
-: **mkmaildir()**
-Creates a directory with first parameter as name inside $MAILDIR_ROOT
-(defaults to $HOME/Mail) and subdirectories cur, new and tmp.
-
-: **mmake()**
-Runs "make install" and logs the output under ~/.errorlogs/; useful for
-a clean deinstall later.
-
: **modified()**
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.
% ls -l *(e:'nt /reference/file':)
```
-: **ogg2mp3_192()**
-Recodes an ogg file to mp3 with a bitrate of 192.
-
: **oleo()**
Translates the given word using the english - german online
dictionary dict.leo.org.
Evaluates a perl expression; useful as command line
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.
-
-: **readme()**
-Opens all README-like files in current working directory with the program
-defined in the $PAGER environment variable.
-
: **refunc()**
Reloads functions given as parameters.
Creates an alias whith sudo prepended, if $EUID is not zero. Run "salias -h"
for details. See also xunfunction() below.
-: **selhist()**
-Greps the history for the string provided as parameter and shows the numbered
-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.
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.
-
: **smartcompress()**
Compresses/archives the file given as first parameter. Takes an optional
second argument, which denotes the compression/archive type as typical
filename extension; defaults to "tar.gz".
-: **smart-indent()**
-Indents C source code files given; uses Kernighan & Ritchie style.
-
: **sshot()**
Creates directory named shots in user's home directory, if it does not yet
exist and changes current working directory to it. Then sleeps 5 seconds,
% Restart ssh
```
-: **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.
-
-: **status()**
-Shows some information about current system status.
-
: **swiki()**
Searches articles in the german Wikipedia for the term given as argument.
-: **swspeak()**
-Sets up software synthesizer by calling swspeak-setup(8). Kernel boot option
-swspeak must be set for this to work.
-
: **trans()**
Translates a word from german to english (-D) or vice versa (-E).
: **uprint()**
Works around the "print -l ${(u)foo}"-limitation on zsh older than 4.2.
-: **urlencode()**
-Takes a string as its first argument and prints it RFC 2396 URL encoded to
-standard out.
-
: **utf2iso()**
Changes every occurrence of the string UTF-8 or utf-8 in environment
variables to iso885915.
variable VIM_OPTIONS on the command line. So the user may define command
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).
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.
: **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
= COPYRIGHT =
-Copyright (c) 2009-2010 grml project <http://grml.org>
+Copyright (c) 2009-2011 Grml project <http://grml.org>
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).