- A+
所属分类:linux技术
less 命令: 查看文件内容
概念
less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。而使用 more 命令浏览文件内容时,只能不断向后翻看。
介绍
-
用法:
less [OPTION]... [FILE]...
-
常用参数:
-
常用选项及含义
Key Value -N 显示每行的行号。 -S 行过长时将超出部分舍弃。 -e 当文件显示结束后,自动离开。 -g 只标志最后搜索到的关键同。 -Q 不使用警告音。 -i 忽略搜索时的大小写。 -m 显示类似 more 命令的百分比。 -f 强迫打开特殊文件,比如外围设备代号、目录和二进制文件。 -s 显示连续空行为一行。 -b <缓冲区大小> 设置缓冲区的大小。 -o 将 less 输出的内容保存到指定文件中。 -x [num] 将【Tab】键显示为规定的数字空格。 -
交互指令及功能
Key Value /pattern 向下搜索 “pattern” 的功能。 ?pattern 向上搜索 “pattern” 的功能。 n 重复*前一个搜索(与 / 成 ? 有关)。 N 反向重复前一个搜索(与 / 或 ? 有关)。 h | H 显示帮助界面。 q | Q | ZZ 退出 less 命令。 G 移动至 “首行”。 g 移动至 “尾行”。 j | e 向下移动一行。 k | y 向上移动一行。 d | Ctrl-d 向下移动半页。 u | Ctrl-u 向上移动半页。 f | Ctrl-f | z 向下移动一页。 b | Ctrl-b | w 向上移动一页。 v 使用配置的编辑器编辑当前文件。 F 永远向前;像 "tail -f"。 m letter 用 letter 标记当前顶行。 'letter 转到一个先前标记 letter 的位置。 '' 转到之前的位置。 ESC-M letter 清除一个标记。
-
栗子
-
查看文件
less log1.log
Tips:
- 可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止。
- 可以按 v 进入编辑模型, shift+ZZ 保存退出到 less 查看模式。
- 使用参数 N 可以显示行号;
-
分页显示“进程信息”或“历史记录”
ps -ef | less
history | less -
浏览多个文件
less log2.txt log3.txt
Tips:
:n
: 切换到 log2.txt:p
: 切换到 log3.txt:e log3.txt
打开新文件log3.txt
less 参数大全
UMMARY OF LESS COMMANDS(Less命令的摘要)
标有*的命令可以在前面加上一个数字,N。
括号中的注释表示如果给定了N的行为。
前面有一个圆点的键表示Ctrl键,因此^K是ctrl-K。
h H 显示此帮助。 q :q Q :Q ZZ 退出。
MOVING(移动)
e ^E j ^N CR * 前进一行(或_N行)。 y ^Y k ^K ^P * 后退一行(或_N行)。 f ^F ^V SPACE * 前进一个窗口(或_N行)。 b ^B ESC-v * 后退一个窗口(或_N行)。 z * 向前一个窗口(并将窗口设置为_N)。 w * 后退一个窗口(并将窗口设置为_N)。 ESC-SPACE * 前进一个窗口,但不要停在文件的末端。 d ^D * 前进一个半窗口(并将半窗口设置为_N)。 u ^U * 后退一个半窗口(并将半窗口设置为_N)。 ESC-) RightArrow * 向右移动半个屏幕宽度(或_N个位置)。 ESC-( LeftArrow * 左半屏宽度(或_N个位置)。 ESC-} ^RightArrow 向右到最后一列显示。 ESC-{ ^LeftArrow 向左到第一栏。 F 永远向前;像 "tail -f"。 ESC-F 像F一样,但在找到搜索模式时停止。 r ^R ^L 重新绘制屏幕。 R 重新绘制屏幕,丢弃缓冲输入。 --------------------------------------------------- 默认的 "窗口 "是屏幕的高度。 默认的 "半窗 "是屏幕高度的一半。
SEARCHING(检索)
/pattern * 向前搜索(_N-th)匹配的行。 ?pattern * 向后搜索(第_N次)匹配的行。 n * 重复之前的搜索(第_N次出现)。 N * 以相反的方向重复之前的搜索。 ESC-n * 重复先前的搜索,跨越文件。 ESC-N * 重复先前的搜索,反方向搜索,并跨越文件。 ESC-u 撤销(切换)搜索高亮显示。 ESC-U 清除搜索高亮显示. &pattern * 只显示匹配行。 --------------------------------------------------- 一个搜索模式可以以下列一项或多项开始。 ^N 或 ! 搜索不匹配的行。 ^E 或 * 搜索多个文件(通过文件末尾)。 ^F 或 @ 从第一个文件(对于 /)或最后一个文件(对于 ?)开始搜索。 ^K 突出显示匹配的文件,但不移动(保留位置)。 ^R 不使用常规表达式。 ^W 如果没有找到匹配,则进行WRAP搜索。
JUMPING(跳转)
g < ESC-< * 转到文件的第一行(或第N行)。 G > ESC-> * 转到文件的最后一行(或第N行)。 p % * 转到文件的开头(或文件的N%)。 t * 转到(N-th)下一个标签。 T * 转到前一个标签(N-th)。 { ( [ * 找出闭合括号 } ) ]. } ) ] * 查找大括号 { ( [. ESC-^F <c1> <c2> * 查找封闭括号 <c2>. ESC-^B <c1> <c2> * 查找开放括号 <c1>。 --------------------------------------------------- 每条 "查找括号" 命令都会前进到与顶行中(第N个)开放括号相匹配的括号处 匹配顶行中的(第N个)开放括号。 每条 "查找开括号" 命令都会向后移动到开括号 匹配底行的(第N个)封闭括号。 m<letter> 用<letter>标记当前顶行。 M<letter> 用<letter>标记当前的底行。 '<letter> 转到一个先前标记的位置。 '' 转到之前的位置。 ^X^X 与'相同。 ESC-M<letter> 清除一个标记。 --------------------------------------------------- 一个标记是任何大写或小写的字母。 某些标记是预定义的: ^ 表示文件的开始 $ 表示文件的结束
CHANGING FILES(改变文件)
:e 检查一个新文件。 ^X^V 与 :e 相同。 :n * 检查命令行中的(N-th)下一个文件。 :p * 检查命令行中的前一个(N个)文件。 :x * 从命令行中检查第一个(或第N个)文件。 :d 从命令行列表中删除当前文件。 = ^G :f 打印当前文件名。
MISCELLANEOUS COMMANDS(其他命令)
-<flag> 切换一个命令行选项[见下面的 OPTIONS]。 --<name> 按名称切换一个命令行选项。 _<flag> 显示一个命令行选项的设置。 __<name> 按名称显示一个选项的设置。 +cmd 每次检查一个新文件时,执行 less cmd。 !command 执行带有 $SHELL 的 shell命令。 |Xcommand 在当前位置和 标记X 之间管文件到 shell命令。 s file 将输入内容保存到文件中。 v 用 $VISUAL 或 $EDITOR 编辑当前文件。 V 打印 "less "的版本号。
OPTIONS(选项)
大多数选项可以在命令行上改变。
或者在 less 中使用 - 或 -- 命令来改变。
选项可以以两种形式之一给出:要么是以"-"开头的单个字符,要么是以"--"开头的名称。
-? ........ --help 显示帮助(来自命令行)。 -a ........ --search-skip-screen 搜索跳过当前屏幕。 -A ........ --SEARCH-SKIP-SCREEN 搜索从目标行后开始。 -b [N] .... --buffers=[N] 缓冲区的数量。 -B ........ --auto-buffers 不要自动为管道分配缓冲区。 -c ........ --clear-screen 通过清除而不是滚动来重新绘制。 -d ........ --dumb 哑巴终端。 -D xcolor . --color=xcolor 设置屏幕颜色。 -e -E .... --quit-at-eof --QUIT-AT-EOF 在文件结束时退出。 -f ........ --force 强制打开非常规文件。 -F ........ --quit-if-one-screen 如果整个文件适合在第一屏幕上显示,则退出。 -g ........ --hilite-search 只突出最后一个匹配的搜索。 -G ........ --HILITE-SEARCH 不突出显示任何匹配的搜索。 -h [N] .... --max-back-scroll=[N] 向后滚动的限制。 -i ........ --ignore-case 在不包含大写字母的搜索中忽略大小写。 -I ........ --IGNORE-CASE 忽略所有搜索中的大小写。 -j [N] .... --jump-target=[N] 目标行的屏幕位置。 -J ........ --status-column 在屏幕的左边缘显示状态栏。 -k . --lesskey-file= 使用一个lesskey文件。 -K ........ --quit-on-intr 响应ctrl-C,退出less。 -L ........ --no-lessopen 忽略 LESSOPEN 环境变量。 -m -M .... --long-prompt --LONG-PROMPT 设置提示样式。 -n -N .... --line-numbers --LINE-NUMBERS 不使用行数。 -o . --log-file= 拷贝到日志文件(仅标准输入)。 -O . --LOG-FILE= 拷贝到日志文件(无条件覆盖)。 -p [pattern] --pattern=[pattern] 从模式开始(来自命令行)。 -P [prompt] --prompt=[prompt] 定义新的提示。 -q -Q .... --quiet --QUIET --silent --SILENT 让终端的铃声安静下来。 -r -R .... --raw-control-chars --RAW-CONTROL-CHARS 输出 "原始 "控制字符。 -s ........ --squeeze-blank-lines 挤掉多个空行。 -S ........ --chop-long-lines 切断(截断)长行,而不是包裹。 -t [tag] .. --tag=[tag] 找到一个标签。 -T [tagsfile] --tag-file=[tagsfile] 使用一个备用的标签文件。 -u -U .... --underline-special --UNDERLINE-SPECIAL 改变对后缀的处理。 -V ........ --version 显示 "less "的版本号。 -w ........ --hilite-unread 突出显示转屏后的第一个新行。 -W ........ --HILITE-UNREAD 突出显示任何前移后的第一个新行。 -x [N[,...]] --tabs=[N[,...]] 设置制表符的位置。 -X ........ --no-init 不使用 termcap init/deinit 字符串。 -y [N] .... --max-forw-scroll=[N] 向前滚动的限制。 -z [N] .... --window=[N] 设置窗口的大小。 -" [c[c]] . --quotes=[c[c]] 设置外壳引号字符。 -~ ........ --tilde 不在文件结尾处显示蒂尔德。 -# [N] .... --shift=[N] 设置水平滚动量(0=二分之一屏幕宽度)。 --file-size 自动确定输入文件的大小。 --follow-name 如果输入文件被重新命名,F命令会改变文件。 --incsearch 在输入每个模式字符时搜索文件。 --line-num-width=N 将-N行号字段的宽度设置为N个字符。 --mouse 启用鼠标输入。 --no-keypad 不发送termcap键盘初始/退出字符串。 --no-histdups 从命令历史中删除重复的命令。 --rscroll=C 设置用于标记截断行的字符。 --save-marks 在调用less的过程中保留标记。 --status-col-width=N 将-J状态栏的宽度设置为N个字符。 --use-backslash 后面的选项使用反斜杠作为转义符。 --use-color 启用彩色文本。 --wheel-lines=N 每点击一次鼠标滚轮,就会移动N行。
LINE EDITING(行编辑)
这些键可以用来编辑正在输入的文本
在屏幕底部的 "命令行 "上编辑文本。
RightArrow ..................... ESC-l ... 将光标向右移动一个字符。 LeftArrow ...................... ESC-h ... 将光标向左移动一个字符。 ctrl-RightArrow ESC-RightArrow ESC-w ... 将光标向右移动一个字。 ctrl-LeftArrow ESC-LeftArrow ESC-b ... 将光标向左移动一个字。 HOME ........................... ESC-0 ... 将光标移至行首。 END ............................ ESC-$ ... 将光标移至行尾。 BACKSPACE ................................ 删除光标左边的字符。 DELETE ......................... ESC-x ... 删除光标下的字符。 ctrl-BACKSPACE ESC-BACKSPACE ........... 删除光标左侧的单词。 ctrl-DELETE .... ESC-DELETE .... ESC-X ... 删除光标下方的字。 ctrl-U ......... ESC (MS-DOS only) ....... 删除整行。 UpArrow ........................ ESC-k ... 检索前一个命令行。 DownArrow ...................... ESC-j ... 检索下一个命令行。 TAB ...................................... 完成文件名和循环。 SHIFT-TAB ...................... ESC-TAB 完成文件名和反向循环。 ctrl-L ................................... 完成文件名,列出所有文件。