- 网络工程师的Python之路:网络运维自动化实战
- 王印
- 1088字
- 2021-01-05 18:07:27
1.3 在Linux下使用Python 3.8.2
前面提到本书只介绍在CentOS命令行终端里使用Python的方法,在GNOME桌面环境下使用Python的方法不在本书的讨论范围内。下面介绍交互模式和脚本模式在CentOS中的使用方法。
1.3.1 交互模式
我们知道,在CentOS的命令行终端里输入命令python3.8即可进入Python 3.8.2的解释器,也就进入了Python的交互模式,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-044-01.jpg?sign=1739662463-TAx9rMAJXnM57v52hPxYmvPeDDaXHP77-0-2306ae119d084a5d2638a3332f60a653)
在Python解释器里输入第一段代码print ('hello, world!'),解释器随即打印出了“hello,world!”的内容。这种“即时反馈”的特性是交互模式下特有的,脚本模式下不具备,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-044-02.jpg?sign=1739662463-vR2Eia44oTvdCw5UMyUAkZWzqWHCz3Kq-0-2a6e26a0b6bbf83574e895502a0115c9)
1.3.2 脚本模式
在CentOS的命令行终端里,我们可以使用文本编辑器来创建脚本,CentOS有几种常见的文本编辑器,如emacs、nano、vi等。这里介绍用vi创建Python脚本的方法。
关于vi的用法本书将只做简单介绍。另外,vi有一个加强版本叫作vim,两者的具体区别不在本书的讨论范围内。读者只需要知道在创建Python脚本时,vim支持语法高亮,而vi不支持。
vi不支持语法高亮,仅显示PuTTY默认字体的颜色,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-045-01.jpg?sign=1739662463-s0cVNQFKMsrgdVb4nGGFNV8Hp67EhPu6-0-9250e1c7f1b56e0472b61214da01a1a8)
vim支持语法高亮,显示彩色字体,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-045-02.jpg?sign=1739662463-272gvmCup5OekXym4Vs7CsiOI3tHTdDb-0-e2ec4b95915c087e13fbe2b957ea0486)
除此之外,两者对Python的支持并无本质区别,是否喜欢语法高亮全凭个人喜欢。只需要注意一点:vi是CentOS安装时自带的文本编辑器,vim则需要通过输入命令yum install vim安装后才能使用。
下面用实例介绍使用vi创建Python脚本的方法。
首先输入命令vi test.py,创建一个名为test.py的Python脚本,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-046-01.jpg?sign=1739662463-eRJpbYkA8iJgaixUkRKrcBwQzqZZvYF8-0-275879090b7c2316ff8da087bf21195e)
进入vi后,按“i”键进入输入模式(屏幕左下角会显示“- - INSERT - -”),输入第一段代码print ('hello, world!'),如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-046-02.jpg?sign=1739662463-JxsJbe4rFOYgvkQIoly3NxeEm4NQ35gf-0-5e9c645fd1909c1c99c763c8c8049dab)
然后按“ESC”键,在屏幕左下角的“- - INSERT - -”消失后,接着输入:wq,按回车键后即可保存文件并退出vi,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-047-01.jpg?sign=1739662463-O1VHvZVr3oPD6kyDpA30jXfbFvPwyRz7-0-b42a0c81ac033f0bf41b07f689640cce)
之后回到命令行终端,输入ls即可看到刚刚创建成功的Python脚本test.py,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-047-02.jpg?sign=1739662463-CcamhpeNWHId4H6FWf16hAPtZDoWC79C-0-8edd3a42b64e0d3679d3003a83f143c8)
1.3.3 运行Python脚本
与Windows命令行终端一样,在CentOS命令行终端也是通过输入python xxx.py来运行Python脚本的,不同的是,因为本书以Python 3.8.2为例,这里需要把python换成python3.8,写成python3.8 xxx.py来运行脚本,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-047-03.jpg?sign=1739662463-rLtwLEi5Gx2nF3uz0qIsz8nRxFF5KRms-0-a15b672c8dc9499ff678b3871999b1d2)
1.3.4 Shebang符号
在Linux和UNIX里,符号#!叫作Shebang,通常可以在Linux/UNIX系统脚本中第一行的开头看到它。它的作用是指明执行脚本文件的解释程序。写在Shebang后面的解释程序如果是一个可执行文件,则当执行脚本时,Shebang会把文件名作为参数传递给解释程序去执行。比如python3.8 test.py中的python3.8是解释程序,test.py是文件名,使用Shebang后,可以省去解释程序,把python3.8 test.py写成./test.py就可以运行Python脚本了。另外,Shebang指定的解释程序必须为可执行程序,否则系统会报错“Permission denied.”。
因此,如果你觉得每次都需要输入命令python2、python3或者python3.8来运行脚本比较麻烦,则可以在脚本的开头部分使用Shebang符号,然后在其后面加上/usr/bin/env python3来指定python3为解释程序(同理,如果你想使用python2来做解释程序,则可以写成#!/usr/bin/env python2),如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-048-01.jpg?sign=1739662463-D0OB0LqbqX1McRLHoxfXKAZPsEnSPjqj-0-cd158448b3a67099d6059cc7c5a14418)
将脚本保存并退出后,用chmod命令将test.py改为可执行,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-048-02.jpg?sign=1739662463-fmN1mHVpub3TIUacj3ljaEoVvH6VKqOi-0-f7635ffec71c2a9f901eead17c9b8b28)
然后就可以用./test.py来运行脚本,省去每次都必须输入命令python2、python3或者python3.8的麻烦,如下图所示。
![](https://epubservercos.yuewen.com/3AC371/18685354508165106/epubprivate/OEBPS/Images/39806-00-049-01.jpg?sign=1739662463-tSccEtnHHQFEEIm7tw2vtoXy2TTB1uTK-0-c0ee764ce5268cdde520ddca989bec6a)