以下按功能分类整理了 Linux 系统中高频、实用、细节丰富的命令,不含应急响应内容,覆盖日常运维、系统管理、配置排查、自动化等场景,带常用参数、示例和实用提示,可直接套用(适用于 Ubuntu/Debian/CentOS/RHEL 等主流发行版)。


一、基础文件与目录操作(最常用)

1. pwd 显示当前工作目录

  • 用法:直接输入pwd,显示当前所在的完整路径
  • 示例:pwd → 输出 /home/user/documents
  • 细节提示:配合cd命令使用,避免迷路

2. ls 列出目录内容

  • 用法:ls [参数] [路径]
  • 常用参数:
    • -l 长格式显示(权限、所有者、大小、修改时间)
    • -a 显示所有文件(含隐藏文件,以.开头)
    • -h 人类可读格式显示文件大小(KB/MB/GB)
    • -R 递归显示子目录内容
    • -t 按修改时间排序(最新在前)
  • 示例:
    • ls -lha 查看当前目录所有文件的详细信息
    • ls -lt /var/log 按时间排序查看日志目录文件
  • 细节提示:llls -l的常用别名,大部分系统默认配置

3. cd 目录切换

  • 用法:cd [路径]
  • 示例:
    • cd /home/user 进入指定目录
    • cd .. 返回上一级目录
    • cd ~cd 快速返回当前用户主目录
    • cd - 返回上一个工作目录
    • cd / 直接跳转到根目录
  • 细节提示:路径含空格时,用引号包裹或转义,如 cd "my docs"cd my\ docs

4. mkdir 创建目录

  • 用法:mkdir [参数] 目录名
  • 常用参数:-p 递归创建多级目录(父目录不存在时自动创建)
  • 示例:
    • mkdir new_folder 创建单个目录
    • mkdir -p /opt/project/src/main 一次性创建多级目录
  • 细节提示:-m 参数可直接设置权限,如 mkdir -m 755 public

5. cp 文件 / 目录复制

  • 用法:cp [参数] 源文件 目标文件
  • 常用参数:
    • -r-R 递归复制目录(必须加,否则无法复制目录)
    • -a 归档复制(保留权限、所有者、时间戳等所有属性)
    • -f 强制覆盖目标文件不提示
    • -v 显示复制过程
  • 示例:
    • cp file.txt /backup/ 复制文件到目标目录
    • cp -avr /data /backup/ 完整复制目录及所有属性
  • 细节提示:cp -i 会在覆盖前提示,适合谨慎操作

6. mv 文件 / 目录移动 / 重命名

  • 用法:mv [参数] 源 目标
  • 常用参数:-f 强制覆盖,-i 覆盖前提示
  • 示例:
    • mv file.txt /new/path/ 移动文件
    • mv oldname.txt newname.txt 重命名文件(同目录)
    • mv dir1 dir2 重命名目录或移动目录
  • 细节提示:跨文件系统移动 = 复制 + 删除,同文件系统移动瞬间完成

7. rm 删除文件 / 目录

  • 用法:rm [参数] 文件/目录
  • 常用参数:
    • -r 递归删除目录及所有内容
    • -f 强制删除不提示
    • -i 删除前提示(安全模式)
  • 示例:
    • rm file.txt 删除单个文件
    • rm -rf old_dir/ 强制删除整个目录(谨慎使用!)
    • rm -i *.log 删除所有.log 文件前逐一确认
  • 🔴 致命提示:rm -rf / 会删除系统所有文件,绝对禁止使用!

8. touch 创建空文件 / 更新时间戳

  • 用法:touch 文件名
  • 示例:
    • touch newfile.txt 创建空文件
    • touch -d "2026-01-01" oldfile.txt 修改文件时间戳
  • 细节提示:文件已存在时,仅更新访问和修改时间,不改变内容

9. ln 创建链接文件

  • 用法:ln [参数] 源文件 链接文件
  • 常用参数:-s 创建符号链接(软链接),默认硬链接
  • 示例:
    • ln -s /usr/bin/python3 /usr/bin/python 创建 Python3 的软链接
    • ln file.txt file.link 创建硬链接
  • 细节提示:软链接可跨文件系统,硬链接只能在同一文件系统内

二、文件内容查看与编辑

1. cat 查看文件内容(正序)

  • 用法:cat [参数] 文件名
  • 常用参数:-n 显示行号,-b 显示非空行号
  • 示例:
    • cat /etc/passwd 查看用户配置文件
    • cat -n log.txt 查看日志并显示行号
  • 细节提示:适合查看小文件,大文件用less更高效

2. less 分页查看文件内容(最常用)

  • 用法:less 文件名
  • 常用操作:
    • 空格键:向下翻页,b:向上翻页
    • /关键词:向下搜索,?关键词:向上搜索
    • n:下一个匹配项,N:上一个匹配项
    • q:退出查看
  • 示例:less /var/log/syslog 分页查看系统日志
  • 细节提示:less 支持向前 / 向后翻页,比more更灵活

3. head 查看文件开头部分

  • 用法:head [参数] 文件名
  • 常用参数:-n 行数 显示前 N 行(默认 10 行)
  • 示例:
    • head /etc/hosts 查看 hosts 文件前 10 行
    • head -n 20 access.log 查看访问日志前 20 行

4. tail 查看文件结尾部分 / 实时日志

  • 用法:tail [参数] 文件名
  • 常用参数:
    • -n 行数 显示后 N 行(默认 10 行)
    • -f 实时跟踪文件更新(日志监控必备)
    • -F-f类似,但文件被删除重建后仍能继续跟踪
  • 示例:
    • tail -n 50 error.log 查看错误日志最后 50 行
    • tail -F /var/log/nginx/access.log 实时监控 Nginx 访问日志
  • 细节提示:按Ctrl+C停止实时跟踪

5. grep 文本搜索过滤神器

  • 用法:grep [参数] "关键词" 文件名
  • 常用参数:
    • -i 忽略大小写
    • -n 显示匹配行的行号
    • -v 反向匹配(显示不包含关键词的行)
    • -r 递归搜索目录下所有文件
    • -c 只显示匹配行数
  • 示例:
    • grep -in "error" app.log 搜索日志中所有错误行并显示行号
    • grep -rv "test" /code/ 搜索代码目录中不含 test 的文件
    • ps aux | grep nginx 查找 nginx 进程
  • 细节提示:结合管道符|使用,功能更强大

6. nano 简单文本编辑器(新手友好)

  • 用法:nano 文件名
  • 常用操作:
    • Ctrl+O 保存文件,Ctrl+X 退出编辑器
    • Ctrl+W 搜索文本,Ctrl+\ 替换文本
    • Ctrl+G 查看帮助
  • 示例:nano /etc/resolv.conf 编辑 DNS 配置文件
  • 细节提示:适合快速编辑,复杂编辑推荐vim

7. vim 高级文本编辑器(专业必备)

  • 用法:vim 文件名
  • 基础操作:
    • 进入编辑模式:按i键(插入)或a键(追加)
    • 退出编辑模式:按Esc
    • 保存退出::wq,强制保存退出::wq!
    • 不保存退出::q!
    • 搜索:/关键词,替换::%s/旧内容/新内容/g
  • 示例:vim /etc/nginx/nginx.conf 编辑 Nginx 配置文件
  • 细节提示:Linux 系统标配,功能强大,建议熟练掌握基础操作

三、系统信息与监控

1. uname 查看系统内核信息

  • 用法:uname [参数]
  • 常用参数:-a 显示完整系统信息(内核版本、主机名、架构等)
  • 示例:uname -a → 输出 Linux server 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

2. lsb_release 查看发行版信息

  • 用法:lsb_release -a
  • 示例:查看 Ubuntu/Debian 系统版本,输出发行版名称、版本号、代号

3. top 实时系统监控(任务管理器)

  • 用法:直接输入top,显示 CPU、内存、进程等实时信息
  • 常用操作:
    • P 按 CPU 使用率排序,M 按内存使用率排序
    • k 终止进程(输入 PID),q 退出
  • 示例:top 查看系统资源占用情况
  • 细节提示:htoptop的增强版,界面更友好,功能更丰富

4. ps 查看进程状态

  • 用法:ps [参数]
  • 常用参数:
    • aux 显示所有用户的所有进程(最常用)
    • ef 显示进程树和父进程 ID
  • 示例:
    • ps aux | grep java 查看所有 Java 进程
    • ps ef | grep nginx 查看 nginx 进程树
  • 细节提示:结合grep过滤进程,是排查服务是否运行的常用组合

5. free 查看内存使用情况

  • 用法:free [参数]
  • 常用参数:-h 人类可读格式显示内存大小
  • 示例:free -h → 输出总内存、已用、空闲、缓存等信息
  • 细节提示:buff/cache 是系统缓存,可释放,实际可用内存更大

6. df 查看磁盘空间使用情况

  • 用法:df [参数]
  • 常用参数:-h 人类可读格式,-T 显示文件系统类型
  • 示例:df -hT 查看所有磁盘分区的空间使用和文件系统类型
  • 细节提示:df -i 查看 inode 使用情况,避免因 inode 耗尽导致无法创建文件

7. du 查看文件 / 目录大小

  • 用法:du [参数] 目录/文件
  • 常用参数:
    • -h 人类可读格式
    • -s 仅显示总大小(不显示子目录)
    • -c 显示总计
  • 示例:
    • du -sh /var/log 查看日志目录总大小
    • du -h --max-depth=1 /home 查看用户目录下一级目录大小
  • 细节提示:du -sh * 快速查看当前目录下所有文件 / 目录大小

8. uptime 查看系统运行时间

  • 用法:直接输入uptime
  • 示例:输出 15:30:00 up 2 days, 4:15, 1 user, load average: 0.00, 0.01, 0.05
  • 细节提示:显示系统已运行时间、登录用户数和系统负载(1/5/15 分钟)

9. who / w 查看登录用户信息

  • who:显示当前登录用户
  • w:显示登录用户及正在执行的命令
  • 示例:w 查看系统当前用户活动情况

四、用户与权限管理

1. useradd 创建用户

  • 用法:useradd [参数] 用户名(需 root 权限)
  • 常用参数:
    • -m 自动创建用户主目录
    • -s 指定默认 shell(如/bin/bash
    • -g 指定初始用户组
    • -G 指定附加用户组
  • 示例:useradd -m -s /bin/bash -g users -G sudo newuser 创建带主目录、bash shell、加入 sudo 组的用户

2. passwd 设置 / 修改用户密码

  • 用法:passwd [用户名](root 可修改所有用户密码)
  • 示例:
    • passwd newuser 为 newuser 设置密码
    • passwd 修改当前用户密码
  • 细节提示:密码应包含大小写字母、数字和特殊字符,长度≥8 位

3. userdel 删除用户

  • 用法:userdel [参数] 用户名(需 root 权限)
  • 常用参数:-r 同时删除用户主目录和邮件文件
  • 示例:userdel -r olduser 彻底删除用户及相关文件

4. groupadd / groupdel 组管理

  • groupadd:创建用户组,示例:groupadd developers
  • groupdel:删除用户组,示例:groupdel oldgroup

5. usermod 修改用户属性

  • 用法:usermod [参数] 用户名(需 root 权限)
  • 常用参数:
    • -aG 添加用户到附加组(不覆盖原有组)
    • -s 修改默认 shell
    • -l 修改用户名
  • 示例:usermod -aG docker user 将用户添加到 docker 组,使其能运行 docker 命令

6. chmod 修改文件 / 目录权限

  • 用法:chmod [参数] 权限 文件名
  • 权限表示:
    • 数字法:r=4w=2x=1,如755(所有者读 / 写 / 执行,组和其他读 / 执行)
    • 符号法:u(所有者)、g(组)、o(其他)、a(所有),如u+x(给所有者加执行权限)
  • 示例:
    • chmod 755 script.sh 赋予脚本执行权限
    • chmod -R 644 /data 递归修改目录下所有文件为只读(除所有者)
    • chmod u+w file.txt 给所有者添加写权限
  • 细节提示:目录必须有x权限才能进入,文件通常不需要x权限

7. chown 修改文件 / 目录所有者

  • 用法:chown [参数] 所有者:组 文件名(需 root 权限)
  • 常用参数:-R 递归修改目录下所有文件
  • 示例:
    • chown user:users file.txt 把文件所有者改为 user,组改为 users
    • chown -R www-data:www-data /var/www 递归修改网站目录权限给 nginx/apache 用户
  • 细节提示:chgrp 命令可单独修改文件组

8. sudo 以其他用户身份执行命令

  • 用法:sudo [参数] 命令
  • 常用参数:-i 切换到 root 用户环境,-u 指定执行命令的用户
  • 示例:
    • sudo apt update 以 root 权限更新软件包列表
    • sudo -u www-data ls /var/www 以 www-data 用户身份查看网站目录
  • 细节提示:配置sudo权限需编辑/etc/sudoers文件(用visudo命令安全编辑)

五、网络管理与诊断

1. ip 网络配置工具(替代 ifconfig)

  • 用法:ip [参数]
  • 常用子命令:
    • ip addrip a 查看网络接口和 IP 地址
    • ip routeip r 查看路由表
    • ip link set dev eth0 up/down 启用 / 禁用网卡
    • ip neigh 查看 ARP 缓存
  • 示例:ip a show eth0 查看 eth0 网卡详细信息

2. ping 测试网络连通性

  • 用法:ping [参数] 目标IP/域名
  • 常用参数:
    • -c 次数 指定 ping 次数(Linux 默认持续 ping)
    • -s 大小 指定数据包大小
    • -i 间隔 指定 ping 间隔(秒)
  • 示例:
    • ping -c 4 baidu.com ping 百度 4 次
    • ping -s 1024 192.168.1.1 发送 1024 字节的 ping 包
  • 细节提示:按Ctrl+C停止 ping,ping -q 只显示结果统计

3. traceroute 路由追踪

  • 用法:traceroute 目标IP/域名
  • 示例:traceroute baidu.com 查看数据包到百度的路由路径
  • 细节提示:CentOS/RHEL 可能需要安装:sudo yum install traceroute

4. netstat 查看网络连接与端口占用

  • 用法:netstat [参数]
  • 常用参数:
    • -t 显示 TCP 连接
    • -u 显示 UDP 连接
    • -n 以数字形式显示 IP 和端口
    • -l 显示监听状态的端口
    • -p 显示进程 PID 和名称(需 root 权限)
  • 示例:netstat -tuln 查看所有监听端口
  • 细节提示:ssnetstat的现代替代,速度更快,功能更强大

5. ss 网络连接统计工具

  • 用法:ss [参数]
  • 常用参数:-tuln 查看监听端口,-p 显示进程,-s 显示统计信息
  • 示例:ss -tulnp | grep 80 查看 80 端口占用情况
  • 细节提示:ssnetstat更高效,推荐优先使用

6. curl / wget 下载工具

  • curl:多功能网络工具,支持 HTTP/HTTPS/FTP 等
    • 示例:curl -O https://example.com/file.zip 下载文件,curl -I https://example.com 查看响应头
  • wget:专注于文件下载
    • 示例:wget https://example.com/file.zip 下载文件,wget -c https://example.com/file.zip 断点续传
  • 细节提示:curl -L 跟随重定向,wget -r 递归下载整个网站

7. hostnamectl 查看 / 修改主机名

  • 用法:hostnamectl [参数]
  • 示例:
    • hostnamectl 查看主机名和系统信息
    • hostnamectl set-hostname newhostname 修改主机名(永久生效)

六、软件包管理

1. Debian/Ubuntu 系统(apt)

  • 更新软件包列表:sudo apt update
  • 升级已安装软件:sudo apt upgrade
  • 安装软件:sudo apt install 软件名(如sudo apt install nginx
  • 卸载软件:sudo apt remove 软件名(保留配置),sudo apt purge 软件名(彻底删除)
  • 搜索软件:apt search 关键词
  • 查看已安装软件:apt list --installed

2. CentOS/RHEL 系统(yum/dnf)

  • 更新软件包:sudo yum updatesudo dnf update
  • 安装软件:sudo yum install 软件名sudo dnf install 软件名
  • 卸载软件:sudo yum remove 软件名sudo dnf remove 软件名
  • 搜索软件:yum search 关键词dnf search 关键词
  • 查看软件信息:yum info 软件名dnf info 软件名

3. 通用源码安装步骤

  1. 下载源码包:wget https://example.com/software.tar.gz
  2. 解压:tar -xzvf software.tar.gz
  3. 进入目录:cd software
  4. 配置:./configure --prefix=/usr/local/software
  5. 编译:make
  6. 安装:sudo make install

七、磁盘与文件系统管理

1. fdisk 磁盘分区工具

  • 用法:sudo fdisk /dev/sdX(X 为磁盘盘符,如 sda)
  • 常用操作:
    • n 创建新分区,p 显示分区表
    • d 删除分区,w 保存退出,q 不保存退出
  • 示例:sudo fdisk /dev/sdb 对第二块磁盘进行分区
  • 细节提示:gdisk 用于 GPT 分区表,fdisk 用于 MBR 分区表

2. mkfs 格式化分区(创建文件系统)

  • 用法:sudo mkfs.[文件系统类型] /dev/sdXY
  • 示例:
    • sudo mkfs.ext4 /dev/sdb1 格式化为 ext4 文件系统
    • sudo mkfs.xfs /dev/sdb2 格式化为 xfs 文件系统
    • sudo mkfs.vfat /dev/sdb3 格式化为 FAT32 文件系统
  • 细节提示:格式化会删除所有数据,操作前务必确认分区正确

3. mount / umount 挂载 / 卸载文件系统

  • 挂载:sudo mount /dev/sdXY /mnt/point
  • 示例:sudo mount /dev/sdb1 /mnt/data 挂载分区到 /mnt/data
  • 卸载:sudo umount /mnt/pointsudo umount /dev/sdXY
  • 永久挂载:编辑/etc/fstab文件,添加一行:/dev/sdb1 /mnt/data ext4 defaults 0 0
  • 细节提示:mount -a 重新挂载/etc/fstab中所有文件系统

4. fsck 磁盘检查与修复

  • 用法:sudo fsck [参数] /dev/sdXY(卸载后执行)
  • 常用参数:-y 自动修复所有错误
  • 示例:sudo fsck -y /dev/sdb1 检查并修复分区错误
  • 🔴 警告:不要在已挂载的文件系统上运行fsck,可能导致数据损坏

八、压缩与归档

1. tar 归档工具(支持多种压缩格式)

  • 常用参数:
    • -c 创建归档,-x 提取归档
    • -v 显示过程,-f 指定归档文件名
    • -z 用 gzip 压缩 / 解压,-j 用 bzip2 压缩 / 解压,-J 用 xz 压缩 / 解压
  • 示例:
    • 压缩:tar -czvf backup.tar.gz /data 压缩目录为 tar.gz 格式
    • 解压:tar -xzvf backup.tar.gz 解压 tar.gz 文件
    • 查看:tar -tvf backup.tar.gz 查看归档内容
  • 细节提示:tar 本身只是归档工具,需配合gzip/bzip2等实现压缩

2. zip / unzip 压缩 / 解压工具

  • 压缩:zip -r archive.zip directory/ 递归压缩目录
  • 解压:unzip archive.zip 解压到当前目录
  • 常用参数:-d 指定解压目录,-l 查看压缩包内容
  • 示例:unzip archive.zip -d /tmp/extract 解压到指定目录

九、系统服务管理

1. systemctl 系统服务管理器(systemd)

  • 常用命令:
    • 启动服务:sudo systemctl start 服务名(如sudo systemctl start nginx
    • 停止服务:sudo systemctl stop 服务名
    • 重启服务:sudo systemctl restart 服务名
    • 查看状态:systemctl status 服务名
    • 设置开机自启:sudo systemctl enable 服务名
    • 禁用开机自启:sudo systemctl disable 服务名
    • 查看已启动服务:systemctl list-units --type=service
  • 示例:sudo systemctl enable --now nginx 立即启动 nginx 并设置开机自启

2. journalctl 查看系统日志(systemd)

  • 用法:journalctl [参数]
  • 常用参数:
    • -u 服务名 查看指定服务日志
    • -f 实时跟踪日志
    • -n 行数 显示最后 N 行日志
    • --since "时间" 显示从指定时间开始的日志
  • 示例:
    • journalctl -u nginx -f 实时查看 nginx 服务日志
    • journalctl --since "1 hour ago" 查看最近 1 小时的系统日志

十、实用工具与快捷命令

1. history 查看命令历史

  • 用法:history 显示最近执行的命令,!n 执行第 n 条命令,!! 执行上一条命令
  • 示例:history | grep cd 搜索包含 cd 的命令历史
  • 细节提示:修改HISTSIZEHISTFILESIZE可调整历史记录数量

2. alias 设置命令别名

  • 用法:alias 别名='命令'
  • 示例:
    • alias ll='ls -lha' 设置 ll 为 ls -lha 的别名
    • alias update='sudo apt update && sudo apt upgrade' 设置一键更新别名
  • 细节提示:写入~/.bashrc文件可永久生效,source ~/.bashrc 立即生效

3. date 查看 / 设置系统时间

  • 用法:date [参数]
  • 示例:
    • date 查看当前时间
    • date +"%Y-%m-%d %H:%M:%S" 自定义格式显示时间
    • sudo date -s "2026-04-25 15:30:00" 设置系统时间
  • 细节提示:timedatectl 可更方便地管理系统时间和时区

4. clear 清屏

  • 用法:直接输入clear 或按Ctrl+L 清屏

5. man 查看命令手册(最权威)

  • 用法:man 命令名 查看命令的详细帮助文档
  • 示例:man ls 查看 ls 命令的完整用法
  • 细节提示:man -k 关键词 搜索相关命令,info 命令名 查看更详细的信息

💡 小提示:以上命令是 Linux 日常运维的核心,覆盖 90% 以上的使用场景。大部分命令需要 root 权限时,在命令前加sudo即可。建议将常用命令添加到~/.bashrc的别名中,提高工作效率。

Categories:

Tags:

No responses yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

© 2026 世文的网络技术&蓝队安全学习小站
滇ICP备2026006758号-1 | 网安备