杰瑞科技汇

Linux 操作系统实用教程,如何快速上手?

Linux 操作系统实用教程

目录

  1. 第一部分:Linux 基础入门

    Linux 操作系统实用教程,如何快速上手?-图1
    (图片来源网络,侵删)
    • 什么是 Linux?
    • 为什么学习 Linux?
    • Linux 发行版介绍与选择
    • 如何安装 Linux(以 Ubuntu 为例)
    • 第一次启动与图形界面概览
  2. 第二部分:核心概念与文件系统

    • Linux 的哲学思想:一切皆文件
    • Linux 文件系统结构(FHS)
    • 核心目录详解 (, /home, /etc, /var 等)
    • 绝对路径与相对路径
  3. 第三部分:核心技能一:Shell 命令行操作

    • 什么是 Shell?为什么它如此重要?
    • 终端模拟器简介
    • 基础命令速查表
      • 文件和目录操作 (ls, cd, pwd, mkdir, touch, cp, mv, rm)
      • 查看 (cat, more, less, head, tail)
      • 文本处理 (grep, find, wc)
      • 权限管理 (chmod, chown, chgrp)
      • 压缩与解压 (tar, gzip, zip)
      • 系统信息 (uname, top, df, free)
      • 用户管理 (useradd, passwd, su, sudo)
      • 关机与重启 (shutdown, reboot, halt)
    • 命令行技巧:Tab 自动补全、历史命令、通配符
  4. 第四部分:核心技能二:软件包管理

    • 什么是软件包管理器?
    • Debian/Ubuntu 系统 (apt)
    • RedHat/CentOS/Fedora 系统 (yum, dnf)
    • 使用 Snap 和 Flatpak(跨发行版方案)
  5. 第五部分:文本编辑器:Vim 入门

    Linux 操作系统实用教程,如何快速上手?-图2
    (图片来源网络,侵删)
    • 为什么是 Vim?(高效、无处不在)
    • Vim 的三种模式:普通模式、插入模式、末行模式
    • 基本操作指南(打开、保存、退出、移动、删除、复制粘贴)
    • 强大的 Vim 资源
  6. 第六部分:进程管理与服务控制

    • 什么是进程?
    • 查看进程 (ps, top, htop)
    • 控制进程 (kill, pkill, jobs, fg, bg)
    • Systemd:现代 Linux 的服务管理 (systemctl)
  7. 第七部分:网络配置与常用命令

    • 查看网络信息 (ip addr, ifconfig)
    • 网络连通性测试 (ping, traceroute, mtr)
    • 网络数据传输 (curl, wget)
    • 端口与网络服务 (netstat, ss)
  8. 第八部分:Shell 脚本编程入门

    • 什么是 Shell 脚本?
    • 第一个脚本:Hello, World!
    • 变量、条件判断 (if-else)、循环 (for, while)
    • 函数与参数传递
  9. 第九部分:学习路径与资源推荐

    Linux 操作系统实用教程,如何快速上手?-图3
    (图片来源网络,侵删)
    • 进阶学习方向
    • 推荐书籍、网站和社区

第一部分:Linux 基础入门

1 什么是 Linux?

Linux 是一套免费使用和自由传播的类 Unix 操作系统内核,它由林纳斯·托瓦兹(Linus Torvalds)在 1991 年首次发布,我们通常所说的 "Linux",其实是指包含了 Linux 内核和各种 GNU 工具的完整操作系统,即 Linux 发行版

2 为什么学习 Linux?

  • 服务器领域霸主:全球超过 90% 的服务器、云计算平台(如 AWS, Azure, GCP)都运行着 Linux,是后端开发、运维、云计算工程师的必备技能。
  • 开发者的首选环境:许多编程语言(如 Python, Go, Rust, Node.js)在 Linux 上有最佳的开发和运行体验,Docker、Kubernetes 等容器化技术也基于 Linux。
  • 稳定与安全:Linux 以其出色的稳定性、安全性和高并发处理能力而闻名。
  • 免费与开源:你可以免费使用、修改和分发其源代码,拥有极高的自由度。
  • 强大的可定制性:从内核到桌面环境,你可以完全根据自己的需求定制系统。

3 Linux 发行版介绍与选择

发行版是将 Linux 内核与 GNU 软件、桌面环境、应用软件打包而成的操作系统。

  • 新手推荐
    • Ubuntu:最流行的桌面发行版,社区庞大,文档丰富,硬件兼容性好,有长期支持版本,非常稳定。
    • Linux Mint:基于 Ubuntu,提供更接近 Windows 的传统桌面体验,开箱即用。
  • 进阶用户/开发者推荐
    • Debian:Ubuntu 的上游,以稳定著称,软件包极其丰富。
    • Fedora:Red Hat 的社区版,拥有最新的软件和技术,是 RHEL(Red Hat Enterprise Linux)的前身。
    • Arch Linux:滚动更新,安装过程需要手动配置,但能让你深入了解系统,极度灵活。
  • 服务器推荐
    • Ubuntu Server:社区支持好,部署简单。
    • CentOS Stream / Rocky Linux / AlmaLinux:企业级稳定,与商业版 RHEL 高度兼容。

建议:如果你是初学者,请从 Ubuntu Desktop 开始,它提供了一个友好的图形界面,让你可以平滑过渡到命令行。

4 如何安装 Linux(以 Ubuntu 为例)

  1. 下载镜像:访问 Ubuntu 官网 下载最新的桌面版 ISO 镜像文件。
  2. 制作启动盘
    • Windows: 使用 RufusbalenaEtcher 工具。
    • macOS: 使用 balenaEtcher 或命令行工具 dd
  3. BIOS/UEFI 设置:重启电脑,在开机时按特定键(如 F2, F12, Del)进入 BIOS/UEFI 设置,将启动顺序第一项设置为你的 U 盘。
  4. 开始安装:从 U 盘启动后,选择 "Install Ubuntu" 开始图形化安装过程,按照提示选择语言、时区、键盘布局,并进行分区(新手建议选择 "清除整个磁盘并安装")。
  5. 创建用户:设置一个用户名和密码,这个用户默认具有 sudo 权限(管理员权限)。

5 第一次启动与图形界面概览

启动后,你会看到一个类似 Windows 或 macOS 的桌面环境,包含:

  • 桌面图标
  • 任务栏:通常在底部,包含“应用程序”菜单、运行程序、通知区和系统托盘。
  • 文件管理器:类似 Windows 的资源管理器。
  • 设置中心:用于调整系统外观、网络、账户等。

关键一步:点击桌面左上角的“应用程序”菜单,找到并打开 “终端” (Terminal),这是你未来与 Linux 深度交流的主要窗口。


第二部分:核心概念与文件系统

1 Linux 的哲学思想:一切皆文件

在 Linux 中,几乎所有东西都被视为文件,包括:

  • 普通文件(文本、图片)
  • 目录
  • 硬件设备(如硬盘 /dev/sda,鼠标 /dev/mouse
  • 套接字、管道等

这使得你可以用统一的命令(如 cat, echo)来处理它们,非常优雅。

2 Linux 文件系统结构

Linux 文件系统是树状结构,有且只有一个根目录 ,与 Windows 的 C:\, D:\ 不同,所有设备和文件都挂载到这棵树上。

3 核心目录详解

目录 用途
根目录,唯一顶级目录
/bin 存放基本命令的可执行文件(如 ls, cp, mv),所有用户可用
/sbin 存放系统管理员使用的系统命令(如 fdisk, reboot
/etc 系统配置文件的目录(如 network, passwd
/dev 设备文件目录(如 sda, tty
/proc 虚拟文件系统,存储内核与进程信息(如 cpuinfo, meminfo
/var 经常变化的文件,如日志 (/var/log)、缓存、邮件
/home 普通用户的家目录,存放个人文件和配置
/usr 用户安装的软件和程序(类似 Program Files),最大目录
/tmp 临时文件目录,重启后通常被清空
/boot 启动文件,如 Linux 内核 (vmlinuz) 和引导加载程序
/lib 系统库文件,被 /bin/sbin 中的程序使用
/opt 可选的大型软件包,如 Google Chrome, Office
/mnt, /media 临时挂载点,用于挂载 U 盘、光盘等

4 绝对路径与相对路径

  • 绝对路径:从根 开始的完整路径,唯一确定一个位置。/home/user/Documents/report.txt
  • 相对路径:从当前目录开始的路径。
    • : 代表当前目录。
    • : 代表上级目录。
    • : 代表当前用户的家目录(~/Downloads)。

第三部分:核心技能一:Shell 命令行操作

Shell 是用户与 Linux 内核交互的桥梁,最常见的是 Bash Shell。

1 基础命令速查表

提示:所有命令都可以用 man [命令名] 查看详细手册(man ls)。

文件和目录操作 | 命令 | 全称 | 功能 | 示例 | | :--- | :--- | :--- | :--- | | ls | list | 列出目录内容 | ls -l (长格式), ls -a (隐藏文件) | | cd | change directory | 切换目录 | cd /home, cd .., cd ~ | | pwd | print working directory | 显示当前工作目录 | pwd | | mkdir | make directory | 创建新目录 | mkdir new_folder | | touch | - | 创建空文件或更新文件时间戳 | touch file.txt | | cp | copy | 复制文件或目录 | cp source.txt dest.txt, cp -r dir1/ dir2/ (递归复制目录) | | mv | move | 移动/重命名文件或目录 | mv old_name new_name, mv file.txt /path/to/dest/ | | rm | remove | 删除文件或目录 | rm file.txt, rm -r dir/ (递归删除), rm -f file.txt (强制删除) | 查看** | 命令 | 功能 | 示例 | | :--- | :--- | :--- | | cat | 显示整个文件内容 | cat large_file.log (慎用) | | more | 分页显示文件内容 | cat file.txt \| more | | less | 更强大的分页显示,可前后翻页 | less file.txt | | head | 显示文件开头几行 | head -n 20 file.txt (显示前20行) | | tail | 显示文件结尾几行 | tail -n 20 file.txt (显示后20行), tail -f log.txt (实时跟踪日志) |

文本处理 | 命令 | 功能 | 示例 | | :--- | :--- | :--- | | grep | 文本搜索 | grep "error" /var/log/syslog (在syslog中搜索"error") | | find | 在文件系统中查找文件 | find /home -name "*.txt" (在home目录下查找所有txt文件) | | wc | 统计文件的行数、字数、字节数 | wc -l file.txt (统计行数) |

权限管理 Linux 权限分为:读、写、执行,分别对应 r, w, x

  • chmod:修改文件权限。
    • chmod u+x script.sh (给用户添加执行权限)
    • chmod 755 script.sh (数字法:r=4, w=2, x=1; 7=rwx, 5=r-x, 5=r-x)
  • chown:修改文件所有者。
    • chown user:group file.txt (将文件所有者改为user,组改为group)
  • chgrp:修改文件所属组。

压缩与解压 | 命令 | 格式 | 功能 | | :--- | :--- | :--- | | tar | .tar, .tar.gz, .tar.bz2 | 打包/解包工具,常与 gzip/bzip2 结合使用 | | gzip | .gz | 压缩/解压单个文件 | | zip | .zip | 压缩/解压,跨平台格式 |

命令 示例
tar tar -czvf archive.tar.gz /path/to/dir (打包并压缩)
tar -xzvf archive.tar.gz (解压并解包)
gzip gzip file.txt (压缩)
gunzip file.txt.gz (解压)

系统信息 | 命令 | 功能 | | :--- | :--- | | uname -a | 显示所有系统信息 | | top / htop | 实时显示进程和系统资源占用 (推荐 htop,更直观) | | df -h | 显示磁盘空间使用情况 (-h 以人类可读方式显示) | | free -h | 显示内存使用情况 |

用户管理 | 命令 | 功能 | | :--- | :--- | | sudo [command] | 以管理员身份执行命令 | | su - [user] | 切换到指定用户 (如 su - root 切换到root) | | passwd | 修改当前用户密码 |

关机与重启 | 命令 | 功能 | | :--- | :--- | | shutdown -h now | 立刻关机 | | shutdown -r now | 立刻重启 | | reboot | 重启 |

2 命令行技巧

  • Tab 自动补全:输入命令或文件名的前几个字母,按 Tab 键,系统会自动补全,如果多个匹配,按两次 Tab 列出所有选项。
  • 历史命令:按 和 键可以浏览之前执行过的命令。
  • Ctrl + R:搜索历史命令。
  • Ctrl + C:终止当前正在运行的命令。
  • Ctrl + D:输入文件结束符,相当于 exit 退出当前 Shell。
  • 通配符
    • 匹配任意多个字符。
    • 匹配单个任意字符。
    • []:匹配括号内的任意一个字符。
    • 示例:ls *.txt (列出所有txt文件), ls picture?.jpg (列出 picture1.jpg, picture2.jpg...)

第四部分:核心技能二:软件包管理

1 什么是软件包管理器?

用于自动化安装、更新、卸载软件的工具,并自动处理依赖关系(即安装软件A时,自动安装它所需要的B和C库)。

2 Debian/Ubuntu 系统 (apt)

  1. 更新软件包列表(非常重要!)
    sudo apt update
  2. 升级已安装的包
    sudo apt upgrade
  3. 安装软件
    sudo apt install [软件包名]
    #  sudo apt install vim git
  4. 卸载软件
    sudo apt remove [软件包名]
    # 完全卸载(包括配置文件)
    sudo apt purge [软件包名]

3 RedHat/CentOS/Fedora 系统 (yum, dnf)

  • 在较新的 Fedora 和 RHEL/CentOS 8+ 中,使用 dnf
  • 在旧的 CentOS 7 中,使用 yum
  1. 更新软件包列表
    sudo dnf check-update
  2. 升级所有已安装的包
    sudo dnf upgrade
  3. 安装软件
    sudo dnf install [软件包名]
    #  sudo dnf install vim git
  4. 卸载软件
    sudo dnf remove [软件包名]

4 使用 Snap 和 Flatpak(跨发行版方案)

  • Snap:由 Canonical (Ubuntu) 开发,包含所有依赖的独立软件包。
    • 安装:sudo snap install [软件名]
  • Flatpak:由社区驱动,也包含所有依赖。
    • 安装:flatpak install [软件名]

它们的优势是解决跨发行版的依赖问题,但可能占用更多空间。


第五部分:文本编辑器:Vim 入门

Vim (Vi IMproved) 是一个极其高效、功能强大的 modal 文本编辑器,一旦学会,你将离不开它。

1 Vim 的三种模式

  1. 普通模式:默认模式,用于导航、复制、粘贴、删除等操作,按 Esc 键进入此模式。
  2. 插入模式:用于输入文本,在普通模式下按 i, a, o 等键进入。
  3. 末行模式:用于保存、退出、搜索、替换等,在普通模式下按 键进入。

2 基本操作指南

启动和退出

  • vim filename:打开或创建文件 filename
  • w:保存。
  • q:退出。
  • wqx:保存并退出。
  • q!:不保存强制退出。

移动光标(普通模式)

  • h, j, k, l:左,下,上,右。
  • w:移动到下一个单词开头。
  • b:移动到上一个单词开头。
  • 0:移动到行首。
  • 移动到行尾。
  • gg:移动到文件第一行。
  • G:移动到文件最后一行。

编辑(普通模式 -> 插入模式)

  • i:在光标前插入。
  • a:在光标后追加。
  • o:在下一行插入新行并进入插入模式。
  • O:在上一行插入新行并进入插入模式。
  • I:在行首插入。
  • A:在行尾追加。

删除和复制(普通模式)

  • x:删除光标所在字符。
  • dd:删除(剪切)一整行。
  • dw:删除一个单词。
  • yy:复制一整行。
  • p:在光标后粘贴。
  • P:在光标前粘贴。

撤销和重做(普通模式)

  • u:撤销。
  • Ctrl + r:重做。

搜索和替换(末行模式)

  • /keyword:从光标处向下搜索 keyword
  • ?keyword:从光标处向上搜索 keyword
  • n:跳到下一个搜索结果。
  • N:跳到上一个搜索结果。
  • %s/old/new/g:将文件中所有的 old 替换为 new

学习建议:不要试图一次性记住所有命令,在 vimtutor (一个交互式教程) 中练习是最好的方式,在终端输入 vimtutor 即可开始。


第六部分:进程管理与服务控制

1 什么是进程?

进程是正在执行的程序实例,每个进程都有一个唯一的 ID,称为 PID (Process ID)。

2 查看进程

  • ps aux:查看系统中所有运行的进程详细信息。
  • top:动态显示进程和系统资源,按 CPU、内存排序。
  • htoptop 的增强版,彩色显示,更直观(需安装)。

3 控制进程

  • kill [PID]:发送信号终止进程(默认是 SIGTERM,允许进程清理后退出)。
  • kill -9 [PID]:强制杀死进程(发送 SIGKILL 信号,无法被忽略)。
  • pkill [进程名]:根据进程名杀死进程。
  • jobs:查看后台任务。
  • fg %1:将后台任务1调到前台。
  • bg %1:将后台任务1继续在后台运行。

4 Systemd:现代 Linux 的服务管理

systemctl 是 Systemd 的核心命令,用于管理系统服务(如 Nginx, Apache, SSH)。

  • systemctl start [服务名]:启动服务。
  • systemctl stop [服务名]:停止服务。
  • systemctl restart [服务名]:重启服务。
  • systemctl reload [服务名]:重新加载配置文件(不中断服务)。
  • systemctl enable [服务名]:设置服务开机自启。
  • systemctl disable [服务名]:取消开机自启。
  • systemctl status [服务名]:查看服务状态。

第七部分:网络配置与常用命令

1 查看网络信息

  • ip addr:查看所有网络接口的 IP 地址信息(现代 Linux 推荐)。
  • ifconfig:同上,旧版命令(可能需要安装 net-tools)。

2 网络连通性测试

  • ping [域名或IP]:测试与另一台主机的网络连通性。
  • traceroute [域名或IP]:显示数据包到目标主机的路径。
  • mtr [域名或IP]pingtraceroute 的结合体,持续显示网络质量。

3 网络数据传输

  • curl [URL]:强大的命令行工具,用于发送 HTTP 请求、下载文件等。
  • wget [URL]:另一个流行的文件下载工具。

4 端口与网络服务

  • netstat -tuln:查看当前监听的 TCP 和 UDP 端口(旧版)。
  • ss -tulnnetstat 的现代替代品,速度更快(推荐)。
    • -t: TCP, -u: UDP, -l: 只显示监听端口, -n: 以数字形式显示地址和端口。

第八部分:Shell 脚本编程入门

Shell 脚本可以将一系列命令写入一个文件,然后一次性执行,实现自动化。

1 第一个脚本:Hello, World!

  1. 创建一个文件 hello.sh

    touch hello.sh
  2. 用 Vim 打开并编辑:

    vim hello.sh
  3. #!/bin/bash
    # 这是一个注释
    echo "Hello, World!"
    • #!/bin/bash:Shebang,告诉系统用哪个解释器来执行此脚本。
  4. 保存并退出 (wq)。

  5. 添加执行权限:

    chmod +x hello.sh
  6. 运行脚本:

    ./hello.sh

2 变量

name="Alice"
echo "Hello, $name"

3 条件判断

age=18
if [ $age -ge 18 ]; then
    echo "You are an adult."
else
    echo "You are a minor."
fi
  • [ ]test 命令的简写。
  • -ge:大于等于。
  • -eq:等于, -ne:不等于, -lt:小于, -gt:大于。

4 循环

# for 循环
for i in 1 2 3 4 5
do
    echo "Number: $i"
done
# while 循环
count=0
while [ $count -lt 5 ]
do
    echo "Count: $count"
    count=$((count + 1))
done

5 函数与参数

#!/bin/bash
# 定义一个函数
greet() {
    echo "Hello, $1! Your ID is $2."
}
# 调用函数,并传递参数
greet "Bob" "123"
# 脚本参数
echo "Script name: $0"
echo "First argument: $1"
echo "All arguments: $@"
  • $1, $2 是脚本的 positional parameters。
  • $0 是脚本名。
  • 代表所有参数。

第九部分:学习路径与资源推荐

1 进阶学习方向

  • 系统管理:深入理解用户权限、文件系统、磁盘管理、LVM、软件 RAID。
  • 网络管理:学习 TCP/IP 协议栈、防火墙配置 (iptables, nftables)、网络服务配置 (DNS, DHCP, Web Server)。
  • Shell 脚本编程:掌握更高级的语法、函数、正则表达式、文本处理工具 (sed, awk)。
  • 容器化技术:学习 Docker 和 Kubernetes,这是现代应用部署的标准。
  • 内核编译与调优:为追求极致性能和定制化的用户。

2 推荐资源

  • 网站
  • 书籍
    • 入门:《鸟哥的 Linux 私房菜》、《Linux 就该这么学》。
    • 进阶:《Linux 系统管理技术手册》、《深入理解 Linux 内核》。
  • 社区
    • Redditr/linux, r/linux4noobs, r/vim
    • IRC / Matrix:各种 Linux 发行版和软件的官方聊天频道。

学习 Linux 是一个持续的过程,但只要你坚持实践,从基础命令开始,逐步深入,你会发现它不仅是一个强大的操作系统,更是一种高效、自由的工作哲学,祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇