1:为什么需要学习Linux系统

Linux系统概述

Linux是基于Linux内核发布的操作系统统称。Linux内核最初由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写。

Linux系统特点:

  • 免费使用和自由传播的类Unix操作系统
  • 基于POSIX和UNIX标准
  • 多用户、多任务、支持多线程和多CPU
  • 支持32位和64位硬件
  • 以网络为核心的设计思想
  • 性能稳定的多用户网络操作系统

Linux发行版本

目前市面上较知名的发行版有:

主流发行版本:

  • Ubuntu - 用户友好的桌面系统
  • RedHat/CentOS - 企业级服务器首选
  • Debian - 稳定可靠的社区发行版
  • Fedora - RedHat的社区版本
  • openSUSE - 欧洲流行的发行版
  • Arch Linux - 滚动更新的轻量级系统

Linux应用领域

Linux在各种场合都有广泛应用:

主要应用场景:

  • 服务器领域 - 占据96%市场份额
  • 超级计算机 - 几乎占领全部市场
  • 云计算基础设施 - 占据90%市场份额
  • 智能手机 - Android基于Linux内核,占有85%市场份额
  • 嵌入式设备 - 路由器、智能家居等

常用服务器组合:

  • LAMP(Linux + Apache + MySQL + PHP/Perl/Python)
  • LNMP(Linux + Nginx + MySQL + PHP/Perl/Python)

为什么选择Linux?

稳定性优势:

  • 可连续运行多年而不发生重大问题
  • 很多用户从未遇到过系统崩溃
  • 相对于Windows,挂起和崩溃极少发生

安全性优势:

  • 开源透明,不存在隐藏后门
  • 权限管理严格,病毒较少
  • 社区及时修复安全漏洞

市场地位:
截至2021年底统计数据显示,Linux在关键领域占据绝对主导地位,对于从事IT行业的人员来说,Linux是必须掌握的核心技能。

2:Linux系统目录层级结构

核心目录详解

目录 用途说明 重要性
/bin 存放最经常使用的命令(binary的缩写) ⭐⭐⭐⭐⭐
/sbin 系统管理员使用的系统管理程序 ⭐⭐⭐⭐
/home 普通用户的主目录 ⭐⭐⭐⭐
/root 系统管理员(root)的主目录 ⭐⭐⭐
/lib 系统最基本的动态连接共享库 ⭐⭐⭐⭐
/etc 系统配置文件目录 ⭐⭐⭐⭐⭐
/usr 用户应用程序和文件目录 ⭐⭐⭐⭐
/boot 启动Linux时使用的核心文件 ⭐⭐⭐⭐
/proc 虚拟目录,系统内存映射 ⭐⭐⭐
/tmp 临时文件目录 ⭐⭐
/dev 设备文件目录 ⭐⭐⭐⭐
/opt 额外安装软件目录 ⭐⭐

路径表示方法

绝对路径: 从根目录开始的完整路径

1
/home/user/documents/file.txt

相对路径: 以当前路径为参考的路径

1
2
./documents/file.txt
../other/file.txt

重要目录注意事项

切勿随意修改的目录:

1
2
3
4
5
/etc - 系统配置文件,修改可能导致系统无法启动

/bin, /sbin - 系统核心命令目录

/boot - 启动文件,删除会导致系统无法启动

用户相关目录:

1
2
3
/bin, /usr/bin          - 普通用户使用的命令

/sbin, /usr/sbin - root用户使用的系统管理命令

vim/vi编辑器使用

编辑器概述

VI是Unix系统中最通用的文本编辑器,VIM是从VI发展出来的更强大版本。
VIM优势:

  • 语法高亮显示

  • 代码自动补全

  • 多级撤销功能

  • 多种插件支持

VIM四种模式

  • 模式转换关系:
    1
    2
    3
    4
    5
    正常模式 ←→ 插入模式

    命令模式

    视图模式

各模式功能:

  • 正常模式 - 移动光标、复制粘贴、删除等操作

  • 插入模式 - 文本输入和编辑

  • 命令模式 - 保存、退出、搜索替换等命令

  • 视图模式 - 块选择、多行操作

常用操作命令

正常模式命令

1
2
3
4
5
6
7
8
9
10
11
# 光标移动
h/j/k/l # 左/下/上/右
0/$ # 行首/行尾
gg/G # 文件开头/结尾

# 编辑操作
dd # 删除当前行
yy # 复制当前行
p/P # 粘贴
u # 撤销
Ctrl+r # 重做

插入模式进入方法

1
2
3
4
5
6
i          # 在光标前插入
I # 在行首插入
a # 在光标后插入
A # 在行尾插入
o # 在当前行下方新建行
O # 在当前行上方新建行

命令模式常用命令

1
2
3
4
5
6
:w         # 保存文件
:q # 退出
:wq # 保存并退出
:q! # 强制退出不保存
:set nu # 显示行号
:/字符 # 搜索模式

分屏操作

1
2
3
:vs 文件名    # 垂直分屏
:sv 文件名 # 水平分屏
Ctrl+w +方向 # 切换分屏

忘记密码的破解方法(CentOS 7/8)

密码恢复步骤

  • 第一步:进入内核参数编辑
    1
    系统启动时,在内核版本选择界面按 e 键
  • 第二步:修改启动参数
    1
    2
    # 删除启动参数直到ro位置,添加:
    rd.break
  • 第三步:引导启动
    1
    按 Ctrl+x 引导启动Linux
  • 第四步:重新挂载目录
    1
    mount -o remount,rw /sysroot
  • 第五步:切换根目录
    1
    chroot /sysroot
  • 第六步:修改密码
    1
    echo "新密码" | passwd --stdin root
  • 第七步:重建SELinux标签
    1
    touch /.autorelabel
  • 第八步:退出系统
    1
    2
    exit  # 退出chroot环境
    exit # 退出系统
    系统将自动重新引导,使用新密码登录。

Linux远程登录

远程登录原理

Linux通过SSH服务实现远程登录,默认端口22。
常用SSH客户端
Xshell - 功能强大的Windows SSH客户端

MobaXterm - 集成了多种工具的终端

PuTTY - 轻量级SSH客户端

SecureCRT - 商业级终端仿真器

帮助系统使用

三种帮助命令:

1
2
3
man 命令名      # 查看完整手册
help 命令名 # 查看内置命令帮助
info 命令名 # 查看信息文档

Linux命令使用注意事项

重要规则:

  • 严格区分大小写 - 大小写代表不同的文件和命令

  • 空格分隔 - 命令、参数之间用空格分隔

  • 路径分隔符 - 使用 / 而不是 \

  • 理解路径 - 清楚绝对路径和相对路径的区别

特殊符号详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 注释符
# 这是注释内容

# 历史命令
!ls # 执行最近的ls命令

# 变量引用
echo $HOME # 输出家目录路径

# 通配符
*.txt # 匹配所有.txt文件
file?.txt # 匹配file1.txt等
file[1-5].txt # 匹配file1.txt到file5.txt

# 命令序列
{command1; command2} # 顺序执行命令

什么是Shell

Shell定义:
Shell是用户与Linux内核之间的接口程序,它接收用户输入的命令并转换成内核理解的语言。
常见Shell类型:

  • Bash - Bourne Again Shell,最常用的Shell

  • Zsh - 功能丰富的现代Shell

  • Fish - 友好的交互式Shell

子Shell应用:

1
2
3
4
5
6
7
8
# 环境隔离
(cd /tmp && ls) # 不影响当前目录

# 并行处理
(sleep 5; echo "完成") & # 后台运行

# 复杂管道
(command1 | command2) | command3