[root]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root]# uname -a
Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root]#yum groupinstall "Development Tools"
[root]#yum install ncurses-devel readline-devel texinfo
[root]#yum install vim
[root]# rpm -q bash
bash-4.2.46-20.el7_2.x86_64
通过查看文档和自己的测试,bashdb-4.2-0.7 和centos7的bash-4.2.46版本匹配,并且编译顺利.
bashdb-4.2-0.7 下载地址 http://bashdb.sourceforge.net/
备用下载地址 http://download.csdn.net/detail/shile/9740693
解压bashdb
[root]#tar xf bashdb-4.2-0.7.tar.gz -C /usr/src
有两种方法,区别可以看bashdb的帮助信息.
不结合bash源代码编译和安装bashdb
[root]#cd /usr/src
[root]#cd bashdb-4.2-0.7
[root]#touch $HOME/missing
[root]#touch libtoolT
[root]#./configure --prefix=$HOME
[root]#make
[root]#make install
结合bash源代码编译和安装bashdb
需要准备bash源代码
a).下载bash-4.2.46-20的src.rpm(需要与bash版本号完全一样)
bash-4.2.46-20.el7_2.src.rpm http://vault.centos.org/7.3.1611/os/Source/SPackages/
b). 提取bash-4.2.46-20源代码
[root]#rpm -ivh bash-4.2.46-20.el7_2.src.rpm
[root]#cd /root/rpmbuild/SPECS
[root]#rpmbuild -bp bash.spec
此时,源代码已经安装到了/root/rpmbuild/BUILD目录
c).移动bash的源代码到/usr/src
[root]#cd /root/rpmbuild/BUILD
[root]#mv bash-4.2 bash-4.2.46-20
[root]#mv bash-4.2.46-20 /usr/src
d). 准备bash的源码环境
[root]#cd /usr/src
[root]#cd bash-4.2.46-20
[root]#./configure && make
e). 结合bash编译安装bashdb
[root]#cd /usr/src
[root]#cd bashdb-4.2-0.7
[root]#touch $HOME/missing
[root]#touch libtoolT
[root]#./configure --prefix=$HOME --with-bash-src=/usr/src/bash-4.2.46-20
[root]#make
[root]#make install
[root]#vi ~/.bash_profile
在最后添加
MANPATH=$HOME/share/man:$MANPATH
export MANPATH
INFOPATH=$HOME/share/info
export INFOPATH
然后,生效新的设置.
[root]#. ~/.bash_profile
设置inc文件路径.[重要]
[root]#mkdir /usr/share/bashdb/
[root]#ln -s ~/share/bashdb/bashdb-main.inc /usr/share/bashdb/
[root]#bash --debugger yourscript.sh var1 var2
一些常用的调试方法
run 运行
R 重启
l m n 列出m到n行之间的代码
b n 在第n行设断点
L 列出所有断点
d n 删除第n行的断点
D 删除所有断点
W var 观察var
n 单步执行
s 单步执行,进入函数
print $var显示var,观察用,用得最多的命令
T 观察栈
skip 跳过要执行的命令
ret 执行完到函数返回
finish 执行到程序结束
a n cmd 在第n行执行cmd命令行为
A 取消所有添加的行为
q 退出调试
从vim.org下载插件:
[root]#cd /usr/src
[root]#wget -O bash-support.zip http://www.vim.org/scripts/download_script.php?
src_id=9890
或者 从github下载插件: https://github.com/vim-scripts/bash-support.vim
[root]#mkdir ~/.vim # if the directory does not exist already
[root]#cd ~/.vim
[root]#unzip /usr/src/bash-support.zip
Add the following line to the ~/.vimrc to enable the plugin for Vim editor.
把下列行添加到~/.vimrc文件来启动这个Vim编辑器的插件。
[root]#vim ~/.vimrc
filetype plugin on
This is the minimal content of the file '$HOME/.vimrc'. Create one if there is none or use the files in $HOME/.vim/bash-support/rc as a starting point.
就可以使用bash-support的多种功能,详情可以查看自带帮助,好多快捷键.
在vim里面运行 :help bash-support,可以在vim里面打开手册.
远程连接centos7,vim里面按F9调试,是在打开的xterm里面打开bashdb调试,需要
[root]#yum install xterm xorg-x11-xauth
安装完毕后,断开ssh重新连接ssh生效。同时,需要开启x转发,以及xserver。
如果只在shell直接运行bash –debugger或者bashdb命令行调试,可以不考虑上面的X相关的步骤。
在本地终端的vim里面按F9,仍然是在终端里面运行调试,也不用考虑上面的X相关的步骤。