下面是详细的攻略,我将分部分介绍:
1. 前置条件
在开始之前,我们需要确保以下几点:
- 拥有一台Linux服务器,该服务器能够通过ssh方式远程访问;
- 在本地电脑安装Python编程语言以及相关的库,如paramiko。
2. 安装paramiko库
paramiko
是Python中处理SSH连接的库。我们需要安装该库,以便于编写Python代码连接Linux命令行。
在命令行中输入以下命令进行安装:
pip install paramiko
3. 连接Linux命令行
接下来,我们可以开始编写Python代码连接Linux命令行。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接Linux服务器
ssh.connect("localhost", port=22, username="root", password="123456")
# 在Linux命令行上执行命令
stdin, stdout, stderr = ssh.exec_command("ls -l")
# 输出结果
print(stdout.read().decode())
# 关闭连接
ssh.close()
以上代码的流程如下:
- 首先导入
paramiko
库; - 创建
SSHClient
对象,并设置允许自动添加SSH密钥; - 连接Linux服务器;
- 在Linux命令行上执行命令
ls -l
,并将结果保存到stdin
、stdout
和stderr
对象中; - 打印
stdout
对象中的结果; - 关闭连接。
4. 示例1:创建目录
接下来,我们将尝试在Linux命令行上创建一个目录。我们可以参考以下代码示例:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接Linux服务器
ssh.connect("localhost", port=22, username="root", password="123456")
# 创建目录
stdin, stdout, stderr = ssh.exec_command("mkdir /root/test_directory")
# 输出结果
print(stdout.read().decode())
# 关闭连接
ssh.close()
以上代码的流程与前面的示例类似。我们在Linux命令行上执行mkdir /root/test_directory
命令,创建一个名为test_directory
的目录。执行命令后,我们可以通过stdout
对象获取到结果。
5. 示例2:上传文件
在实际应用中,我们可能需要将本地电脑中的文件上传至Linux服务器上。我们可以通过paramiko
库实现该功能。
以下是上传文件的示例代码:
import paramiko
import os
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接Linux服务器
ssh.connect("localhost", port=22, username="root", password="123456")
# 本地文件路径
local_path = "/Users/test/test-file.txt"
# 远程文件路径,将文件上传至/root目录下
remote_path = "/root"
# 利用sftp实现文件上传
sftp = ssh.open_sftp()
sftp.put(local_path, os.path.join(remote_path, os.path.basename(local_path)))
sftp.close()
# 打印上传成功
print("文件上传成功")
# 关闭连接
ssh.close()
我们首先通过open_sftp()
方法创建一个SFTP
对象,然后使用put()
方法将本地电脑上的文件上传至Linux服务器上。完成上传后,我们可以打印文件上传成功
。
参考以上攻略和代码示例,你就可以通过Python连接Linux命令行了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过python连接Linux命令行代码实例 - Python技术站