less - Unix, Linux Command

Commands are based on both
more and
vi. Commands may be preceded by a decimal number,
called N in the descriptions below.
The number is used by some commands, as indicated.




Certain characters are special
if entered at the beginning of the pattern;
they modify the type of search rather than become part of the pattern:


Certain characters are special as in the / command:


Certain characters are special as in the / command:


Most options may be given in one of two forms:
either a dash followed by a single letter,
or two dashes followed by a long option name.
A long option name may be abbreviated as long as
the abbreviation is unambiguous.
For example, --quit-at-eof may be abbreviated --quit, but not
--qui, since both --quit-at-eof and --quiet begin with --qui.
Some long option names are in uppercase, such as --QUIT-AT-EOF, as
distinct from --quit-at-eof.
Such option names need only have their first letter capitalized;
the remainder of the name may be in either case.
For example, --Quit-at-eof is equivalent to --QUIT-AT-EOF.


Options are also taken from the environment variable "LESS".
For example,
to avoid typing "less -options ..." each time
less is invoked, you might tell
csh: 

setenv LESS "-options"


or if you use
sh: 

LESS="-options"; export LESS


On MS-DOS, you don’t need the quotes, but you should replace any
percent signs in the options string by double percent signs.


The environment variable is parsed before the command line,
so command line options override the LESS environment variable.
If an option appears in the LESS variable, it can be reset
to its default value on the command line by beginning the command
line option with "-+".


For options like -P or -D which take a following string,
a dollar sign ($) must be used to signal the end of the string.
For example, to set two -D options on MS-DOS, you must have
a dollar sign between them, like this:


LESS="-Dn9.1$-Ds4.1"






If no log file has been specified,
the -o and -O options can be used from within
less to specify a log file.
Without a file name, they will simply report the name of the log file.
The "s" command is equivalent to specifying -o from within
less. 

        ESC [ ... m


where the "..." is zero or more color specification characters
For the purpose of keeping track of screen appearance,
ANSI color escape sequences are assumed to not move the cursor.
You can make
less think that characters other than "m" can end ANSI color escape sequences
by setting the environment variable LESSANSIENDCHARS to the list of
characters which can end a color escape sequence.
And you can make
less think that characters other than the standard ones may appear between
the ESC and the m by setting the environment variable LESSANSIMIDCHARS
to the list of characters which can appear.


By default, if neither -u nor -U is given,
backspaces which appear adjacent to an underscore character
are treated specially:
the underlined text is displayed
using the terminal’s hardware underlining capability.
Also, backspaces which appear between two identical characters
are treated specially:
the overstruck text is printed
using the terminal’s hardware boldface capability.
Other backspaces are deleted, along with the preceding character.
Carriage returns immediately followed by a newline are deleted.
other carriage returns are handled as specified by the -r option.
Text which is overstruck or underlined can be searched for
if neither -u nor -U is in effect.






A system-wide lesskey file may also be set up to provide key bindings.
If a key is defined in both a local lesskey file and in the
system-wide file, key bindings in the local file take precedence over
those in the system-wide file.
If the environment variable LESSKEY_SYSTEM is set,
less uses that as the name of the system-wide lesskey file.
Otherwise,
less looks in a standard place for the system-wide lesskey file:
On Unix systems, the system-wide lesskey file is /usr/local/etc/sysless.
(However, if
less was built with a different sysconf directory than /usr/local/etc,
that directory is where the sysless file is found.)
On MS-DOS and Windows systems, the system-wide lesskey file is c:\_sysless.
On OS/2 systems, the system-wide lesskey file is c:\sysless.ini.




An input preprocessor receives one command line argument, the original filename,
as entered by the user.
It should create the replacement file, and when finished,
print the name of the replacement file to its standard output.
If the input preprocessor does not output a replacement filename,
less uses the original file, as normal.
The input preprocessor is not called when viewing standard input.
To set up an input preprocessor, set the LESSOPEN environment variable
to a command line which will invoke your input preprocessor.
This command line should include one occurrence of the string "%s",
which will be replaced by the filename
when the input preprocessor command is invoked.


When
less closes a file opened in such a way, it will call another program,
called the input postprocessor,
which may perform any desired clean-up action (such as deleting the
replacement file created by LESSOPEN).
This program receives two command line arguments, the original filename
as entered by the user, and the name of the replacement file.
To set up an input postprocessor, set the LESSCLOSE environment variable
to a command line which will invoke your input postprocessor.
It may include two occurrences of the string "%s";
the first is replaced with the original name of the file and
the second with the name of the replacement file,
which was output by LESSOPEN.


For example, on many Unix systems, these two scripts will allow you
to keep files in compressed format, but still let
less view them directly:


lessopen.sh:

        #! /bin/sh

        case "$1" in

        *.Z)    uncompress - $1  >/tmp/less.$$  2>/dev/null

                if [ -s /tmp/less.$$ ]; then

                        echo /tmp/less.$$

                else

                        rm -f /tmp/less.$$

                fi

                ;;

        esac


lessclose.sh:

        #! /bin/sh

        rm $2


To use these scripts, put them both where they can be executed and
set LESSOPEN="lessopen.sh %s", and
LESSCLOSE="lessclose.sh %s %s".
More complex LESSOPEN and LESSCLOSE scripts may be written
to accept other types of compressed files, and so on.


It is also possible to set up an input preprocessor to
pipe the file data directly to
less, rather than putting the data into a replacement file.
This avoids the need to decompress the entire file before
starting to view it.
An input preprocessor that works this way is called an input pipe.
An input pipe, instead of writing the name of a replacement file on
its standard output,
writes the entire contents of the replacement file on its standard output.
If the input pipe does not write any characters on its standard output,
then there is no replacement file and
less uses the original file, as normal.
To use an input pipe,
make the first character in the LESSOPEN environment variable a
vertical bar (|) to signify that the input preprocessor is an input pipe.


For example, on many Unix systems, this script will work like the
previous example scripts:


lesspipe.sh:

        #! /bin/sh

        case "$1" in

        *.Z)    uncompress -c $1  2>/dev/null

                ;;

        esac


To use this script, put it where it can be executed and set
LESSOPEN="|lesspipe.sh %s".
When an input pipe is used, a LESSCLOSE postprocessor can be used,
but it is usually not necessary since there is no replacement file
to clean up.
In this case, the replacement file name passed to the LESSCLOSE
postprocessor is "-".


For compatibility with previous versions of
less, the input preprocessor or pipe is not used if
less is viewing standard input. 
However, if the first character of LESSOPEN is a dash (-),
the input preprocessor is used on standard input as well as other files.
In this case, the dash is not considered to be part of
the preprocessor command.
If standard input is being viewed, the input preprocessor is passed
a file name consisting of a single dash.
Similarly, if the first two characters of LESSOPEN are vertical bar and dash
(|-), the input pipe is used on standard input as well as other files.
Again, in this case the dash is not considered to be part of
the input pipe command.




This table shows the value of LESSCHARDEF which is equivalent
to each of the possible values for LESSCHARSET:


        ascii   8bcccbcc18b95.b

        dos     8bcccbcc12bc5b95.b.

        ebcdic  5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b

                9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.

        IBM-1047        4cbcbc3b9cbccbccbb4c6bcc5b3cbbc4bc4bccbc

                191.b

        iso8859 8bcccbcc18b95.33b.

        koi8-r  8bcccbcc18b95.b128.

        latin1  8bcccbcc18b95.33b.

        next    8bcccbcc18b95.bb125.bb


If neither LESSCHARSET nor LESSCHARDEF is set,
but any of the strings "UTF-8", "UTF8", "utf-8" or "utf8"
is found in the LC_ALL, LC_TYPE or LANG
environment variables, then the default character set is utf-8.


If that string is not found, but your system supports the
setlocale interface,
less will use setlocale to determine the character set.
setlocale is controlled by setting the LANG or LC_CTYPE environment
variables.


Finally, if the
setlocale interface is also not available, the default character set is latin1.


Control and binary characters are displayed in standout (reverse video).
Each such character is displayed in caret notation if possible
(e.g. ^A for control-A).  Caret notation is used only if
inverting the 0100 bit results in a normal printable character.
Otherwise, the character is displayed as a hex number in angle brackets.
This format can be changed by
setting the LESSBINFMT environment variable.
LESSBINFMT may begin with a "*" and one character to select
the display attribute:
"*k" is blinking, "*d" is bold, "*u" is underlined, "*s" is standout,
and "*n" is normal.
If LESSBINFMT does not begin with a "*", normal attribute is assumed.
The remainder of LESSBINFMT is a string which may include one
printf-style escape sequence (a % followed by x, X, o, d, etc.).
For example, if LESSBINFMT is "*u[%x]", binary characters
are displayed in underlined hexadecimal surrounded by brackets.
The default if no LESSBINFMT is specified is "*s<%X>".
The default if no LESSBINFMT is specified is "*s<%02X>".
Warning: the result of expanding the character via LESSBINFMT must
be less than 31 characters.


When the character set is utf-8, the LESSUTFBINFMT environment variable
acts similarly to LESSBINFMT but it applies to Unicode code points
that were successfully decoded but are unsuitable for display (e.g.,
unassigned code points).
Its default value is "<U+%04lX>".
Note that LESSUTFBINFMT and LESSBINFMT share their display attribute
setting ("*x") so specifying one will affect both;
LESSUTFBINFMT is read after LESSBINFMT so its setting, if any,
will have priority.
Problematic octets in a UTF-8 file (octets of a truncated sequence,
octets of a complete but non-shortest form sequence, illegal octets,
and stray trailing octets)
are displayed individually using LESSBINFMT so as to facilitate diagnostic
of how the UTF-8 file is ill-formed.




A percent sign followed by a single character is expanded
according to what the following character is:


Some examples:


?f%f:Standard input.


This prompt prints the filename, if known;
otherwise the string "Standard input".


?f%f .?ltLine %lt:?pt%pt\%:?btByte %bt:-...


This prompt would print the filename, if known.
The filename is followed by the line number, if known,
otherwise the percent if known, otherwise the byte offset if known.
Otherwise, a dash is printed.
Notice how each question mark has a matching period,
and how the % after the %pt
is included literally by escaping it with a backslash.


?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x..%t


This prints the filename if this is the first prompt in a file,
followed by the "file N of N" message if there is more
than one input file.
Then, if we are at end-of-file, the string "(END)" is printed
followed by the name of the next file, if there is one.
Finally, any trailing spaces are truncated.
This is the default prompt.
For reference, here are the defaults for
the other two prompts (-m and -M respectively).
Each is broken into two lines here for readability only.


?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.:
        ?pB%pB\%:byte %bB?s/%s...%t

?f%f .?n?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. :
        byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t



?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.:
        ?pB%pB\%:byte %bB?s/%s...%t


?f%f .?n?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. :
        byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t




?f%f .?m(file %i of %m) .?ltlines %lt-%lb?L/%L. .
        byte %bB?s/%s. ?e(END) :?pB%pB\%..%t


?f%f .?m(file %i of %m) .?ltlines %lt-%lb?L/%L. .
        byte %bB?s/%s. ?e(END) :?pB%pB\%..%t


The prompt expansion features are also used for another purpose:
if an environment variable LESSEDIT is defined, it is used
as the command to be executed when the v command is invoked.
The LESSEDIT string is expanded in the same way as the prompt strings.
The default value for LESSEDIT is:


        %E ?lm+%lm. %f



        %E ?lm+%lm. %f






Less can also be compiled to be permanently in "secure" mode.




The -e option works differently.
If the -e option is not set,
less behaves as if the -E option were set.
If the -e option is set,
less behaves as if the -e and -F options were set.


The -m option works differently.
If the -m option is not set, the medium prompt is used,
and it is prefixed with the string "--More--".
If the -m option is set, the short prompt is used.


The -n option acts like the -z option.
The normal behavior of the -n option is unavailable in this mode.


The parameter to the -p option is taken to be a
less command rather than a search pattern.


The LESS environment variable is ignored,
and the MORE environment variable is used in its place.








less is part of the GNU project and is free software.
You can redistribute it and/or modify it
under the terms of either
(1) the GNU General Public License as published by
the Free Software Foundation; or (2) the Less License.
See the file README in the less distribution for more details
regarding redistribution.
You should have received a copy of the GNU General Public License
along with the source for less; see the file COPYING.
If not, write to the Free Software Foundation, 59 Temple Place,
Suite 330, Boston, MA  02111-1307, USA.
You should also have received a copy of the Less License;
see the file LICENSE.


less is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.




Mark Nudelman <markn@greenwoodsoftware.com>

See http://www.greenwoodsoftware.com/less/bugs.html for the latest list of known bugs in less.

Send bug reports or comments to the above address or to

bug-less@gnu.org.

For more information, see the less homepage at

http://www.greenwoodsoftware.com/less.











Advertisements


    129 Lectures 
     23 hours 

 Eduonix Learning Solutions

    5 Lectures 
     4.5 hours 

 Frahaan Hussain

    35 Lectures 
     2 hours 

 Pradeep D

    41 Lectures 
     2.5 hours 

 Musab Zayadneh

    46 Lectures 
     4 hours 

 GUHARAJANM

    6 Lectures 
     4 hours 

 Uplatz
 Print
 Add Notes
 Bookmark this page