【Linux基础 理论+命令】(下)目录
- 前言:
- ---------------理论知识---------------
-
- [1. 什么是时间戳?](#1. 什么是时间戳?)
- [2. 时间戳有什么用?](#2. 时间戳有什么用?)
- [3. 打包和压缩的本质与价值是什么?](#3. 打包和压缩的本质与价值是什么?)
- [4. 何为指令集体系结构?](#4. 何为指令集体系结构?)
- [5. shell命令的运行原理是什么?](#5. shell命令的运行原理是什么?)
- ---------------基础命令---------------
- ---------------常用热键---------------

往期《Linux系统编程》回顾:
/------------ 入门基础 ------------/
【Linux的前世今生】
【Linux的环境搭建】
【Linux基础 理论+命令】(上)
前言:
hi~小伙伴们大家好啊!(ノ≧∀≦)ノ
今天是阳历10月21号,同时也是阴历九月初一哦!( ̄︶ ̄)↗ 所以说,今天也算是新一月的开启之日呀!✧。٩(ˊᗜˋ)و✧。
古人将秋季分为孟秋、仲秋、季秋三个阶段,而农历九月正处于季秋时节,也被大家称之为"深秋"。(。•ᴗ•。)
说到这儿,必须提一句鼠鼠超爱这个月份!正如诗句所言:"自古逢秋悲寂寥,我言秋日胜春朝。" ٩(◕‿◕)۶
那我们就在这个秋意满满的时刻,继续我们Linux系统编程的学习吧~(ノ´∀`)今天学习的内容就是【Linux基础 理论+命令】(下)啦!准备好的话,就放下手里的鱼吧~(`⌒´メ)
---------------理论知识---------------
1. 什么是时间戳?

时间戳(Timestamp)
:是数字世界中用于精准标记特定时刻的**"时间印记"**
- 它像一把尺子,为信息 、事件 或数据 的时间属性提供了统一的度量标准,方便在不同场景下实现
定位
、记录
、追溯
和同步
时间戳的核心是 "标记时间",但为了适应不同场景(比如:人类理解或计算机处理),衍生出了多种形式:
1. Unix 时间戳(计算机友好型)
这是编程和计算机系统中最常用的形式,本质是一个整数,代表从 "时间起点"------1970 年 1 月 1 日 00:00:00 UTC(协调世界时,即格林尼治标准时间) 开始,到目标时刻所经过的秒数(或毫秒数、微秒数)
- 2024 年 1 月 1 日 00:00:00 UTC 对应的 Unix 时间戳约为1704067200 秒
- 若精确到毫秒,则在秒数后加三位数字(如:1704067200000)
这种形式的优势在于格式统一、占用空间小、便于计算机存储和计算,无需处理时区、闰年等复杂逻辑,因此广泛用于数据库记录、程序日志、API 接口等场景。
2. 人类可读时间戳(用户友好型)(了解即可)
以人类日常习惯的时间格式呈现,直接包含年月日、时分秒等信息,比如:
- 国际通用格式:
2024-05-20 15:30:45
(年 - 月 - 日 时:分: 秒)- 中文常用格式:
2024年5月20日 下午3点30分45秒
- 带时区的格式:
2024-05-20T15:30:45+08:00
(其中+08:00
表示东八区,即北京时间)这种形式直观易懂,常见于文件命名(如:"会议记录_20240520.txt")、新闻发布时间、聊天记录等场景。
3. 媒体文件中的时间戳(内容定位型)(了解即可)
在视频、音频、直播等媒体内容中,时间戳特指内容在文件中的具体位置,通常以 "时:分: 秒" 或 "分:秒" 表示。
- 视频中 "01:23:45" 表示播放到 1 小时 23 分 45 秒的画面
- 音频中 "3:15" 表示歌曲播放到 3 分 15 秒的片段
这种时间戳在视频剪辑(如:PR 中标记关键帧)、字幕制作(匹配台词出现的时间)、弹幕定位(对应画面的时刻)、影视剧 "名场面" 分享(如 "第 45 分钟高能")等场景中至关重要,能帮助用户快速定位到目标内容。
小知识:为什么计算机关机后,开机还能准确记录时间呢?
- 这是因为主板上有一颗纽扣电池(也叫 CMOS 电池 )
- 当计算机断电关机时,纽扣电池会持续为主板上的实时时钟(RTC)电路供电,让时钟可以不间断地计数
这样一来,即便长时间关机,实时时钟也能维持正常走时,开机后系统就能读取到准确时间啦~
小知识:1970 年 1 月 1 日 00:00:00 UTC ------ 格林尼治标准时间
格林尼治天文台是世界上最具标志性的天文机构之一,位于英国伦敦东南部的格林尼治公园,因确立了
"本初子午线"
和"格林尼治标准时间(GMT)"
而闻名全球,成为连接地理、时间与全球导航的重要坐标。

2. 时间戳有什么用?
1. 数字与时间的转换桥梁
时间戳(像
1725974746
这类 Unix 时间戳 )能精准转换为人类可读的具体时间,把冰冷的数字,变成 "2025 年 X 月 X 日 X 时 X 分 X 秒" ,让计算机记录的时间,能被我们直观理解。
2. 行为追溯的 "时间证人"
当用户(比如:张三)在系统里操作(如:删除动作),系统会生成日志 ,每条日志都会绑定时间戳 。
通过
用户→日志→时间戳
这条线索,能清晰还原:
- 谁(张三)在什么精确时间(时间戳对应的时刻)
- 做了什么操作(删除动作)
- 操作对象是什么(删除的具体内容 )
无论是排查误删问题、审计操作流程,还是保障系统安全,时间戳都是关键的 "时间证据",让每一步行为都有迹可循~
3. 打包和压缩的本质与价值是什么?
一、"是什么"------ 概念区分
打包核心是 :文件合并 ,把多个零散文件或文件夹,整合成一个独立的 "打包文件"(比如:Windows 里的
.zip
初始打包、Linux 下的.tar
文件 )
- 作用像 "整理抽屉",把零散文件归成一个整体,方便管理,但 本身不改变文件总大小
压缩关键是 :减少体积 ,通过算法(如:常见的 zip、gzip、7z 算法 ),对文件数据进行 "瘦身" 处理。
- 原理类似 "把棉花挤成棉片",让文件占用空间变小,压缩后体积通常远小于原文件总和
压缩率
取决于文件类型:
- 文本、代码压缩率高
- 视频、图片等已压缩过的文件,压缩率低甚至可能变大
二、"为什么"------ 实用价值
打包的意义:防丢失、好管理
- 防止文件丢失:多个文件打包成一个后,传输、存储时只需要关注这一个文件,避免零散文件因误操作(比如:删错、漏传 )丢失
- 简化操作流程:分享资料时,对方无需逐个下载文件,打包后 "一键下载/解压" 就能获取全部内容;备份数据时,打包也能让备份任务更简洁
压缩的价值:省空间、快传输
- 节省存储空间:压缩后体积变小,能在硬盘、网盘里存更多内容,尤其适合备份大量文本、文档类数据
- 加快网络传送:体积小了,上传、下载的时间就短。发邮件、传网盘、传文件给同事,压缩后能 有效减少网络传输耗时 ,提升效率
虽然打包和压缩有概念区分,但实际操作里, 打包和压缩常被 "绑定使用" :
比如我们用软件做 "压缩文件" 时,软件会 先打包(合并文件)、再压缩(减小体积) ,最终生成一个
.zip
.rar
这类 "既合并又瘦身" 的文件所以日常使用中,大家 不用严格区分 "打包" 和 "压缩" 的操作步骤 ,只要选一个压缩工具(如:WinRAR、7-Zip、系统自带的压缩功能 ),就能一步完成 "合并 + 瘦身"
注 :Linux 下 tar 是纯打包,tar + gzip 才是打包 + 压缩
简单总结:
- 理解概念时,打包是 "合并"、压缩是 "瘦身"
- 实际用的时候,不用纠结步骤,选压缩工具 "一键操作",就能同时实现 "好管理 + 省空间 + 快传输" 的需求
4. 何为指令集体系结构?
x86 是 Intel、AMD 等芯片长期使用的 指令集体系结构 (指令集是体系结构的核心部分,规定了 CPU 能识别、执行哪些操作命令)
- x86 32 位(x86):早年主流,能处理的内存地址空间有限(最大支持约 4GB 内存寻址),软件、系统也要适配 32 位体系结构开发
- x86 64 位(x64) :是 32 位的扩展,支持更大内存(理论上能寻址上百 GB),能执行更复杂的 64 位指令,让软件(尤其是大型游戏、专业软件)运行更高效
它们的区别本质是:体系结构在 "
指令集
、内存管理能力
" 上的迭代 ,直接影响计算机能装多少内存、能跑多复杂的程序
5. shell命令的运行原理是什么?
严格来说,Linux 所指的操作系统核心是 "内核(kernel)" ,但普通用户无法直接与 kernel 交互。
- 这是因为 kernel 负责管理硬件资源、执行最底层的操作
- 直接操作它风险极高,且需要专业的、极复杂的指令
所以 :我们得借助 kernel 的 "外壳" 程序 ------ Shell ,来与 kernel 沟通。
从技术角度看,Shell 最简洁的定义是 命令行解释器(command Interpreter) ,主要承担两大任务:
- 把用户输入的命令,"翻译" 成 kernel 能理解的指令,交给 kernel 处理
- 等 kernel 处理完,再把结果 "翻译" 回人类能看懂的信息,反馈给用户
对比 Windows 系统的图形界面(GUI),我们操作 Windows 时,也不是直接操作内核,而是通过图形接口(比如:双击 D 盘盘符进入 D 盘、点击图标运行程序)
Shell 对 Linux 的作用,和 Windows 图形界面类似:解析用户指令,传达给 Linux 内核;内核运行出结果后,再通过 Shell 反馈给用户 ,让我们不用懂内核复杂逻辑,就能轻松用 Linux 干活。
为了方便理解,举个趣味类比:
假设你是个腼腆的程序员,看上了村里漂亮的翠花(把翠花类比成 操作系统内核 ),但不好意思直接表白
这时候,Shell 就像 "媒婆"(比如:常用的 bash Shell ,就像媒婆中的 "王婆" , 当然还有"张婆------Z Shell","李婆------C Shell"),你把想说的话(用户命令)告诉媒婆,媒婆再转述给翠花;翠花的回应(内核处理结果),也由媒婆翻译回你能懂的意思
通过 Shell ,你不用直面内核的 "高冷"(你不用和翠花说话),就能让系统干活~(就能向翠花表白)

---------------基础命令---------------
------- 系统信息管理 -------
一、date
date
核心作用:显示或设置系统的日期和时间
基本用法:
date
:不带任何参数时,显示当前系统的日期和时间(默认格式)
bashdate # 示例输出:Thu Aug 7 15:30:45 CST 2025
date +[格式符]
:按指定格式显示日期时间(格式符以%
开头)
bashdate +"%Y-%m-%d %H:%M:%S" # 按 "年-月-日 时:分:秒" 格式显示
date -s "[日期时间]"
:设置系统日期和时间(需要 root 权限)
bashsudo date -s "2025-08-07 16:00:00" # 设置系统时间为2025年8月7日16:00:00
常用格式符:
%Y
:4 位年份(如:2025)%m
:2 位月份(01-12)%d
:2 位日期(01-31)%H
:24 小时制小时(00-23)%M
:分钟(00-59)%S
:秒(00-59)%a
:缩写星期(如:Thu)%A
:完整星期(如:Thursday)%b
:缩写月份(如:Aug)%B
:完整月份(如:August)%F
:等价于%Y-%m-%d
(标准日期格式)%T
:等价于%H:%M:%S
(标准时间格式)
使用示例:
bashdate +"%F" # 显示当前日期(如 2025-08-07) date +"%T" # 显示当前时间(如 15:35:22) date +"%Y年%m月%d日 %H:%M" # 显示中文格式日期时间(如 2025年08月07日 15:36) date -d "2 days ago" # 显示两天前的日期时间 date -d "next Monday" # 显示下周一的日期 sudo date -s "20:30" # 仅修改系统时间(保持日期不变)
注意事项:
- 非 root 用户只能使用
date
查看时间,无法修改系统时间- 修改系统时间后,建议同步硬件时钟(可使用
hwclock -w
命令,需 root 权限)-d
选项可用于显示相对时间(如:过去 / 未来的日期),非常实用

二、cal
cal - 英文全称为 "calendar"
核心作用:显示当前或指定年份、月份的日历,以直观的表格形式展示日期分布
基本用法:
cal
:不带任何参数时,显示当前月份的日历(当前日期会高亮显示)
bashcal # 显示当前月的日历
cal [月份] [年份]
:显示指定月份和年份的日历(月份在前,年份在后,年份需为 4 位数字)
bashcal 10 2025 # 显示2025年10月的日历 cal 2 2024 # 显示2024年2月的日历(2024是闰年,2月有29天)
cal [年份]
:显示指定年份的全年日历(12 个月)
bashcal 2025 # 显示2025年全年的日历
常用选项:
-3
:显示上一个月、当前月和下一个月的日历(共 3 个月)-y
:显示当前年份的全年日历(与cal [当前年份]效果相同)-j
:显示一年中的第几天(儒略日,1-365/366)
使用示例:
bashcal 12 2023 # 查看2023年12月的日历 cal -3 5 2024 # 显示2024年4月、5月、6月的日历 cal -j 2024 # 以儒略日显示2024年全年日历
注意事项:
- 月份参数需在 1-12 之间,年份参数通常需为 1-9999 之间的有效年份
- 部分系统的
cal
命令支持更多功能(如:-A n
显示当前月及之后 n 个月,-B n
显示当前月及之前 n 个月),可通过man cal
查看详细说明- 日历中当前日期会以高亮或反色显示,便于快速定位

三、top
top - 英文全称为 "table of processes"
核心作用:实时动态监控系统进程和系统资源(CPU、内存、负载等)的使用情况,默认按 CPU 使用率排序,是系统性能分析的常用工具
基本用法:
top
:直接运行,进入实时监控界面,按q
退出
bashtop # 启动实时进程监控,界面会动态刷新(默认3秒一次)
top [选项]
:带选项运行,自定义监控方式
bashtop -n 3 # 只刷新3次后自动退出 top -d 5 # 每5秒刷新一次
界面核心信息(顶部系统状态区):
- 第一行:系统时间、运行时间、当前登录用户数、系统负载(1 分钟、5 分钟、15 分钟平均负载)
- 第二行:进程总数(total)、运行中(running)、休眠(sleeping)、停止(stopped)、僵尸进程(zombie)数量
- 第三行:CPU 使用率(us:用户进程;sy:系统进程;ni:优先级进程;id:空闲;wa:IO 等待;hi:硬件中断;si:软件中断)
- 第四行:物理内存使用(total:总内存;free:空闲;used:已用;buff/cache:缓存和缓冲区)
- 第五行:交换分区使用(total:总交换空间;free:空闲;used:已用;avail Mem:可用内存)
进程列表字段(主要列):
PID
:进程 IDUSER
:进程所有者PR
/NI
:进程优先级(PR:系统动态优先级;NI:nice 值,-20~19,值越小优先级越高)VIRT
/RES
/SHR
:进程内存使用(VIRT:虚拟内存;RES:物理内存;SHR:共享内存)S
:进程状态(R:运行;S:休眠;Z:僵尸;T:停止等)%CPU
/%MEM
:进程占用 CPU 和内存的百分比TIME+
:进程累计 CPU 使用时间COMMAND
:进程命令名称
常用交互命令(在 top 界面中输入):
P
:按 CPU 使用率排序(默认)M
:按内存使用率排序N
:按 PID 排序T
:按累计 CPU 时间排序k
:杀死指定 PID 的进程(需输入 PID 并确认信号,默认 15:正常终止,9:强制终止)u
:过滤显示指定用户的进程(输入用户名)f
:自定义显示的字段(按上下键选择,按空格键切换显示状态)h
:查看帮助信息q
:退出 top
使用示例:
bashtop -d 2 # 每2秒刷新一次 top -n 5 # 刷新5次后退出 top -p 1234 # 只监控PID为1234的进程 top -u root # 只显示root用户的进程
注意事项:
- 系统负载值(第一行)若长期高于 CPU 核心数,可能表示系统压力过大
%CPU
列中单个进程使用率超过 100%(多核 CPU)是正常的,代表占用多个核心- 僵尸进程(Z 状态)若过多,可能是父进程未正确回收子进程资源,需排查对应父进程
- 与
top
类似的工具还有htop
(更友好的交互界面,需额外安装)

四、uname
uname - 英文全称为 "Unix name"
核心作用:显示当前操作系统的相关信息,包括内核名称、版本、主机名、硬件架构等,常用于识别系统环境
基本用法:
uname
:不带选项时,默认只显示内核名称
bashuname # 示例输出:Linux(表示内核为Linux)
uname [选项]
:通过选项指定要显示的系统信息
bashuname -a # 显示所有系统信息
常用选项:
-a
:显示所有可用的系统信息(完整信息,最常用)-s
:显示内核名称(与默认无选项效果相同)-n
:显示网络节点主机名(即系统主机名)-r
:显示内核发行版本号-v
:显示内核版本(编译信息等)-m
:显示硬件架构(如:x86_64、arm64 等)-p
:显示处理器类型(部分系统可能显示 "unknown")-i
:显示硬件平台(部分系统可能显示 "unknown")-o
:显示操作系统名称
使用示例:
bashuname -a # 显示所有信息,示例输出: # Linux myserver 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 15 19:07:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux uname -r # 显示内核版本,示例输出:5.15.0-78-generic uname -n # 显示主机名,示例输出:myserver uname -m # 显示硬件架构,示例输出:x86_64(表示64位x86架构) uname -o # 显示操作系统,示例输出:GNU/Linux
注意事项:
uname
主要显示内核和硬件相关信息,若需查看更详细的操作系统发行版信息(如:Ubuntu 版本、CentOS 版本),需结合其他命令(如:lsb_release -a
、cat /etc/os-release
)- 不同系统(如:Linux、macOS、FreeBSD)的
uname
输出格式基本一致,但部分选项(如:-p
、-i
)的结果可能不同- 在脚本中,
uname -m
常用于判断系统架构,以选择对应版本的软件包- 内核版本号(
-r
)通常包含内核主版本、次版本、补丁级别及发行商定制信息

五、shutdown
shutdown
核心作用:安全关闭、重启或定时关闭系统,支持立即操作或设置延迟时间,是管理系统电源状态的标准命令
基本用法:
shutdown [选项] [时间] [消息]
:按指定时间和方式操作系统,可选消息会发送给所有登录用户
bashshutdown -h now # 立即关闭系统
常用选项:
-h
:关闭系统(halt),等同于系统断电-r
:重启系统(reboot)-c
:取消已计划的 shutdown 操作-k
:仅发送关机消息,不实际执行关机(模拟操作)
时间参数格式:
now
:立即执行(等同于时间0
)hh:mm
:指定 24 小时制时间(如:23:30
表示晚上 11 点 30 分)+m
:延迟m
分钟后执行(如:+10
表示 10 分钟后)
使用示例:
bashshutdown -h now # 立即关闭系统 shutdown -r +5 # 5分钟后重启系统 shutdown -h 22:00 # 晚上10点关闭系统 shutdown -k +15 "系统将在15分钟后维护,请注意保存工作" # 发送提醒消息,不实际关机 shutdown -c # 取消已计划的关机/重启任务
注意事项:
shutdown
通常需要管理员权限(root 或 sudo)才能执行- 执行 shutdown 后,系统会给登录用户发送通知,避免数据丢失
- 部分系统中,
halt
(关机)、reboot
(重启)命令是shutdown
的简化版本- 远程服务器使用 shutdown 时需谨慎,避免意外断开连接导致无法重新登录
- 若需强制立即关机(不推荐,可能丢失数据),可使用
poweroff
命令
------- 压缩归档工具 -------
一、zip/unzip
zip/unzip
核心作用:zip 用于创建 ZIP 格式的压缩包,unzip 用于解压缩 ZIP 格式的文件,是跨平台(Linux、Windows、macOS)常用的压缩工具
zip 基本用法:
zip [压缩包名称] [文件/目录]
:将指定文件或目录压缩为 ZIP 包
bashzip docs.zip report.txt # 将 report.txt 压缩为 docs.zip
zip -r [压缩包名称] [目录]
:递归压缩目录(包含子目录和所有文件)
bashzip -r images.zip ./photos/ # 递归压缩 photos 目录为 images.zip
zip 常用选项:
-r
:递归压缩目录(必须用于目录压缩)-q
:安静模式,不显示压缩过程信息-9
:最高压缩比(默认是 6,数值 1-9,越大压缩率越高但速度越慢)-0
:仅打包不压缩(快速创建归档)-u
:更新压缩包,添加新文件或替换已存在的旧文件-d
:从压缩包中删除指定文件
unzip 基本用法:
unzip [压缩包名称]
:将 ZIP 包解压缩到当前目录
bashunzip docs.zip # 解压缩 docs.zip 到当前目录
unzip [压缩包名称] -d [目标目录]
:将 ZIP 包解压缩到指定目录
bashunzip images.zip -d ./pics/ # 解压缩 images.zip 到 pics 目录
unzip 常用选项:
-d
:指定解压缩的目标目录(目录不存在会自动创建)-l
:列出压缩包内的文件列表,不实际解压缩-q
:安静模式,不显示解压缩过程信息-o
:覆盖已存在的文件,不提示确认-n
:不覆盖已存在的文件,跳过相同名称的文件-j
:解压缩时忽略目录结构,所有文件直接提取到目标目录
使用示例:
bash# zip 示例 zip -r -9 backup.zip ./docs/ ./data/ # 高压缩比打包多个目录 zip -q update.zip newfile.txt # 安静模式压缩单个文件 zip -u docs.zip addendum.txt # 向 docs.zip 添加新文件 zip -d temp.zip old.txt # 从 temp.zip 中删除 old.txt # unzip 示例 unzip -l archive.zip # 查看 archive.zip 内的文件列表 unzip -o bigfile.zip -d ./extract/ # 强制解压缩到 extract 目录,覆盖现有文件 unzip -j images.zip -d ./all_pics/ # 忽略目录结构,提取所有图片到 all_pics
注意事项:
- 若系统未安装 zip/unzip,需先安装(如:
sudo apt install zip unzip
或sudo yum install zip unzip
)- ZIP 格式默认不保留 Linux 文件的权限信息,若需保留权限,可使用
zip -y
选项(保留符号链接)或改用tar
命令- 压缩包含中文名称的文件时,可能出现乱码,部分系统需添加
-O UTF-8
选项(如:unzip -O UTF-8 中文压缩包.zip
)- 大文件压缩可能耗时较长,可结合
-q
选项减少输出信息


二、tar
tar - 英文全称为 "tape archive"
核心作用:将多个文件或目录打包成单一归档文件(tar 包),并支持结合不同压缩算法(如:gzip、bzip2)进行压缩,是 Linux 系统中最常用的归档与备份工具
基本用法:
tar [选项] [归档文件名] [文件/目录]
:对指定文件或目录进行打包、压缩或解压操作
bashtar -cvf archive.tar docs/ # 将 docs 目录打包为 archive.tar
核心选项:
- 功能选项(必选其一):
-c
:创建新的归档文件(打包/压缩)-x
:从归档文件中提取内容(解包/解压)-t
:列出归档文件中的内容(查看)- 压缩选项(可选,指定压缩算法):
-z
:使用 gzip 压缩/解压(对应.tar.gz
或.tgz
格式)-j
:使用 bzip2 压缩/解压(对应.tar.bz2
格式)-J
:使用 xz 压缩/解压(对应.tar.xz
格式,压缩率最高)- 辅助选项:
-f [文件名]
:指定归档文件名称(必须紧跟文件名,通常放选项末尾)-v
:显示操作过程(verbose 模式,列出处理的文件)-C [目录]
:指定 解压/打包 的目标目录--exclude [模式]
:排除符合模式的文件或目录
操作示例:
bash# 1. 打包(仅归档,不压缩) tar -cvf data.tar file1.txt dir1/ # 将文件和目录打包为 data.tar # 2. 打包并压缩 tar -zcvf backup.tar.gz docs/ # gzip压缩(最常用) tar -jcvf logs.tar.bz2 /var/log/ # bzip2压缩 tar -Jcvf images.tar.xz pics/ # xz压缩(高压缩率) # 3. 查看归档内容(不解压) tar -ztvf backup.tar.gz # 查看 gzip 压缩包内容 tar -jtvf logs.tar.bz2 # 查看 bzip2 压缩包内容 # 4. 解压缩 tar -zxvf backup.tar.gz # 解压到当前目录 tar -Jxvf images.tar.xz -C ./pictures/ # 解压到指定目录 # 5. 排除文件打包 tar -zcvf src.tar.gz --exclude "*.log" src/ # 打包时排除 .log 文件
注意事项:
- 选项顺序 :
-f
必须紧跟归档文件名,推荐格式为tar [功能选项][压缩选项]f 文件名
(如:tar zcvf ...
)- 压缩率对比 :
xz > bzip2 > gzip
,但压缩速度相反(gzip 最快)- 保留权限:tar 会保留文件的权限、所有者等信息,适合系统备份
- 大文件处理 :支持流式操作,可通过管道实现远程备份(如:
tar zcvf - docs/ | ssh user@host "cat > backup.tar.gz"
)- 错误提示:解压时若提示 "Permission denied",需检查目标目录权限或使用 sudo

------- 其他辅助工具 -------
一、man
man - 英文全称为 "manual"
核心的作用:查看 Linux 系统中命令、配置文件、系统调用等的帮助手册,获取详细的使用说明
基本的用法:
man [命令/配置文件/函数名]
:查看指定对象的帮助手册
bashman ls # 查看 ls 命令的帮助手册 man passwd # 查看 passwd 命令(或其配置文件)的手册 man 3 printf # 查看 C 语言中 printf 函数的手册(指定章节)
手册的章节:(常用)
手册通常分为 8 个章节,用于区分不同类型的内容,可通过数字指定:
1
:用户命令(如:ls
、cd
等)2
:系统调用(内核提供的函数,如:open
、read
)3
:库函数(编程语言的函数,如:C 库的printf
)5
:配置文件格式(如:/etc/passwd
、/etc/fstab
)8
:系统管理命令(如:service
、useradd
,通常需要 root 权限)例如:
man 5 passwd
查看/etc/passwd
配置文件的格式说明man 1 passwd
查看passwd
命令的用法
手册内操作:(常用)
- 按 /关键词 搜索(如:
/option
查找包含 option 的内容),按n
跳至下一个结果,N
跳至上一个- 按 空格 翻页,
b
向前翻页,f
向后翻页- 按 q 退出手册
- 按 h 查看更多操作帮助
使用的示例:
bashman rm # 查看 rm 命令的完整帮助
二、find
find
核心作用:在指定目录下递归查找符合条件的文件或目录,支持按名称、类型、大小、修改时间等多种条件筛选
基本用法:
find [查找路径] [匹配条件] [操作]
:在指定路径下按条件查找,并可对结果执行操作
bashfind /home -name "*.txt" # 在 /home 目录下查找所有 .txt 文件
find [匹配条件]
:默认在当前目录查找符合条件的 文件/目录
bashfind -type d -name "docs" # 在当前目录及子目录中查找名为 docs 的目录
匹配条件:
-name "模式"
:按文件名匹配(区分大小写,支持通配符*
、?
、[]
)-iname "模式"
:按文件名匹配(忽略大小写)-type [类型]
:按类型匹配(f
普通文件、d
目录、l
符号链接等)-size [大小]
:按文件大小匹配(+n
大于 n、-n
小于 n,单位b
/k
/M
/G
)-mtime [天数]
:按修改时间匹配(+n
超过 n 天、-n
少于 n 天,以 24 小时为单位)-user [用户名]
:查找属于指定用户的文件
使用示例:
bash# 按名称查找 find /etc -name "*.conf" # 在 /etc 下查找所有 .conf 配置文件 find . -iname "readme" # 在当前目录查找 readme(忽略大小写) # 按类型和大小查找 find /var -type f -size +100M # 在 /var 下查找大于100MB的普通文件 find ~ -type d -name "tmp*" # 在用户家目录查找以 tmp 开头的目录 # 按时间查找 find . -mtime -1 # 查找当前目录下24小时内修改过的文件 find /log -mtime +30 -name "*.log" # 查找 /log 下30天前修改的日志文件

三、alias
alias
核心作用:为命令创建自定义别名,简化长命令或常用命令组合的输入,提高操作效率
基本用法:
alias [别名]=[原始命令]
:为指定命令创建别名(等号两侧无空格,原始命令含特殊字符需用引号包裹)
bashalias ll='ls -l' # 为 ls -l 命令创建别名 ll
alias
:不带参数时,显示当前系统中所有已定义的别名
bashalias # 列出所有别名,输出如:alias ll='ls -l' alias grep='grep --color=auto'
unalias [别名]
:删除指定的别名(虽然是独立命令,但常与 alias 配合使用)
bashunalias ll # 删除 ll 这个别名
常用场景:
简化长命令
:将常用的复杂命令简化为短别名固定命令选项
:为命令预设常用选项(如:详细输出、自动着色)组合命令
:将多个命令组合为一个别名(需用分号分隔)
使用示例:
bashalias la='ls -a' # 用 la 代替 ls -a(显示所有文件,包括隐藏文件) alias grep='grep --color' # 为 grep 命令添加颜色高亮选项 alias cls='clear' # 用 cls 代替 clear(类似 Windows 命令习惯) alias update='sudo apt update && sudo apt upgrade' # 组合更新系统的命令 alias rm='rm -i' # 为 rm 命令添加交互式确认,防止误删
注意事项:
- 直接在命令行定义的别名仅在当前 Shell 会话中有效,关闭终端后失效
- 若要使别名永久生效,需将别名定义添加到 Shell 配置文件(如:
~/.bashrc
、~/.zshrc
),添加后需执行source ~/.bashrc
(或重启终端)使其生效- 别名不能与系统已有命令同名,否则会覆盖原始命令(如:需执行原始命令,可在命令前加反斜杠,如
\ls
)- 复杂的命令组合建议使用 Shell 函数替代别名,功能更灵活
所以说 :在 Linux 系统中,
ll
命令并不是系统默认自带的标准命令,而是通过alias ll='ls -l'
这样的别名设置在配置文件中定义的。它本质上是ls -l
命令的简化形式。

四、bc
bc - 英文全称为 "Basic Calculator"
核心作用:用于在命令行进行高精度的数学计算,支持整数、小数运算及数学函数,可作为交互式计算器或在脚本中执行计算任务
基本用法:
bc
:直接运行进入交互式计算模式,输入表达式后按回车获取结果,按Ctrl+D
退出
bashbc # 进入交互式模式 123 + 456 # 输入计算表达式 579 # 输出结果
echo "[表达式]" | bc
:通过管道传递表达式,非交互式计算
bashecho "2^10" | bc # 计算 2 的 10 次方,输出 1024
bc [文件名]
:执行包含计算表达式的文件
bashbc calc.txt # 执行 calc.txt 中的计算命令
常用选项:
- -l:加载数学库,支持小数运算和数学函数(如:
sin
、log
等)
内置功能:
- 基本运算符:
+
(加)、-
(减)、*
(乘)、/
(除)、%
(取余)、^
(幂运算)- 比较运算符:
==
(等于)、!=
(不等于)、>
(大于)等(返回 1 表示真,0 表示假)- 数学函数(需加
-l
选项):sin(x)
、cos(x)
、tan(x)
、log(x)
、sqrt(x)
(平方根)等- 变量定义:可在交互式模式中定义变量(如:
a=10; b=20; a+b
)- scale 变量:控制小数位数(如:
scale=2
表示保留 2 位小数)
使用示例:
bash# 基本运算 echo "100 - 3*15" | bc # 计算 100-45,输出 55 echo "10/3" | bc # 整数除法,输出 3 echo "scale=2; 10/3" | bc # 保留 2 位小数,输出 3.33 # 幂运算与平方根 echo "2^8" | bc # 计算 2的8次方,输出 256 echo "sqrt(625)" | bc -l # 计算平方根(需加 -l),输出 25.0000000000 # 数学函数(弧度制) echo "s(1)" | bc -l # 计算 sin(1) 弧度,输出约 0.8414709848 echo "l(10)" | bc -l # 计算自然对数 ln(10),输出约 2.3025850930 # 交互式模式下的变量与比较 bc a=5; b=3 a*b # 输出 15 a > b # 输出 1(真) scale=4 (a + b) / 2 # 输出 4.0000
注意事项:
- 默认情况下
bc
只进行整数运算,需设置scale
变量或使用-l
选项才能处理小数- 数学函数的参数采用弧度制,若需角度计算需先转换(角度转弧度:角度 ×π/180)
- 在脚本中使用时,
bc
可替代$((...))
或expr
进行更复杂的数学计算- 支持条件判断、循环等简单编程结构,可编写复杂计算脚本(需结合
bc
的语法规则)

---------------常用热键---------------
在 Linux 系统的终端(Terminal)中,掌握常用热键(快捷键)可以极大提升操作效率。
以下是按功能分类的核心热键,适用于大多数 Shell 环境(如:Bash、Zsh):
一、光标移动与编辑
光标移动与编辑:
Ctrl + a
:将光标快速移动到命令行开头 (类似 Windows 的Home
键)Ctrl + e
:将光标快速移动到命令行末尾 (类似 Windows 的End
键)Ctrl + f
:光标向右移动一个字符(同右方向键)Ctrl + b
:光标向左移动一个字符(同左方向键)Alt + f
:光标向右跳一个单词(以空格或标点分隔)Alt + b
:光标向左跳一个单词Ctrl + xx
:在当前光标位置和命令行开头之间切换
二、文本删除与剪切
文本删除与剪切:
Ctrl + d
:删除光标所在位置的字符(若命令行为空,会退出当前终端)Ctrl + h
:删除光标左侧的字符 (同退格键Backspace
)Ctrl + k
:剪切(删除)从光标位置到命令行末尾的所有内容(可粘贴)Ctrl + u
:剪切(删除)从光标位置到命令行开头的所有内容(可粘贴)Alt + d
:剪切光标右侧的整个单词(从光标位置到单词结尾)Alt + Backspace
:剪切光标左侧的整个单词(从单词开头到光标位置)
三、命令历史与搜索
命令历史与搜索:
Ctrl + r
:进入历史命令搜索模式 ,输入关键词可快速查找曾执行过的命令(按Enter
执行找到的命令,按Ctrl + g
退出搜索)Ctrl + p
:调用上一条历史命令 (同上方向键↑
)Ctrl + n
:调用下一条历史命令 (同下方向键↓
)!!
(输入两个感叹号):重复执行上一条命令 (常用于需要sudo
权限时,如:sudo !!
)
四、终端控制类操作
终端控制:
Ctrl + c
:强制终止当前运行的命令(最常用,如:终止卡住的程序)Ctrl + z
:将当前命令暂停并放入后台 (可通过fg
命令恢复到前台)Ctrl + l
:清空终端屏幕(同clear
命令)Ctrl + s
:暂停终端输出(防止滚动过快,常用于查看日志时)Ctrl + q
:恢复终端输出(解除Ctrl + s
的暂停)Ctrl + d
:退出当前 Shell 会话(同exit
命令,若在输入状态则删除字符)
五、其他实用的热键
其他实用热键:
Tab
:自动补全命令、文件名或目录名(输入前几个字符按Tab
,不确定时按两次Tab
显示所有可能选项)Esc + .
(按Esc
后松开,再按.
):粘贴上一条命令的最后一个参数 (例如:上一条命令是cp file1.txt /home/docs
,按此热键会粘贴/home/docs
)Ctrl + w
:删除光标左侧的一个单词 (与Alt + Backspace
类似,部分 Shell 行为略有差异)
注意事项
- 部分热键(如:
Alt
相关)在不同终端模拟器(如:GNOME Terminal、Konsole)中可能需要开启 "元键(Meta)" 支持,默认通常可用- 若使用远程连接工具(如:Xshell、Putty),部分热键可能被工具自身快捷键覆盖,需在工具设置中调整
掌握这些热键后,终端操作会变得非常流畅,尤其是
Ctrl + r
(历史搜索)、Tab
(自动补全)和Ctrl + c
(终止命令)堪称 "必备技能"。
