杰瑞科技汇

Centos教程如何快速入门Linux系统?

前言:为什么选择 CentOS?

  • 企业级的稳定性和可靠性:CentOS(Community Enterprise Operating System)是 Red Hat Enterprise Linux (RHEL) 的免费复刻版,继承了 RHEL 的稳定基因,非常适合用作服务器操作系统。
  • 强大的社区支持:拥有庞大的用户和开发者社区,遇到问题很容易找到解决方案。
  • 免费与开源:完全免费,没有授权费用。
  • 丰富的软件生态:通过 YUM/DNF 包管理器,可以轻松安装和管理海量软件。

重要提示:CentOS 项目已经发生重大变化,官方推荐的新版本是 CentOS Stream,它作为 RHEL 的“上游”开发版,更新更频繁,而传统的、稳定的 CentOS 7/8 已停止维护(EOL),对于追求极致稳定的生产环境,建议使用 Rocky LinuxAlmaLinux,它们是 CentOS 7/8 的直接替代品,本教程的大部分内容同样适用于这些发行版。

Centos教程如何快速入门Linux系统?-图1
(图片来源网络,侵删)

第一部分:入门基础

什么是 Linux?

Linux 是一套免费使用和自由传播的类 Unix 操作系统内核,我们通常所说的 "Linux",其实是指包含 Linux 内核和各种 GNU 软件的一个完整操作系统发行版,CentOS、Ubuntu、Debian 等。

Linux 文件系统结构

理解 Linux 文件系统是学习的第一步,它像一个倒置的树,所有东西都从根 开始。

目录 用途
根目录,唯一顶级目录,所有文件和目录都在它下面。
/bin 基本命令,如 ls, cp, mv,所有用户可用。
/sbin 系统管理员命令,如 fdisk, ifconfig,通常需要 root 权限。
/etc 系统配置文件存放地,如 nginx.conf, my.cnf
/home 普通用户的家目录,每个用户都有自己的一个目录,如 /home/username
/root 超级管理员 (root) 的家目录
/usr 用户程序和数据,存放大部分应用程序,如 /usr/bin, /usr/local
/var 经常变化的文件,如日志 (/var/log)、邮件、Web 服务器内容。
/tmp 临时文件,系统重启时通常会被清空。
/boot 启动文件,如 Linux 内核、引导加载程序。
/dev 设备文件,代表系统中的硬件设备,如硬盘、光驱。
/proc 虚拟文件系统,内核与进程信息的映射,不占用磁盘空间。
/opt 可选软件包,存放第三方大型软件。
/mnt, /media 挂载点,临时挂载存储设备。

终端/Shell 简介

Shell 是用户与 Linux 内核交互的桥梁,我们通过在终端(Terminal)输入命令来控制 Shell。

  • 常用 Shell: Bash (Bourne-Again Shell) 是目前最主流的 Shell。
  • 打开终端: 在桌面环境下,通常可以通过应用程序菜单找到 "终端" 或 "控制台"。

第二部分:核心命令操作

文件和目录操作

这是最常用、最基础的操作。

Centos教程如何快速入门Linux系统?-图2
(图片来源网络,侵删)
命令 全称 描述 示例
ls list 列出目录内容 ls -l (长格式), ls -a (显示隐藏文件), ls -h (人性化显示大小)
cd change directory 切换目录 cd /home (去到 home 目录), cd .. (返回上一级), cd ~ (回到自己的家目录)
pwd print working directory 显示当前所在目录 pwd
mkdir make directory 创建新目录 mkdir my_folder (创建), mkdir -p a/b/c (递归创建多级目录)
touch touch 创建空文件或更新文件时间戳 touch new_file.txt
cp copy 复制文件或目录 cp file1.txt file2.txt (复制文件), cp -r dir1/ dir2/ (递归复制目录)
mv move 移动/重命名文件或目录 mv old_name.txt new_name.txt (重命名), mv file.txt /tmp/ (移动文件)
rm remove 删除文件或目录 rm file.txt (删除文件), rm -r dir/ (递归删除目录), rm -f file.txt (强制删除,不提示)
cat concatenate 查看文件内容(适合小文件) cat file.txt
more / less - 分页查看文件内容(适合大文件),less 更强大 less file.txt (按 q 退出)
head / tail - 查看文件的开头/结尾部分 head -n 10 file.txt (看前10行), tail -f /var/log/messages (实时查看日志文件)

文件权限管理

Linux 是多用户系统,权限管理至关重要,每个文件都有三类用户:

  • User (u): 文件所有者。
  • Group (g): 文件所属组。
  • Other (o): 其他所有用户。

每类用户有三种权限:

  • r (read): 读权限 (数字 4)
  • w (write): 写权限 (数字 2)
  • x (execute): 执行权限 (数字 1)

查看权限:

ls -l file.txt
# 输出: -rw-r--r--. 1 user group 0 Jun 20 10:00 file.txt
# 解释: - (文件类型) rw- (用户权限) r-- (组权限) r-- (其他权限)

修改权限:

  • 符号法:
    chmod u+x file.txt          # 给用户添加执行权限
    chmod g-w file.txt          # 移除组的写权限
    chmod o=r file.txt          # 设置其他用户只有读权限
    chmod a=rwx file.txt        # 给所有用户添加所有权限
  • 数字法 (更常用):
    # r=4, w=2, x=1
    # 7 = 4+2+1 (rwx), 6 = 4+2 (rw-), 5 = 4+1 (r-x), 4 = 4 (r--)
    chmod 755 file.txt          # 所有者 rwx, 组 r-x, 其他 r-x
    chmod 600 secret.txt        # 所有者 rw-, 组 ---, 其他 ---

修改所有者:

# chown [用户]:[组] 文件/目录
chown user1:group1 file.txt  # 同时修改所有者和所属组
chown -R user1 /path/to/dir   # 递归修改目录及其下所有内容的所有者

用户和组管理

  • 创建用户:
    sudo useradd -m -s /bin/bash newuser  # 创建新用户,并创建家目录,指定默认shell
    sudo passwd newuser                   # 为新用户设置密码
  • 删除用户:
    sudo userdel newuser      # 删除用户,但保留家目录
    sudo userdel -r newuser   # 删除用户及其家目录
  • 切换用户:
    su - newuser              # 切换到 newuser,并加载其环境变量
    exit                      # 退出当前用户,回到原用户
  • sudo 命令: 以超级管理员身份执行命令,普通用户需要配置 /etc/sudoers 文件才能使用 sudo

文本处理三剑客

grep, sed, awk 是 Linux 下强大的文本处理工具。

  • grep: 全局正则表达式打印,用于在文本中搜索匹配的行。
    grep "error" /var/log/messages       # 在日志中搜索包含 "error" 的行
    grep -i "warning" /var/log/messages  # 忽略大小写
    grep -v "ok" /var/log/messages       # 反向选择,输出不包含 "ok" 的行
  • sed: 流编辑器,用于对文本进行编辑(增删改查)。
    sed 's/old/new/g' file.txt           # 将文件中所有 "old" 替换为 "new" (s=substitute, g=global)
    sed -i 's/old/new/g' file.txt        # 直接在原文件上修改
    sed -n '10,20p' file.txt             # 只打印第10到20行
  • awk: 文本报告生成器,用于按列处理和格式化文本。
    # 打印 /etc/passwd 文件的第1和第7列(用户名和默认shell)
    awk -F: '{print $1, $7}' /etc/passwd
    # -F 指定分隔符,默认是空格

第三部分:软件包管理

YUM/DNF 包管理器

CentOS 7 及之前版本使用 yum,CentOS 8 及以后使用 dnfdnfyum 的下一代,命令基本兼容)。

  • 搜索软件包:
    sudo dnf search nginx
  • 查看软件包信息:
    sudo dnf info nginx
  • 安装软件包:
    sudo dnf install nginx
  • 更新软件包:
    sudo dnf update              # 更新所有已安装的软件包
    sudo dnf update nginx        # 更新指定的软件包
  • 删除软件包:
    sudo dnf remove nginx
  • 清理缓存:
    sudo dnf clean all

第四部分:系统管理

系统信息查看

  • 查看内核版本/系统信息:
    uname -a                    # 显示所有信息
    cat /etc/os-release         # 显示详细的系统版本信息 (推荐)
    cat /etc/redhat-release     # 传统方式显示 RedHat/CentOS 版本
  • 查看CPU信息:
    lscpu                       # 查看CPU详细信息
    cat /proc/cpuinfo           # 查看原始CPU信息
  • 查看内存使用情况:
    free -h                     # 以人性化的方式显示内存和交换空间
  • 查看磁盘空间:
    df -h                       # 查看各文件系统的磁盘使用情况
    du -sh /path/to/dir         # 查看指定目录的总大小

进程管理

  • 查看进程:
    ps aux                      # 显示所有进程的详细信息
    ps -ef                      # 另一种查看所有进程的方式
    top                         # 动态实时地显示进程和系统资源占用情况 (按 `q` 退出)
  • 结束进程:
    kill PID_NUMBER             # 正常结束进程
    kill -9 PID_NUMBER          # 强制杀死进程 (慎用)

网络配置

  • 查看网络接口:
    ip a                        # 查看所有网络接口的IP地址
    ifconfig                    # 传统命令,功能类似
  • 查看路由表:
    ip r
  • 查看网络连接:
    ss -tulnp                   # 查看所有监听的端口和对应的进程
    netstat -tulnp              # 传统命令
  • 测试网络连通性:
    ping google.com
  • 下载文件:
    wget http://example.com/file.zip
    curl -O http://example.com/file.zip

第五部分:服务管理 (Systemd)

CentOS 7 及以后使用 systemd 作为系统和服务管理器。

  • 启动、停止、重启服务:
    sudo systemctl start nginx.service
    sudo systemctl stop nginx.service
    sudo systemctl restart nginx.service
  • 设置开机自启:
    sudo systemctl enable nginx.service  # 启用自启
    sudo systemctl disable nginx.service # 禁用自启
  • 查看服务状态:
    sudo systemctl status nginx.service
  • 查看所有已启动的服务:
    systemctl list-units --type=service --state=running

第六部分:软件安装方式

除了 YUM/DNF,还有两种常见方式:

  1. 源码编译安装:

    • 从官网下载 .tar.gz.tar.bz2 源码包。
    • 执行 ./configure (配置), make (编译), sudo make install (安装)。
    • 优点: 定制性高,能获得最新功能。
    • 缺点: 编译时间长,依赖复杂,不易管理。
  2. RPM 包安装:

    • 下载 .rpm 格式的二进制包。
    • 使用 rpm 命令管理。
    • sudo rpm -ivh package.rpm (安装)
    • sudo rpm -e package_name (卸载)
    • 优点: 安装快速,有依赖关系检查。
    • 缺点: 依赖关系复杂时难以解决。

强烈推荐优先使用 YUM/DNF,它能自动解决依赖问题,是 CentOS 生态的最佳实践。


第七部分:学习路径与资源

进阶学习建议

  1. Shell 脚本编程:学习编写自动化脚本,解放双手。
  2. 网络基础:深入理解 TCP/IP、HTTP、DNS 等。
  3. Web 服务:学习搭建 Nginx、Apache、Tomcat 等服务器。
  4. 数据库:学习 MySQL, PostgreSQL 的安装和管理。
  5. 虚拟化与容器化:学习 KVM, Docker, Kubernetes。
  6. 安全加固:学习防火墙配置 (firewalld, iptables)、SSH 安全、SELinux 等。

推荐资源


学习 Linux 是一个循序渐进的过程,最重要的是 多动手实践,不要害怕犯错,虚拟机是你的好朋友,可以在里面随意折腾而不用担心搞坏系统,从基础的文件操作开始,逐步深入到系统管理和网络服务,你会发现 Linux 强大的功能和魅力。

祝你学习愉快!

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