交互式输入编辑与历史命令补全

1.行编辑

如果支持,在交互式命令输入中,当前行可以使用以下的快捷键进行编辑:

Ctrl+A:将光标移动到行开始位置

Ctrl+E:将光标移动到行结束位置

Ctrl+B:将光标往左移动一个位置

Ctrl+F:将光标往右移动一个位置

Backspace擦除光标左边的一个字符

Ctrl+D:擦除光标右侧一个字符

Ctrl+K:擦除光标右侧所有字符

2.历史命令补全

历史命令补全工作原理如下:将所有从命令行中输入的非空行保存在历史缓存中,当你在新的一行中输入命令 时,使用Ctrl+p输入历史命令中的上一条命令,使用Ctrl+N输入历史命令中的下一条命令。

3.快捷键设置

通过~/.inputrc可以自定义快捷键。格式如下所示

key-name: function-name
#or
"string": function-name

也可以使用set命令进行设置:

  1. set option-name value

例如:

  1. # I prefer vi-style editing:
    set editing-mode vi
    # Edit using a single line:
    set horizontal-scroll-mode On
    # Rebind some keys:
    Meta-h: backward-kill-word
    "\C-u": universal-argument
    "\C-x\C-r": re-read-init-file

注意在Python中Tab键默认绑定的方法是插入一个Tab字符,而不是补全文件名,你可以自己进行修改:

  1. Tab: complete

自动补全变量名或者模块名也是可行的,为了在命令行中支持这个功能,需要在启动文件中输入以下代码:

  1. import rlcompleter, readline
    readline.parse_and_bind(‘tab: complete‘)

这样就将Tab键绑定到了命令补全函数,当连续两次单击tab键的时候,它将会检查Python中声明的变量名,当前的局部变量名,,以及可用的模块名。例如下面的例子,

 1 # Add auto-completion and a stored history file of commands to your Python
 2 # interactive interpreter. Requires Python 2.0+, readline. Autocomplete is
 3 # bound to the Esc key by default (you can change it - see readline docs).
 4 #
 5 # Store the file in ~/.pystartup, and set an environment variable to point
 6 # to it:  "export PYTHONSTARTUP=~/.pystartup" in bash.
 7
 8 import atexit
 9 import os
10 import readline
11 import rlcompleter
12
13 historyPath = os.path.expanduser("~/.pyhistory")
14
15 def save_history(historyPath=historyPath):
16     import readline
17     readline.write_history_file(historyPath)
18
19 if os.path.exists(historyPath):
20     readline.read_history_file(historyPath)
21
22 atexit.register(save_history)
23 del os, atexit, readline, rlcompleter, save_history, historyPath
时间: 2024-10-17 08:55:50

交互式输入编辑与历史命令补全的相关文章

shell介绍/命令历史/命令补全/通配符/输出输入重定向

shell介绍 * shell是一个命令解释器,提供用户和机器之间的交互. * 支持特定语法,比如逻辑判断.循环. * 每个用户都可以有自己特定的shell. * Centos7默认shell为bash. * 还有zsh.ksh 命令历史 我们在终端上敲过的命令,都有它的历史记录,比如此时按下向上键就会看到你之前最后输入的一条命令,再按就再往前翻,这里就开始学习认识命令历史 使用history命令查看历史命令: [[email protected] ~]# history 这里可以看到我已经输入

shell介绍 命令历史 命令补全和别名 通配符 输入输出重定向

8.1 shell介绍 shell 是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell 为bash(Bourne Agin Shell) 还有zsh.ksh等 yum zsh和ksh [[email protected] ~]# yum list |grep zsh zsh.x86_64 5.0.2-25.el7_3.1 updates zsh-html.x86_64 5.0.2-25.el7_3.1

shell介绍 命令历史 命令补全和别名 输入输出重定向

shell介绍 shell是一个命令解释器,提供用户与机器之间的交互例如我们远程登录的工具,它其实就是一个shell centos默认的shell是bash(Bourne Agin Shell)· 命令历史 history命令命令历史存在用户家目录下的.bash_history,如root用户就是/root/.bash_history·history可以查看命令历史,.bash_history文件了里最多可以存1000条,它是由环境变量HISTSIZE决定的,不过history有时候也会查看到超

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 # Linux shell 基础 # 8.1 shell 介绍 - 什么是shell 1. shell 是一个命令解释器,提供用户和机器之间的交互 2. 支持特定语法,比如逻辑判断.循环 3. 每个用户都可以有自己特定的shell 4. CentOS7 默认shell 为bash (Bourne Agin Shell) 5. 还有zsh.ksh等 ``` [[email protected]

记录历史命令,history,命令补全和别名、通配符、输入输出重定向

shell shell是一个命令解释器,提供用户与机器之间的交互,支持特定的语法(逻辑判断.循环等):每个用户都可以有自己特定的shell:centos7默认shell为bash,其他shell还有zsh.ksh等: 命令历史 history命令: 可以查看历史命令:在用户的家目录下的.bash_history文件中保存着之前敲过的命令,默认最大存储1000条:history命令可以查询: 更改存储数: 更改变量HISTSIZE来达到更改存储数:编辑文件vim /etc/profile vim

8.1-8.5 命令历史、命令补全、通配符和重定向

8.1 shell介绍 Shell是一个命令解释器,提供用户和机器之间的交互,支持特定的语法,比如逻辑判断.循环.每个用户都可以有自己特定的shell,CentOS7的默认shell为bash(Bourne Agin Shell),常见的还有zsh(power-shell).ksh(Korn shell). 8.2 命令历史(history) history命令 语法: history [-c] -c:=clear 清除内存中的命令,不能删除配置文件中的历史命令 [[email protecte

shell介绍,命令历史,命令补全和别名,通配符 ,输入输出重定向

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断,循环 每个用户都可以有自己特定的shell CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh,ksh等 命令历史 history [[email protected] ~]# ls /root/.bash_history /root/.bash_history [[email protected] ~]# 最大存1000条. [[email protected

shell介绍、命令历史 、 命令补全和别名 、通配符、输入输出重定向

一.shell介绍二.命令历史历史命令存放路径 /root/.bash_history ,默认可以存放1000条命令#history //查看具体的历史命令[[email protected] ~]# echo $HISTSIZE //系统内置环境变量1000 #history -c //清空内存中命令历史,但是存放命令的文件不会被删除#vi /etc/profile // 修改HISTORY环境变量路径/etc/profile,可以吧HISTSIZE=1000改为5000[[email pro

8.1 shell 介绍、8.2 命令历史、8.3 命令补全与别名、8.4 通配符、8.5 输入输出重定向

8.1 sehll 介绍 什么是shell shell 是一个命令解释器,提供用户和机器之间交互 支持特定的语法,比如逻辑判断,循环. 每个用户都可以有自己特定的shell. centos7 默认的shell 为bash( Bourne Agin shell ) 还有zsh ,ksh等 8.2 命令历史 /root/.bash_history ;命令历史放置文件 [[email protected] ~]# ls /root/.bash_history/root/.bash_history [[