Commit | Line | Data |
---|---|---|
b0add2bd WJ |
1 | very close to ksh/sh grammar, with csh additions |
2 | most features of ksh, bash, and tcsh | |
3 | 75 builtins, 73 options, 144 key bindings | |
4 | short for loops, ex: for i (*.c) echo $i | |
5 | select | |
6 | shell functions | |
7 | conditional expressions (test builtin, [ ... ], and ksh-style [[ ... ]]) | |
8 | global aliases (may be expanded anywhere on the line) | |
9 | directory stack access with =num | |
10 | process substitution (vi =(cmd) edits the output of cmd) | |
11 | generalized pipes (ls foo >>(cmd1) 2>>(cmd2) pipes stdout to cmd1 | |
12 | and stderr to cmd2) | |
13 | arithmetic expressions | |
14 | advanced globbing: | |
15 | ls **/file searches recursively for "file" in subdirectories | |
16 | ls file<20-> matches file20, file30, file100, etc. | |
17 | ls *.(c|pro) matches *.c and *.pro | |
18 | ls *(R) matches only world-readable files | |
19 | ls *.c~lex.c matches all .c files except lex.c | |
20 | null command shorthands: | |
21 | "< file" is same as "more <file" | |
22 | "> file" is same as "cat >file" | |
23 | ">> file" is same as "cat >>file" | |
24 | ksh-style coprocesses | |
25 | automatic file stream teeing (ls >foo >bar puts output in two places) | |
26 | chpwd() function run every time you change directory (useful for | |
27 | updating the status line) | |
28 | job control | |
29 | csh-style history | |
30 | full vi line editing, including "c2w" and "y$" and such things | |
31 | full emacs line editing | |
32 | incremental history search | |
33 | magic-space history | |
34 | spelling correction | |
35 | array parameters | |
36 | $HOSTTYPE, $LINENO, $RANDOM, $SECONDS, $cdpath, $COLUMNS, $fignore, | |
37 | $HISTCHARS, $mailpath | |
38 | with autocd option, typing a directory name by itself is the same as | |
39 | typing "cd dirname" | |
40 | menu completion: pressing TAB repeatedly cycles through the possible matches | |
41 | incremental path hashing | |
42 | automatic process time reporting for commands that run over a certain limit | |
43 | full tcsh-style prompt substitution | |
44 | utmp login/logout reporting | |
45 | with histverify option, performing csh-style history expansions causes the | |
46 | input line to be brought up for editing instead of being executed | |
47 | with sunkeyboardhack option, accidently typed trailing ` characters | |
48 | are removed from the input line (for those of you with Sun keyboards :-) ) | |
49 | autoloaded functions (loaded from a file when they are first referenced) | |
50 | "cd old new" replaces "old" with "new" in directory string | |
51 | generalized argument completion, including: | |
52 | - command name completion | |
53 | - filename and path completion | |
54 | - hostname completion | |
55 | - key binding completion | |
56 | - option completion | |
57 | - variable name completion | |
58 | - user-specified keyword completion | |
59 | prompt on right side of screen | |
60 | directory stacks | |
61 | history datestamps and execution time records | |
62 | command scheduling (like at(1), but in the shell's context) | |
63 | tty mode freezing | |
64 | up to 9 startup files (but you only need 1 or 2) | |
65 | 8-bit clean | |
66 | which -a cmd lists all occurences of "cmd" in the path |