
3.2 在Kali Linux 2系统中安装Python编程环境
Kali Linux 2中已经安装好Python 3运行环境。打开一个终端,输入“python 3”,就可以启动Python,如图3-1所示。
可以看到,当前所使用的Python版本号为3.7.6。但是在命令行中进行编程不是很方便,最好下载一个功能更为强大的Python开发工具。

图3-1 在命令行中启动Python 3
由于Python极为热门,因此这门语言相关的开发工具也数量众多,本书实例中Python代码的编写都采用了PyCharm。目前PyCharm提供了适用于3种不同操作系统的版本,由于之前选择Kali Linux作为操作系统,因此这里首先要在Download PyCharm下方选择Linux标签。和大部分软件一样,PyCharm提供收费的专业版(Professional)和免费的社区版(Community),专业版的功能丰富,但是价格比较昂贵;社区版少了一些功能,但是不需要支付任何费用。读者可以根据自己的实际情况选择下载的版本,PyCharm社区版可以满足本书中的所有实例。图3-2中给出了不同版本PyCharm的下载页面。

图3-2 PyCharm的下载页面
直接在Kali Linux 2中下载PyCharm,速度往往不太理想,因此可以在自己的操作系统中先下载PyCharm,然后通过拖放功能移动到Kali Linux中。本书中使用的版本为pycharm-community-2019.3.3。
在Kali Linux中选中PyCharm,右击,在弹出窗口中选择Extract To选项组,把文件解压到指定路径,这里选择Downloads。在Linux中,Downloads文件夹用来存储下载的文件,默认是空的。由于当前账户kali还没有开启root权限,这里并不能将其解压到任意目录,如图3-3所示。
然后进入pycharm目录的/bin目录,其中pycharm.sh就是启动脚本。打开一个终端,然后执行“路径+pycharm.sh”来启动PyCharm。
kali@kali:~$/home/kali/Downloads/pycharm-community-2019.3.3/bin/pycharm.sh

图3-3 将PyCharm解压到Downloads
脚本执行的过程中会出现PyCharm的启动过程,一直按照提示操作即可。启动PyCharm时,系统会询问是创建新项目还是打开已有的项目,如图3-4所示。

图3-4 PyCharm的启动界面
为了方便以后再次启动PyCharm,可以将启动文件添加到/usr/bin中。具体命令如下:
Kali@kali:~$sudo ln -s /home/kali/Downloads/pycharm-community-2019.3.3/bin/py charm.sh /usr/bin/pycharm
由于账户名kali没有root权限,所以这里再次输入密码kali才能添加成功。之后只需要在命令行中输入“pycharm”(推荐使用“sudo pyharm”命令,因为很多程序需要用到root权限)就可以直接启动。第一次启动PyCharm时,需要创建一个新项目(Project),这里将其命名为test。在创建新项目时还需要选择Python程序的解释器。这里PyCharm提供了两种Python解释环境,默认的是虚拟环境,解释器(Base interpreter)为Python 3.8。如果不需要使用虚拟环境,可以在下面的已有解释器(Existing interpreter)处选择本机已经安装的Python。这里使用默认的虚拟环境,单击Create按钮即可,如图3-5所示。

图3-5 PyCharm中提供的解释器
默认的虚拟环境解释器是Python 3.8(与Kali Linux中的真实环境不同),至此项目创建成功,如图3-6所示。

图3-6 PyCharm的工作界面
接下来在PyCharm中创建文件。在项目名称的位置右击,在弹出菜单中依次选择“New”|“Python File”命令,如图3-7所示。

图3-7 在PyCharm中创建文件
在Name处输入文件名称,然后按回车键即可,如图3-8所示。

图3-8 在PyCharm中命名文件
当建立好文件之后,如图3-9所示,可以看到这个编辑器大致分成项目区、文件区和可编辑区域等几个区域。项目区列出了整个项目的结构和库文件;文件区则显示了当前打开的文件;在可编辑区域中可以编写代码。

图3-9 PyCharm的区域划分
在可编辑区域可以输入Python代码。代码保存在test.py中。例如输入以下代码:
print("hello world!")
然后在可编辑区域任意空白位置右击,在弹出菜单中选择Run 'test'命令,如图3-10所示。

图3-10 运行程序与输出结果
可编辑区域下方显示了Python代码的执行结果。
在编写程序时,也可以很方便地将需要的第三方库文件导入PyCharm中。首先单击菜单栏上的“File”|“Settings”命令,然后选择“Project: 项目名”下的“Project Interpreter”,如图3-11所示。

图3-11 导入第三方库文件
单击Settings界面右侧的“+”,弹出添加库文件界面,如图3-12所示。

图3-12 添加库文件界面
Python里的pip是官方自带的源,国内使用pip时安装过程十分缓慢,最好更换成国内的源地址。下面的地址是清华大学提供的安装源:
https://pypi.tuna.tsinghua.edu.cn/simple
单击“Available Packages”下方的“Manage Repositories”就可以添加这个源,如图3-13所示。

图3-13 添加源
然后一直单击OK按钮即可,这样同一个库文件就有两个下载地址了,当再次打开Available Packages时,可以看到同一个库文件有两个下载地址,如图3-14所示。
这里以安装本书重点库文件Scapy为例进行介绍。可以在上方的搜索栏中输入scapy,然后选中清华大学提供的安装源的那条记录,如果需要选择版本,可以勾选右侧的Specify version,通常默认即可,最后单击下方的Install Package按钮,如图3-15所示。

图3-14 列出的库文件

图3-15 安装库文件
成功安装之后,会跳出一个Package 'scapy' installed successfully的提示。之后可以在Python程序中使用Scapy库文件。