Linux基础常用命令教学:从入门到熟练

📅 2026/7/19 4:28:27 👁️ 阅读次数 📝 编程学习
Linux基础常用命令教学:从入门到熟练

1. 引言:为什么学习Linux命令?

Linux作为服务器、云计算、容器和嵌入式开发领域的核心操作系统,其命令行界面(CLI)是高效管理和操作系统的关键。掌握基础Linux命令不仅能提升工作效率,更是深入理解计算机系统运作、进行自动化运维和开发的必备技能。本文将从零开始,系统讲解Linux中最常用、最核心的命令,帮助初学者快速上手。

2. 环境准备与终端基础

在开始学习命令前,你需要一个Linux环境。可以选择:

  • 物理机安装:如Ubuntu、CentOS。
  • 虚拟机:使用VirtualBox或VMware安装Linux系统。
  • 云服务器:购买阿里云、腾讯云等提供的Linux云服务器。
  • Windows子系统(WSL):在Windows 10/11上安装WSL。

打开终端(Terminal)后,你会看到类似user@hostname:~$的提示符,其中~代表当前用户的家目录(home directory),$表示普通用户权限(#表示root超级用户)。

3. 文件与目录操作命令

3.1 查看与导航

  • pwd:打印当前工作目录的完整路径。
    pwd

    输出:/home/username

  • ls:列出目录内容。
    ls # 简单列出 ls -l # 以长格式列出(显示权限、所有者、大小等) ls -a # 列出所有文件,包括隐藏文件(以.开头) ls -lh # 以人类可读的格式(如K, M)显示文件大小 ls -ld #查看目录本身信息
  • cd:切换目录。
    cd /home # 切换到绝对路径 /home cd .. # 切换到上级目录 cd ~ # 切换到当前用户的家目录 cd - # 切换到上一个所在的目录

3.2 创建、删除与移动

  • mkdir:创建新目录。
    mkdir new_folder # 创建单个目录 mkdir -p parent/child # 创建多级目录(如果父目录不存在则一并创建)
  • touch:创建空文件或更新文件时间戳。
    touch file.txt
  • cp:复制文件或目录。
    cp source.txt dest.txt # 复制文件 cp -r source_dir/ dest_dir/ # 递归复制目录
  • mv:移动或重命名文件/目录。
    mv old.txt new.txt # 重命名文件 mv file.txt /tmp/ # 将文件移动到 /tmp 目录
  • rm:删除文件或目录。(谨慎使用!)
    rm file.txt # 删除文件 rm -r folder/ # 递归删除目录及其内容 rm -rf folder/ # 强制递归删除,无确认提示(极其危险!)

4. 文件内容查看与编辑

4.1 查看文件内容

  • cat:连接文件并打印到标准输出(适合查看小文件)。
    cat file.txt
  • less / more:分页查看大文件(推荐使用less,支持上下翻页)。
    less large_log.txt # 在 less 中:空格键向下翻页,b键向上翻页,q键退出
  • head:显示文件开头部分(默认10行)。
    head -n 20 file.txt # 显示前20行
  • tail:显示文件末尾部分,常用于实时查看日志。
    tail -n 5 file.txt # 显示最后5行 tail -f app.log # 实时追踪文件新增内容(Ctrl+C 退出)

4.2 文本编辑

  • vim / vi:功能强大的模态编辑器(学习曲线陡峭但效率极高)。
    vim file.txt 进入后按 i 进入插入模式编辑,按 Esc 退出插入模式,输入 :wq 保存并退出

5. 系统信息与进程管理

5.1 系统状态

  • uname:显示系统信息。
    uname -a # 显示所有信息(内核版本、主机名等)
  • df:报告文件系统磁盘空间使用情况。
    df -h # 以人类可读格式显示
  • free:显示内存使用情况。
    free -h # 以人类可读格式显示
  • top / htop:动态显示进程信息(htoptop的增强版)。

5.2 进程管理

  • ps:报告当前进程的快照。
    ps aux # 查看所有用户的所有进程详细信息 ps -ef | grep nginx # 查找包含"nginx"的进程
  • kill:向进程发送信号以终止进程。
    kill 1234 # 向PID为1234的进程发送TERM信号(请求终止) kill -9 1234 # 发送KILL信号(强制终止)
  • pkill:通过进程名终止进程。
    pkill firefox

6. 网络相关命令

  • ping:测试与目标主机的网络连通性。
    ping google.com ping -c 4 8.8.8.8 # 发送4个包后停止
  • ifconfig / ip addr:查看和配置网络接口(ip命令更现代)。
    ip addr show
  • netstat / ss:显示网络连接、路由表、接口统计等(ssnetstat的更快替代)。
    ss -tuln # 查看所有监听的TCP和UDP端口
  • curl:强大的命令行数据传输工具,常用于测试API、下载文件。
    curl https://api.example.com/data curl -O https://example.com/file.zip # 下载文件并保留远程文件名
  • wget:非交互式网络下载器。
    wget https://example.com/file.zip

7. 权限与用户管理

7.1 文件权限

使用ls -l查看文件权限,输出如-rwxr-xr--

  • 第一位:文件类型(-普通文件,d目录)。
  • 后九位:三组权限(所有者、所属组、其他人),每组为 rwx(读、写、执行)。
  • chmod:修改文件权限。
    chmod 755 script.sh # 数字模式:所有者rwx,组rx,其他人rx chmod u+x script.sh # 符号模式:给所有者增加执行权限
  • chown:修改文件所有者和所属组。
    chown user:group file.txt

7.2 用户与组

  • whoami:显示当前登录用户名。
  • id:显示用户和组信息。
    id # 显示当前用户的 uid、gid 和所属组 id username # 显示指定用户的信息
  • groups:显示用户所属的组。
    groups # 显示当前用户所属组 groups zzx # 显示用户 zzx 所属组
  • sudo:以超级用户(root)权限执行命令。
    sudo apt update # 在 Ubuntu/Debian 上更新软件包列表 sudo systemctl restart nginx # 重启 nginx 服务
  • su:切换用户身份。
    su - # 切换到 root 用户(需要 root 密码) su - zzx # 切换到 zzx 用户(需要 zzx 的密码) sudo su - # 使用 sudo 权限切换到 root(需要当前用户有 sudo 权限)
  • passwd:修改用户密码。
    passwd # 修改当前用户密码 sudo passwd zzx # 修改用户 zzx 的密码(需要 root 权限)
  • useradd:添加用户。
    sudo useradd zzx # 添加用户 zzx(Rocky 中自动创建家目录) sudo useradd -m -s /bin/bash zzx # Ubuntu 中需要 -m 手动创建家目录 sudo useradd -d /opt/zzx zzx # -d 指定用户家目录 sudo useradd -u 3000 zzx # 指定用户 uid
  • userdel:删除用户。
    sudo userdel zzx # 删除用户 zzx,保留家目录 sudo userdel -r zzx # 删除用户 zzx,同时删除家目录和邮箱
  • usermod:修改用户信息。
    sudo usermod -aG qa zzx # 将用户 zzx 加入附加组 qa(-a 避免覆盖原有组) sudo usermod -s /bin/sh zzx # 修改用户登录 shell sudo usermod -L zzx # 锁定用户账户 sudo usermod -U zzx # 解锁用户账户
  • groupadd:创建组。
    sudo groupadd dba # 创建组 dba sudo groupadd -g 3000 dba # 创建并指定组的 gid
  • groupmod:修改组。
    sudo groupmod -n ops op # 修改组名,-n 新组名 旧组名 sudo groupmod -g 4000 devops # 修改组GID
  • groupdel:删除组。
    sudo groupdel dba # 删除组 dba(组内不能有用户)
  • gpasswd:组成员管理。
    sudo gpasswd -a zzx qa # 将用户 zzx 添加到组 qa 中 sudo gpasswd -d zzx qa # 将用户 zzx 从组 qa 中移除 sudo gpasswd -A zzx qa # 设置用户 zzx 为组 qa 的管理员
  • visudo:安全编辑 sudoers 配置文件。
    sudo visudo # 编辑 /etc/sudoers 文件(会进行语法检查)

相关配置文件:

  • /etc/passwd:用户账户信息
  • /etc/shadow:用户密码信息(加密)
  • /etc/group:组信息
  • /etc/sudoers:sudo 权限配置

注意事项:

  • 用户和组管理通常需要 root 权限,使用sudo或切换到 root 用户执行。
  • 删除用户或组前,确保没有进程或文件依赖。
  • 修改系统配置文件建议使用专用命令(如visudo),避免直接编辑导致语法错误。

8. 压缩与归档

  • tar:打包与解包文件(常与压缩结合)。
    tar -czvf archive.tar.gz folder/ # 创建gzip压缩的tar包 tar -caf archive.tar.gz folder/ #a表示根据后缀gz/bz2/xz自动选择压缩工具 tar -xzvf archive.tar.gz # 解压gzip压缩的tar包 tar -xf archive.tar.gz
  • gzip / gunzip:压缩/解压 .gz 文件。
  • zip / unzip:创建和解压 .zip 文件。

9. 查找与搜索

  • find:在目录树中查找文件。
    find /home -name "*.txt" # 按文件名查找 find . -type f -size +10M # 查找大于10MB的文件 find . -mtime -7 # 查找7天内修改过的文件
  • grep:在文件中搜索文本模式。
    grep "error" log.txt # 在文件中搜索"error" grep -r "TODO" src/ # 递归搜索目录 grep -i "warning" file.txt # 忽略大小写搜索

10. 总结与练习建议

掌握这些基础命令是成为Linux熟练用户的第一步。建议:

  1. 动手实践:在自己的Linux环境中逐一尝试每个命令。
  2. 善用帮助:使用man 命令名(如man ls)或命令名 --help查看详细手册。
  3. 组合使用:学习使用管道(|)将命令组合,例如ps aux | grep python
  4. 记录笔记:将常用命令和选项整理成自己的速查表。

命令行是Linux的灵魂,越用越熟练。祝你学习愉快!