less (Unix)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
less
Less.jpg
less output in an x-terminal
Developer(s) Mark Nudelman
Initial release 1984; 40 years ago (1984)
Stable release 481[1] / October 16, 2015 (2015-10-16)
Operating system Cross-platform
Type system utility
License Simplified BSD License[2]
GPL (GNU Version)
Website www.greenwoodsoftware.com/less/
www.gnu.org/software/less/

less is a terminal pager program on Unix, Windows, and Unix-like systems used to view (but not change) the contents of a text file one screen at a time. It is similar to more, but has the extended capability of allowing both forward and backward navigation through the file. Unlike most Unix text editors/viewers, less does not need to read the entire file before starting, resulting in faster load times with large files.

History

Mark Nudelman initially wrote less during 1983-85, in the need of a version of more able to do backward scrolling of the displayed text. The name came from the joke of doing "backwards more." To help remember the difference between less and more, a common joke is to say, "less > more," implying that less has greater functionality than more. A similar saying is that "less is more, more or less". less is included in most Unix and Unix-like systems.

Usage

less can be invoked with options to change its behaviour, for example, the number of lines to display on the screen. A few options vary depending on the operating system. While less is displaying the file, various commands can be used to navigate through the file. These commands are based on those used by both more and vi. It is also possible to search for character patterns in the file.

By default, less displays the contents of the file to the standard output (one screen at a time). If the file name argument is omitted, it displays the contents from standard input (usually the output of another command through a pipe). If the output is redirected to anything other than a terminal, for example a pipe to another command, less behaves like cat.

The command-syntax is:

less [options] [file_name]

Frequently used options

  • -g: Highlights just the current match of any searched string.
  • -I: Case-insensitive searches.
  • -M: Shows more detailed prompt, including file position.
  • -N: Shows line numbers (useful for source code viewing).
  • -S: Disables line wrap ("chop long lines"). Long lines can be seen by side scrolling.
  • -?: Shows help.
  • +F: Follow mode for log.

Frequently used commands

Key Command
Space bar Next Page
b Previous Page
v Edit Content
j or Enter Next Line
k Previous Line
F Follow Mode (for logs). Interrupt to abort.
g or < First Line
G or > Last Line
<n>G Line <n>
/<text> Forward Search for <text>. Text is interpreted as a regex.
?<text> Backward Search like /
n Next Search Match
N Previous Search Match
Escu Turn off Match Highlighting (see -g command line option)
-<c> Toggle option <c>, e.g., -i toggles option to match case in searches
m<c> Set Mark <c>
'<c> Go to Mark <c>
= or Ctrl+G File information
:n Next file
:p Previous file
h Help. This is presented with less, q to quit.
q Quit

Examples

less -M readme.txt                     # Read "readme.txt."
less +F /var/log/mail.log              # Follow mode for log
file * | less                          # Easier file analysis.
less -I -p void *.c                    # Case insensitive search for "void" in all .c files

Memory considerations

The --buffers=n and --auto-buffers options control how much memory less may use to buffer inputs. This is most relevant when less is directly accessing a named file that is modified or deleted while less is still running, and when less is receiving data from a pipe and the data can not be randomly accessed or regenerated. In these situations, anything not buffered can not be redisplayed or searched by less. On the other hand, unlimited buffering means that less will request as much memory as it is fed data, which could drive the system into using virtual memory and swapping a lot of data between RAM and disks (dramatically slowing system performance for most applications on the host), or even further into memory exhaustion where any application on the host requesting memory may have that request denied, or may crash when attempting to access memory that the OS promised but can't find when the application actually attempts to use it and a page-fault occurs. For this reason, some companies/organisations insist that less be used only with fixed buffering - or not at all - on production machines.[citation needed]

Variations

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.

External links