Linux 常用命令速查

每日一遍,快乐无限!


系统与信息

  • cat /etc/redhat-release - 查看系统版本信息 (适用于 RedHat/CentOS)。
  • uname -a - 显示内核信息。
  • uptime - 显示系统从开机到现在所运行的时间。
  • w - 显示登录的用户。
  • whoami - 查看你的当前用户名。
  • finger user - 显示用户的相关信息。
  • date - 显示当前时间。
  • cal - 显示当月的日历。
  • top - 查看系统负载状态,输入 1 查看 CPU 核心详情,输入 m 查看内存信息。
  • ps -aux - 查看所有系统进程状态,可配合 grep 使用。
  • df -Th - 查看磁盘挂载与使用情况。
  • du -h --max-depth=1 - 查看当前目录下一级文件和目录的大小。
  • free -h - 显示内存以及交换区占用情况。
  • cat /proc/cpuinfo - 查看 CPU 信息。
  • cat /proc/meminfo - 查看内存信息。
  • man command - 显示 command 的说明手册。

文件与目录操作

  • ls -al - 列出所有文件(包括隐藏文件)的详细信息。
  • pwd - 显示当前工作目录。
  • cd dir - 切换到 dir 目录。
  • mkdir dir - 创建 dir 目录。
  • rm file - 删除 file 文件。
  • rm -rf dir - 强制删除 dir 目录及其所有内容。
  • cp file1 file2 - 将 file1 复制为 file2
  • cp -r dir1 dir2 - 复制 dir1 目录到 dir2
  • mv file1 file2 - 移动或重命名 file1file2
  • ln -s source_file link_name - 创建一个指向 source_file 的软链接 link_name
  • touch file - 创建一个空文件 file 或更新文件时间戳。
  • cat file1 file2 > file3 - 合并 file1file2 的内容到 file3
  • tree - 以树状结构显示文件和目录。
  • chattr +i file - 设置文件为不可修改模式。

文本处理

  • grep pattern file - 在 file 中查找 pattern
  • grep -v pattern file - 在 file 中查找不包含 pattern 的行。
  • grep ^start file - 查找以 start 开头的行。
  • grep end$ file - 查找以 end 结尾的行。
  • sed -i 's/old/new/g' file - 将 file 中的所有 old 替换为 new
  • head file - 查看文件的前 10 行。
  • tail file - 查看文件的后 10 行。
  • tail -f file - 实时查看文件的新增内容。

网络与 DNS

  • dig 域名 +short - 简洁地查询域名的 IP 地址。
  • dig -x ip +short - 简洁地反向查询 IP 地址对应的域名。
  • dig @dns_server 域名 +short - 从指定的 DNS 服务器查询。
  • nslookup 域名 - 查询域名的 DNS 信息。
  • netstat -ntlp - 查看当前监听的 TCP 端口。
  • ss -antp - 显示 TCP 连接 (功能类似 netstat)。
  • ss -anup - 显示 UDP 连接。
  • ip routeroute -n - 显示当前路由表。
  • ip route add 192.168.52.0/24 dev ens33 - 添加到 192.168.52.0/24 网段的路由。
  • ip route del 192.168.10.0/24 - 删除路由。
  • traceroute ip/域名 - 追踪到目标主机或域名的路由路径。
  • ping host - 测试与 host 的连通性。
  • whois domain - 获取 domain 的 whois 信息。
  • wget file - 下载 file
  • wget -c file - 断点续传下载 file

curl 高级用法

  • curl http://example.com -H "X-Forwarded-For: 1.1.1.1" -H "Referer: https://google.com" - 伪造请求头。
  • curl url >> file.html - 将网页内容重定向保存到文件。
  • curl -X POST -d "data=payload" http://example.com - 发送 POST 请求。
  • curl -c cookie.txt http://example.com - 保存响应中的 Cookie。
  • curl -b cookie.txt http://example.com - 发送请求时携带 Cookie。
  • curl -D headers.txt http://example.com - 保存响应头。

权限与用户管理

  • chmod 755 file - 更改文件权限 (r=4, w=2, x=1)。
  • chown -R user:group /path/to/dir - 递归地将目录所有者和属组更改为 user:group
  • passwd user - 修改 user 的密码。
  • passwd -d user - 删除 user 的密码。

防火墙与网络安全

ufw (Ubuntu 防火墙)

  • sudo ufw status - 查看防火墙状态。
  • sudo ufw enable - 开启防火墙。
  • sudo ufw disable - 关闭防火墙。

firewalld (CentOS/RHEL)

  • systemctl stop firewalld - 临时关闭防火墙。
  • systemctl disable firewalld - 永久禁用防火墙。

iptables

  • iptables -L --line-numbers - 查看所有规则及其编号。
  • iptables -F - 清空所有规则。
  • iptables -P INPUT DROP - 设置 INPUT 链的默认策略为 DROP。
  • iptables -A INPUT -s 1.2.3.4 -j ACCEPT - 允许来自 1.2.3.4 的流量。
  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT - 允许 TCP 流量到 22 端口。
  • iptables-save > /etc/sysconfig/iptables - 保存规则。

压缩与解压

  • *.tar -> tar -xvf file.tar
  • *.tar.gz, *.tgz -> tar -xzf file.tar.gz
  • *.tar.bz2 -> tar -xjf file.tar.bz2
  • *.zip -> unzip file.zip -d /path/to/dir

软件安装

  • yum update - (CentOS/RHEL) 更新所有软件包。
  • yum remove package - (CentOS/RHEL) 移除软件包。
  • dpkg -i pkg.deb - (Debian/Ubuntu) 安装 .deb 包。
  • 从源码安装:
    1
    2
    3
    ./configure
    make
    make install

tcpdump 抓包

  • tcpdump -i eth0 host 1.2.3.4 -c 10 -nn -w capture.pcap
    • -i eth0: 指定网卡。
    • host 1.2.3.4: 过滤主机 IP。
    • -c 10: 只抓取 10 个包。
    • -nn: 不解析主机名和端口号。
    • -w capture.pcap: 保存到文件。

Wireshark 过滤语法

  • 协议过滤: tcp, udp, http
  • IP 过滤:
    • ip.addr == 192.168.1.1
    • ip.src == 192.168.1.1
    • ip.dst == 192.168.1.1
  • 端口过滤:
    • tcp.port == 80
    • tcp.srcport == 80
  • HTTP 过滤:
    • http.request.method == "GET"
    • http.request.uri contains "admin"
    • http.response.code == 404
  • 逻辑操作: && (and), || (or)

LVM (逻辑卷管理)

LVM 扩容

  1. pvcreate /dev/sdb1 - 创建物理卷。
  2. vgextend vg_name /dev/sdb1 - 将物理卷添加到卷组。
  3. lvextend -L +10G /dev/mapper/vg-lv - 扩展逻辑卷。
  4. resize2fs /dev/mapper/vg-lv - 调整文件系统大小 (ext4)。
    xfs_growfs /path/to/mount - (xfs)

非 LVM 分区扩容

  1. umount /dev/sda1 - 卸载分区。
  2. fdisk /dev/sda - 使用 fdisk 重新分区 (先删除旧分区,再创建新分区)。
  3. resize2fs /dev/sda1 - 调整文件系统大小。
  4. mount /dev/sda1 /mnt - 重新挂载。

注意: 操作磁盘分区前务必备份重要数据!