history (Unix)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Not to be confused with Unix#History. ‹See Tfd›

The various Unix shells maintain a record of the commands issued by the user during the current session. The history command manipulates this history list. In its simplest form, it prints the history list. Options allow for the recall and editing of particular commands and for setting parameters such as the number of past commands to retain in the list.[1]

In early versions of Unix the history command was a separate program. However, most shells have long included the history command as a shell built-in, so the separate program is no longer in common use. Since most current history commands are shell built-ins, details depend on the choice of shell.

tcsh

history [-hTr] [n]
history -S|-L|-M [filename] (+)
history -c (+)

The first form prints the history event list. If n is given only the n most recent events are printed or saved. With -h, the history list is printed without leading numbers. If -T is specified, timestamps are printed also in comment form. (This can be used to produce files suitable for loading with 'history -L' or 'source -h'.) With -r, the order of printing is most recent first rather than oldest first.

With -S, the second form saves the history list to filename. If the first word of the savehist shell variable is set to a number, at most that many lines are saved. If the second word of savehist is set to `merge', the history list is merged with the existing history file instead of replacing it (if there is one) and sorted by time stamp. (+) Merging is intended for an environment like the X Window System with several shells in simultaneous use. Currently it succeeds only when the shells quit nicely one after another.

With -L, the shell appends filename, which is presumably a history list saved by the -S option or the savehist mechanism, to the history list. -M is like -L, but the contents of filename are merged into the history list and sorted by timestamp. In either case, histfile is used if filename is not given and ~/.history is used if histfile is unset. `history -L' is exactly like 'source -h' except that it does not require a filename.

Note that login shells do the equivalent of `history -L' on startup and, if savehist is set, `history -S' before exiting. Because only ~/.tcshrc is normally sourced before ~/.history, histfile should be set in ~/.tcshrc rather than ~/.login.

If histlit is set, the first and second forms print and save the literal (unexpanded) form of the history list.

The last form clears the history list.

References[edit]

  1. ^ "Using "History" to Repeat Commands". University of Washington. Retrieved 25 July 2013.