Linux 学习目标
熟悉 linux 操作系统,熟悉 linux 操作,熟悉 linux 常用的软件,掌握 linux 对基本命令。
能够独立的维护 lnmp 服务器环境。
一、掌握 linux 的安装
虽然目前云服务基本很少会自己安装了,不过自己学习安装可以了解到很多东西,非常必要。
二、熟悉 linux 的基本操作
- 目录操作:cd,ls,pwd,mkdir,rmdir
- 文件操作:cp,rm,mv
- 文件查看:cat,head,tail
- 文件编辑:vim 编辑器的常规使用,nano 编辑器的常规使用
- 文件查找:find 命令的使用。
- 文件打包:tar,zip,rar 等命令,主要使用 tar 命令。
- 文件及目录的权限:chown,chmod
- 磁盘操作:fdisk,mount,umount,mkfs, df,du, fstab 配置等。
- 服务器状态检查:内存,cpu,进程管理,网络等操作。
top
,free -m
,ps
,netstat
- 用户操作:用户管理,将用户加入用户组,用户组管理,用户账号管理(了解,学习,但不是重点)
- ssh 操作:ssh,ssh-keygen,ssh-copy-id,scp:ssh 密钥生成,及远程登录的工具。
三、掌握 linux 的软件安装,配置,启动,管理
- yum 安装:熟悉(主流)
- 编译安装:了解(偶尔用到)
- rpm 安装:了解(偶尔用到)
四、熟悉 linux 环境下常用的服务或软件
- ssh 服务:了解 linux sshd 服务,生成 ssh 密钥,ssh 登录等。
- ntp 服务:了解即可。
- nfs 服务:了解即可,目前用的少了
- iptables 防火墙:了解防火墙的配置规则,务必了解。
- crontab:计划任务
- systemctl:目前主流的服务管理方式。
- network:网络配置,ifconfig 命令。
- nginx:学会 nginx 的安装,配置。
- php-fpm:学会安装,配置 php-fpm,学会安装 php 扩展
- mysql:除了会安装,配置,还需要学习 mysql 数据库的基本概念,常用命令,查询语法。
- redis:出了学习安装,配置,还需要了解 redis 的常规操作,基本的数据结构。
- git:除了会安装,还需要学会 git 的常规操作
- zsh + oh my zsh: 一个能够提升用户体验及操作效率的 shell。
- filezilla: sftp 工具,跨平台文件传输工具。
- nload:用来在内部查看服务器的流量情况(按照网卡查看)
- nethogs: 用来在服务器内部查看网络使用的具体情况(按照进程查看)
- sync:文件同步服务
五、服务器管理
- 日志分析:log
- 日志切割:rotate
- 服务器性能:cpu,memory,disk,swap,df,top,netstat
六、shell 脚本
- shell:了解 shell 脚本的基本语法
- 常用命令: grep,awk,sed,exec,xargs,wc,sort
- 尝试编写脚本:定期切分日志,定期备份数据库。
七、其他运维相关
- 域名解析:A记录,mx 记录,txt记录,cname。
- 本地DNS:hosts 记录。
- ping 工具。
八、考核
- 独立构建 lnmp 服务器,架设基于 ecms 的 web 站点,做 dns 解析。
- 检查 xxx.com web 服务,以及其配置文件,查看 iptables 设置的规则,查看自启动服务,计划任务。
- 为 xxx.com 制作 https 证书。
- 为 xxx.com 做数据库备份,写脚本做定期备份。
- 查看 logrotate 文档,定期切割 xxx.com 的 nginx 日志。
- 分析 xxx.com 日志,找出一个小时以内,访问页面最多的 10 个 ip。