<< Prev Page – The Linux Command Line Interface (CLI)

Linux History Utility

BASH history utility keeps the list of previously entered commands, which acts as a short term memory. By default, the utility remembers 500 recent commands, whose numbers start at one or beginning characters in the commands. Histsize is a special variable in which the user can change it to any value.

$ HISTSIZE = 200

HISTFILE saves the actual history of events. 

In C-shell, history is not automatically turned ON. The set command assigns the number of records.

% set history=100

$ history to display the list of recent commands executed referred to as an event, i.e., the action being taken. Meta keys like ALT or ESC perform other history operations like searching history list.

  • ^N, Down arrow: Move down to the next event in the history list
  • ^P, Up arrow: Move up to the previous event in the history list
  • ALT <: Move to the beginning of the history event list
  • ALT N: Forward search, next matching item
  • ALT P: Backward search, previous matching item
  • ^S: Forward search history, forward incremental search

In C-shell ^w erases recently entered word of a command

% date ananova ^w
% date

Referencing history

  • ! event num: Reference an event by its event number
  • !!: Reference the previous command
  • ! character: Reference an event beginning with the specified characters
  • ! event-num: Reference an event with an offset from the first event
  • ! num-num: Reference a range of events
  • fc event-reference: Edits an event with the standard editor and then executes it
    fc -1: List recent history events, same as a history command
    fc -e: editor event-reference invokes a specified editor to a specified event

Pattern Substitution in C-shell

% ^pattern^ new-text
% ^dt^ dat
% !num:s/pattern/new-text

gs is used to perform global substitution

Matching Multiple Characters

‘*' Match any set of characters placed before or after a pattern. If placed before, searches the filenames that end with pattern and if placed after searches filenames that begin with a pattern e.g.

List all files with extension ‘txt.'

$ ls *.txt

List all index files

$ ls index.*

Remove all files and directories that start with wp

rm -rf wp*

‘?' Match a single character, e.g. listing all files that begin with index and have any three-letter extension

$ ls index.???

‘[]' Any character placed in the bracket gets matched in the filename. Select a range by placing a dash (-) between the uppercase and lowercase bounds

‘\' Quote special character to reference the files containing expansion characters

$ ls doc\?

$ ls My\ Documents

‘{ }' to generate a list of names, based on patter placed within the braces and separated by commas e.g. create a list of directories containing three letters of month name and a year 2020.

$ mkdir {jan, feb, mar, apr, may, june, july, aug, sep, oct, nov, dec}2020

Meta characters in C-shell

  • ^ represents the first argument of an event
  • $ represents the last argument
  • *, ^-$ reference all the arguments