tab 补全-linux



默认python是没有tab键补全功能的:
>>> import tab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named tab
>>>
创建tab.py文件
# vi tab.py
添加以下内容:
#!/usr/bin/python
# python tab file
   
import sys
import readline
import rlcompleter
import atexit
import os
# tab completion
readline.parse_and_bind('tab: complete')
# history file
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
    readline.read_history_file(histfile)
except IOError:
    pass
atexit.register(readline.write_history_file, histfile)
   
del os, histfile, readline, rlcompleter




查看Python默认的模块存放地址


# python
Python 2.7.5 (default, Oct 11 2015, 17:47:16)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys






>>> sys.path
['', '/usr/local/python/lib/python27.zip', '/usr/local/python/lib/python2.7', '/usr/local/python/lib/python2.7/plat-linux2', '/usr/local/python/lib/python2.7/lib-tk', '/usr/local/python/lib/python2.7/lib-old', '/usr/local/python/lib/python2.7/lib-dynload', '/usr/local/python/lib/python2.7/site-packages']
>>> 


将tab.py文件拷贝到/usr/lib64/python2.7/

# cp tab.py  /usr/local/python/lib/python2.7
#chmod 755 /usr/local/python/lib/python2.7/tab.py、


import tab    支持tab 



### Linux Tab 补全功能的配置与使用 #### 一、概述 Tab 自动补全是 Bash Shell 中的一项重要特性,能够显著提升工作效率。它不仅支持路径补全,还支持命令选项和参数补全。如果 Git 或其他工具未启用此功能,则可以通过特定方法手动激活。 --- #### 二、Git 命令 Tab 补全的实现方式 在 CentOS 下测试成功的方案如下: 1. **安装必要的依赖包** 安装 `bash-completion` 工具,这是许多自动补全脚本的基础。 ```bash yum install bash-completion -y ``` 2. **加载 Git 的补全脚本** 如果系统中已存在 `/usr/share/git-core/contrib/completion/git-completion.bash` 文件,可以直接将其引入到用户的 `.bashrc` 文件中: ```bash echo 'source /usr/share/git-core/contrib/completion/git-completion.bash' >> ~/.bashrc source ~/.bashrc ``` 这一步确保每次启动终端时都会加载该补全脚本[^1]。 3. **验证效果** 输入部分 Git 命令并按两次 Tab 键即可触发补全操作。 --- #### 三、通用命令 Tab 补全的扩展 对于自定义命令或其他程序的补全需求,可以按照以下方式进行设置: 1. 创建一个新的补全脚本文件,并放置于 `/etc/bash_completion.d/` 目录下。例如,假设需要为 SSH 添加主机名补全功能: ```bash cat <<EOF >/etc/bash_completion.d/custom_ssh_complete.sh xm=\$(cat /etc/hosts | grep -v '#' | awk '{print \$2}') complete -W "\$xm" ssh EOF ``` 上述代码片段实现了基于 `/etc/hosts` 文件中的条目完成 SSH 主机名补全[^4]。 2. 刷新当前会话以应用更改: ```bash . /etc/profile ``` --- #### 四、忽略大小写的 Tab 补全 为了使路径或文件名补全更加灵活,可调整系统的输入行为使其不区分大小写: 1. 编辑全局配置文件 `/etc/inputrc` 并追加以下内容: ```plaintext set completion-ignore-case on ``` 此项设定使得即使用户输入错误的大写字母也能匹配正确的目标对象[^3]。 2. 让改动生效的方法有两种: - 关闭再重新打开新的 Terminal; - 执行下面这条指令立即更新读取规则: ```bash bind 'set completion-ignore-case on' ``` --- #### 五、Python 环境下的交互式补全增强 当涉及 Python 脚本开发或者 REPL(Read-Eval-Print Loop)模式调试时,同样有必要开启历史记录保存及动态建议机制: 1. 修改环境变量 PATH 来定位至最新版本解释器的位置[^5]: ```bash export PATH=/opt/python36/bin:$PATH ``` 2. 同步上述变动至永久存储区域以便长期有效: ```bash echo 'export PATH=/opt/python36/bin:$PATH' >> ~/.bash_profile && source ~/.bash_profile ``` 3. 对应地,在运行 IPython 之前确认其插件目录结构完好无损;必要情况下下载官方推荐资源包来完善体验质量。 --- #### 六、总结说明 以上介绍了几种常见场景下关于如何优化 Linux 终端用户体验的技术手段——从基础层面着手改善日常运维效率直至高级定制化满足个性化偏好为止均有所涉猎。希望这些技巧对你有所帮助! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值