本文 Linux 基础指令与相关知识铺垫涵盖文件查看、管道、时间处理、文件查找、文本过滤、打包压缩等核心指令。



在这里插入图片描述

🎬 Doro在努力个人主页

🔥 个人专栏: 《MySQL数据库基础语法》《数据结构》

⛺️严于律己,宽以待人

一、文件内容查看命令

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    # 显示行号

特点:

  • 支持上下翻页( PageUp PageDown
  • 支持搜索(/ 向下搜,? 向上搜)
  • 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

时间戳的重要性:

  1. 全球统一:不受时区影响,便于跨国数据交换
  2. 便于计算:时间比较、时间差计算简单
  3. 日志记录:系统日志、应用日志都使用时间戳

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 为什么需要打包压缩?

  1. 节省存储空间
  2. 提高网络传输效率
  3. 保证文件完整性(要么全收到,要么收不到)
  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 文件传输

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐