一、Linux 概述
1. 什么是 Linux?
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2. Unix 和 Linux 有什么区别?
Linux 和 Unix 都是功能强大的操作系统,但存在本质差异:
- 开源性:Linux 是开源操作系统,可免费使用;Unix 是商业软件,需付费授权。
- 跨平台性:Linux 具有良好跨平台能力,可在 x86、ARM、RISC-V 等多种架构运行;Unix 多与特定硬件绑定(如 AIX 对 IBM Power、HP-UX 对 HP Integrity)。
- 可视化界面:Linux 支持 GNOME、KDE 等成熟桌面环境;传统 Unix(如 Solaris、AIX)长期以命令行为主,现代发行版已逐步增强 GUI 支持。
- 硬件要求:Linux 对硬件要求较低,可在老旧 PC 或树莓派上运行;Unix 通常依赖专用服务器硬件。
- 用户群体:Linux 用户覆盖个人开发者、中小企业及云原生厂商;Unix 更多用于金融、电信等对稳定性与服务等级协议(SLA)要求极高的核心系统。
值得注意的是,现代 Linux 发行版(如 RHEL、SUSE)在企业级可靠性、热补丁(kpatch/kgraft)、实时内核(PREEMPT_RT)等方面已深度对标甚至超越部分 Unix 系统。运维/DevOps/SRE 场景中,Linux 已成为事实标准。
3. 什么是 Linux 内核?
Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件资源,并根据需要调度执行软件。
其核心职责包括:
- 系统内存管理
- 应用程序生命周期管理(进程/线程调度)
- 硬件设备驱动与抽象(如 block、net、input 子系统)
- 文件系统管理(VFS 层统一接口,支持 ext4、XFS、Btrfs 等)
4. Linux 的基本组件是什么?
Linux 操作系统由以下关键组件构成:
- 内核(Kernel):系统核心,直接与硬件交互
- Shell:命令行解释器(如 Bash、Zsh),用户与内核的桥梁
- GUI(可选):图形显示服务器(X11/Wayland)与桌面环境(GNOME/KDE)
- 系统实用程序:
ls、cp、ps、systemd 等 GNU Coreutils 与 init 系统
- 应用程序:从文本编辑器到 Web 服务器的完整生态
Linux 的优势在于所有组件均遵循自由软件理念,源码开放、可审计、可定制——这使其成为 计算机基础 教学与底层原理研究的理想平台。
5. Linux 的体系结构
Linux 体系结构分为两大空间:

- 用户空间(User Space):包含用户应用程序(如
nginx、python)和 C 标准库(glibc),通过系统调用(syscall)与内核通信
- 内核空间(Kernel Space):包含系统调用接口(SCI)、内核核心逻辑、体系结构相关代码及硬件抽象层
为何要划分用户/内核空间?
现代 CPU 提供 Ring 0(内核态)与 Ring 3(用户态)等特权级别。Linux 利用该机制实现内存隔离与权限控制:用户进程无法直接访问硬件或修改内核数据结构,必须经由受控的 syscall 接口,从而保障系统整体稳定性与安全性。这一设计深刻体现了操作系统 计算机基础 中“保护环(Protection Ring)”的核心思想。
6. BASH 和 DOS 之间的基本区别是什么?
| 维度 |
BASH(Linux) |
DOS(Windows) |
| 大小写敏感 |
区分(ls ≠ LS) |
不区分 |
| 路径分隔符 |
/(如 /home/user) |
\(如 C:\Users) |
| 转义字符 |
\(如 \n) |
^(如 ^C 中断) |
| 文件命名规则 |
无限制(支持 Unicode、空格、特殊符号) |
8.3 格式(FILENAME.TXT)遗留约束 |
7. Linux 开机启动过程
- 主机加电自检(POST),加载 BIOS/UEFI 固件
- 读取主引导记录(MBR)或 EFI 系统分区(ESP)中的引导加载程序(GRUB2 / systemd-boot)
- 加载并解压 Linux 内核镜像(
vmlinuz)与初始内存盘(initramfs)
- 内核初始化硬件、挂载根文件系统,启动第一个用户态进程
systemd(PID=1)
systemd 依据目标(target)启动对应服务单元(.service),进入默认运行级别(如 multi-user.target)
- 启动登录管理器(
getty 或 gdm3),等待用户认证
8. Linux 系统缺省的运行级别
| 级别 |
含义 |
| 0 |
关机 |
| 1 |
单用户模式(救援模式) |
| 2 |
多用户模式(无网络,SysV) |
| 3 |
多用户模式(带网络,字符界面) |
| 4 |
未分配(保留) |
| 5 |
图形界面多用户模式 |
| 6 |
重启 |
注:systemd 已弃用数字级别,改用 target(如 graphical.target),但 /etc/inittab 兼容性仍存在。
9. Linux 使用的进程间通信方式
- 管道(pipe)与命名管道(FIFO)
- 信号(signal):轻量异步通知(如
kill -9 PID)
- 消息队列(POSIX/XSI)
- 共享内存(最高效,需同步机制如信号量)
- 信号量(semaphore):进程/线程同步原语
- 套接字(socket):支持本地(AF_UNIX)与网络(AF_INET)通信
10. Linux 有哪些系统日志文件?
核心日志路径:
/var/log/messages:通用系统日志(RHEL/CentOS)
/var/log/syslog:Debian/Ubuntu 系统日志
/var/log/auth.log:认证相关事件(SSH 登录、sudo)
/var/log/kern.log:内核日志(含 dmesg 输出)
/var/log/secure:安全相关日志(RHEL 系)
若系统部署了 ELK(Elasticsearch-Logstash-Kibana)或 Loki+Promtail 日志栈,这些文件通常作为采集源。运维 & 测试 场景中,日志标准化与集中分析是 SRE 实践基石。
11. Linux 系统安装多个桌面环境有帮助吗?
通常不推荐。一个成熟桌面环境(如 GNOME 或 KDE Plasma)已提供完整工作流。混用环境可能导致:
- 应用兼容性问题(如 Qt 程序在 GTK 主题下渲染异常)
- 配置冲突(
~/.config/ 下不同 DE 的配置文件互相覆盖)
- 资源冗余(多个显示管理器、会话守护进程争抢端口)
仅在开发测试或特定需求(如 WINE 游戏需 Cinnamon 兼容性)时考虑切换。
12. 什么是交换空间?
交换空间(swap space)是磁盘上预留的一块区域(swap 分区或 swap 文件),当物理内存(RAM)不足时,内核将部分不活跃页(page)换出至 swap,腾出 RAM 给高优先级进程。虽能避免 OOM(Out-of-Memory)杀进程,但因磁盘 I/O 远慢于内存,过度使用会导致严重性能下降。
13. 什么是 root 帐户?
root 是 Linux 的超级用户账户,拥有对系统的完全控制权:可创建/删除用户、修改任意文件权限、加载内核模块、挂载文件系统等。每次安装 Linux 时自动创建,但生产环境应禁用 root 远程登录,改用普通用户 + sudo 提权,遵循最小权限原则。
14. 什么是 LILO?
LILO(LInux LOader)是早期 Linux 引导加载程序,负责将内核从磁盘加载至内存并移交控制权。因其不支持 LBA 大于 8GB 的硬盘、缺乏菜单交互等缺陷,已被 GRUB2(GNU GRand Unified Bootloader)全面取代。
15. 什么是 BASH?
BASH(Bourne Again SHell)是 GNU 项目开发的 Shell,作为原始 Bourne Shell(/bin/sh)的增强替代品。它兼容 POSIX shell 语法,并扩展了命令行编辑、历史搜索、作业控制、数组、关联数组等特性,现为绝大多数 Linux 发行版默认 shell。
16. 什么是 CLI?
命令行界面(Command-Line Interface, CLI)是一种通过键盘输入文本指令与系统交互的用户界面。相比 GUI,CLI 具备以下特点:
- ✅ 资源占用低:无图形渲染开销,适合服务器、嵌入式设备
- ✅ 可脚本化:命令可组合、重定向、管道传递,支撑自动化运维
- ✅ 精确可控:参数明确,行为可预测,便于审计与复现
- ❌ 学习成本高:需记忆命令与选项,新手门槛较高
正因如此,现代 Linux 桌面发行版(如 Ubuntu Desktop)仍默认集成终端(GNOME Terminal),体现 CLI 在专业场景不可替代的价值。
17. 什么是 GUI?
图形用户界面(Graphical User Interface, GUI)通过窗口、图标、菜单、指针(WIMP)提供直观交互。其核心组件包括:
- 显示服务器(X Server 或 Wayland Compositor)
- 工具包(GTK、Qt)
- 桌面环境(GNOME、KDE、XFCE)
GUI 极大降低了入门门槛,但对服务器管理、批量部署、CI/CD 流水线等场景,CLI 仍是首选。
18. 开源的优势是什么?
开源不仅是免费,更是协作范式的革命:
- 透明可审计:源码公开,安全漏洞易被发现与修复(如 Heartbleed 后 OpenSSL 快速响应)
- 社区驱动创新:全球开发者贡献新功能、适配新硬件(如 ARM64 支持)
- 避免厂商锁定:用户可自由迁移、定制、二次分发
- 教育价值:学习者可阅读真实工业级代码,理解复杂系统设计
19. GNU 项目的重要性是什么?
GNU(GNU's Not Unix)项目由 Richard Stallman 于 1983 年发起,旨在构建一个完全自由的操作系统。其核心成果包括:
- GCC(GNU Compiler Collection)
- Glibc(GNU C Library)
- Bash、Coreutils(
ls, cp, grep 等)
- GPL(General Public License)许可证
GNU 提供了除内核外的所有关键组件。Linux 内核与 GNU 工具链结合,才形成今日完整的 GNU/Linux 操作系统。这一协作模式,是自由软件运动最成功的实践。
二、磁盘、目录、文件
1. 简单 Linux 文件系统
Linux 遵循“一切皆文件(Everything is a file)”的 Unix 哲学。不仅普通数据文件如此,硬件设备(/dev/sda)、进程信息(/proc/1/status)、内核参数(/sys/class/net/eth0/mtu)乃至管道、套接字,均通过文件接口抽象。
Linux 支持五类文件类型:

2. Linux 的目录结构是怎样的?
Linux 目录采用倒置树形结构,根目录 / 为唯一入口。标准 FHS(Filesystem Hierarchy Standard)定义如下:

常见目录说明:
/bin:必备用户命令(ls, cp, cat)
/etc:主机专用配置文件(/etc/passwd, /etc/nginx/nginx.conf)
/home:普通用户主目录(/home/alice)
/usr:只读用户数据(/usr/bin, /usr/lib, /usr/share)
/proc:虚拟文件系统,内核运行时状态的实时映射(非真实磁盘文件)
/root:root 用户主目录
/sbin:系统管理员命令(ifconfig, fdisk, iptables)
/dev:设备文件(/dev/sda, /dev/ttyUSB0)
/mnt:临时挂载点(如 /mnt/usb)
/boot:引导加载所需文件(vmlinuz, initramfs, grub.cfg)
/lib:共享库(libc.so.6, ld-linux.so.2)
/tmp:临时文件(重启后可能清空)
/var:可变数据(日志 /var/log、邮件 /var/mail、缓存 /var/cache)
/lost+found:fsck 检查后恢复的孤立文件碎片
3. 什么是 inode?
inode(索引节点)是 Linux 文件系统的核心元数据结构,每个文件/目录有唯一 inode 号。它存储:
- 文件大小、所有者(UID/GID)、权限(mode)
- 时间戳(atime/mtime/ctime)
- 数据块指针(直接/间接/双重间接)
- 链接数(hard link 计数)
注意:inode 不存储文件名和路径。文件名仅存在于其父目录的数据块中,作为“inode 号 → 名称”的映射。因此 mv 重命名不改变 inode,而 cp 创建新 inode。
文件逻辑结构 ↔ 物理结构转换过程:
当访问 /home/user/file.txt 时:
- 解析路径:
/ → home → user → file.txt
- 逐级读取目录内容,获取下一级 inode 号
- 最终定位
file.txt 的 inode,从中读取数据块地址
- 按地址顺序读取磁盘块,拼合成文件内容
此机制使硬链接(多个目录项指向同一 inode)与符号链接(独立 inode 存储路径字符串)成为可能。
4. 什么是硬链接和软链接?
| 特性 |
硬链接(Hard Link) |
符号链接(Soft Link / Symlink) |
| 创建命令 |
ln source target |
ln -s source target |
| 跨文件系统 |
❌ 不支持 |
✅ 支持 |
| 目录链接 |
❌ 不支持(仅 root 可为目录建硬链) |
✅ 支持 |
| inode |
共享同一 inode |
拥有独立 inode,内容为路径字符串 |
| 原文件删除 |
链接仍有效(inode 链接数 > 0) |
链接失效("broken link") |
| 磁盘占用 |
不额外占用数据块(仅增加目录项) |
占用一个 inode + 少量数据块存路径 |
生产实践中,软链接更常用:/usr/local/bin/python3 → /opt/python3.11/bin/python3,便于版本切换。
5. RAID 是什么?
RAID(Redundant Array of Independent Disks)是将多个物理磁盘组合为单一逻辑单元的技术,目标是提升性能(striping)、可靠性(mirroring)或两者兼顾。
常见级别:
- RAID 0:条带化(Striping),性能↑,无冗余,任一盘故障全阵列失效
- RAID 1:镜像(Mirroring),可靠性↑,容量减半,读性能↑
- RAID 5:条带化 + 分布式奇偶校验,允许单盘故障,写性能略降
- RAID 10:RAID 1+0,先镜像再条带,高性能高可靠,成本高
当前云环境(AWS EBS、阿里云云盘)已将 RAID 功能下沉至存储后端,用户无需手动配置,但理解其原理对评估 IOPS、吞吐量与容灾能力至关重要。
三、安全
1. 一台 Linux 系统初始化环境后需要做一些什么安全工作?
- ✅ 禁用 root 远程登录:
PermitRootLogin no in /etc/ssh/sshd_config
- ✅ 启用密钥认证,禁用密码登录:
PasswordAuthentication no
- ✅ 修改 SSH 默认端口(非必需,但可减少暴力扫描)
- ✅ 配置防火墙(firewalld/iptables):仅开放必要端口(如 22, 80, 443)
- ✅ 部署 fail2ban:自动封禁多次失败登录的 IP
- ✅ 限制 SSH 来源 IP:
AllowUsers user@192.168.1.0/24
- ✅ 精简历史命令:
export HISTSIZE=10
- ✅ 网络策略:非必要服务器禁止出网(
iptables -A OUTPUT -o eth0 -j REJECT)
- ✅ Web 安全加固:
- 使用
nginx_waf 或 ModSecurity 过滤 SQLi/XSS
- Web 服务以非 root 用户运行(如
www-data),网站目录属主设为该用户
2. 什么叫 CC 攻击?什么叫 DDOS 攻击?
- CC 攻击(Challenge Collapsar):应用层攻击,模拟海量合法 HTTP 请求(如高频刷新首页),耗尽服务器 CPU、内存或数据库连接池。
- DDoS 攻击(Distributed Denial of Service):网络层/传输层攻击,利用僵尸网络(Botnet)发送洪泛流量(SYN Flood、UDP Flood),占满带宽或连接表。
防御思路:
- CC:WAF 规则(限速、人机识别)、反向代理(Nginx limit_req)、CDN 缓存静态资源
- DDoS:依赖 ISP 或云厂商的流量清洗服务(黑洞路由、Anycast),本地设备难以抵御
3. 什么是网站数据库注入?
SQL 注入(SQL Injection)是因 Web 应用未对用户输入做充分过滤,导致恶意 SQL 代码被拼接到查询语句中执行。例如:
-- 危险的拼接(PHP 示例)
$username = $_GET['user'];
$query = "SELECT * FROM users WHERE name = '$username'";
-- 攻击者传入:' OR '1'='1
-- 最终执行:SELECT * FROM users WHERE name = '' OR '1'='1'
防护措施:
- ✅ 使用预处理语句(Prepared Statements)与参数化查询
- ✅ WAF 层过滤(如
nginx_waf 拦截 UNION SELECT、; DROP TABLE 等特征)
- ✅ 最小权限原则:Web 应用数据库账号仅授予
SELECT/INSERT/UPDATE,禁用 DROP、EXECUTE
Shell 脚本
1. Shell 脚本是什么?
Shell 脚本是包含一系列 Shell 命令的纯文本文件,用于自动化重复性任务(如备份、监控、部署)。它是 Linux 系统管理员与 DevOps 工程师的核心技能。
-
默认登录 Shell:/bin/bash(可通过 chsh 修改)
# 修改用户 ThinkWon 的默认 shell 为 /bin/sh
chsh ThinkWon -s /bin/sh
-
注释语法:以 # 开头,整行忽略
#!/bin/bash
## This script backs up /home to /backup
echo "I am logged in as $USER"
2. 语法级要点
-
变量类型:
- 系统变量:全大写(
$PATH, $HOME, $UID),set 命令查看
- 用户变量:小写或驼峰(
my_var="value"),echo $my_var 读取
-
$? 的用途:获取上一条命令退出状态(0=成功,非0=失败)
ls /usr/bin/shar
echo $? # 输出 0
ls /usr/bin/share
echo $? # 输出 2(文件不存在)
-
| Bash 特殊变量: |
变量 |
含义 |
$0 |
脚本名称 |
$1 |
第一个参数 |
$# |
参数个数 |
$* |
所有参数(空格分隔) |
-
取消变量:unset variable_name
-
if 嵌套语法:
if [ condition1 ]; then
command1
else
if [ condition2 ]; then
command2
else
command3
fi
fi
-
数字比较(-eq, -gt, -lt):
#!/bin/bash
x=10; y=20
if [ $x -gt $y ]; then
echo "x is greater than y"
else
echo "y is greater than x"
fi
-
case 语句:
case $1 in
start)
systemctl start nginx
;;
stop)
systemctl stop nginx
;;
*)
echo "Usage: $0 {start|stop}"
;;
esac
-
for 循环:
for i in {1..5}; do
echo "Number: $i"
done
-
while 循环:
count=1
while [ $count -le 3 ]; do
echo "Count: $count"
count=$((count + 1))
done
-
break/continue:
break 退出整个循环;continue 跳过本次迭代,进入下一次。
-
使脚本可执行:chmod +x myscript.sh
-
#!/bin/bash 的作用:释伴(shebang),指定解释器路径。# 是 hash,! 是 bang。
-
调试脚本:
bash -x script.sh:显示执行的每条命令及其展开结果
bash -n script.sh:仅语法检查,不执行
-
重定向标准输出与错误:
command > out.txt 2>&1
command &> out.txt(Bash 4.0+ 简写)
-
| test 文件操作: |
测试项 |
含义 |
-d f |
f 是目录 |
-e f |
f 存在 |
-f f |
f 是普通文件 |
-r f |
f 可读 |
-s f |
f 存在且非空 |
-w f |
f 可写 |
-x f |
f 可执行 |
-
定义函数:
diskusage() {
df -h
}
# 调用:diskusage
-
读取终端输入:
#!/bin/bash
echo 'Please enter your name'
read name
echo "My Name is $name"
-
算术运算:
expr 5 + 2
$((16 + 4))(推荐,Bash 内置)
四、编程题
1. 判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下?
#!/bin/bash
read -p "Input file name: " FILENAME
if [ -c "$FILENAME" ]; then
cp "$FILENAME" /dev
fi
2. 添加一个新组为 class1,然后添加属于这个组的 30 个用户,用户名的形式为 stdxx,其中 xx 从 01 到 30?
#!/bin/bash
groupadd class1
for ((i=1; i<31; i++)); do
if [ $i -le 10 ]; then
useradd -g class1 std0$i
else
useradd -g class1 std$i
fi
done
3. 编写 Shell 程序,实现自动删除 50 个账号的功能,账号名为 stud1 至 stud50?
#!/bin/bash
for ((i=1; i<51; i++)); do
userdel -r stud$i
done
要求:
- 删除所有空行
- 行中若含
11111,则在其前插入 AAA,后插入 BBB
# 查看原始内容
[root@~]# cat -n /tmp/input.txt
1 000011111222
2
3 000011111222222
4 11111000000222
5
6
7 111111111111122222222222
8 2211111111
9 112222222
10 1122
11
# 删除空行
[root@~]# sed '/^$/d' /tmp/input.txt
000011111222
000011111222222
11111000000222
111111111111122222222222
2211111111
112222222
1122
# 插入 AAA/BBB
[root@~]# sed 's#\(11111\)#AAA\1BBB#g' /tmp/input.txt
0000AAA11111BBB222
0000AAA11111BBB222222
AAA11111BBB000000222
AAA11111BBBAAA11111BBB11122222222222
22AAA11111BBB111
112222222
1122
五、实战
1. 如何选择 Linux 操作系统版本?
- 桌面用户:Ubuntu(易用性、社区支持)、Fedora(新技术尝鲜)
- 服务器生产环境:
- ✅ CentOS Stream / Rocky Linux / AlmaLinux:RHEL 兼容,企业级稳定,主流互联网公司首选
- ✅ Debian:极致稳定,适合对安全性要求极高的场景(银行、政府)
- ✅ Ubuntu LTS:更新频繁,容器/K8s 生态最佳
- ⚠️ Fedora Server:RHEL 的上游测试版,不建议生产环境直接使用
当前市场,CentOS 7/8 已结束维护,迁移至 Rocky/Alma 或 Ubuntu 22.04 LTS 是 面试求职 中高频考点。
2. 如何规划一台 Linux 主机,步骤是怎样?
- 明确用途:Web 服务器?数据库?K8s Node?决定 CPU/内存/磁盘类型(SSD/NVMe)
- 系统安装:
- 分区方案(
/, /boot, /home, swap,或 LVM 灵活扩容)
- 最小化安装(
@^minimal-environment),按需添加组件
- 安全基线:执行前述安全加固清单
- 服务配置:Nginx/Apache、MySQL/PostgreSQL、防火墙规则
- 监控接入:部署 Prometheus Node Exporter、日志收集 Agent
3. 请问当用户反馈网站访问慢,如何处理?
可能原因与排查路径:
| 层级 |
现象与工具 |
| 网络层 |
mtr www.example.com(路由追踪)、ss -s(socket 统计)、iftop(实时流量) |
| 系统层 |
uptime/w(负载)、top/htop(CPU/MEM)、iostat -x 1(磁盘 I/O) |
| 应用层 |
curl -o /dev/null -s -w "time_total: %{time_total}\n" https://example.com |
| 数据库 |
mysqladmin proc stat、SHOW PROCESSLIST、慢查询日志(slow_query_log) |
典型解决措施:
- 出口带宽不足 → 升级带宽或引入 CDN
- MySQL 慢查询 → 优化 SQL、添加索引、读写分离
- 应用瓶颈 → 代码 Profiling(
py-spy, perf)、水平扩容
- DNS 解析慢 → 切换公共 DNS(114.114.114.114)或本地缓存(dnsmasq)
4. Linux 性能调优都有哪几种方法?
- 关闭非必要服务(
systemctl disable bluetooth.service)
- 禁用 GUI(
systemctl set-default multi-user.target)
- 调整内核参数(
/etc/sysctl.conf):
vm.swappiness=10(降低 swap 使用倾向)
net.ipv4.tcp_tw_reuse=1(TIME_WAIT 复用)
- CPU 调度器优化(
cpupower frequency-set -g performance)
- 文件系统挂载选项(
noatime, data=ordered)
- 网络栈调优(
net.core.somaxconn, net.ipv4.ip_local_port_range)
六、文件管理命令
1. cat 命令
2. chmod 命令
- 权限模型:
u(user)/g(group)/o(other)/a(all) + r(4)/w(2)/x(1)
- 实例:
chmod 751 script.sh # owner=rwx, group=rx, other=x
chmod u+x,g-w,o-r file # 增 owner 执行,删 group 写,删 other 读
3. chown 命令
4. cp 命令
- 安全复制:
cp -ai source dest(保留属性、交互确认)
- 创建软链接:
cp -s source.txt link.txt
5. find 命令
6. head 命令
- 查看开头:
head -n 20 file.log(前 20 行)
- 查看末尾:
head -n -10 file.log(除最后 10 行外全部)
7. less 命令
- 交互式浏览:
less -N file.log(显示行号)
- 搜索:
/pattern(向下)、?pattern(向上)、n(重复)、N(反向)
- 多文件:
less 1.log 2.log,用 :n/:p 切换
8. ln 命令
- 软链接:
ln -sv /opt/app/config /etc/myapp/config
- 硬链接:
ln -v source.log hardlink.log
- 链接目录:仅软链接支持(
ln -sv /data /mnt/data)
9. locate 命令
10. more 命令
- 分页查看:
more +3 text.txt(从第 3 行开始)
- 管道分页:
ls -l | more -5(每页 5 行)
11. mv 命令
12. rm 命令
13. tail 命令
- 实时日志跟踪:
tail -f /var/log/nginx/access.log
- 查看末尾 N 行:
tail -n 100 error.log
14. touch 命令
15. vim 命令
- 三种模式:
- 常用快捷:
vim +10 file.txt(打开并跳至第 10 行)
vim +/ERROR file.log(打开并跳至首个 ERROR 行)
vim -R /etc/passwd(只读模式)
16. whereis 命令
17. which 命令
七、文档编辑命令
1. grep 命令
2. wc 命令
八、磁盘管理命令
1. cd 命令
2. df 命令
3. du 命令
4. ls 命令
5. mkdir 命令
6. pwd 命令
7. rmdir 命令
九、网络通讯命令
1. ifconfig 命令(已逐步被 ip 替代)
- 查看接口:
ifconfig -a
- 启停接口:
ifconfig eth0 up / ifconfig eth0 down
2. iptables 命令
3. netstat 命令(ss 是现代替代)
4. ping 命令
5. telnet 命令
十、系统管理命令
1. date 命令
2. free 命令
3. kill 命令
4. ps 命令
5. rpm 命令
6. top 命令
- 动态进程监控:
P:按 CPU 排序
M:按内存排序
T:按运行时间排序
h:帮助
q:退出
7. yum 命令
十一、备份压缩命令
1. bzip2 命令
bzip2 file.txt → file.txt.bz2
bunzip2 file.txt.bz2
2. gzip 命令
gzip file.txt → file.txt.gz
gunzip file.txt.gz
gzip -l *.gz → 查看压缩率
3. tar 命令
4. unzip 命令
unzip archive.zip
unzip -l archive.zip → 查看内容