X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=zsh%2Fgrmlzshrc.html;h=41f924d8859f94d1e835097195f010016089f7ec;hb=e215725a6170731a9508f92e654794a1892b8fba;hp=4b8942f768cd3238c40fee3b4c5f9e54ff0eb6ce;hpb=c39f079208e4a8e8a354e19e17d34ee43699e908;p=grml.org.git diff --git a/zsh/grmlzshrc.html b/zsh/grmlzshrc.html index 4b8942f..41f924d 100644 --- a/zsh/grmlzshrc.html +++ b/zsh/grmlzshrc.html @@ -4,18 +4,18 @@ GRMLZSHRC - +

NAME

-grmlzshrc - grml's zsh setup +grmlzshrc - Grml's zsh setup

SYNOPSIS

@@ -23,7 +23,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. @@ -36,10 +36,21 @@ 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

@@ -48,16 +59,14 @@ variables. These may be set temporarily when starting zsh like this:

-% BATTERY=1 zsh
+% GRML_DISPLAY_BATTERY=1 zsh
 
-

Or by setting them permanently in zshrc.pre (See AUXILIARY FILES below).

BATTERY
-If set to a value greater than zero and acpi installed, grmlzshrc will -put the battery status into the right hand side interactive prompt. +Deprecated. Use GRML_DISPLAY_BATTERY instead.

COMMAND_NOT_FOUND
@@ -65,8 +74,21 @@ 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_COMP_CACHING
+If set to yes (the default), the setup will enable zsh's completion caching +mechanism, with the caching data being placed into $GRML_COMP_CACHE_DIR. +

+
+
GRML_COMP_CACHE_DIR
+This defines where zsh's completion caching data will be placed, if +$GRML_COMP_CACHING is active. The default is ${ZDOTDIR:-$HOME}/.cache. +The setup will ensure the directory exists before attempting to use it. +

+
+
GRML_DISPLAY_BATTERY
+If set to a value greater than zero, grmlzshrc will put the battery status +into the right hand side interactive prompt. Supported OSes are GNU/Linux, +FreeBSD, OpenBSD and Darwin.

GRML_ZSH_CNF_HANDLER
@@ -84,7 +106,7 @@ 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.

@@ -113,7 +135,7 @@ 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.

@@ -129,6 +151,10 @@ 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). +

+
+
COMPDUMPFILE
+Specifies the location of the completion dump file. Default: $HOME/.zcompdump.

FEATURE DESCRIPTION

@@ -148,100 +174,179 @@ The DIRSTACKFILE is loaded each time zsh starts, therefore freshly starte zshs inherit the dirstack of the zsh that most recently updated DIRSTACKFILE.

+

+It is possible to apply a filter to the names of directories that will be +committed to the persistent dirstack file. There are two ways to configure this +filter: A general function based filter and a pattern based filter. Both are +setup via styles in the ':grml:chpwd:dirstack' context. +

+

+To use a function based filter set the filter style for that context to the +name of a function to call every time a directory name is to be added to the +persistent dirstack. If the function's return value signals success (ie. return +value "0"), the directory name is filtered out and not added to the +persistent stack. Example: + +

+
+function my_dirstack_filter() { [[ $1 == /tmp(|/*) ]] }
+zstyle ':grml:chpwd:dirstack' filter my_dirstack_filter
+
+

+The pattern based filter uses a list of patterns passed to the exclude +style in the aforementioned context. Each pattern is tested and the first that +matches will keep the directory name from being added to the persistent stack. +If none of the patterns matches, the name is added. example: + +

+
+zstyle ':grml:chpwd:dirstack' exclude "/tmp(|/*)" "$HOME/tmp(|/*)"
+
+

+The function based filter is more general, the pattern based filter easier to +set up. If both filter variants are used at the same time, the function based +filter will be executed before the pattern based one. +

+

+If you would like to apply your filters while loading the persistent +dirstack file, set the filter-on-load boolean style (the default is +false): + +

+
+zstyle ':grml:chpwd:dirstack' filter-on-load true
+
+

+Setting the filter-on-load needs to be done in ".zshrc.pre" because the +style needs to be set when the main setup is executing! The other styles do not +have this limitation, but the initial filtering will obviously be done using +the filters that are configured at that point. The rule of thumb +is: If you want to filter on load, setup everything in ".zshrc.pre" otherwise +".zshrc.local" works just as well. +

DIRECTORY BASED PROFILES

-If you want certain settings to be active in certain directories (and -automatically switch back and forth between them), this is what you want. +If you need to perform certain actions each time you enter certain +directory-trees, this is the feature you are looking for. +

+

Initialisation

+

+To initialise the system, you need to call the function `chpwd_profiles' at +some point in your `zshrc.local'; preferably after you configured the +system. The configuration of the system is described further below. +

+

+If you need to do initialisations the first time `chpwd_profiles' is called +(which should be in your configuration file), you can do that in a function +called "chpwd_profiles_init". That function needs to be defined before +`chpwd_profiles' is called for this to work. +

+

+During the first call of `chpwd_profiles' (and therefore all its profile +functions) the parameter `$CHPWD_PROFILES_INIT' exists and is set to `1'. In +all other cases, the parameter does not exist at all. +

+

Styles and Profile-names

+

+To store its configuration, the system uses functions and styles +(zsh's context sensitive configuration system), such as this: +

+

 zstyle ':chpwd:profiles:/usr/src/grml(|/|/*)'   profile grml
 zstyle ':chpwd:profiles:/usr/src/debian(|/|/*)' profile debian
 
-

-When that's done and you enter a directory that matches the pattern -in the third part of the context, a function called chpwd_profile_grml, -for example, is called (if it exists). +When that's done and you enter a directory that matches the pattern in the +third part of the context, a function called chpwd_profile_grml, for example, +is called (if it exists).

-If no pattern matches (read: no profile is detected) the profile is -set to 'default', which means chpwd_profile_default is attempted to -be called. +If no pattern matches (read: no profile is detected) the profile is set to +'default', which means chpwd_profile_default is attempted to be called.

-A word about the context (the ':chpwd:profiles:*' stuff in the zstyle -command) which is used: The third part in the context is matched against -$PWD. That's why using a pattern such as /foo/bar(|/|/*) makes sense. -Because that way the profile is detected for all these values of $PWD: +A word about the context (the ':chpwd:profiles:*' stuff in the zstyle command) +which is used: The third part in the context is matched against ${PWD}. That's +why using a pattern such as /foo/bar(|/|/*) makes sense. Because that way the +profile is detected for all these values of ${PWD}:

-/foo/bar
-/foo/bar/
-/foo/bar/baz
+  /foo/bar
+  /foo/bar/
+  /foo/bar/baz
 
-

-So, if you want to make double damn sure a profile works in /foo/bar -and everywhere deeper in that tree, just use (|/|/*) and be happy. +So, if you want to make double damn sure a profile works in /foo/bar and +everywhere deeper in that tree, just use (|/|/*) and be happy.

The name of the detected profile will be available in a variable called -'profile' in your functions. You don't need to do anything, it'll just -be there. +'profile' in your functions. You don't need to do anything, it'll just be +there.

+

Controlling Profile Execution

-Then there is the parameter $CHPWD_PROFILE which is set to the profile, -that was active up to now. That way you can avoid running code for a -profile that is already active, by running code such as the following -at the start of your function: +During its initialisation run, the system creates a parameter $CHPWD_PROFILE, +which is set to the profile that was is currently active (the default value is +"default"). That way you can avoid running code for a profile that is already +active, by running code such as the following at the start of your function:

 function chpwd_profile_grml() {
     [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
-    ...
+  ...
 }
 
-

-The initial value for $CHPWD_PROFILE is 'default'. +If you know you are going to do that all the time for each and every +directory-profile function you are ever going to write, you may also set the +`re-execute' style to `false' (which only defaults to `true' for backwards +compatibility), like this: +

+
+  zstyle ':chpwd:profiles:*' re-execute false
+

Signaling availabily/profile changes

-If you use this feature and need to know whether it is active in your -current shell, there are several ways to do that. Here are two simple -ways: +If you use this feature and need to know whether it is active in your current +shell, there are several ways to do that. Here are two simple ways:

-a) If knowing if the profiles feature is active when zsh starts is - good enough for you, you can put the following snippet into your - .zshrc.local: - +a) If knowing if the profiles feature is active when zsh starts is good +enough for you, you can use the following snippet:

-
-(( ${+functions[chpwd_profiles]} )) &&
-    print "directory profiles active"
-
-

-b) If that is not good enough, and you would prefer to be notified - whenever a profile changes, you can solve that by making sure you - start every profile function you create like this: - +(( ${+functions[chpwd_profiles]} )) && print "directory profiles active"

-
+

+b) If that is not good enough, and you would prefer to be notified whenever a +profile changes, you can solve that by making sure you start every +profile function you create like this: +

+

function chpwd_profile_myprofilename() { [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1 print "chpwd(): Switching to profile: $profile" ... } -

-

+

-That makes sure you only get notified if a profile is changed, -not everytime you change directory. +That makes sure you only get notified if a profile is changed, not +everytime you change directory. (To avoid this, you may also set the newer +`re-execute' style like described further above instead of the test on top of +the function. +

+

Leaving Profiles

+

+When the system switches from one profile to another, it executes a function +named "chpwd_leave_profile_<PREVIOUS-PROFILE-NAME>()" before calling the +profile-function for the new profile.

Version requirement

@@ -261,7 +366,6 @@ like:

 zstyle 'context' style value
 
-

The context namespace, that we are using is 'acceptline'. That means, the actual context for your commands look like: ':acceptline:<subcontext>'. @@ -334,6 +438,63 @@ style. (The default is true in all contexts.)

PROMPT

+

+The grmlzshrc now supplies three prompt themes compatible with zsh's +promptinit system. The three themes are called grml, grml-large and +grml-chroot. +

+

+By default, grml is used, unless $GRMLPROMPT is set to a value larger +than zero, in which case grml-large is used. Lastly, if $GRML_CHROOT is +non-empty, grml-chroot is used. +

+

+As usual, with promtinit themes, the user may switch to a different theme using +the prompt utility: + +

+
+    prompt grml-large
+
+

+That will use the grml-large prompt theme. +

+

+The themes are highly customisable. The main source of documentation about +customisation is the main grml theme's doc-string, that is available via +the following command: + +

+
+    prompt -h grml
+
+

+The other themes also come with doc-strings, but the main theme's is the +canonical reference about all of them. +

+

+This feature requires version 4.3.7 of the shell. Older versions will use +the classic grml prompt as a fallback. +

+

+A note to people who like customisation: If you are not using a prompt +theme for your customisation, but you're either statically setting $PS1 (or +$PROMPT) or you're constructing one of those variables in zsh's \`precmd()' +function, make sure you are turning the zsh's prompt theme system off +before doing so. A correct example customisation could look like this: + +

+
+    # Turn the prompt system off:
+    prompt off
+    # Customise the prompt yourself:
+    PS1='%~ %# '
+
+

+You also add your own tokens by using the \`grml_theme_add_token()' function. +Call the function without arguments for detailed documentation about that +procedure. +

GNU/SCREEN STATUS SETTING

grmlzshrc sets screen's hardstatus lines to the currently running command @@ -354,10 +515,6 @@ available via the usual history lookup widgets. 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. @@ -380,16 +537,6 @@ 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

@@ -510,25 +657,50 @@ Deletes a word left of the cursor; seeing '/' as additional word separator. 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.
+

Customisation

+

+To customise keybindings, you can just use zsh's bindkey utility. However, if +you plan to to use the `zle-line-init' or `zle-line-finish' hooks +yourself, make sure you call the following functions in the respective hook: +

+ +

+This is required so the keybindings set up by grmlzshrc work. The +reason for this is to turn the terminal into the right mode while zsh's line +editor (zle) is running. This enables us to query terminfo about escape +sequences for special keys and thus simplify and generalise our keybinding +section. +

SHELL FUNCTIONS

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. @@ -540,32 +712,10 @@ 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. -

-
-
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.

-
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 @@ -573,36 +723,10 @@ 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 -files filtered out. +Simple backup management of a file or directory using standard unix programs. +The target file name is the original name plus a time stamp attached. Symlinks +and file attributes like mode, ownership and timestamps are preserved.

cdrecord()
@@ -611,6 +735,11 @@ 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. @@ -624,8 +753,8 @@ if command is a program.

checkhome()
-Changes directory to $HOME on first invocation of zsh. This is neccessary on -grml systems with autologin. +Changes directory to $HOME on first invocation of zsh. This is necessary on +Grml systems with autologin.

cl()
@@ -633,47 +762,12 @@ Changes current directory to the one supplied by argument and lists the files in it, including file names starting with ".".

-
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. -

-
-
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.

-
debbug()
-Searches the Debian bug tracking system (bugs.debian.org) for Bug numbers, -email addresses of submitters or any string given on the command line. -

-
-
debbugm()
-Shows bug report for debian given by number in mailbox format. +
dcopyright()
+Shows the copyright of given package in $PAGER.

debian2hd()
@@ -687,34 +781,10 @@ 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. -

-
-
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/<packagename> 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.

@@ -723,63 +793,18 @@ Edit given alias. 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. -

-
-
fir()
-Opens given URL with Firefox (Iceweasel on Debian). If there is already an -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). -

-
-
gex()
-Performs an exact (i. e. quoted) web search using Google. -

-
-
ggogle()
-Searches the arguments on Google Groups, a web to USENET gateway. -

-
-
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). +
grml_vcs_info_toggle_colour()
+Toggles between coloured and uncoloured formats in vcs_info configuration. +This is useful with prompts that break if colour codes are in vcs_info +format expansions (like the `clint' prompt and every other prompt that +uses %v to expand the contents of `$vcs_into_msg_0_'). If you are using +customised vcs_info formats, you shouldn't be using this function, since +it will set all formats to grml's default values (either coloured or plain) +again.

hgdi()
@@ -795,21 +820,6 @@ argument means last revision). 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". -

-
is4()
Returns true, if zsh version is equal or greater than 4, else false.

@@ -838,6 +848,10 @@ Returns true, if zsh version is equal or greater than 4.3.3, else false. Returns true, if running on darwin, else false.

+
isfreebsd()
+Returns true, if running on FreeBSD, else false. +

+
isgrml()
Returns true, if running on a grml system, else false.

@@ -850,103 +864,34 @@ Returns true, if running on a grml system from a live cd, else false. Returns true, if run on grml-small, else false.

+
islinux()
+Returns true, if running on Linux, else false. +

+
iso2utf()
Changes every occurrence of the string iso885915 or ISO885915 in environment variables to UTF-8.

-
isutfenv()
-Returns true, if run within an utf environment, else false. -

-
-
iwclient()
-Searches a wireless interface and runs dhclient(8) on it. +
isopenbsd()
+Returns true, if running on OpenBSD, else false.

-
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)). +
isutfenv()
+Returns true, if run within an utf environment, else false.

-
mcd()
+
mkcd()
Creates directory including parent directories, if necessary. Then changes current working directory to it.

-
mdiff()
-Diffs the two arguments recursively and writes the -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. -

-
-
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. If no argument is specified N is set to 1.

-
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. @@ -960,109 +905,28 @@ Example usages:

-
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. -

-
-
peval()
-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 +Runs a command in zsh 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. -

-
-
regcheck()
-Checks whether a regular expression (first parameter) matches a string -(second parameter) using perl. -

-
salias()
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. -

-
-
show-archive()
-Lists the contents of a (compressed) archive with the appropriate programs. -The choice is made along the filename extension. -

-
-
shtar()
-Lists the content of a gzipped tar archive in default pager. -

-
-
shzip()
-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, -so you have plenty of time to switch desktops/windows. Then makes a screenshot -of the current desktop. The result is stored in ~/shots to a timestamped -jpg file. -

-
ssl-cert-fingerprints
Prints the SHA512, SHA256, SHA1 and MD5 digest of a x509 certificate. First and only parameter must be a file containing a certificate. Use @@ -1092,19 +956,6 @@ Example usage:

-
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).

@@ -1113,72 +964,27 @@ Translates a word from german to english (-D) or vice versa (-E). 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 -hows some information about current status. -

-
-
uopen()
-Downloads and displays a file using a suitable program for its -Content-Type. -

-
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.

-
viless()
-Vim as pager. -

-
vim()
Wrapper for vim(1). It tries to set the title and hands vim the environment 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). -

-
-
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. @@ -1199,13 +1005,6 @@ arguments for details. Removes the functions salias, xcat, xsource, xunfunction and zrcautoload.

-
zg()
-Search for patterns in grml's zshrc using perl. zg takes no or exactly one -option plus a non empty pattern. Run zg without any arguments for a listing -of available command line switches. For a zshrc not in /etc/zsh, set the -GRML_ZSHRC environment variable. -

-
zrcautoload()
Wrapper around the autoload builtin. Loads the definitions of functions from the file given as argument. Searches $fpath for the file. See also @@ -1285,29 +1084,6 @@ available packages are fetched from the location(s) specified in upgrade or dist-upgrade; run by sudo, if necessary.

-
calc (peval)
-Evaluates a perl expression (see peval() above); useful as a command line -calculator. -

-
-
CH (./configure --help)
-Lists available compilation options for building program from source. -

-
-
cmplayer (mplayer -vo fbdev)
-Video player with framebuffer as video output device, so you can watch -videos on a virtual tty. Hint: Using fbdev2 allows you to use the shell -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. @@ -1321,30 +1097,11 @@ Builds binary or source packages from sources (See: dpkg-buildpackage(1)). 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. -

-
dir (ls -lSrah)
Lists files (including dot files) sorted by size (biggest last) in long and human readable output format.

-
fblinks (links2 -driver fb)
-A Web browser on the framebuffer device. So you can browse images and click -links on the virtual tty. -

-
-
fbmplayer (mplayer -vo fbdev -fs -zoom)
-Fullscreen Video player with the framebuffer as video output device. So you -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)). @@ -1354,14 +1111,6 @@ grep-excuses(1)). Shows grep output in nice colors, if available.

-
GREP (grep -i --color=auto)
-Case insensitive grep with colored output. -

-
-
grml-rebuildfstab (rebuildfstab -v -r -config)
-Scans for new devices and updates /etc/fstab according to the findings. -

-
grml-version (cat /etc/grml_version)
Prints version of running grml.

@@ -1390,24 +1139,11 @@ ssh with possible man-in-the-middle attack enabled 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. -

-
j (jobs -l)
Prints status of jobs in the current shell session in long format.

-
l (ls -lF --color=auto)
+
l (ls -l --color=auto)
Lists files in long output format with indicator for filetype appended to filename. If the terminal supports it, with colored output.

@@ -1421,11 +1157,6 @@ starting with ".". Lists the dot directories (not their contents) in current directory.

-
large (echo -en [ escape sequence ])
-Sets large font in xterm ("-misc-fixed-medium-r-normal-*-*-150-*-*-c-*-iso8859-15") -using escape sequence. -

-
lh (ls -hAl --color=auto)
Lists files in long and human readable output format in nice colors, if available. Includes file names starting with "." except "." and @@ -1440,11 +1171,10 @@ Lists files in long colored output format. 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 -to each file name. Additionally the output is colored, if the terminal -supports it. +
ls (ls -C --color=auto)
+Lists directory, entries are listed by columns and an indicator for +file type is appended to each file name. Additionally the output is +colored, if the terminal supports it.

lsa (ls -a .*(.))
@@ -1471,10 +1201,18 @@ Lists symbolic links in current directory. Displays the ten newest files (long output format).

+
lsnewdir (ls -rthdl *(/om[1,10]) .*(D/om[1,10]))
+Displays the ten newest directories and ten newest .directories. +

+
lsold (ls -rtlh *(D.om[1,10]))
Displays the ten oldest files (long output format).

+
lsolddir (ls -rthdl *(/Om[1,10]) .*(D/Om[1,10]))
+Displays the ten oldest directories and ten oldest .directories. +

+
lss (ls -l *(s,S,t))
Lists files in current directory that have the setuid, setgid or sticky bit set. @@ -1493,92 +1231,28 @@ world executable (long output format). 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). +
rmcdir ('cd ..; rmdir $OLDPWD || cd $OLDPWD)
+rmdir current working directory

-
rm (nocorrect rm)
-rm(1) without spelling correction. -

-
-
screen (/usr/bin/screen -c ${HOME}/.screenrc)
+
screen (screen -c file)
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 -with users .screenrc config if it exists, else use /etc/grml/screenrc_grml -as configuration. -

-
-
rw- (chmod 600)
-Grants read and write permission of a file to the owner and nobody else. -

-
-
rwx (chmod 700)
-Grants read, write and execute permission of a file to the owner and nobody -else. -

-
-
r-- (chmod 644)
-Grants read and write permission of a file to the owner and read-only to -anybody else. -

-
-
r-x (chmod 755)
-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 -escape sequence. -

-
-
small (echo -en [ escape sequence ])
-Sets small xterm font ("6x10") using escape sequence. -

-
-
smartfont (echo -en [ escape sequence ])
-Sets font of xterm to "-artwiz-smoothansi-*-*-*-*-*-*-*-*-*-*-*-*" using -escape sequence. +as config file. If invoked by a regular user and users .screenc does not exist, +starts screen with /etc/grml/screenrc_grml config if it exists, else fallbacks +to /etc/grml/screenrc.

su (sudo su)
-If user is running a grml live-CD, dont ask for any password, if she +If user is running a Grml live system, don't ask for any password, if she wants a root shell.

@@ -1592,26 +1266,10 @@ 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 -available). -

-
up (aptitude update ; aptitude safe-upgrade)
Performs a system update followed by a system upgrade using aptitude; run by sudo, if necessary. See au and ag above. @@ -1622,23 +1280,12 @@ After calling, characters of URLs as typed get automatically escaped, if necessa 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 -~/man/zshall.txt.lzo Once it is built, the second use of the alias '?' is -fast. See "man qma" for further information.

AUXILIARY FILES

@@ -1653,7 +1300,7 @@ be used to permantenly change grmlzshrc's STARTUP VARIABLES (see above):
 # show battery status in RPROMPT
-BATTERY=1
+GRML_DISPLAY_BATTERY=1
 # always load the complete setup, even for root
 GRML_ALWAYS_LOAD_ALL=1
 
@@ -1686,9 +1333,8 @@ On non-debian systems, that is not an option, but all is not lost:
 % wget -O .zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
 
-

-If you would also like to get seperate function files (which you can put into +If you would also like to get separate function files (which you can put into your $fpath), you can browse and download them at:

@@ -1833,7 +1479,6 @@ repository from git.grml.org:

 % git clone git://git.grml.org/grml-etc-core.git
 
-

Make your changes, commit them; use 'git format-patch' to create a series of patches and send those to the following address via 'git send-email': @@ -1842,7 +1487,6 @@ of patches and send those to the following address via 'git send-email':

 grml-etc-core@grml.org
 
-

Doing so makes sure the right people get your patches for review and possibly inclusion. @@ -1876,17 +1520,17 @@ Beckert <abe@deuxchevaux.org>.

COPYRIGHT

-Copyright (c) 2009-2010 grml project <http://grml.org> +Copyright (c) 2009-2013 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).

- +