Linux完全入门指南:从零基础到精通

目录

  1. Linux简介与核心概念

  2. 系统安装与初始化

  3. 文件系统结构解析

  4. 终端基础操作

  5. 用户与权限管理

  6. 软件包管理

  7. 进程与服务管理

  8. 网络配置与工具

  9. Shell脚本编程

  10. 系统监控与日志

  11. 安全加固指南

  12. 实战项目演练


Linux简介与核心概念

1.1 什么是Linux?

  • 开源操作系统内核(诞生于1991年,Linus Torvalds开发)

  • 与Windows/macOS的本质区别:

    图表

    代码

    下载

    Linux

    多用户系统

    一切皆文件

    权限严格管控

1.2 主流发行版对比

发行版 特点 适用场景
Ubuntu 用户友好,社区支持强 桌面/新手入门
CentOS 企业级稳定性 服务器
Arch Linux 滚动更新,高度定制化 高级用户
Kali Linux 渗透测试工具预装 安全审计

系统安装与初始化

2.1 双系统安装(以Ubuntu为例)

bash

# 制作启动盘(Windows环境)
rufus-3.22.exe --device /dev/sdX --iso ubuntu-22.04.3-live-server-amd64.iso

分区建议

  • / 根分区:50GB(ext4)

  • swap 交换分区:内存的1.5倍(≤32GB内存时)

  • /home 家目录:剩余空间(数据存储)

2.2 首次配置

bash

# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装基础工具包
sudo apt install -y vim git net-tools htop

文件系统结构解析

Linux采用层级式文件结构:

/
├── bin    # 基础命令(ls, cp等)
├── etc    # 系统配置文件
├── home   # 用户目录
├── var    # 动态数据(日志、数据库)
└── proc   # 进程与内核信息(虚拟文件系统)

关键命令

bash

# 查看磁盘使用情况
df -hT /dev/sda1

# 查找大文件
sudo find / -type f -size +100M -exec ls -lh {} \;

⌨️ 终端基础操作

4.1 文件操作四件套

命令 功能 示例
ls -la 显示隐藏文件与详细信息 ls -la ~/Documents
cp -r 递归复制目录 cp -r dir1 dir2
mv 移动/重命名 mv old.txt new.txt
rm -i 交互式删除 rm -i *.tmp

4.2 文本处理神器

bash

# 查看日志最后20行
tail -20 /var/log/syslog

# 实时监控日志更新
tail -f /var/log/nginx/access.log

# 统计代码行数(排除空行)
grep -v '^$' *.py | wc -l

用户与权限管理

5.1 用户/组操作

bash

# 创建开发组
sudo groupadd developers

# 添加用户并设置密码
sudo useradd -m -G developers alice
sudo passwd alice

5.2 权限详解

bash

chmod 750 script.sh  # 所有者:rwx,组:r-x,其他:---
chown alice:developers file.txt

权限数字表示法

r=4, w=2, x=1
rwxr-xr-- = 754

软件包管理

6.1 APT (Debian/Ubuntu)

bash

# 搜索软件包
apt search nginx

# 查看软件信息
apt show nginx

# 彻底卸载(含配置)
sudo apt purge nginx

6.2 编译安装(通用方法)

bash

./configure --prefix=/usr/local/nginx
make -j$(nproc)
sudo make install

️ 进程与服务管理

7.1 systemctl 常用操作

bash

# 查看服务状态
systemctl status sshd

# 设置开机启动
sudo systemctl enable nginx

# 重启服务
sudo systemctl restart apache2

7.2 进程监控

bash

# 按CPU排序进程
top -o %CPU

# 杀进程(先尝试SIGTERM)
kill -15 PID

网络配置与工具

8.1 网络诊断

bash

# 查看开放端口
ss -tulnp

# 测试到Google的连接
mtr -rw google.com

8.2 防火墙规则

bash

# 允许HTTP流量
sudo ufw allow 80/tcp

# 拒绝特定IP
sudo ufw deny from 192.168.1.100

️ Shell脚本编程

9.1 基础脚本示例

bash

#!/bin/bash
# 备份脚本
BACKUP_DIR="/backups"
TARGET_DIR="$HOME/Documents"

[ ! -d "$BACKUP_DIR" ] && mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/docs_$(date +%F).tar.gz" "$TARGET_DIR"

9.2 实用技巧

bash

# 检查文件是否存在
[ -f "/etc/passwd" ] && echo "File exists"

# 循环处理文件
for file in *.log; do
  gzip "$file"
done

系统监控与日志

10.1 性能指标

bash

# CPU温度(需要lm-sensors)
sensors | grep Core

# 内存使用率
free -h | awk '/Mem/{printf "%.1f%%", $3/$2*100}'

10.2 日志分析

bash

# 统计HTTP状态码
awk '{print $9}' access.log | sort | uniq -c

安全加固指南

  1. SSH安全

    bash

    # 禁用root登录
    sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
  2. 自动更新

    bash

    sudo apt install unattended-upgrades

实战项目演练

项目1:搭建LNMP环境

bash

sudo apt install nginx mysql-server php-fpm
sudo mysql_secure_installation

项目2:实现定时备份

bash

(crontab -l 2>/dev/null; echo "0 3 * * * /path/to/backup.sh") | crontab -

学习资源推荐

  • 在线练习:OverTheWire: Bandit

  • 命令行教程:LinuxCommand.org: Learn The Linux Command Line. Write Shell Scripts.

  • 认证路径:LPIC → RHCE → Linux Foundation Certified Engine

你可能感兴趣的:(linux)