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。
实践任务
- 使用
find命令在/etc下查找所有包含sshd关键字的配置文件 - 用
htop查看当前占用 CPU / 内存最高的前 3 个进程 - 用
ss -tuln查看当前系统监听的端口,确认 SSH 是否在默认 22 端口(后续第 8 章会改为 2222) - 为 ops 用户创建
ll、update、cls三个常用别名,并测试生效
自测问题
1. tail -f 和 less 的主要使用场景区别是什么?
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 内核社区持续维护,功能更完整,输出信息更详细,并与 ss、tc 等现代工具形成统一的 iproute2 工具集。Debian 12 默认不安装 net-tools,ip 是开箱即用的现代替代方案。
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)等操作。