LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1010|回复: 5

arch个性化提示未安装命令

[复制链接]
发表于 2009-7-5 18:04:49 | 显示全部楼层 |阅读模式
图挂了,可以去我的博客查看

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://young001.blogbus.com/logs/41893492.html

骨头发过一篇文章,在gentoo中,如果在终端输入没有的命令,提示一些信息,学着是ubuntu的人性化,看了很眼馋啊。不过archer不要伤心,我们的额arch照样能够用上,无所不能的arch,哈哈。

arch原来不是bash 4.x,所以我们不能实现个性化,前几天arch的源中才把bash4.x加入,现在arch的bash版本已经可以实现ubuntu的效果了。我原来是用163的源,虽然速度很好,但是更新的实在是太慢了,连firefox3,5也是我刚换源之后才安装的。

原理是bash 4.x,在找不到命令的时候,会调用 command_not_found_handle 这个函数,这样你对这个函数定义一些自己的动作,个性化不就出来了么。

主要就是你在~/.bashrc 里面加入command_not_found_handle  这个函数的动作

        
command_not_found_handle () {
                echo "$1: is it not installed?"
                fileinfo $1
                }保存下面为fileinfo,赋予可执行权限,放入/usr/bin中。
#!/bin/bash
pacman -Si $1|grep 版本&&pacman -Si kdevelop|grep 地址&&pacman -Si kdevelop|grep 描述

我是用fileinfo来查询关于你输入这个命令,用pacman查询。

修改前:
点击查看原始尺寸


修改后:
点击查看原始尺寸

如果你想要更加个性的,也行!!!来个cowthink。

command_not_found_handle () {
                echo "$1: is it not installed?"|cowthink
                fileinfo $1
                }
点击查看原始尺寸
发表于 2009-7-5 19:14:01 | 显示全部楼层
用zsh怎么办
回复 支持 反对

使用道具 举报

发表于 2009-7-5 19:36:09 | 显示全部楼层
Post by young001;2003834
图挂了,可以去我的博客查看

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://young001.blogbus.com/logs/41893492.html

骨头发过一篇文章,在gentoo中,如果在终端输入没有的命令,提示一些信息,学着是ubuntu的人性化,看了很眼馋啊。不过archer不要伤心,我们的额arch照样能够用上,无所不能的arch,哈哈。

arch原来不是bash 4.x,所以我们不能实现个性化,前几天arch的源中才把bash4.x加入,现在arch的bash版本已经可以实现ubuntu的效果了。我原来是用163的源,虽然速度很好,但是更新的实在是太慢了,连firefox3,5也是我刚换源之后才安装的。

原理是bash 4.x,在找不到命令的时候,会调用 command_not_found_handle 这个函数,这样你对这个函数定义一些自己的动作,个性化不就出来了么。

主要就是你在~/.bashrc 里面加入command_not_found_handle  这个函数的动作

        
command_not_found_handle () {
                echo "$1: is it not installed?"
                fileinfo $1
                }保存下面为fileinfo,赋予可执行权限,放入/usr/bin中。
#!/bin/bash
pacman -Si $1|grep 版本&&pacman -Si kdevelop|grep 地址&&pacman -Si kdevelop|grep 描述

我是用fileinfo来查询关于你输入这个命令,用pacman查询。

修改前:
点击查看原始尺寸


修改后:
点击查看原始尺寸

如果你想要更加个性的,也行!!!来个cowthink。

command_not_found_handle () {
                echo "$1: is it not installed?"|cowthink
                fileinfo $1
                }
点击查看原始尺寸


应该用pkgfile查询,因为你查询的不是包,是命令~
回复 支持 反对

使用道具 举报

发表于 2009-7-5 19:53:49 | 显示全部楼层
呵呵,楼上正解...
另外我觉得应该把命令单独提取出来,因为pacfile一次grep那堆文件确实比较费时而且卡硬盘...
不过这样一来就麻烦很多,几乎时常要更新数据库,所以以arch的机制基本上不适合做这样的东西...而且装了什么没装什么自己心里应该清楚才是...真要碰到需要的命令没装的再用pacfile找,省得添加这么一个鸡肋功能...
回复 支持 反对

使用道具 举报

发表于 2009-7-6 12:46:43 | 显示全部楼层
Post by aegean sea;2003849
用zsh怎么办


zsh 基本一样,这个功能可能很久以前就有了
……有点不一样的地方,注意最后一个字母
command_not_found_handler()
回复 支持 反对

使用道具 举报

发表于 2009-7-6 12:47:50 | 显示全部楼层
Post by huntxu;2003868
呵呵,楼上正解...
另外我觉得应该把命令单独提取出来,因为pacfile一次grep那堆文件确实比较费时而且卡硬盘...
不过这样一来就麻烦很多,几乎时常要更新数据库,所以以arch的机制基本上不适合做这样的东西...而且装了什么没装什么自己心里应该清楚才是...真要碰到需要的命令没装的再用pacfile找,省得添加这么一个鸡肋功能...


最后一句说得好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表