Linux alias命令用于设置指令的别名。
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。
通过rlwrap包实现linux里的sqlplus历史命令的功能
可以下载rlwrap包从inthirties里。
这个包依赖readline包,这个包也可以下载
http://inthirties.com:90/thread-1061-1-1.html
然后解压
由于rlwrap依赖readline包,我们先安装readline包
#gunzip readline-6.1.tar.gz
#tar -xf readline-6.1.tar
#cd readline-6.1
#./configure
#make install
安装以后,我们可以安装rlwrap叻
#gunzip rlwrap-0.30.tar.gz
#tar -xf rlwrap-0.30.tar
#cd rlwrap-0.30
#./configure
#make install
现在rlwrap就已经安装到我们的linux里。
我们可以用rlwrap sqlplus执行试试,好悲惨哟,好像有错误
rlwrap: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
报错哟,别着急,这里其实这里是.so库没有load到,
你可以修改/etc/ld.so.conf,设置我们so库的load路径
先找到这个libreadline.so.6的路径
find / -iname libreadline.so.6
/usr/local/lib/libreadline.so.6
在最后的一行下加上/usr/local/lib就可以叻,这里的
include ld.so.conf.d/*.conf
/usr/local/lib
加入要重启生效,不过我们也可以执行ldconfig即时生效
现在我们在试试lrwrap sqlplus命令,是不是很爽呀。
不过每次在前面要多输入lrwrap,确实有些不习惯了,都习惯直接sqlplus,以后要是加上lrwrap也太不习惯了。
解决方法用alias命令就可以叻
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
可以在启动文件里加入一上两句,就尅直接的sqlplus,
---------------------
Options:
-a[password:] --always-readline[=password:]
-A --ansi-colour-aware
-b <chars> --break-chars=<chars>
-c --complete-filenames
-C <name|N> --command-name=<name|N>
-D <0|1|2> --history-no-dupes=<0|1|2>
-f <completion list> --file=<completion list>
-g <regexp> --forget-matching=<regexp>
-h --help
-H <file> --history-filename=<file>
-i --case-insensitive
-I --pass-sigint-as-sigterm
-l <file> --logfile=<file>
-n --no-warnings
-N --no-children
-o --one-shot
-O <regexp> --only-cook=<regexp>
-p[colour] --prompt-colour[=colour]
-P <input> --pre-given=<input>
-q <chars> --quote-characters=<chars>
-m[newline substitute] --multi-line[=newline substitute]
-r --remember
-R --renice
-v --version
-s <N> --histsize=<N> (negative: readonly)
-S <prompt> --substitute-prompt=<prompt>
-t <name> --set-term-name=<name>
-w <N> --wait-before-prompt=<N> (msec, <0 : patient mode)
-z <filter command> --filter=<filter command>
bug reports, suggestions, updates:
http://utopia.knoware.nl/~hlub/uck/rlwrap/
为 lrwrap sqlplus 命令添加别名:
[root@pbr-svr1 rlwrap-0.37]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
---------------------
alias命令的用法:
1.显示当前设置的所有别名:
2.只显示某个别名代表的含义可输入alias name,比如:
3.为命令设置别名可输入alias 新命令='原命令 选项/参数',比如:
4.取消命令别名
5.一次执行多个命令
希望进行如下操作:
1.进入目录/root
2.查看目录下文件
3.切换回根目录/。
通常这需要三条命令 cd /root、ls、cd / ,如果需要经常使用那么我们可以通过自定义命令的方式用一条命令完成全部操作
a.首先使用命令 type 自定义命令名 ,查看自定义命令名是否被系统占用。从图中可以看出test命令名已被系统占用,所以不能使用,而loo这个命令名经查询可以使用。
b.使用命令alias创建自定义命令:alias loo='cd /root;ls;cd /' 。需要注意的是命令的使用格式,分号与分号之间是没有空格的。
c.测试一下自定义命令,当输入命令 loo 时,发现系统依次完成了 cd /root、ls、cd / 三条命令,说明设置成功。
同时也可直接使用命令 alias 查询系统中是否添加了loo这个自定义命令。
d.如果希望删除这个自定义命令,可以使用命令 unalias 自定义命令名 来完成。执行之后发现,loo命令已不存在,同时自定义命令库中也没有loo命令。
通过这种方式设置的别名命令只对当前登录环境下有效,退出后重新登录就无效了,如何才能使别名命令一直有效呢,
那就是修改rc配置文件,把设置别名的过程加入到系统启动后初始化用户的脚本中, 用户只需要修改 ~/.bashrc文件, 加入你要设置的别名命令即可
想要添加一个命令 oo 输入oo就能直接进入/mnt/hgfs/D/work/project/ASID/5.code/trunk/ASID/ASID/wms目录
方法:vi /etc/bashrc
在文件末尾添加alias oo='cd /mnt/hgfs/D/work/project/ASID/5.code/trunk/ASID/ASID/wms/'并保存退出
执行source /etc/bashrc 使配置生效
完成!