【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(终止命令)堪称 "必备技能"。

