【Linux03】基础指令与相关知识铺垫(三)
Linux 基础指令与相关知识摘要 本文介绍了Linux核心操作指令,包括: 文件查看:cat查看小文件,less/more分页浏览大文件,head/tail显示首尾内容 管道操作:|实现命令级联,匿名/命名管道的特性与应用 时间处理:date显示设置时间,时间戳概念与转换,cal查看日历 文件查找:find全局搜索,which定位命令,whereis查找程序文件 文本过滤:grep关键词搜索,支
本文 Linux 基础指令与相关知识铺垫涵盖文件查看、管道、时间处理、文件查找、文本过滤、打包压缩等核心指令。
文章目录
一、文件内容查看命令
1.1 cat 命令 —— 查看文件内容
cat(concatenate 的缩写)命令用于查看文件内容,是 Linux 中最常用的文件查看命令之一。
基本用法:
cat filename.txt # 查看文件内容
cat -n filename.txt # 显示行号
cat -b filename.txt # 只对非空行编号
cat -s filename.txt # 压缩多行空行为一行
常用选项:
| 选项 | 说明 |
|---|---|
-n |
对输出的所有行编号 |
-b |
对非空输出行编号,空行不编号 |
-s |
不输出多行空行(将连续空行压缩成一行) |
适用场景:
cat 命令适合查看小文件,比如配置文件、短小的代码文件等。如果文件很大,使用 cat 会导致内容刷屏,难以阅读。
# 示例:创建并查看一个文件
echo "Hello World" > test.txt
cat test.txt
cat -n test.txt # 带行号显示
1.2 tac 命令 —— 倒序查看文件
tac 命令与 cat 相反,它按倒序显示文件内容(从最后一行到第一行)。
tac filename.txt # 倒序显示文件内容
记忆技巧:
tac就是把cat倒过来写!
1.3 more 和 less —— 分页查看大文件
对于大文件,cat 会一次性输出所有内容导致刷屏,此时需要使用分页查看工具。
more 命令
more filename.txt # 分页查看文件
特点:
- 按
Enter逐行向下翻页 - 按
空格向下翻一屏 - 支持搜索(输入
/关键词) - 缺点:不能向上翻页
less 命令(推荐)
less filename.txt # 分页查看文件
less -N filename.txt # 显示行号
特点:
- 支持上下翻页(
↑↓或PageUpPageDown) - 支持搜索(
/向下搜,?向上搜) n重复上一个搜索,N反向重复搜索- 按
q退出
推荐:记住
more or less(或多或少),以后查看大文件直接用less!
1.4 head 和 tail —— 查看文件头部和尾部
head filename.txt # 默认显示前10行
head -n 5 filename.txt # 显示前5行
head -5 filename.txt # 简写形式
tail filename.txt # 默认显示后10行
tail -n 3 filename.txt # 显示后3行
tail -3 filename.txt # 简写形式
提取文件中间内容(管道组合):
# 提取第5000到5010行
head -5010 filename.txt | tail -11

二、管道 —— Linux 的强大利器
2.1 什么是管道?
管道(Pipe)是 Linux 中一种重要的进程间通信机制,用符号 | 表示。它可以将一个命令的输出作为另一个命令的输入,实现命令级联。
command1 | command2 | command3

2.2 管道的本质
- 管道是一种内存级文件,不写入磁盘
- 具有单向传输特性:有入口、有出口
- 用于传递数据资源(在计算机中,数据是最重要的资源)
2.3 管道应用实例
# 提取文件中间内容并统计行数
head -5000 bigfile.txt | tail -1000 | wc -l
# 提取内容并倒序显示
head -100 file.txt | tac
# 查看进程并过滤特定关键词
ps aux | grep sshd
2.4 匿名管道 vs 命名管道
| 类型 | 特点 | 创建方式 |
|---|---|---|
| 匿名管道 | 无文件名,命令执行后消失 | command1 | command2 |
| 命名管道 | 有文件名,以 p 开头 |
mkfifo mypipe |
# 创建命名管道
mkfifo FIFO
# 终端1:写入数据
echo "Hello World" > FIFO
# 终端2:读取数据
cat FIFO
三、时间相关命令
3.1 date 命令 —— 显示和设置系统时间
date # 显示当前时间
date +%Y/%m/%d # 格式化显示:2025/01/29
date +%Y-%m-%d-%H:%M:%S # 完整时间格式
date +%s # 显示时间戳
常用格式符:
| 格式符 | 说明 |
|---|---|
%Y |
年份(4位数) |
%m |
月份(01-12) |
%d |
日期(01-31) |
%H |
小时(00-23) |
%M |
分钟(00-59) |
%S |
秒(00-61) |
%s |
时间戳(秒数) |
3.2 时间戳 —— 计算机世界的统一语言
什么是时间戳?
时间戳是从 1970年1月1日 00:00:00 UTC(Unix 纪元)到现在累计的秒数。

时间戳与时区:
- 中国是东八区,北京时间 = UTC时间 + 8小时
- 当时间戳为 0 时,北京时间显示为
1970/01/01 08:00:00
# 时间戳转可读时间
date +%Y/%m/%d-%H:%M:%S -d @0
date +%Y/%m/%d-%H:%M:%S -d @1000000000
时间戳的重要性:
- 全球统一:不受时区影响,便于跨国数据交换
- 便于计算:时间比较、时间差计算简单
- 日志记录:系统日志、应用日志都使用时间戳
3.3 cal 命令 —— 显示日历
cal # 显示当月日历
cal 2025 # 显示2025年全年日历
cal 1949 # 显示1949年全年日历
cal -3 # 显示前一个月、当月、下一个月
四、文件查找命令
4.1 find 命令 —— 全局文件查找
find 命令在目录树中递归查找文件,功能强大但速度较慢(需要遍历目录)。
find ~ -name "test.c" # 在家目录查找名为 test.c 的文件
find / -name "*.txt" # 在根目录查找所有 txt 文件
find . -type f # 查找普通文件
find . -type d # 查找目录
find . -size +100M # 查找大于100M的文件
常用选项:
| 选项 | 说明 |
|---|---|
-name |
按文件名查找 |
-type f |
查找普通文件 |
-type d |
查找目录 |
-size |
按文件大小查找 |
4.2 which 命令 —— 查找命令位置
which ls # 查找 ls 命令的位置
which pwd # 查找 pwd 命令的位置
4.3 whereis 命令 —— 查找程序相关文件
whereis ls # 查找 ls 命令、手册页等
whereis gcc # 查找 gcc 相关文件
总结:查命令用
which,查全局文件用find,查程序源码/手册用whereis。
五、grep 命令 —— 文本过滤利器
grep(Global Regular Expression Print)是 Linux 中最强大的文本过滤工具,用于在文件中搜索匹配的行。
grep "keyword" file.txt # 查找包含关键词的行
grep -i "keyword" file.txt # 忽略大小写
grep -n "keyword" file.txt # 显示行号
grep -v "keyword" file.txt # 反向选择(显示不包含关键词的行)
常用选项:
| 选项 | 说明 |
|---|---|
-i |
忽略大小写(ignore case) |
-n |
显示匹配行的行号 |
-v |
反向选择(invert match) |
实际应用场景:
# 查看日志中的错误信息
grep -i "error" /var/log/messages
# 查看特定进程
ps aux | grep sshd
# 统计错误行数
grep -c "error" app.log
# 查找不包含某关键词的行
grep -v "debug" app.log
六、top 命令 —— 系统任务管理器
top 命令类似于 Windows 的任务管理器,实时显示系统资源使用情况。
top # 启动 top,默认每秒刷新
top -d 2 # 每2秒刷新一次
top -n 5 # 刷新5次后自动退出
显示信息:
- 系统运行时间、用户数
- 进程总数、运行中、休眠中
- CPU 使用率
- 内存使用情况
- 进程列表(PID、用户、CPU%、内存%、命令等)
七、打包与压缩
7.1 打包 vs 压缩

| 概念 | 说明 | 类比 |
|---|---|---|
| 打包 | 将多个文件合并成一个文件 | 把行李装进袋子 |
| 压缩 | 使用算法减小文件体积 | 把袋子里的空气抽干 |
7.2 zip 和 unzip
# 压缩文件
zip archive.zip file1 file2
# 压缩目录(必须加 -r 递归选项)
zip -r archive.zip directory/
# 解压
unzip archive.zip
# 解压到指定目录
unzip archive.zip -d /path/to/dest
7.3 tar 命令 —— Linux 标准的打包工具
# 打包(仅打包,不压缩)
tar -cvf archive.tar directory/
# 打包并 gzip 压缩(.tar.gz 或 .tgz)
tar -zcvf archive.tar.gz directory/
# 打包并 bzip2 压缩(.tar.bz2)
tar -jcvf archive.tar.bz2 directory/
# 解压 tar.gz
tar -zxvf archive.tar.gz
# 解压到指定目录
tar -zxvf archive.tar.gz -C /path/to/dest
常用选项:
| 选项 | 说明 |
|---|---|
-c |
创建打包文件(create) |
-x |
解包(extract) |
-v |
显示详细过程(verbose) |
-f |
指定文件名(必须放在最后) |
-z |
使用 gzip 压缩/解压 |
-j |
使用 bzip2 压缩/解压 |
-C |
指定解压目录 |
7.4 为什么需要打包压缩?
- 节省存储空间
- 提高网络传输效率
- 保证文件完整性(要么全收到,要么收不到)
- 便于备份和归档
八、Windows 与 Linux 文件传输
8.1 sz 命令 —— 从 Linux 下载到 Windows
sz filename.txt # 下载文件到 Windows
sz *.zip # 下载多个文件
8.2 rz 命令 —— 从 Windows 上传到 Linux
rz # 弹出窗口选择文件上传
rz -y # 覆盖已存在的文件
8.3 安装 rzsz 工具
# CentOS
yum install -y lrzsz
# Ubuntu
apt install -y lrzsz
注意:也可以使用 XShell 的拖拽功能直接传输文件。
九、实用小技巧
9.1 Ctrl + R —— 搜索历史命令
# 按 Ctrl + R 后输入关键词,自动匹配历史命令
Ctrl + R > "while" # 找到之前输入的 while 循环命令
9.2 花括号扩展 —— 批量创建文件
# 批量创建文件
touch file{1..100}.txt # 创建 file1.txt 到 file100.txt
# 批量删除
rm file{1..100}.txt
9.3 wc 命令 —— 统计行数、字数
wc -l filename.txt # 统计行数
wc -c filename.txt # 统计字节数
wc -w filename.txt # 统计单词数
十、总结
| 类别 | 命令 | 主要用途 |
|---|---|---|
| 文件查看 | cat, tac, more, less, head, tail |
查看文件内容 |
| 管道 | | |
命令级联,数据传递 |
| 时间 | date, cal |
查看时间和日历 |
| 查找 | find, which, whereis |
查找文件和命令 |
| 过滤 | grep |
文本搜索过滤 |
| 系统监控 | top |
查看系统资源 |
| 压缩 | zip, unzip, tar |
打包和压缩 |
| 传输 | sz, rz |
Windows-Linux 文件传输 |
更多推荐


所有评论(0)