本教材使用方法
至少学习两次
第一次花30天快速学完基础运维篇与应用运维篇,去找Linux运维岗位
第二次花100天学完正文,去找Linux运维岗位

Linux简史

为何要从"Linux简史"这个标题开始Linux的学习?

“你对于那个问题不能解决吗?那末,你就去调查那个问题的现状和它的历史吧!你完完全全调查明白了,你对那个问题就有解决的办法了。”——《反对本本主义》

普林斯顿体系结构与哈佛体系结构
冯诺伊曼(这哥们真是实打实的跨界牛人)

“冯.诺伊曼是无与伦比的,他不过在经济学领域蜻蜓点水,这一领域便今非昔比了。”——诺贝尔经济学奖获得者萨缪尔森"

冯诺伊曼结构
运算器
存储器
输入输出设备

贝尔实验室
Unix-like OS

Linux是类UNIX系统
林纳斯.托瓦兹()

Linux具体是指操作系统内核(kernel),Linux系统运维工程师日常接触的是RedHat/CentOS、Debian/Ubuntu、Kali等Linux发行版,其中CentOS7在业界占比较多,Ubuntu在学界使用较多(主要是进行机器学习计算),所以从部署CentOS与Ubuntu系统开始学习Linux,是极佳的入门方式。

本节扩展资源

  1. 《UNIX传奇》:https://book.douban.com/subject/35292726/
  2. 《天才的拓荒者:冯·诺伊曼传》:https://book.douban.com/subject/3464889/

Lab1 基于虚拟机安装CentOS 7

  1. 浏览器访问CentOS 7 .iso镜像文件阿里镜像源下载CentOS-7-x86_64-DVD-2009.iso文件
  2. 安装VMware
  3. 安装配置(磁盘分区、root密码、选择安装)
  4. 安装SSH连接软件,Xshell
  5. 连接CentOS7 的bash环境

Lab2 基于云服务器安装Ubuntu 22.04

  1. 点击阿里云进入网页控制台
  2. 注册登录
  3. 按需使用
  4. ECS
  5. 弹性IP
  6. 安全组

本章仅教学日常工作高频使用的Linux命令行基础命令,更多详见man手册和tldr

基础命令

Linux命令格式为命令名称 命令参数 命令对象
其中命令参数分为UNIX/POSIX风格BSD风格GNU风格三种
可移植操作系统接口(POSIX,)

Linux命令分为内建命令外部命令两种
内建命令,由Shell本身提供
echo
常用于调试打印(如验证环境变量是否成功加载)
日常运维实践示例

  • 执行echo $JAVA_HOME验证当前环境Java环境变量是否非空

简单文本操作
文件名不存在时创建文件,文件名存在时修改文件时间标志
touch 2025-08-26.log

如何确定上传到服务器的文件与本地文件是否为同一文件?
基于文件的md5值校验判断
md5sum 2025-08-26.log

文件的node

输入输出流处理
> 符可以重定向输入输出流
日常运维实践示例

  • 执行> access.log清空文件内容但不删除文件

$USER
外部命令
查找命令路径
which
which ls

如何判断一条命令是内建命令还是外呼命令?
基于type命令,如执行type 'echo'输出,执行type 'mkdir'输出

ps aux | grep 进程名称
ps aux | grep python3
PID

文件与目录管理
/etc/
/proc/
/proc/进程的PID
/var/
/opt/
/tmp/
/home/
一般在运维实践中还会创建/data//appapplog等目录
Linux:一切皆文件的理念与实践
执行vim /etc/
标准FSB目录结构
ls -ahl --color=auto
alias ll=‘ls -ahl’
mkdir -p 创建目录
cd
cd …
cd ~ 切换到当前用户家目录

软链接
ln -s
硬链接
ln
mount -l
路径映射

权限管理
读取权限 r 4
写入权限 w 2
执行权限 x 1

永远不要轻易执行chmod 777😂
可以替换为chmod 755保证任何用户都拥有读取与执行的权限

Lab 在测试虚拟机先打快照,再执行chmod -R 777 / 后新开xshell窗口测试ssh连接
cp -a
cp -n
tail -n 2000
tail -f

vim
wq保存并退出
q!不保存强制退出
批量替换
wc -l 统计文件行数
du -sh 查询文件或目录大小
浏览大文件时禁止用vim
less
tail -n 2000

本节扩展资源
《Vim实用技巧(第2版》:https://book.douban.com/subject/26967597/

压缩
gzip
bzip
xz
zip
unzip
.tar.gz
使用更现代的.tgz后缀
tar -zcvf ROOT.tgz ./ROOT
tar -xf ROOT.tgz

网络管理
ip addr简化ip a
ip route show查看路由表
ip route add via
nslookup
ss
netstat
net-tools 包
tcpdump
nmcli dev status

日常巡检

top 更现代的工具htop
free
df -h

系统管理
/etc/systemd/system/ .service后缀为systemd管理器单元配置文件
systemd
init进程 初始进程
systemctl deamon-reload
systemctl enable 服务名称 --now
systemctl start 服务名称
systemctl status 服务名称
systemctl stop 服务名称

磁盘挂载
mount
路劲映射

文本处理三剑客

grep
^匹配开头 $匹配结尾
grep -e
grep -F 强制

sed流式编辑器
-n
-i.bak 备份文件并直接修改文件内容

awk
awk -F ‘@’ ‘{print $NF}’ 以@为分隔符,打印最后一列
pip install grepexercises sedexercises awkexercises安装TUI练习工具
命令行执行grepexercises进入练习control + n下一题,control + p上一题

网络工具
curl
wget
ping
ping -C
测试TCP端口:telnet 对端IP地址 对端IP的TCP端口
测试UDP端口nc -zvu 对端IP地址 对端IP的UDP端口
远程连接

直接 ssh IP地址使用默认用户root与默认端口22
ssh -P 222 用户名@IP地址
ssh -vvv
堡垒机jumpserver
ssh免密配置

文件约定

/etc/profile系统级环境变量
/etc/fstab永久挂载 mount -a
/var/log/message

部署应用

依赖安装
操作系统包管理器安装
执行ls /etc/yum.repos/查看后缀名为.repo的软件源配置文件
yum dnf
yum install -y 软件名
apt-get
apt
apt update
apt install -y 软件名
源码编译安装
编译构建.rpm与.deb安装包
根据.iso文件构建yum与apt本地仓库

Shell脚本
bash

安装Python

pip3 install tldr
type "tldr"

sh -n
sh -x 开启bash的DEBUG模式

#!/usr/bin/env bash
#!/usr/bin/bash

分支结构
循环结构
for循环

while循环读取每行文件

while IFS= read -r line; do
    echo "${line}"
done < file

脚本输出流处理
1
2

文件结束EOF

本节扩展资源
中文man手册:https://github.com/man-pages-zh/manpages-zh
Linux101:https://101.lug.ustc.edu.cn/
tldr:https://github.com/tldr-pages/tldr

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐