跳转至

03 - 常用 Linux 命令与技巧

前提条件

  • 已完成 Debian 12 Bookworm 安装并配置好高速 apt 源
  • 系统已升级到最新状态(apt full-upgrade 完成)
  • 以 root 身份登录,或 ops 用户执行 sudo -i 切换至 root 环境
  • 虚拟机环境:VMware Workstation Pro,已安装 open-vm-tools

详细步骤

1. 文件与目录操作

pwd                      # 显示当前工作目录
ls -la                   # 显示隐藏文件 + 详细信息
cd /etc                  # 切换目录
cd -                     # 返回上一个目录
mkdir -p /tmp/test/dir   # 递归创建目录
touch file{1..5}.txt     # 快速创建多个文件
cp -r dir1 dir2          # 递归复制目录
mv file.txt /tmp/        # 移动或重命名
rm -rf /tmp/test         # 递归删除(危险,谨慎使用)

rm -rf 风险提示

rm -rf 不可撤销,执行前务必确认路径正确。生产环境建议先用 ls 确认目标再删除,或使用 mv 先移至 /tmp 观察。

2. 查看与查找内容

cat /etc/os-release               # 查看系统版本信息
less /var/log/syslog              # 分页查看大文件(q 退出)
head -n 10 /var/log/auth.log      # 查看前 10 行
tail -f /var/log/syslog           # 实时跟踪日志(Ctrl+C 退出)
grep -i "error" /var/log/syslog   # 忽略大小写查找
grep -r "192.168.1.100" /etc/     # 递归搜索整个目录
find /etc -name "*.conf"          # 查找所有 .conf 文件
find /etc -name "*.conf" | wc -l  # 统计 .conf 文件数量
locate sshd_config                # 快速定位(需先执行 updatedb)

3. 进程与资源监控

ps aux | grep ssh      # 查看 ssh 相关进程
top                    # 实时进程监控(Shift+P 按 CPU 排序)
htop                   # 交互式进程监控(需已安装)
free -h                # 内存使用(人类可读单位)
df -h                  # 磁盘使用情况
du -sh /var/*          # 查看各目录占用大小
uptime                 # 系统运行时间与负载均值

4. 网络常用命令

ip addr show              # 查看 IP 地址(现代推荐)
ip route show             # 查看路由表
ss -tuln                  # 查看监听端口(比 netstat 更快)
ping -c 4 8.8.8.8         # 测试连通性
curl -I https://baidu.com # 只查看 HTTP 响应头
wget -c http://example.com/file  # 断点续传下载

5. 权限与所有者管理

ls -l                    # 查看文件权限
chmod 755 script.sh      # 设置 rwxr-xr-x
chmod u+x script.sh      # 仅给拥有者添加执行权限
chown ops:ops file.txt   # 更改拥有者与组
chown -R ops:ops /data   # 递归更改目录所有权

权限数字速记:

数字 权限 含义
7 rwx 读 + 写 + 执行
6 rw- 读 + 写
5 r-x 读 + 执行
4 r-- 只读
0 --- 无权限

6. 常用别名配置

为 ops 用户在 ~/.bashrc~/.bash_aliases 中添加:

alias ll='ls -la --color=auto'
alias update='apt update && apt full-upgrade -y'
alias gs='git status'
alias ..='cd ..'
alias ...='cd ../..'
alias cls='clear'

应用更改:

source ~/.bashrc

别名持久化

~/.bashrc 中有 if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases; fi 语句,则别名写在 ~/.bash_aliases 中即可自动加载,无需每次手动 source。

实践任务

  1. 使用 find 命令在 /etc 下查找所有包含 sshd 关键字的配置文件
  2. htop 查看当前占用 CPU / 内存最高的前 3 个进程
  3. ss -tuln 查看当前系统监听的端口,确认 SSH 是否在默认 22 端口(后续第 8 章会改为 2222)
  4. 为 ops 用户创建 llupdatecls 三个常用别名,并测试生效

自测问题

1. tail -fless 的主要使用场景区别是什么?

tail -f 用于实时跟踪正在写入的日志文件,适合监控服务运行状态、排查实时问题,新写入的内容会自动追加显示,按 Ctrl+C 退出。less 用于翻页阅读已有的大文件,支持上下翻页(b/f)、搜索(/keyword)、跳转(g/G),适合分析历史日志,按 q 退出。

2. 为什么现代 Debian 更推荐使用 ip addr 而不是 ifconfig

ifconfig 属于 net-tools 软件包,该工具包已停止维护多年,不支持现代网络特性(如 IPv6 高级功能、网络命名空间、VLAN、bonding 等)。ip 命令属于 iproute2 软件包,由 Linux 内核社区持续维护,功能更完整,输出信息更详细,并与 sstc 等现代工具形成统一的 iproute2 工具集。Debian 12 默认不安装 net-toolsip 是开箱即用的现代替代方案。

3. 如何快速统计系统中所有 .log 文件的数量?

find / -name "*.log" 2>/dev/null | wc -l
# 或仅统计 /var/log 下
find /var/log -name "*.log" | wc -l

4. chmod 644 file.txt 具体代表什么权限?

  • 拥有者(user):6 = rw-(读 + 写,无执行)
  • 所属组(group):4 = r--(只读)
  • 其他用户(others):4 = r--(只读)

这是普通文件的标准权限,适用于配置文件、文档等不需要执行的文件,防止其他用户误修改。

总结

熟练掌握这些常用命令与技巧是 Linux 日常运维的核心能力。本章内容在后续所有章节中都会反复用到,尤其是日志排查(tail -f + grep)、进程管理(htop / ps)、网络诊断(ip / ss / curl)等操作。