Linux简介
Linux是一种开源的类Unix操作系统,广泛应用于服务器、桌面和嵌入式设备。常见的Linux发行版包括 Ubuntu、CentOS 和 Debian,它们各有特色,但都以稳定性和安全性著称。
与图形界面相比,Linux的**命令行界面(CLI)**是与系统交互的主要方式。CLI不仅高效、灵活,还特别适合自动化任务。通过CLI,用户可以管理系统文件、配置网络、监控性能等。
自动化在运维中的重要性不容忽视。随着系统规模扩大,手动操作变得繁琐且易出错。自动化能带来以下优势:
- 提高效率:自动执行重复性任务,节省时间。
- 减少错误:减少人为干预,降低失误风险。
- 增强一致性:确保任务在不同环境中一致执行。
- 提升可审计性:记录自动化流程,便于追踪。
基本CLI命令
掌握基本的CLI命令是Linux自动化的起点。以下是文件管理、权限设置和进程查看领域的核心命令。
1. 文件管理
- ls:列出目录内容。
- 示例:
ls -l
以长格式显示文件详情。
- 示例:
- cd:更改当前目录。
- 示例:
cd /var/log
切换到日志目录。
- 示例:
- pwd:显示当前目录路径。
- mkdir:创建新目录。
- 示例:
mkdir backups
创建名为“backups”的目录。
- 示例:
- rm:删除文件或目录。
- 示例:
rm -r old_logs
删除“old_logs”目录及其内容。
- 示例:
- cp:复制文件或目录。
- 示例:
cp config.txt backup/
将文件复制到“backup”目录。
- 示例:
- mv:移动或重命名文件。
- 示例:
mv old.txt new.txt
重命名文件。
- 示例:
2. 权限设置
Linux通过权限控制文件访问,权限包括读(r)、写(w)**和**执行(x),分别适用于文件所有者、所属组和其他用户。
- chmod:修改权限。
- 示例:
chmod 755 script.sh
设置脚本为所有者可读写执行,其他人可读执行。
- 示例:
- chown:更改所有者和所属组。
- 示例:
chown user:group file.txt
将文件归属改为“user”和“group”。
- 示例:
3. 进程查看
进程是运行中的程序实例,监控和管理进程是运维的基础。
- ps:显示进程快照。
- 示例:
ps aux
查看所有用户进程的详细信息。
- 示例:
- top:实时显示进程和资源使用情况。
- kill:终止进程。
- 示例:
kill 1234
停止PID为1234的进程。
- 示例:
- grep:搜索文本,常用于过滤输出。
- 示例:
ps aux | grep apache
查找Apache相关进程。
- 示例:
Shell入门
Shell 是用户与Linux内核之间的桥梁,Bash(Bourne Again SHell) 是最常用的Shell。它支持:
- 命令执行:直接运行命令。
- 脚本编写:将命令组合成可执行脚本。
- 管道和重定向:如 | 将输出传递给另一命令,> 将输出保存到文件。
在自动化中,Bash脚本 是核心工具。通过脚本,可以将多个命令整合,实现复杂任务的自动化。
初探自动化:使用cron调度简单任务
cron 是Linux内置的任务调度工具,可定时执行命令或脚本,常用于备份、清理等任务。
cron基础
-
crontab:每个用户有独立的crontab文件,用于定义调度任务。
-
语法:每行一个任务,格式为:
`* * * * * command_to_execute`
依次代表:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-7)。
实践示例:定时清理临时文件
目标:每天凌晨2点清理 /tmp 中超过7天的文件。
-
编写脚本: 创建 clean_tmp.sh
#!/bin/bash find /tmp -type f -mtime +7 -exec rm {} \;`
- find 查找文件,-mtime +7 表示超7天,-exec rm 删除。
-
设置cron: 运行 crontab -e,添加:
0 2 * * * /path/to/clean_tmp.sh`
表示每天2:00执行脚本。
-
验证: 用 crontab -l 检查任务。
总结
本文介绍了Linux自动化的基础,包括Linux简介、CLI命令、Shell入门和cron调度。