杰瑞科技汇

Linux基础与应用教程,如何快速掌握核心技能?

Linux基础及应用教程

目录

  1. 第一部分:Linux入门与概览

    • 1 什么是Linux?
    • 2 Linux vs. Windows
    • 3 Linux发行版简介
    • 4 为什么学习Linux?
    • 5 如何安装Linux?(虚拟机方案推荐)
  2. 第二部分:Linux核心基础

    • 1 Linux文件系统结构
    • 2 基础Shell命令
      • 2.1 文件和目录操作
      • 2.2 文件内容查看
      • 2.3 文本处理
      • 2.4 用户与权限管理
      • 2.5 系统信息与管理
    • 3 用户、权限与组
    • 4 软件包管理
    • 5 VIM编辑器入门
  3. 第三部分:Linux进阶应用

    • 1 Shell脚本编程基础
    • 2 进程管理
    • 3 网络配置与工具
    • 4 系统服务管理
    • 5 日志管理
  4. 第四部分:常用服务与应用

    • 1 Web服务器:Nginx
    • 2 数据库:MySQL/MariaDB
    • 3 版本控制:Git
    • 4 容器化:Docker入门
  5. 第五部分:学习资源与进阶路径

    • 1 推荐书籍
    • 2 优质网站
    • 3 实践项目

第一部分:Linux入门与概览

1 什么是Linux?

Linux不是一个操作系统,而是操作系统的内核,内核是硬件和软件之间的核心程序,负责管理CPU、内存、硬盘等硬件资源,我们通常所说的“Linux操作系统”,更准确地说是Linux发行版,它包含了Linux内核以及大量的GNU软件工具(如Shell、Bash、Coreutils等)和应用程序,组合成一个完整的、可用的操作系统。

2 Linux vs. Windows

特性 Linux Windows
内核 开源 闭源
文件系统 一切皆文件,树状结构 驱动器盘符 (C:, D:)
用户界面 主要为命令行,GUI可选 主要为图形界面
软件安装 软件包管理器 .exe / .msi 安装包
安全性 权限模型严格,病毒少 用户权限较高,病毒多
适用场景 服务器、开发、嵌入式 桌面办公、游戏、专业软件

3 Linux发行版简介

发行版是Linux内核和软件的不同打包组合。

  • Ubuntu: 最流行的桌面发行版,对新手友好,社区支持强大。
  • CentOS / Rocky Linux / AlmaLinux: 专注于服务器和企业级应用,极其稳定。
  • Debian: 社区驱动,非常稳定,是Ubuntu的基础。
  • Fedora: Red Hat赞助,技术前沿,适合开发者尝鲜。
  • Arch Linux: 滚动更新,高度可定制,适合高级用户。

建议初学者从 Ubuntu 或 CentOS 开始。

4 为什么学习Linux?

  • 服务器领域霸主: 超过90%的互联网服务器运行着Linux。
  • 开发者的必备技能: 大量的后端开发、容器化、云计算环境都基于Linux。
  • 强大的可定制性: 从内核到桌面,你可以完全掌控你的系统。
  • 免费与开源: 无需支付许可费用,自由使用和修改。
  • 安全性高: 权限模型和开源社区使得安全问题能被快速发现和修复。

5 如何安装Linux?(虚拟机方案推荐)

对于初学者,强烈建议在虚拟机中安装Linux,这样不会影响你现有的Windows或macOS系统。

  • 工具: VirtualBox (免费) 或 VMware Workstation Player (免费个人版)。
  • 步骤:
    1. 下载并安装虚拟机软件。
    2. 下载你选择的Linux发行版ISO镜像文件(如Ubuntu Desktop)。
    3. 打开虚拟机软件,创建一个新的虚拟机,选择下载的ISO镜像作为光盘启动。
    4. 按照向导完成虚拟机的创建和Linux的安装过程,过程类似于安装普通软件。

第二部分:Linux核心基础

1 Linux文件系统结构

Linux采用树状的单根文件系统,所有文件和目录都从根目录 开始。

  • 根目录
  • /home: 用户的主目录
  • /etc: 系统配置文件
  • /var: 经常变化的文件,如日志、缓存
  • /usr: 用户安装的程序
  • /boot: 系统启动相关文件
  • /tmp: 临时文件
  • /opt: 可选的大型软件包
  • /dev: 设备文件

2 基础Shell命令

打开终端,你将看到一个命令行提示符,命令的基本格式是:命令 [选项] [参数]

2.1 文件和目录操作
  • ls (list): 列出目录内容。
    • ls -l: 以长格式显示(权限、所有者、大小、日期)。
    • ls -a: 显示所有文件,包括隐藏文件(以开头)。
    • ls -h: 以人类可读的方式显示文件大小(K, M, G)。
  • cd (change directory): 切换目录。
    • cd /home: 切换到 /home 目录。
    • cd ..: 切换到上一级目录。
    • cd ~: 切换到当前用户的主目录。
    • cd -: 切换到上一个所在的目录。
  • pwd (print working directory): 显示当前所在的工作目录。
  • mkdir (make directory): 创建新目录。
    • mkdir mydir: 创建 mydir 目录。
    • mkdir -p parent/child: 递归创建多级目录。
  • touch: 创建一个空文件或更新文件时间戳。
    • touch file.txt: 创建 file.txt
  • cp (copy): 复制文件或目录。
    • cp source.txt dest.txt: 复制文件。
    • cp -r sourcedir destdir: 递归复制目录。
  • mv (move/rename): 移动文件或目录,或重命名。
    • mv oldname.txt newname.txt: 重命名文件。
    • mv file.txt /home/username/: 移动文件。
  • rm (remove): 删除文件或目录。
    • rm file.txt: 删除文件。
    • rm -r mydir: 递归删除目录。
    • rm -f file.txt: 强制删除,不提示。
    • 警告: rm -rf 是一个威力巨大的命令,会强制递归删除,请谨慎使用!
  • man (manual): 查看命令的帮助手册。
    • man ls: 查看 ls 命令的详细用法。
2.2 文件内容查看
  • cat (concatenate): 查看文件的全部内容,适合小文件。
    • cat file.txt
  • less: 分页查看文件内容,适合大文件,可以使用 q 退出。
    • less file.txt
  • head: 查看文件的开头几行。
    • head -n 10 file.txt: 查看前10行。
  • tail: 查看文件的结尾几行。
    • tail -n 10 file.txt: 查看后10行。
    • tail -f file.log: 实时追踪文件内容更新(常用于看日志)。
2.3 文本处理
  • grep: 在文本中搜索匹配的行。
    • grep "error" log.txt: 在 log.txt 中搜索包含 "error" 的行。
    • grep -i "Error" log.txt: 忽略大小写。
    • grep -r "error" /var/log/: 在目录中递归搜索。
  • find: 在文件系统中查找文件。
    • find . -name "*.txt": 在当前目录下查找所有 .txt 文件。
  • wc (word count): 统计文件的行数、单词数和字节数。
    • wc -l file.txt: 只统计行数。
  • sort: 对文件内容进行排序。
    • sort file.txt
  • uniq: 去除重复的行。
    • sort file.txt | uniq: 先排序再去重。
2.4 用户与权限管理
  • chmod (change mode): 修改文件或目录的权限。
    • 权限分为:r (读, 4), w (写, 2), x (执行, 1)。
    • 用户类型:u (所有者), g (组), o (其他人), a (所有人)。
    • chmod u+x script.sh: 给文件所有者添加执行权限。
    • chmod 755 script.sh: 直接设置权限为 rwxr-xr-x
  • chown (change owner): 修改文件或目录的所有者。
    • sudo chown username:groupname file.txt
  • sudo (superuser do): 以超级用户(root)身份执行命令。
    • sudo apt update: 更新软件包列表(需要输入当前用户密码)。
2.5 系统信息与管理
  • top / htop: 实时查看系统进程和资源占用。htoptop 的增强版,更直观。
  • ps (process status): 查看当前运行的进程。
    • ps aux: 查看所有进程的详细信息。
  • kill: 终止进程。
    • kill -9 <PID>: 强制杀死进程(PID为进程ID)。
  • df -h (disk free): 查看磁盘空间使用情况。
  • free -h (free memory): 查看内存使用情况。
  • uname -a: 显示所有系统信息。

3 用户、权限与组

  • 用户: 系统的使用者。
  • : 用户的集合,便于权限管理。
  • 权限: 分为读、写、执行,分别针对文件所有者、所属组和其他用户。
  • root用户: 超级管理员,拥有对系统的最高控制权,日常操作应避免使用root用户,只在必要时使用sudo

4 软件包管理

不同的发行版使用不同的包管理器。

  • 基于 Debian/Ubuntu 的系统 (apt):
    • sudo apt update: 更新软件源列表。
    • sudo apt upgrade: 升级所有已安装的软件包。
    • sudo apt install package_name: 安装软件包。
    • sudo apt remove package_name: 卸载软件包。
  • 基于 CentOS/RHEL 的系统 (yum/dnf):
    • sudo yum check-update: 检查更新。
    • sudo yum update: 升级所有软件包。
    • sudo yum install package_name: 安装软件包。
    • sudo yum remove package_name: 卸载软件包。

5 VIM编辑器入门

VIM (Vi IMproved) 是Linux下最强大的文本编辑器之一。

  • 三种模式:
    • 普通模式: 默认模式,用于移动光标、复制粘贴等,按 Esc 进入此模式。
    • 插入模式: 用于输入文本,按 i (在光标前插入), a (在光标后插入), o (新开一行) 进入。
    • 命令行模式: 用于保存、退出、搜索等,按 (冒号) 进入。
  • 常用操作:
    • i: 进入插入模式。
    • Esc: 退出插入模式,回到普通模式。
    • w: 保存。
    • q: 退出。
    • wq: 保存并退出。
    • q!: 强制退出,不保存修改。
    • /keyword: 在普通模式下,按 然后输入关键词搜索。
    • dd: 删除一行。
    • yy: 复制一行。
    • p: 粘贴。

第三部分:Linux进阶应用

1 Shell脚本编程基础

Shell脚本是将一系列命令写入一个文件,通过bash script.sh来执行。

  • 首行: #!/bin/bash (Shebang),告诉系统用哪个解释器来执行。
  • 变量: name="Alice" (注意等号两边不能有空格),使用时 $name${name}
  • 条件判断: if...then...else...fi
    #!/bin/bash
    age=20
    if [ $age -ge 18 ]; then
        echo "You are an adult."
    else
        echo "You are a minor."
    fi
  • 循环: for...do...done
    #!/bin/bash
    for i in 1 2 3 4 5
    do
        echo "Number: $i"
    done
  • 参数: $0 (脚本名), $1 (第一个参数), $2 (第二个参数), 以此类推。 是参数个数, 是所有参数列表。

2 进程管理

  • 前台进程: 直接在终端运行的进程,关闭终端进程会终止。
  • 后台进程: 在终端运行,但不占用终端,使用 & 符号:command &
  • 进程控制:
    • Ctrl + Z: 暂停当前进程,并将其放入后台。
    • jobs: 查看后台任务列表。
    • bg %<jobid>: 将后台任务继续运行。
    • fg %<jobid>: 将后台任务调回前台。
    • nohup command &: 让命令忽略挂断信号,即关闭终端后进程仍会继续运行。

3 网络配置与工具

  • ifconfig / ip addr: 查看和配置网络接口信息。
  • ping <hostname>: 测试与另一台主机的网络连通性。
  • ssh username@hostname: 安全地远程登录到另一台主机。
  • scp file.txt username@hostname:/remote/path: 安全地复制文件到远程主机。
  • netstat -tuln / ss -tuln: 查看当前监听的TCP/UDP端口。

4 系统服务管理

现代Linux发行版多使用 systemd 来管理系统服务。

  • systemctl status <service_name>: 查看服务状态。
  • sudo systemctl start <service_name>: 启动服务。
  • sudo systemctl stop <service_name>: 停止服务。
  • sudo systemctl restart <service_name>: 重启服务。
  • sudo systemctl enable <service_name>: 设置服务开机自启。
  • sudo systemctl disable <service_name>: 禁止服务开机自启。

5 日志管理

  • 日志位置: 主要在 /var/log/ 目录下。
  • 常用日志文件:
    • /var/log/syslog: 系统日志。
    • /var/log/auth.log: 用户认证日志。
    • /var/log/nginx/access.log: Nginx访问日志。
  • 查看日志: journalctlsystemd 的日志查询工具。
    • journalctl -u nginx.service: 查看 nginx 服务的日志。
    • journalctl -f: 实时追踪日志。

第四部分:常用服务与应用

1 Web服务器:Nginx

Nginx是一个高性能的HTTP和反向代理服务器。

  • 安装: sudo apt install nginx (Ubuntu) 或 sudo yum install nginx (CentOS)。
  • 配置文件: /etc/nginx/nginx.conf/etc/nginx/sites-available/
  • 启动服务: sudo systemctl start nginx
  • 测试: 在浏览器中输入你的服务器IP地址,看到 "Welcome to nginx!" 页面表示成功。

2 数据库:MySQL/MariaDB

MariaDB是MySQL的一个分支,是CentOS等系统的默认数据库。

  • 安装: sudo apt install mariadb-server (Ubuntu) 或 sudo yum install mariadb-server (CentOS)。
  • 安全配置: sudo mysql_secure_installation,设置root密码、移除匿名用户等。
  • 登录: mysql -u root -p
  • 基本操作:
    • CREATE DATABASE mydb;: 创建数据库。
    • USE mydb;: 使用数据库。
    • CREATE TABLE users (id INT, name VARCHAR(100));: 创建表。
    • INSERT INTO users VALUES (1, 'Alice');: 插入数据。

3 版本控制:Git

Git是世界上最先进的分布式版本控制系统。

  • 安装: sudo apt install git
  • 配置:
    git config --global user.name "Your Name"
    git config --global user.email "your.email@example.com"
  • 基本工作流:
    • git init: 初始化一个Git仓库。
    • git add .: 将所有文件添加到暂存区。
    • git commit -m "Initial commit": 提交更改,并添加备注。
    • git status: 查看仓库状态。
    • git log: 查看提交历史。
    • git push origin main: 推送代码到远程仓库(如GitHub)。
    • git pull origin main: 从远程仓库拉取代码。

4 容器化:Docker入门

Docker是一个开源的应用容器引擎,让开发者可以打包应用及其依赖到一个可移植的容器中。

  • 安装: 参考Docker官方文档,因为安装步骤因发行版而异。
  • 基本概念:
    • 镜像: 一个只读的模板,用来创建容器。
    • 容器: 镜像的运行实例,是轻量级、可移植的“沙箱”。
  • 常用命令:
    • docker images: 查看本地镜像。
    • docker pull nginx: 拉取Nginx镜像。
    • docker run -d -p 8080:80 nginx: 以后台模式运行Nginx容器,并将容器的80端口映射到主机的8080端口。
    • docker ps: 查看正在运行的容器。
    • docker stop <container_id>: 停止容器。

第五部分:学习资源与进阶路径

1 推荐书籍

  • 《鸟哥的Linux私房菜》: 中文世界最经典的Linux入门书籍,内容详尽。
  • 《Linux命令行与Shell脚本编程大全》: 深入讲解命令行和脚本,非常实用。
  • 《How Linux Works》: 从底层原理角度讲解Linux,适合想深入理解系统的人。

2 优质网站

  • The Linux Documentation Project (tldp.org): Linux官方文档,有大量HOWTO指南。
  • Stack Overflow: 解决编程和系统问题的最佳社区。
  • GitHub: 查看开源项目的配置文件和脚本,是学习的绝佳素材。
  • 菜鸟教程: 提供快速入门的命令参考。

3 实践项目

  • 搭建个人博客: 使用Nginx + WordPress或Hexo (静态博客)。
  • 部署一个简单的Web应用: 比如Flask或Django应用,用Nginx做反向代理。
  • 搭建家庭媒体服务器: 使用Plex或Jellyfin。
  • 学习使用Docker: 尝试将你的个人项目容器化。
  • 贡献开源项目: 从修复一个小bug或改进文档开始。

学习Linux是一个持续的过程,不可能一蹴而就,最好的方法是多动手、多实践、多犯错、多总结,从今天开始,打开你的虚拟机,尝试每一个命令,尝试搭建一个小服务,你会逐渐发现Linux世界的强大与魅力,祝你学习愉快!

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