X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=doc%2Fgrmlzshrc.t2t;h=382c80f55de6bbe79ad9428b36f1030a94d05620;hb=1344763d286000266de3d24a56e605fa569be7fb;hp=fbc08aac7c3610563e2400843eec8e2afbf3ab8e;hpb=88878e226a06cfb2dc74576b9aa3186162bb3a95;p=grml-etc-core.git diff --git a/doc/grmlzshrc.t2t b/doc/grmlzshrc.t2t index fbc08aa..382c80f 100644 --- a/doc/grmlzshrc.t2t +++ b/doc/grmlzshrc.t2t @@ -1,6 +1,6 @@ GRMLZSHRC -May, 2009 +Oktober, 2009 %!target: man %!postproc(man): "^(\.TH.*) 1 " "\1 5 " @@ -26,7 +26,10 @@ 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). +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). = STARTUP VARIABLES = Some of the behaviour of //grmlzshrc// can be altered by setting certain shell @@ -226,22 +229,812 @@ available via the usual history lookup widgets. = REFERENCE = +== ENVIRONMENT VARIABLES == +//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. + +: **QTDIR** +Holds the path to shared files for the C++ application framework QT +(version 3 or 4). + + +== OPTIONS == +Apart from zsh's default options, //grmlzshrc// sets some options +that change the behaviour of zsh. Options that change Z-shell's default +settings are marked by . But note, that zsh's defaults vary depending +on its emulation mode (csh, ksh, sh, or zsh). For details, see zshoptions(1). + +: **append_history** +Zsh sessions, that use //grmlzshrc//, will append their history list to the +history file, rather than replace it. Thus, multiple parallel zsh sessions +will all have the new entries from their history lists added to the history +file, in the order that they exit. The file will still be periodically +re-written to trim it when the number of lines grows 20% beyond the value +specified by $SAVEHIST. + +: **auto_cd** +If a command is issued that can't be executed as a normal command, and the +command is the name of a directory, perform the cd command to that directory. + +: **auto_pushd** +Make cd push the old directory onto the directory stack. + +: **completeinword** +If the cursor is inside a word, completion is done from both ends; +instead of moving the cursor to the end of the word first and starting +from there. + +: **extended_glob** +Treat the '#', '~' and '^' characters as active globbing pattern characters. + +: **extended_history** +Save each command's beginning timestamp (in seconds since the epoch) and the +duration (in seconds) to the history file. + +: **hash_list_all** +Whenever a command completion is attempted, make sure the entire command +path is hashed first. This makes the first completion slower. + +: **histignorealldups** +If a new command line being added to the history list duplicates an +older one, the older command is removed from the list, even if it is +not the previous event. + +: **histignorespace** +Remove command lines from the history list when the first character on +the line is a space, or when one of the expanded aliases contains a +leading space. Note that the command lingers in the internal history +until the next command is entered before it vanishes. + +: **longlistjobs** +List jobs in long format by default. + +: **nobeep** +Avoid to beep on errors in zsh command line editing (zle). + +: **noglobdots** +A wildcard character never matches a leading '.'. + +: **nohup** +Do not send the hangup signal (HUP:1) to running jobs when the shell exits. + +: **nonomatch** +If a pattern for filename generation has no matches, do not print an error +and leave it unchanged in the argument list. This also applies to file +expansion of an initial `~' or `='. + +: **notify** +Report the status of background jobs immediately, rather than waiting until +just before printing a prompt. + +: **pushd_ignore_dups** +Don't push multiple copies of the same directory onto the directory stack. + +: **share_history** +As each line is added to the history file, it is checked to see if anything +else was written out by another shell, and if so it is included in the +history of the current shell too. Using !-style history, the commands from +the other sessions will not appear in the history list unless you explicitly +type the "history" command. This option is activated for zsh versions >= 4, +only. + + == KEYBINDINGS == +Apart from zsh's default key bindings, //grmlzshrc// comes with its own set of +key bindings. Note that bindings like **ESC-e** can also be typed as **ALT-e** +on PC keyboards. + +: **ESC-e** +Edit the current command buffer in your favourite editor. + +: **ESC-v** +Deletes a word left of the cursor; seeing '/' as additional word separator. + +: **CTRL-x-1** +Jump right after the first word. + +: **CTRL-x-p** +Searches the last occurence of string before the cursor in the command history. + +: **CTRL-z** +Brings a job, which got suspended with CTRL-z back to foreground. + == SHELL FUNCTIONS == //grmlzshrc// comes with a wide array of defined shell functions to ease the user's life. -: urlencode() +: **2html()** +Converts plaintext files to HTML using vim. The output is written to +.html. + +: **855resolution()** +If 915resolution is available, issues a warning to the user to run it instead +to modify the resolution on intel graphics chipsets. + +: **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. + +: **aoeu(), asdf(), uiae()** +Pressing the 'asdf' keys toggles between dvorak or neon and us keyboard +layout. + +: **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). + +: **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. + +: **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, +if command is a program. + +: **checkhome()** +Changes directory to $HOME on first invocation of zsh. This is neccessary on +grml systems with autologin. + +: **cl()** +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. + +: **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. + +: **debian2hd()** +Tells the user to use grml-debootstrap, if she wants to install debian to +harddisk. + +: **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. + +: **doc()** +Takes packagename as argument. Sets current working directory to +/usr/share/doc/ and prints out a directory listing. + +: **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. + +: **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-". 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! + +: **getair()** +Tries to download, unpack and run AIR (imaging software) version 1.2.8. + +: **getgizmo()** +Tries to download and install Gizmo (VoIP software) for Debian. + +: **getskype()** +Tries to download and install Skype (VoIP software) for Debian. + +: **getskypebeta()** +Downloads and installs newer version of Skype. + +: **getxlite()** +Tries to download and unpack X-lite (VoIP software) from counterpath.com into +~/tmp. + +: **git-get-diff()** +Opens a specific git commitdiff from kernel.org in default browser. Tree is +chosen by the environment variable GITTREE which defaults to Linus Torvalds' +kernel tree. + +: **git-get-commit()** +Opens a specific git commit from kernel.org in default browser. The tree to +fetch from is controlled by the environment variable GITTREE which defaults +to Linus Torvalds' kernel tree. + +: **git-get-plaindiff()** +Fetches specific git diff from kernel.org. The tree is controlled by the +environment variable GITTREE which defaults to Linus Torvalds' kernel tree. + +: **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. + +: **is4()** +Returns true, if zsh version is equal or greater than 4, else false. + +: **is41()** +Returns true, if zsh version is equal or greater than 4.1, else false. + +: **is42()** +Returns true, if zsh version is equal or greater than 4.2, else false. + +: **is425()** +Returns true, if zsh version is equal or greater than 4.2.5, else false. + +: **is43()** +Returns true, if zsh version is equal or greater than 4.3, else false. + +: **is433()** +Returns true, if zsh version is equal or greater than 4.3.3, else false. + +: **isdarwin()** +Returns true, if running on darwin, else false. + +: **isgrml()** +Returns true, if running on a grml system, else false. + +: **isgrmlcd()** +Returns true, if running on a grml system from a live cd, else false. + +: **isgrmlsmall()** +Returns true, if run on grml-small, 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. + +: **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. + +: **makereadable()** +Creates a PostScript and a PDF file (basename as first argument) from +source code files. + +: **man2()** +Displays manpage in a streched style. + +: **mcd()** +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. + +: **minimal-shell()** +Spawns a absolute minimal 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. + +: **new()** +Lists files in current directory, which have been modified within the +last N days. N is an integer required as first and only argument. + +: **ogg2mp3_192()** +Recodes an ogg file to mp3 with a bitrate of 192. + +: **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. + +: **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. + +: **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. + +: **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 +/dev/stdin as file if you want to pipe a certificate to these +functions. + +: **ssl-cert-info** +Prints all information of a x509 certificate including the SHA512, +SHA256, SHA1 and MD5 digests. 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. + +: **ssl-cert-sha512(), ssl-cert-sha256(), ssl-cert-sha1(), ssl-cert-md5()** +Prints the SHA512, SHA256, SHA1 respective MD5 digest of a x509 +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. + +: **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. + +: **trans()** +Translates a word from german to english (-D) or vice versa (-E). + +: **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. + +: **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. +See also xunfunction() below. + +: **xtrename()** +Changes the title of xterm window from within screen(1). Run without +arguments for details. + +: **xunfunction()** +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 +xunfunction() above. + +: **zrclocal()** +Sources /etc/zsh/zshrc.local and ${HOME}/.zshrc.local. These are the files +where own modifications should go. See also zshbuiltins(1) for a description +of the source command. + + +== ALIASES == +//grmlzshrc// comes with a wide array of predefined aliases to ease the user's +life. A few aliases (like those involving //grep// or //ls//) use the option +//--color=auto// for colourizing output. That option is part of **GNU** +implementations of these tools, and will only be used if such an implementation +is detected. + +: **acp** (//apt-cache policy//) +With no arguments prints out the priorities of each source. If a package name +is given, it displays detailed information about the priority selection of the +package. + +: **acs** (//apt-cache search//) +Searches debian package lists for the regular expression provided as argument. +The search includes package names and descriptions. Prints out name and short +description of matching packages. + +: **acsh** (//apt-cache show//) +Shows the package records for the packages provided as arguments. + +: **adg** (//apt-get dist-upgrade//) +Performs an upgrade of all installed packages. Also tries to automatically +handle changing dependencies with new versions of packages. As this may change +the install status of (or even remove) installed packages, it is potentially +dangerous to use dist-upgrade; invoked by sudo, if necessary. + +: **ag** (//apt-get upgrade//) +Downloads and installs the newest versions of all packages currently installed +on the system. Under no circumstances are currently installed packages removed, +or packages not already installed retrieved and installed. New versions of +currently installed packages that cannot be upgraded without changing the install +status of another package will be left at their current version. An update must +be performed first (see au below); run by sudo, if necessary. + +: **agi** (//apt-get install//) +Downloads and installs or upgrades the packages given on the command line. +If a hyphen is appended to the package name, the identified package will be +removed if it is installed. Similarly a plus sign can be used to designate a +package to install. This may be useful to override decisions made by apt-get's +conflict resolution system. +A specific version of a package can be selected for installation by following +the package name with an equals and the version of the package to select. This +will cause that version to be located and selected for install. Alternatively a +specific distribution can be selected by following the package name with a slash +and the version of the distribution or the Archive name (stable, testing, unstable). +Gets invoked by sudo, if user id is not 0. + +: **ati** (//aptitude install//) +Aptitude is a terminal-based package manager with a command line mode similar to +apt-get (see agi above); invoked by sudo, if necessary. + +: **au** (//apt-get update//) +Resynchronizes the package index files from their sources. The indexes of +available packages are fetched from the location(s) specified in +/etc/apt/sources.list. An update should always be performed before an +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. + +: **da** (//du -sch//) +Prints the summarized disk usage of the arguments as well as a grand total +in human readable format. + +: **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. + +: **grep** (//grep --color=auto//) +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. + +: **http** (//python -m SimpleHTTPServer//) +Basic HTTP server implemented in python. Listens on port 8000/tcp and +serves current directory. Implements GET and HEAD methods. + +: **insecscp** (//scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"//) +scp with possible man-in-the-middle attack enabled. This is convenient, if the targets +host key changes frequently, for example on virtualized test- or development-systems. +To be used only inside trusted networks, of course. + +: **insecssh** (//ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"//) +ssh with possible man-in-the-middle attack enabled +(for an explanation see insecscp above). + +: **help-zshglob** (//H-Glob()//) +Runs the function H-Glob() to expand or explain wildcards. + +: **hide** (//echo -en [ escape sequence ]//) +Tries to hide xterm window using escape sequence. + +: **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//) +Lists files in long output format with indicator for filetype appended +to filename. If the terminal supports it, with colored output. + +: **la** (//ls -la --color=auto//) +Lists files in long colored output format. Including file names +starting with ".". + +: **lad** (//ls -d .*(/)//) +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 +"..". + +: **ll** (//ls -l --color=auto//) +Lists files in long colored output format. + +: **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. + +: **lsa** (//ls -a .*(.)//) +Lists dot files in current working directory. + +: **lsbig** (//ls -flh *(.OL[1,10])//) +Displays the ten biggest files (long and human readable output format). + +: **lsd** (//ls -d *(/)//) +Shows directories. + +: **lse** (//ls -d *(/^F)//) +Shows empty directories. + +: **lsl** (//ls -l *(@)//) +Lists symbolic links in current directory. + +: **lsnew** (//ls -rl *(D.om[1,10])//) +Displays the ten newest files (long output format). + +: **lsold** (//ls -rtlh *(D.om[1,10])//) +Displays the ten oldest files (long output format). + +: **lss** (//ls -l *(s,S,t)//) +Lists files in current directory that have the setuid, setgid or sticky bit +set. + +: **lssmall** (//ls -Srl *(.oL[1,10])//) +Displays the ten smallest files (long output format). + +: **lsw** (//ls -ld *(R,W,X.^ND/)//) +Displays all files which are world readable and/or world writable and/or +world executable (long output format). + +: **lsx** (//ls -l *(*)//) +Lists only executable files. + +: **md** (//mkdir -p//) +Creates directory including parent directories, if necessary + +: **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. + +: **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 +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. + +: **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. + +: **su** (//sudo su//) +If user is running a grml live-CD, dont ask for any password, if she +wants a root shell. + +: **tiny** (//echo -en [ escape sequence ]//) +Sets tiny xterm font +("-misc-fixed-medium-r-normal-*-*-80-*-*-c-*-iso8859-15") using escape +sequence. + +: **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. + +: **?** (//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 = This is a set of files, that - if they exist - can be used to customize the behaviour of //grmlzshrc//. -: .zshrc.pre +: **.zshrc.pre** Sourced at the very beginning of //grmlzshrc//. Among other things, it can be used to permantenly change //grmlzshrc//'s STARTUP VARIABLES (see above): \ @@ -252,14 +1045,138 @@ BATTERY=1 GRML_ALWAYS_LOAD_ALL=1 ``` -: .zshrc.local +: **.zshrc.local** Sourced right before loading //grmlzshrc// is finished. There is a global version of this file (/etc/zsh/zshrc.local) which is sourced before the user-specific one. +: **.zdirs** +Directory listing for persistent dirstack (see above). + +: **.important_commands** +List of commands, used by persistent history (see above). = INSTALLATION ON NON-DEBIAN SYSTEMS = +On Debian systems (http://www.debian.org) - and possibly Ubuntu +(http://www.ubuntu.com) and similar systems - it is very easy to get +//grmlzshrc// via grml's .deb repositories. + +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 +your **$fpath**), you can browse and download them at: + +http://git.grml.org/?p=grml-etc-core.git;a=tree;f=usr_share_grml/zsh;hb=HEAD + += ZSH REFCARD TAGS = +If you read //grmlzshrc//'s code you may notice strange looking comments in +it. These are there for a purpose. grml's zsh-refcard is automatically +generated from the contents of the actual configuration file. However, we need +a little extra information on which comments and what lines of code to take +into account (and for what purpose). + +Here is what they mean: + +List of tags (comment types) used: +: **#a#** +Next line contains an important alias, that should be included in the +grml-zsh-refcard. (placement tag: @@INSERT-aliases@@) + +: **#f#** +Next line contains the beginning of an important function. (placement +tag: @@INSERT-functions@@) + +: **#v#** +Next line contains an important variable. (placement tag: +@@INSERT-variables@@) + +: **#k#** +Next line contains an important keybinding. (placement tag: +@@INSERT-keybindings@@) + +: **#d#** +Hashed directories list generation: //start//: denotes the start of a list of +'hash -d' definitions. //end//: denotes its end. (placement tag: +@@INSERT-hasheddirs@@) + +: **#A#** +Abbreviation expansion list generation: //start//: denotes the beginning of +abbreviations. //end//: denotes their end. +\ +Lines within this section that end in '#d .*' provide extra documentation to +be included in the refcard. (placement tag: @@INSERT-abbrev@@) + +: **#m#** +This tag allows you to manually generate refcard entries for code lines that +are hard/impossible to parse. +Example: +\ +``` +#m# k ESC-h Call the run-help function +``` +\ +That would add a refcard entry in the keybindings table for 'ESC-h' with the +given comment. +\ +So the syntax is: #m#
+ +: **#o#** +This tag lets you insert entries to the 'other' hash. Generally, this should +not be used. It is there for things that cannot be done easily in another way. +(placement tag: @@INSERT-other-foobar@@) + + +All of these tags (except for m and o) take two arguments, the first +within the tag, the other after the tag: + +#
# + +Where
is really just a number, which are defined by the @secmap +array on top of 'genrefcard.pl'. The reason for numbers instead of names is, +that for the reader, the tag should not differ much from a regular comment. +For zsh, it is a regular comment indeed. The numbers have got the following +meanings: + +: **0** +//default// + +: **1** +//system// + +: **2** +//user// + +: **3** +//debian// + +: **4** +//search// + +: **5** +//shortcuts// + +: **6** +//services// + + +So, the following will add an entry to the 'functions' table in the 'system' +section, with a (hopefully) descriptive comment: +\ +``` +#f1# Edit an alias via zle +edalias() { +``` +\ +It will then show up in the @@INSERT-aliases-system@@ replacement tag that can +be found in 'grml-zsh-refcard.tex.in'. If the section number is omitted, the +'default' section is assumed. Furthermore, in 'grml-zsh-refcard.tex.in' +@@INSERT-aliases@@ is exactly the same as @@INSERT-aliases-default@@. If you +want a list of **all** aliases, for example, use @@INSERT-aliases-all@@. = CONTRIBUTING = @@ -278,14 +1195,25 @@ possibly inclusion. = STATUS = -This manual page is supposed to be a **reference** manual for //grmlzshrc//. +This manual page is the **reference** manual for //grmlzshrc//. + That means that in contrast to the existing refcard it should document **every** -aspect of the setup. That is currently **not** the case. Not for a long time -yet. Contributions are highly welcome. +aspect of the setup. + +This manual is currently not complete. If you want to help improving it, visit +the following pages: + +http://wiki.grml.org/doku.php?id=zshrcmanual + +http://lists.mur.at/pipermail/grml/2009-August/004609.html + +Contributions are highly welcome. -= AUTHOR = -This manpage was written by Frank Terbeck . += AUTHORS = +This manpage was written by Frank Terbeck , Joerg Woelke +, Maurice McCarthy and Axel +Beckert . = COPYRIGHT =