跳到主要内容

Linux 命令学习路线

介绍 《Linux-命令》(笔记) 收集了超过 130 个 Linux 命令的使用方法。我将它们放置在数个目录中,你可以按照下述顺序学习它们:

1. 基础命令 🛠️

首先,了解基本的文件操作命令和系统管理命令是必须的。

文件和目录操作 📁

  • ls:列出目录内容 ​​
  • cd:更改目录
  • pwd:显示当前路径
  • mkdir:创建目录
  • rmdir:删除空目录
  • rm:删除文件或目录
  • cp:复制文件或目录
  • mv:移动文件或目录
  • touch:创建空文件
  • find:查找文件
  • locate:快速查找文件(需安装并更新数据库)

文件权限和所有者 🔒

  • chmod:修改文件权限
  • chown:改变文件所有者
  • chgrp:改变文件所属的组
  • umask:设置默认权限

文件内容查看和编辑 📝

  • cat:显示文件内容
  • more:分页显示文件内容
  • less:分页查看文件,支持上下滚动
  • head:查看文件开头部分
  • tail:查看文件末尾部分
  • grep:搜索文件内容
  • sed:流编辑器,文本处理
  • awk:文本分析和处理

文件压缩和解压 📦

  • tar:归档和解压
  • gzip / gunzip:压缩/解压 .gz 文件
  • zip / unzip:压缩/解压 .zip 文件
  • bzip2 / bunzip2:压缩/解压 .bz2 文件

2. 文件系统管理 💾

接下来,学习如何管理 Linux 文件系统,包括磁盘、分区和挂载。

磁盘和分区管理 🛠️

  • df:显示文件系统磁盘空间
  • du:显示目录空间使用情况
  • mount:挂载文件系统
  • umount:卸载文件系统
  • fdisk / parted:磁盘分区
  • lsblk:列出块设备
  • blkid:查看磁盘分区信息

文件系统操作 ⚙️

  • mkfs:创建文件系统
  • fsck:检查和修复文件系统
  • mount:挂载磁盘分区或设备
  • mount -t:挂载不同类型的文件系统
  • tune2fs:调整 ext 文件系统的参数

3. 进程管理 🔄

在 Linux 中,进程管理是很重要的技能。

查看进程 👀

  • ps:列出当前进程
  • top:实时查看进程
  • htop:更友好的进程查看工具(需要安装)
  • pgrep:根据名称查找进程
  • pidof:获取进程 ID
  • pstree:以树状图查看进程关系

进程控制 ✋

  • kill:发送信号终止进程
  • killall:按名称终止进程
  • pkill:按名称或其它条件终止进程
  • bg:将作业放到后台
  • fg:将作业放到前台
  • jobs:查看后台作业

4. 用户和权限管理 👤

Linux 是一个多用户操作系统,理解如何管理用户和权限非常重要。

用户和组管理 👥

  • useradd:创建用户
  • userdel:删除用户
  • usermod:修改用户
  • groupadd:创建组
  • groupdel:删除组
  • groups:查看用户所属的组
  • passwd:修改用户密码
  • chage:管理用户密码有效期

权限管理 🔑

  • chmod:修改文件/目录权限
  • chown:修改文件/目录所有者
  • chgrp:修改文件/目录的组
  • umask:设置文件默认权限

5. 网络管理 🌐

掌握网络命令可以帮助你配置和排除网络问题。

网络配置 🌍

  • ifconfig:查看和配置网络接口(被 ip 命令替代)
  • ip:更强大的网络配置工具
  • hostname:查看或设置主机名
  • nmcli:通过命令行管理 NetworkManager(如果安装)

网络诊断 🔍

  • ping:测试网络连接
  • traceroute:追踪路由路径
  • netstat:查看网络连接状态
  • ss:显示更详细的网络连接信息(替代 netstat)
  • nslookup:查询 DNS
  • dig:查询 DNS
  • curl:传输数据(支持 HTTP/FTP 等协议)
  • wget:下载文件

6. 日志管理 📜

了解如何查看和管理日志有助于你监控和排查系统问题。

查看日志 🧐

  • dmesg:显示系统启动日志
  • journalctl:查看系统日志(适用于使用 systemd 的系统)
  • tail -f /var/log/syslog:实时查看日志(系统日志)
  • logrotate:管理和轮换日志文件

7. 系统管理 ⚙️

系统管理涉及安装和维护系统的任务。

包管理 📦

  • apt-get / apt:Debian/Ubuntu 系统的包管理工具
  • yum / dnf:RedHat/CentOS 系统的包管理工具
  • rpm:管理 RPM 包
  • dpkg:管理 Debian 包
  • snap:管理 Snap 包
  • flatpak:管理 Flatpak 包

系统服务 🔧

  • systemctl:控制 systemd 服务
  • service:管理传统的 SysVinit 服务
  • journalctl:查看服务日志
  • chkconfig:管理服务开机启动(传统的 CentOS/RHEL)

8. 高级命令与脚本编程 🖥️

进阶的部分包括自动化和系统脚本。

Shell 脚本基础 📜

  • #!/bin/bash:Bash 脚本的开头
  • echo:输出文本
  • read:读取用户输入
  • for / while:循环
  • if / else:条件判断
  • function:定义函数
  • awk:文本处理
  • sed:流编辑器

任务调度 🕐

  • cron:定时任务
  • crontab:管理定时任务
  • at:一次性定时任务

9. 安全性管理 🛡️

掌握 Linux 安全性命令和技巧是非常重要的。

防火墙管理 🔥

  • iptables:配置防火墙(老版本)
  • firewalld:新一代防火墙工具
  • ufw:简化的防火墙管理工具(Ubuntu 默认)

SSH 安全 🔐

  • ssh:安全远程连接
  • scp:安全复制文件
  • rsync:远程同步文件

加密和密钥管理 🔑

  • gpg:加密/解密工具
  • openssl:生成证书、密钥管理

10. 容器化与虚拟化(进阶) 🐳

对于 DevOps 或云计算环境中的用户来说,掌握容器化和虚拟化技术是非常重要的。

Docker 🚢

  • docker:容器化管理工具
  • docker-compose:多个容器管理
  • docker run:启动容器
  • docker ps:查看容器状态
  • docker build:构建镜像

虚拟化 🖥️

  • virsh:管理 KVM 虚拟机
  • vagrant:虚拟机自动化工具
  • qemu:虚拟化管理工具

学习建议 📚

  1. 循序渐进:从基础命令开始,逐步深入了解进程管理、网络配置等。

  2. 多做练习:通过实际操作来巩固命令的使用。可以在 Linux 虚拟机、WSL 环境中实践。

  3. 读书:读《Linux命令行与shell脚本编程大全》系统的学习 Linux 命令。

  4. Linux终端中查询命令用法:

    curl cheat.sh/命令

    image-20250104224153231

  5. 使用 AI 查询(注意:辨认信息真伪)。 根据个人使用感受, GPT 仍然是最佳选择。国内 AI 推荐 智谱清言,其余 AI “宣传大于疗效”。