fc (列出,编辑或重新执行先前输入到shell中的命令)

rose1 发表于 2020-09-10 09:05
浏览次数:
在手机上阅读

在bash shell中,fc 内置命令列出,编辑或重新执行先前输入到shell中的命令。在历史的内置命令可以使用以前的话命令行命令行你打字。这简化了拼写纠正和复杂命令或参数的重复。

查看英文版

目录

1 fc 运行系统环境

2 fc 说明

3 fc 例子

fc 运行系统环境

Linux

fc 说明

每个外壳(Bourne外壳,Bourne Again外壳,C外壳,Korn外壳等)在处理和允许访问命令历史记录的方式上都有其自己的细微差别。通常,以下命令可帮助您在Linux / Unix Shell中导航和使用命令历史记录。

历史记录使用行号显示或操作历史记录列表,并在每个修改后的条目前面加上“ * ”。n的参数仅列出最后的b个条目。

语法:历史

history [-c] [-d offset ] [ n ]
history -anrw [ file name ]
history -ps arg [ arg... ]

选项:历史

-c 通过删除所有条目来清除历史记录列表。
-d偏移 删除偏移量为OFFSET的历史记录条目。
-a 将来自此会话的历史记录行添加到历史记录文件。
-n 读取尚未从历史记录文件中读取的所有历史记录行。
-r 读取历史记录文件,并将内容附加到历史记录列表。
-w 将当前历史记录写入历史记录文件并将其附加到历史记录列表
-p 在每个ARG上执行历史记录扩展并显示结果,而不将其存储在历史记录列表中。
-s 将ARG作为单个条目追加到历史记录列表中。

如果提供了文件名,则将其用作历史文件。否则,如果$ HISTFILE具有值,则使用该值,否则〜/ .bash_history。

如果$ HISTTIMEFORMAT变量被设置并且不为null,则其值将用作strftime的格式字符串,以打印与每个显示的历史记录条目关联的时间戳。否则,不会打印任何时间戳。

语法:fc

fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [command]

fc用于从历史记录列表中列出或编辑并重新执行命令。FIRST和LAST可以是指定范围的数字,或者FIRST可以是字符串,这意味着以该字符串开头的最新命令。

选项:fc

-e 列出行而不是编辑。 Default is 默认值为FCEDIT然后为EDITOR,然后为vi。.
-l 列出行而不是编辑。
-n 列出时省略行号。
-r 颠倒行的顺序(最新的列出在最前面)。

使用' fc -s [pat = rep ...] [command] '格式,执行OLD = NEW替换后将重新执行COMMAND。

与此配合使用的有用别名是r ='fc -s',因此键入' r cc '会运行以' cc ' 开头的最后一个命令,而键入' r '会重新执行最后一个命令。

其他历史记录命令和快捷方式

!string 执行以string开头的最新命令。
!num 执行命令历史中编号为num的命令。
!-num 执行该命令是在历史记录的前面运行num命令。
!! 执行先前(最近执行)的命令。
!?string[?] 执行包含字符串string的最新命令。尾随如果string代表相关命令的结尾,则可以省略。
^string1^string2^ 重复执行上一条命令,将string1替换为string2。上一个命令必须包含string1。

Each shell (the Bourne shell, the Bourne Again Shell, the C Shell, the Korn Shell, etc.) has its own slight differences in how it handles, and allows access to, the command history. In general, the following commands help you navigate and use your command history in the Linux/Unix shell.

history displays or manipulate the history list with line numbers, prefixing each modified entry with a '*'. An argument of n lists only the last b entries.

Syntax: history

history [-c] [-d offset ] [ n ]
history -anrw [ file name ]
history -ps arg [ arg... ]

Options: history

-c Clear the history list by deleting all of the entries.
-doffset Delete the history entry at offset OFFSET.
-a Append history lines from this session to the history file.
-n Read all history lines not already read from the history file.
-r Read the history file and append the contents to the history list.
-w Write the current history to the history file and append them to the history list
-p Perform history expansion on each ARG and display the result without storing it in the history list.
-s Append the ARGs to the history list as a single entry.

If FILE NAME is given, it is used as the history file. Otherwise, if $HISTFILE has a value, that is used, else ~/.bash_history.

If the $HISTTIMEFORMAT variable is set and not null, its value is used as a format string for strftime to print the timestamp associated with each displayed history entry. No timestamps are printed otherwise.

Syntax: fc

fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [command]

fc is used to list or edit and re-execute commands from the history list. FIRST and LAST can be numbers specifying the range, or FIRST can be a string, which means the most recent command beginning with that string.

Options: fc

-e ENAME Select which editor to use. Default is FCEDIT, then EDITOR, then vi.
-l List lines instead of editing.
-n Omit line numbers when listing.
-r Reverse the order of the lines (newest listed first).

With the 'fc -s [pat=rep ...] [command]' format, COMMAND is re-executed after the substitution OLD=NEW is performed.

A useful alias to use with this is r='fc -s', so that typing 'r cc' runs the last command beginning with 'cc' and typing 'r' re-executes the last command.

Other history commands and shortcuts

!string Execute the most recent command that begins with string.
!num Execute command that is number num in the command history.
!-num Execute the command was run num commands previous in the history.
!! Execute the previous (most recently-executed) command.
!?string[?] Execute the most recent command containing the string string. The trailing ? may be omitted if string represents the end of the command in question.
^string1^string2^ Repeat the previous command executed, replacing string1 with string2. The previous command must contain string1.

查看英文版

查看中文版

fc 例子

fc -l

列出计算机上的命令历史记录,类似于以下内容:

2 grep --help
3 bg
4 fg
5 pine
6 cd public_html
7 rm index.html
8 sz index.html
9 ls -laxo
10 chmod 755 index.htm
fc -e - ls

执行以字母ls开头的最近执行的命令。

history

仅输入历史记录就会得到与以下类似的结果:

2 grep --help
3 bg
4 fg
5 pine
6 cd public_html
7 rm index.html
8 sz index.html
9 ls -laxo
10 chmod 755 index.htm

!ls

执行以字母ls开头的最近执行的命令。

!!

将重新执行最近执行的命令。

fc -l

Lists the history of commands on the computer similar to the following:

2 grep --help
3 bg
4 fg
5 pine
6 cd public_html
7 rm index.html
8 sz index.html
9 ls -laxo
10 chmod 755 index.htm
fc -e - ls

Executes the most recently executed command that begins with the letters ls.

history

Typing history alone would give results similar to the following:

2 grep --help
3 bg
4 fg
5 pine
6 cd public_html
7 rm index.html
8 sz index.html
9 ls -laxo
10 chmod 755 index.htm

!ls

Executes the most recently executed command that begins with the letters ls.

!!

Would re-execute the most recently executed command.

查看英文版

查看中文版

其他命令行

fdisk | fg | fgrep | findsmb | finger | fmt | fold | for | free |

如此好文,分享给朋友