Linux Shell 和 Python 是两种非常强大且互补的工具,常用于自动化任务、系统管理、数据处理和软件开发,下面我将分别介绍它们的特点、常见用法以及如何在 Linux 环境中结合使用。
Linux Shell 简介
什么是 Shell?
Shell 是用户与操作系统内核之间的接口,负责解释并执行命令,常见的 Shell 包括:
- Bash(Bourne Again Shell):Linux 默认 Shell
- Zsh:功能更强大,支持插件和主题
- Fish:用户友好,自动建议命令
基本命令示例
# 查看当前目录 pwd # 列出文件 ls -l # 创建目录 mkdir mydir # 复制文件 cp file1.txt file2.txt # 查看文件内容 cat file.txt # 管道操作:将前一个命令的输出作为下一个命令的输入 ps aux | grep python # 重定向输出 echo "Hello" > output.txt
Shell 脚本示例
创建一个名为 hello.sh 的脚本:
#!/bin/bash echo "Hello, World!" date uname -a
赋予执行权限并运行:
chmod +x hello.sh ./hello.sh
Python 简介
什么是 Python?
Python 是一种高级、解释型、通用编程语言,广泛应用于:
- 自动化脚本
- 数据分析
- Web 开发
- 人工智能/机器学习
基本语法示例
# 打印输出
print("Hello, World!")
# 变量与类型
name = "Alice"
age = 30
is_student = True
# 条件判断
if age >= 18:
print("Adult")
else:
print("Minor")
# 循环
for i in range(5):
print(i)
# 函数定义
def greet(name):
return f"Hello, {name}!"
print(greet("Bob"))
在 Linux 中运行 Python
确保已安装 Python(大多数 Linux 发行版预装 Python 3):
python3 --version
运行脚本:
python3 script.py
Shell 与 Python 的结合使用
在 Shell 脚本中调用 Python
#!/bin/bash echo "Starting Python script..." python3 my_script.py echo "Done!"
在 Python 中调用 Shell 命令
使用 subprocess 模块:
import subprocess # 执行 shell 命令 result = subprocess.run(["ls", "-l"], capture_output=True, text=True) print(result.stdout) # 执行复杂命令 output = subprocess.check_output(["echo", "Hello from Python"]) print(output.decode().strip())
使用 os 或 shutil 模块
import os
import shutil
# 创建目录
os.makedirs("new_dir", exist_ok=True)
# 复制文件
shutil.copy("source.txt", "destination.txt")
结合使用示例:自动化备份脚本
Shell 脚本 backup.sh:
#!/bin/bash BACKUP_DIR="/backup/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR # 调用 Python 脚本进行压缩 python3 compress.py $BACKUP_DIR echo "Backup completed!"
Python 脚本 compress.py:
import sys
import tarfile
import os
backup_dir = sys.argv[1]
source_dir = "/home/user/data"
tar_path = os.path.join(backup_dir, "data.tar.gz")
with tarfile.open(tar_path, "w:gz") as tar:
tar.add(source_dir, arcname="data")
print(f"Backup saved to {tar_path}")
最佳实践
| 场景 | 推荐工具 |
|---|---|
| 简单文件操作、系统监控 | Shell |
| 复杂逻辑、数据处理、API 调用 | Python |
| 快速原型、自动化流程 | 两者结合 |
注意事项:
- 避免在 Shell 中处理复杂逻辑,优先使用 Python。
- 在 Python 中调用 Shell 命令时,注意安全风险(如注入攻击),尽量使用
subprocess而非os.system()。 - 使用
#!/usr/bin/env python3作为 Python 脚本的 shebang,提高兼容性。
学习资源推荐
-
Shell:
- 《Bash Guide for Beginners》
- ShellCheck:Shell 脚本静态检查工具
-
Python:
- 官方文档:https://docs.python.org/3/
- 书籍:《Python Crash Course》《Automate the Boring Stuff with Python》
-
结合使用:
- 《Linux Shell Scripting Cookbook》
- 在线教程:Real Python、GeeksforGeers
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/485911.html



