飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • 基础入门

    • Linux 命令概述与环境准备
    • 文件与目录操作(上):ls、cd、pwd
    • 文件与目录操作(下):cat、touch、mkdir、rm、cp、mv
    • 获取帮助与基础工具:man、help、clear、exit、sudo
  • 文件权限

    • 文件权限管理:chmod、chown
  • 系统与监控

    • 进程管理与系统监控:ps、top、kill、df、du、free
    • 用户与环境:whoami、id、env、echo、history
  • 网络命令

    • 网络诊断(上):ping、curl、wget
    • 网络诊断(下):netstat、ss、ip
    • 网络抓包与高级工具:traceroute、tcpdump、nc
    • DNS 与防火墙:nslookup、dig、iptables
  • 文本处理

    • 文本搜索:grep
    • 文本处理(上):awk
    • 文本处理(下):sed
    • 文本排序与统计:sort、uniq、wc
    • 文件查看与查找:head、tail、cut、find
    • 归档压缩与管道组合:tar、gzip、xargs
  • 开发工具

    • 开发工具链(上):gcc、make
    • 开发工具链(下):gdb、time
    • 版本控制:git
    • 远程操作:ssh、scp
    • 编辑器:vim、nano
  • Shell 编程

    • Shell 编程基础(上):变量、管道、重定向
    • Shell 编程基础(下):条件、循环、函数
  • 综合实战

    • 综合实战:日志分析

Linux 命令概述与环境准备

为什么必须学 Linux 命令

作为计算机专业学生,Linux 是必修课。原因有三:

  1. 服务器世界的事实标准:全球 90% 以上的云服务器运行 Linux
  2. 开发效率的倍增器:命令行操作比图形界面快 10 倍以上
  3. 理解系统的钥匙:网络、进程、文件系统,命令行让你看到本质

Linux 命令的学习哲学

不要背命令,要背场景。当你需要"找出日志里访问最多的 IP"时,你自然会记住 awk '{print $1}' | sort | uniq -c | sort -rn | head。命令是工具,场景才是记忆锚点。

分层递进:

  • 生存层:能在终端里活下来(ls, cd, cat, rm)
  • 文件层:理解权限、目录结构、软硬链接
  • 系统层:监控进程、磁盘、内存
  • 网络层:诊断连接、抓包、路由
  • 开发层:编译、调试、版本控制
  • 自动化层:Shell 脚本、管道组合

环境准备方案

方案对比

方案推荐度适合谁优缺点
WSL2⭐⭐⭐ 首选用 Windows 的学生与 Windows 文件互通、启动快、资源占用低。缺点:没有完整 systemd,部分内核级实验受限
VMware/VirtualBox + Ubuntu LTS⭐⭐⭐ 最纯粹电脑配置较好(8G+ 内存)完全隔离,可以随便折腾而不怕搞坏系统。缺点:占用磁盘/内存,与 Windows 传文件稍麻烦
云服务器⭐⭐ 辅助想练习公网 IP、远程 SSH24 小时在线,有独立公网 IP。缺点:需要花钱(学生价约 10 元/月),不适合日常编程

大一建议:WSL2 + Ubuntu 22.04/24.04 作为日常开发环境,VirtualBox 装一个纯净 Ubuntu 专门做网络实验(方便快照恢复)。

WSL2 安装(Windows 10/11)

# 以管理员身份打开 PowerShell,执行:
wsl --install

# 安装完成后重启,设置用户名密码
# 更新软件源
sudo apt update && sudo apt upgrade -y

虚拟机安装(VirtualBox)

  1. 下载 Ubuntu 22.04 LTS ISO(ubuntu.com)
  2. VirtualBox 新建虚拟机,分配 2G 内存、20G 磁盘
  3. 启动后安装系统,选择"最小安装"
  4. 安装增强功能(共享剪贴板、拖放文件)
# 安装后更新
sudo apt update && sudo apt upgrade -y

# 安装常用工具
sudo apt install -y vim git curl wget net-tools

终端基础操作

打开终端

  • WSL2:开始菜单 → Ubuntu
  • Ubuntu 虚拟机:Ctrl + Alt + T
  • macOS:Command + 空格 → 输入 Terminal

终端提示符解读

user@hostname:~$ 
# user     = 当前用户名
# hostname = 主机名
# ~        = 当前目录(~ 表示家目录 /home/user)
# $        = 普通用户权限(# 表示 root 权限)

第一个命令

# 查看当前日期时间
date
# 输出:Mon Jan 15 08:30:00 CST 2024

# 查看当前用户
whoami
# 输出:user

# 查看当前目录
pwd
# 输出:/home/user

文件系统结构

Linux 一切皆文件,目录结构遵循 FHS(Filesystem Hierarchy Standard):

/           根目录
├── /bin    基本命令(ls, cat, mv)
├── /sbin   系统管理命令(fdisk, ifconfig)
├── /etc    配置文件
├── /home   普通用户家目录
│   └── /home/user  你的个人文件
├── /root   root 用户家目录
├── /var    日志、缓存、数据库
├── /tmp    临时文件(重启清空)
├── /usr    用户程序
│   ├── /usr/bin   应用程序
│   └── /usr/local 手动安装的软件
├── /opt    可选软件包
└── /proc   虚拟文件系统(进程信息)

本篇小结

  • Linux 是服务器标准、开发效率工具、系统理解钥匙
  • 学习哲学:不要背命令,要背场景;六层递进模型
  • 环境首选 WSL2,次选 VirtualBox + Ubuntu LTS
  • 终端提示符:user@hostname:~$
  • FHS 核心目录:/bin(命令)、/etc(配置)、/home(用户)、/var(日志)

动手实践

  1. 安装 WSL2 或 VirtualBox + Ubuntu
  2. 打开终端,执行以下命令并观察输出:
    date
    whoami
    pwd
    ls /
    
  3. 画出你理解的 Linux 目录结构图(手绘或电子笔记)
  4. 进入 /bin 目录,用 ls 看看有哪些你认识的命令
  5. 思考:为什么 Linux 把配置文件放在 /etc,而不是像 Windows 那样分散在各处?这种集中式管理有什么好处?
下一页
文件与目录操作(上):ls、cd、pwd